Friday, December 9, 2016

SSH (Secure Shell)


SSH merupakan aplikasi klien dan server yang menyediakan secure remote login malalui internet maupun jaringan yang tidak terpercaya ( untrusted network ). Algoritma kriptografi digunakan untuk melakukan otentikasi pada kedua belah pihak, mengenkripsi data yang ditransmisikan dan melindungi integritas data. Gambar di bawah ini menunjukkan koneksi berbasis SSH.

SSH bertujuan untuk menggantikan rsh, rlogin, rcp dan protokol telnet. SSH menggunakan protokol berbasis paket biner yang dapat bekerja pada semua lapisan transport yang mampu melewatkan data biner. SSH tersedia sebagai versi komersial dan versi gratis. Untuk versi gratis terdapat beberapa pilihan seperti OpenSSH (Unix,Windows) , LSH (Unix), PuTTY (Windows), Okhapkin’s port of SSH1 (Windows), MacSSH (Macintosh), TeraTerm (Windows), MindTerm (Unix,Windows), NiftyTelnet 1.1 SSH (Macintosh). Sedangkan untuk versi komersial SSH Communication Security (Unix,Windows), F-Secure SSH (Unix,Windows), Secure CRT, SecureFX (Windows), VShell (Windows).

Arsitektur SSH
SSH protokol mempunyai 3 lapis komponen[10] yaitu SSH Connection Protocol, SSH Authentication Protocol dan SSH Transport Protocol. Ketiganya berada pada tingkat aplikasi dari protokol TCP/IP.

SSH Transport Layer
Implementasi SSH server secara umum menggunakan port 22 oleh IANA. Pada saat klien melakukan koneksi ke SSH server, server akan merespon permintaan koneksi tersebut. Server akan mengirimkan string identifikasi versi dan menunggu respon string identifikasi dari klien. Pada kedua sisi harus mampu memproses string identifikasi tersebut. Setelah proses diatas server berpindah ke mode paket biner dan segera mengirimkan paket kunci publik yang berisi check byte, host key, server key, flag protocol, jenis penyandian dan jenis otentikasi ke klien. Klien memproses informasi diatas dan memberikan paket balasan ke server berupa session key yang berisi jenis penyandian yang ada pada sisi klien, check byte, session key ( yang terenkripsi oleh kedua sisi ) dan flag protocol. Server dan klien mengaktifkan enkripsi dan komunikasi diantaranya dapat berlangsung.

SSH Authentication Layer
Lapisan protokol otentikasi merupakan protokol yang multifungsi dan bekerja di atas lapisan protokol transport. Protokol ini menganggap lapisan bawahnya telah menyediakan proteksi terhadap integritas dan kerahasiaan. Server SSH dapat menetapkan kebijakan yang berhubungan dengan otentikasi seperti idle time out, banner message dan pembatasan koneksi saat percobaan koneksi gagal. Ada beberapa metode otentikasi yang digunakan yaitu public key authentication, password authentication dan host based authentication. Metode otentikasi yang sering digunakan adalah public key dan password.

SSH Connection Layer
Lapisan koneksi bekerja diatas lapisan transport dan lapisan otentikasi. Lapisan ini menyediakan sesi  login, menjalankan perintah pada remote, forwarded TCP/IP dan forward koneksi X11. Kemampuan port forward memungkinkan klien melakukan forwarding terhadap koneksinya dari remote komputer ke komputer lokal atau sebaliknya. Sebuah port di alokasikan untuk menerima koneksi pada komputer remote dan koneksi ke komputer lokal. Sehingga klien dapat menerima koneksi yang berasal dari komputer remote ke komputer lokal. Hal ini dapat menjadi sebuah celah keamanan, dimana klien berusaha untuk dapat menjalankan sebuah aplikasi pada remote komputer.

Cara kerja SSH
Misalkan suatu client mencoba mengakses suatu Linux server melalui SSH. SSH daemon yang berjalan baik pada Linux server maupun SHH client telah mempunyai pasangan public/private key yang masingmasing menjadi identitas SSH bagi keduanya. Langkah-langkah koneksinya akan sebagai berikut:
1. Klien melakukan bind pada local port nomor besar dan melakukan koneksi ke port 22 pada server.
2. Klien dan server setuju untuk menggunakan jenis sesi SSH tertentu. Hal ini penting karena SSH v. 1 dan v. 2 tidak kompatibel.
3. Klien meminta public key dan host key milik server.
4.  Klien dan server menyetujui alogritma enkripsi yang akan dipakai (misalnya Triple DES atau IDEA).
5. Klien membentuk suatu session key dan mengenkripsinya menggunakan public key milik server.
6. Server akan melakuakn dekripsi terhadap session key yang didapat dari klien, melakukan re enkripsi dengan public key milik klien, dan mengirimkannya kembali ke klien untuk otentikasi.
7. Klien mengotentikasi dirinya ke server di dalam aliran data terenkripsi dalam session key tersebut. Sampai disini koneksi telah terbentuk, dan client dapat selanjutnya bekerja secara interaktif pada server atau mentransfer file ke atau dari server.

0 comments:

Post a Comment

http://www.resepkuekeringku.com/2014/11/resep-donat-empuk-ala-dunkin-donut.html http://www.resepkuekeringku.com/2015/03/resep-kue-cubit-coklat-enak-dan-sederhana.html http://www.resepkuekeringku.com/2014/10/resep-donat-kentang-empuk-lembut-dan-enak.html http://www.resepkuekeringku.com/2014/07/resep-es-krim-goreng-coklat-kriuk-mudah-dan-sederhana-dengan-saus-strawberry.html http://www.resepkuekeringku.com/2014/06/resep-kue-es-krim-goreng-enak-dan-mudah.html http://www.resepkuekeringku.com/2014/09/resep-bolu-karamel-panggang-sarang-semut-lembut.html