SSH-2 protokol memiliki arsitektur internal (didefinisikan dalam RFC 4.251) pada lapisan terpisah dengan baik. Yaitu:
- Lapisan transportasi (RFC 4253). Lapisan ini menangani pertukaran kunci awal dan server otentikasi dan set up enkripsi, kompresi dan integritas verifikasi. Lapisan ini memperlihatkan ke lapisan atas sebuah antarmuka untuk mengirim dan menerima paket teks terang hingga masing-masing 32.768 byte (atau lebih yang diperbolehkan oleh implementasi). Lapisan transportasi juga mengatur ulang pertukaran kunci, biasanya setelah 1 GB data yang ditransfer atau setelah 1 jam telah berlalu, tergantung mana yang lebih cepat.
- Lapisan otentikasi pengguna (RFC 4252).
Lapisan ini menangani otentikasi klien dan menyediakan sejumlah metode
otentikasi. Otentikasi client-driven: ketika seseorang diminta untuk
memasukkan password, mungkin diminta oleh klien SSH, bukan servernya.
Server hanya menanggapi permintaan otentikasi klien. Metode otentikasi
pengguna yang sering digunakan meliputi:
- password: sebuah metode untuk otentikasi password secara langsung, termasuk fasilitas yang memungkinkan sandi untuk diubah. Metode ini tidak diimplementasikan pada semua program.
- kunci publik: sebuah metode untuk otentikasi berbasis kunci publik, biasanya mendukung setidaknya pasangan kunci DSA atau RSA, pada implementasi lain juga mendukung sertifikat X.509.
- keyboard-interactive (RFC 4256): sebuah metode serbaguna di mana server akan mengirimkan satu atau lebih prompt untuk memasukkan informasi sehingga klien menampilkannya dan mengirimkan kembali tanggapan oleh pengguna. Digunakan untuk menyediakan otentikasi password sekali-waktu seperti S/Key atau SecurID. Digunakan oleh beberapa konfigurasi OpenSSH dimana PAM bertindak sebagai penyedia otentikasi host yang mendasar agar secara efektif dapat menyediakan otentikasi password, namun kadang-kadang menyebabkan kegagalan untuk login dengan klien yang hanya mendukung metode otentikasi password biasa.
- metode otentikasi GSSAPI yang menyediakan sebuah skema extensible untuk melakukan otentikasi SSH menggunakan mekanisme eksternal seperti Kerberos 5 atau NTLM, menyediakan satu kemampuan sign on untuk sesi SSH. Metode ini biasanya digunakan pada implementasikan SSH komersial untuk digunakan dalam organisasi, meskipun OpenSSH memang memiliki implementasi kerja GSSAPI.
- Lapisan koneksi. Lapisan ini mendefinisikan konsep kanal, kanal
permintaan dan permintaan global menggunakan layanan yang disediakan
SSH. Sebuah koneksi SSH dapat melayani beberapa kanal secara bersamaan,
masing-masing mentransfer data dalam dua arah. Permintaan kanal tersebut
digunakan untuk menyambungkan saluran data spesifik secara out-of-band,
seperti perubahan ukuran jendela terminal atau exit code dari sebuah
proses server-side. Klien SSH meminta sebuah port server-side untuk
diteruskan menggunakan sebuah permintaan global. Jenis saluran standar
yang tersedia adalah:
- shell untuk terminal, SFTP dan request exec (termasuk transfer SCP)
- direct-tcpip untuk koneksi klien-ke-server yang diteruskan
- forwarded-tcpip for server-to-client forwarded connections forwarded-tcpip untuk koneksi server-ke-klien yang diteruskan
- SSHFP DNS record (RFC 4255) menyediakan sidik jari kunci publik untuk membantu memverifikasi keaslian host.
Fungsi lapisan transportasi sendiri sebanding dengan TLS; lapisan
otentikasi pengguna sangat extensible dengan metode otentikasi khusus;
dan lapisan sambungan menyediakan kemampuan untuk membuat banyak sesi
sekunder ke dalam satu koneksi SSH, sebuah fitur yang sebanding dengan
BIP dan tidak tersedia di TLS.
No comments:
Post a Comment