Artikel ini sepenuhnya milik dan di dedikasikan untuk RSAC (Research System Analyst Corporation).
Dewasa ini hampir semua orang mempunyai koneksi yang telah tersambung dengan internet. Anda pasti juga mempunyai akun internet pada Internet Service Provider (ISP), atau akun aktif lainnya yang ada di local network atau mungkin mempunyai satu atau beberapa Personal Computer yang telah terkoneksikan ke Internet. Anda mungkin juga mempunyai hak untuk mengakses ke sebuah jaringan.
Jika anda mempunyai banyak komputer (biasanya lebih dari 3 komputer yang terhubung), umumnya anda akan membuat koneksi antara komputer-komputer tersebut. Hal ini sangat bermanfaat untuk berbagai keperluan. Misalnya, anda ingin mengkopi beberapa berkas antar komputer tanpa perangkat eksternal tambahan. Yang jelas jalan alternatifnya menggunakan jaringan (menghubungkan komputer satu sama lain). Log in ke akun, akses komputer yang dimaksud dari komputer lain (remotely), kemudian berikan kode eksekusi untuk menjalankan perintah. Masalah pun terselesaikan. Beberapa protokol yang ada untuk akses jarak jauh seperti itu antar lain, ftp (file transfer protocol) atau rcp (remote courier protocol) untuk transfer file, telnet atau rlogin untuk remote login (login jarak jauh) atau rsh (remote shell).
Sayangnya, jika kita menggunakan protokol diatas pasti muncul masalah yang sangat mendasar:
KEAMANAN!
Jika anda melakukan pengiriman file sensitif melalui internet, bisa dipastikan seorang yang tidak bertanggung jawab akan melakukan penyadapan dan pemotongan jalur akses data kemudian mengambil alih data tersebut. Bahkan yang lebih parah, jika anda menggunakan telnet (port 23) username dan password akan dikirimkan secara clear text dan seseorang juga bisa men-sniff password beserta usernamenya.
Menyebalkan bukan..
Bagaimana hal tersebut bisa diatasi? Anda dapat menggunakan beberapa program yang yang mengenkripsi data tersebut menjadi beberapa baris kode yang orang lain tak dapat pecahkan. Untuk mempermudahnya, anda bisa menambahkannya di firewall (sebuah perangkat tambahan yang melindungi jaringan dan membatasi lalu lintas jaringan berdasarkan parameter yang telah ditentukan). Atau menggunakan beberapa solusi yang lebih umum, baik system tunggal ataupun yang telah dimodifikasikan (digabung), dengan beberapa tingkat kesulitan dan biaya yang bermacam-macam.
Hal di atas sedikit agak rumit, karena membutuhkan orang yang begitu expert dalam bidang jaringan. Selain biayanya yang relatif mahal, akan kurang efisien jika kita melakukannya hanya untuk keperluan kecil. Solusi terbaik yang bisa diambil adalah, penggunaan SSH.
Jadi...
Apa itu SSH...
SSH adalah singkatan dari Secure Shell, merupakan sebuah protokol yang populer dan cukup tangguh untuk menangangi beberapa pekerjaan yang bejalan pada jaringan dan lebih memprioritaskan keamanan data. Ketika data dikirim oleh komputer ke dalam sebuah jaringan, secara otomatis SSH akan menjalankan mekanismenya untuk mengenkripsi data tersebut dan mendekripnya kembali ketika data telah mencapai tujuannya. Konsep kerjanya mirip sekali dengan telnet dan rlogin. Namun SSH lebih menekankan pada perlindungan data. Dalam perkembangannya saat ini, SSH menggunakan metode pengamanan modern, dan enkripsi yang lebih andvanced yang cukup efektif dalam perlindungan data.
SSH mempunyai struktur client /server. Program yang berjalan pada SSH Server (host) diinstal dan dijalankan oleh system administrator yang bertugas menerima atau menolak sebuah koneksi yang tujuannya pada komputer SSH server. Sedangkan pengguna (user), menggunakan SSH client di komputer lain untuk membuat request kepada SSH server. Akses ke server SSH adalah akses langsung ke operating system nya (shell). Perintah yang digunakan untuk mengeksekusi sebuah command pada SSH server dapat dianalogikan seperti bahasa manusia, misalnya: tolong login kan saya, tolong kirimi saya berkasi ini, tolong jalankan perintah ini dan lain-lain. Semua komunikasi yang terjalin antara client dan server dienkripsi secara aman, sehingga semua data yang melintas dapat terhindar dari pembajakan dan pemodifikasian secara ilegal.
Walaupun SSH adalah protokol yang berbasiskan keamanan jaringan, namun dia tidak menyediakan layanan keamanan yang lebih kompleks, misalkan serangan metasploit,DDoS ataupun virus dan malware lainnya. Dia hanya menyediakan jalur aman saja, dimana ada aktifitas enkrip-dekrip data pada ujung-ujung terminal-base sistem SSH.
SSH itu protokol...
Perlu ditekankan lagi, SSH itu protokol, bukan sebuah produk ataupun program. Dia adalah protokol yang menciptakan lingkungan aman didalam OSI layer. Protokol ini membungkus protokol lainnya seperti HTTP, SMTP, FTP serta protokol-protokol yang ada diatasnya (untuk lebih jelasnya, pelajari tentang protokol | OSI layer).
Protokol dalam SSH mencakup tiga tahap:
- Otentikasi
Merupakan aktifitas pengenelanan client. Pada saat anda log in pada salah satu SSH server, server akan menanyai anda tentang bukti digital bahwa komputer itu adalah memang komputer anda, bukan sniffer ataupun hijacker. Bukti digital tersebut meliputi digital signature (bisa dianalogikan sebagai tanda tangan pada surat) dan public key (pembungkus surat) ataupun private key (pembuka surat). Ketiganya akan dibahas jika waktu sempat. - Enkripsi
Adalah sebuah tahap dimana data yang akan dikirim dikacaukan oleh public key (aka encription). Inilah yang membuat data tetap aman walaupun ada pada jalur yang tidak aman. - Integritas
Tahap ini merupakan tahap penjaminan keamanan data selama data ada dalam jalur transfer sehingga data tiba tanpa ada cacat walaupun ada pihak ketika yang berusaha merekam dan memodifikasi data. - Dekripsi
Ini adalah tahap akhir dimana setiap data sampai dengan aman. Setelah data tiba ditujuan, data ini masih kacau karena data tersebut masih dalam kondisi terenkripsi. Disinilah private key (aka decription) berperan penting. Private key akan berusaha memecahkan algoritma yang berasal dari public key. Pada dasarnya, private key adalah hasil generate dari public key itu sendiri.