SSH menggunakan metode public-key cryptography untuk mengenskripsi komunikasi antara dua host, demikian pula untuk autentikasi pemakai.
Dengan metode ini, kita akan memerlukan 2 buah kunci berbeda yang digunakan baik untuk melakukan enkripsi dan dekripsi. Dua buah kunci tersebut masing-masing disebut public key (dipublikasikan ke public/ orang lain) dan private key (dirahasiakan/ hanya pemiliknya yang tahu). Masing-masing kunci di atas dapat digunakan untuk melakukan enkripsi dan dekripsi.
SSH dapat digunakan untuk login secara aman ke remote host atau menyalin data antar host, mencegah srangan man-in-themiddle attacks (pembajakan sesi) dan DNS spoofing atau dapat dikatakan SSH adalah program yang melakukan loging terhadap komputer lain dalam jaringan, mengeksekusi perintah lewat mesin secara remote, dan memindahkan file dari satu mesin ke mesin lainnya. SSH merupakan produk serbaguna yang dirancang untuk melakukan banyak hal, yang kebanyakan berupa penciptaan tunnel antar host.
Secara umum teknologi enkripsi SSH mengunakan 3 (tiga) jenis enkripsi yaitu Enkripsi Simetris, Enkripsi Asimetris, dan Hashing. Ketiganya berfungsi untuk memastikan proses pertukaran data yang lebih aman antara client dan server.
- Enkripsi Simetris (Symmetric Encryption)Enkripsi simetris biasa dikenal dengan nama enkripsi kunci bersama (shared key). Sesuai dengan namanya, enkripsi simetris merupakan jenis enkripsi memanfaatkan kunci untuk melakukan dekripsi maupun enkripsi data yang dipertukarkan antara client dan server.Enkripsi simetris menggunakan sepasang kunci. Biasanya satu kunci ada di sisi server dan kunci yang lain berada di sisi user supaya server dapat mengenali user yang benar-benar terpercaya. Jadi setiap user yang mempunyai kunci tersebut dapat melihat data yang sedang dipertukarkan.
Sumber : https://www.adsmurai.com/hs-fs/hubfs/Imported_Blog_Media/Asymmetric-Encryption.png
Enkripsi simetris akan terus menjalankan tugasnya selama proses berjalannya koneksi SSH client dengan server sesuai dengan metode yang disepakati. Persetujuan metode komunikasi ini juga bertujuan untuk menghalangi pihak ketiga untuk membaca data yang sedang dipertukarkan.Algoritma Pertukaran Kunci berperan pada proses pembuatan enkripsi simetris dalam pertukaran data. Selain itu, selama proses pertukaran data, kunci di client maupun server tidak ikut dipertukarkan sehingga membuat algoritma ini aman.Jadi uniknya di dalam Algoritma Pertukaran Kunci adalah proses enkripsi dan dekripsi berjalan di masing-masing perangkat (client maupun server). Hal ini membuat pihak ketiga yang mencoba mencuri atau mengintip pertukaran data yang sedang terjadi tidak akan pernah bisa membacanya. - Enkripsi Asimetris (Asymmetric Encryption)Jenis enkripsi asimetris cukup berbeda dengan enkripsi simetris. Jika enkripsi simetris menggunakan satu kunci yang dipakai untuk client maupun server, di dalam enkripsi asimetris terdapat dua kunci yaitu kunci pribadi (private key) dan kunci publik (public key). Biasanya kunci private hanya dimiliki oleh server, sedangkan public key dimiliki oleh user atau client.
Sumber : https://www.adsmurai.com/hs-fs/hubfs/Imported_Blog_Media/Symmetric-Encryption.png
Sesuai dengan namanya, kunci publik atau public key secara terbuka dapat dipakai oleh semua client. Tetapi, dalam proses pertukaran data, proses enkripsi hanya bisa dilakukan oleh pasangan public key dan private key tidak bisa oleh kunci yang berbeda. Jadi hubungan yang terjadi adalah satu arah sehingga host (server atau client) yang mempunyai kunci publik tidak akan pernah bisa membuka pesannya sendiri setelah dienkripsi.Algoritma yang paling banyak digunakan dan dikenal dalam kriptografi asimetris adalah DSA, ECDSA, EdDSA dan RSA.- DSAAlgoritma Tanda Tangan Digital muncul pada tahun 1991 dan didasarkan pada logaritma diskrit, metode ini memperbaiki panjang kunci menjadi 1024 bit. Saat ini keamanan tidak lagi dijamin dengan kunci 1024 bit atau lebih kecil. Untuk alasan ini, OpenSSH 7.0 tidak digunakan lagi dan menonaktifkan kunci semacam ini.
- ECDSAElliptic Curve Digital Signature Algorithm merupakan penyempurnaan dari DSA berbasis kriptografi kurva eliptik.
- RSARivest, Adi Shamir dan Leonard Adleman adalah penulis RSA yang mendapat penghargaan Turing, salah satu kriptosistem asimetris pertama. RSA didasarkan pada faktorisasi bilangan bulat. Ini adalah cara paling umum untuk menghasilkan pasangan kunci karena keamanan dan portabilitasnya. Ini telah dipatahkan secara teoritis oleh algoritma Shar (berdasarkan teknik komputasi kuantum). Tetapi masih aman untuk digunakan saat ini jika panjang kuncinya setidaknya 4096 bit.
- EdDSAAlgoritma Tanda Tangan Digital Edwards-curve dirancang agar lebih cepat daripada skema tanda tangan digital yang ada tanpa mengorbankan keamanan. Hal ini didasarkan pada Kurva Edwards Memutar. Algoritma ini cukup baru (2012) dan belum tersedia di mana-mana sejak diperkenalkan pada OpenSSH 6.5 pada tahun 2014.
- HashingSSH juga menggunakan salah satu teknik enkripsi hashing. Hashing merupakan salah satu jenis kriptografi yang tidak dapat didekripsi sehingga dinamakan juga one-way-hash (hashing satu arah).
Sumber : https://networkencyclopedia.com/wp-content/uploads/2019/08/hashing-algorithm.png
One-way-hash mempunyai fungsi untuk membuat enkripsi panjang dengan tidak mempunyai pola yang jelas untuk dieksploitasi. Jadi fungsi dari enkripsi one-way-hash adalah membuat nilai yang panjang dan unik. Enkripsi ini tentu tentu saja untuk mengamankan setiap data yang sedang dipertukarkan selama proses koneksi SSH berlangsung. Melalui enkripsi hashing seluruh data mengalami enkripsi satu arah dan tidak dapat dibalik (dekripsi)One-way-hash ini tidak bisa dipakai di seluruh jenis pertukaran data. SSH hanya menggunakan enkripsi one-way-hash untuk mengecek keaslian dari pesan dan sejenisnya. Anda dapat menggunakan sistem pengecekan seperti HMAC (Hash-based Message Authentication) untuk melakukan pengecekan. Sistem HMAC memastikan data sangat sulit untuk dimanipulasi dengan cara apapun.
Sumber :
- https://www.adsmurai.com/en/articles/how-to-generate-secure-ssh-keys
- https://www.niagahoster.co.id/blog/apa-itu-ssh/