Secure Shell (SSH) didefinisikan sebagai protokol jaringan yang memungkinkan sistem untuk berkomunikasi melalui jaringan yang tidak aman.
Apa itu SSH?
Secure Shell (SSH) adalah protokol jaringan yang memungkinkan sistem berkomunikasi melalui jaringan yang tidak aman. Ini adalah bagian dari lapisan aplikasi model OSI. Ini memungkinkan pengguna yang berwenang untuk mengontrol mesin jarak jauh melalui internet tanpa memiliki akses fisik.
SSH diperkenalkan pada 1990-an. Itu menggantikan protokol jaringan Telnet (Teletype Network) yang digunakan oleh mesin untuk berinteraksi satu sama lain.
Telnet biasanya mentransfer data tanpa enkripsi. Akibatnya, pertukaran data rentan terhadap serangan man-in-the-middle, menyiratkan siapa pun dengan packet sniffer dapat mendengarkan percakapan antara Anda dan mesin jarak jauh.
Solusi untuk masalah seperti itu dicapai melalui enkripsi. Itu menyembunyikan data dan membuatnya tidak dapat dibaca oleh penyerang. Dengan demikian, SSH muncul sebagai cara komunikasi yang aman di mana data terenkripsi ditransfer melalui terowongan untuk menjaga keamanan data dalam perjalanan dari aktor jahat.
SSH berarti Anda masih dapat melihat bahwa data sedang dipertukarkan antar mesin, tetapi sulit untuk menentukan data apa itu.
SSH mematuhi model client-server di mana satu sistem diberi label sebagai klien SSH sementara mesin lain disebut server atau host SSH. Ketika klien terhubung ke server, komunikasi data berlangsung melalui shell, misalnya, shell terminal Linux atau shell prompt perintah Windows.
Kerang semacam itu memungkinkan eksekusi perintah pada mesin yang terhubung dengan Anda. Dengan SSH, Anda dapat berkomunikasi dengan remote dan sistem operasi Anda sendiri.
SSH dapat digunakan untuk mentransfer data, perintah, teks, dan file. File dapat ditransfer menggunakan SFTP (Secure File Transfer Protocol), versi FTP terenkripsi.
Bagaimana SSH Bekerja?
Di bawah SSH, data dipecah menjadi serangkaian paket. Transfer paket dimulai dengan memenuhi beberapa bidang paket wajib.
Bidang paling atas adalah ‘Panjang Paket’, yang menentukan ukuran paket. Selanjutnya, kolom ‘Padding Amount’ menampilkan padding yang ada di dalam paket. Setelah ini, data aktual ditambahkan ke kolom ‘Muatan’, diikuti oleh kolom Padding lainnya. Padding ini tidak memiliki signifikansi nyata tetapi hanya menambahkan byte acak ke paket.
Byte ini, saat dienkripsi bersama dengan payload, membuat sulit untuk mendeteksi data sebenarnya. Terakhir, bidang ‘Kode Otentikasi Pesan’ ditambahkan untuk memastikan data tidak dirusak selama proses transfer paket.
Biasanya, muatan dikompresi menggunakan algoritme kompresi standar untuk menampung lebih banyak data. Seluruh paket kemudian dienkripsi kecuali untuk bidang kode panjang dan otentikasi.
Paket terenkripsi kemudian dikirim ke server. Server menggunakan metode dekripsi dan dekompresi untuk mengambil data paket dari payload. Prosedur serupa diikuti untuk setiap paket yang ditransfer antara klien dan server.
Berbagai teknik manipulasi data digunakan di beberapa titik transmisi data untuk menjaga keamanan koneksi SSH. Beberapa teknik umum meliputi:
– Symmetrical encryption
– Asymmetrical encryption
– Hashing
Mari kita pahami masing-masing secara singkat.
1. Symmetrical encryption
Dalam jenis Symmetrical encryption, satu kunci digunakan untuk mengenkripsi pesan yang dikirim dari sumber ke tujuan dan juga mendekripsi pesan yang diterima di tujuan. Ini juga disebut sebagai enkripsi kunci bersama.
Setiap sesi SSH memiliki kunci rahasia khusus yang menyulitkan penyerang untuk mengeksploitasi serangan man-in-the-middle. Namun, masalah dapat muncul jika pihak ketiga mendengarkan komunikasi saat pertukaran kunci awal terjadi. Masalah seperti itu dapat dicegah dengan menggunakan algoritme pertukaran kunci, yang menyediakan cara aman untuk bertukar kunci rahasia dengan membatasi intersepsi eksternal. Penting untuk dicatat bahwa penerapan algoritma pertukaran kunci menuntut penggunaan enkripsi asimetris.
2. Asymmetrical encryption
Asymmetrical encryption menggunakan dua kunci terpisah, yaitu kunci publik dan privat, untuk enkripsi dan dekripsi data. Enkripsi data dilakukan menggunakan kunci publik yang disimpan di server SSH, sedangkan dekripsi data dilakukan menggunakan kunci pribadi yang disimpan secara lokal di klien SSH.
Jenis enkripsi ini lebih aman daripada yang simetris yang menyiratkan bahwa meskipun penyerang mengakses kunci publik, mereka mungkin tidak dapat mendekripsi pesan karena mereka tidak memiliki kunci privat. Oleh karena itu, selama kunci privat disimpan dengan aman di perangkat lokal Anda, pesan Anda aman dari serangan pihak ketiga.
Koneksi SSH menggunakan enkripsi asimetris di tempat-tempat tertentu. Misalnya, algoritma pertukaran kunci menggunakan enkripsi asimetris saat bertukar kunci pada tahap awal.
3. Hashing
Hashing mengacu pada metode kriptografi yang mengamankan koneksi shell. Itu membuat tanda tangan khusus, juga dikenal sebagai ringkasan informasi untuk setiap transfer data. Ini biasanya merupakan proses satu arah di mana data hash yang dihasilkan tidak dapat didekripsi oleh pihak ketiga.
Dalam skenario umum, jika penyerang berhasil menipu klien dan host, komunikasi dapat dengan mudah dirusak. Untuk mengatasi masalah ini, SSH menggunakan Kode Otentikasi Pesan Berbasis Hash (HMAC), yang memastikan bahwa data yang dikirim diterima dalam bentuk aslinya dan tidak dimodifikasi.
Fungsi hash memastikan bahwa setiap transfer data antara sumber dan tujuan memiliki komponen MAC tambahan. MAC adalah hash yang dihasilkan dari serangkaian elemen, seperti kunci simetris, nomor urut paket, dan konten data yang akan dikirim.
Tiga unit informasi diberikan sebagai input ke fungsi hash, yang menghasilkan string acak. String yang dihasilkan ini dikirim ke host sebagai tanda tangan.
Setelah tuan rumah menerima tanda tangan, itu dapat memvalidasi dan memverifikasi apakah pesan yang dikirim telah dirusak saat transit. Karena host sudah memiliki informasi yang sama (yaitu, kunci simetris, nomor urut paket, dan konten data), ia dapat menggunakan fungsi hash yang sama untuk menghasilkan hashnya sendiri.
Hash yang dihasilkan kemudian dicocokkan dengan yang diterima selama transfer data. Jika hash cocok, tanda tangan klien diverifikasi, dan tuan rumah dapat yakin bahwa data tidak dirusak oleh pihak ketiga.
Teknik hashing berhasil karena bahkan perubahan sekecil apa pun pada pesan, seperti huruf besar pada huruf, sepenuhnya mengubah hash (string/tanda tangan).
Menggunakan teknik manipulasi data di atas, shell SSH memastikan bahwa paket data ditransfer dengan aman antara klien dan server.
Manfaat dan Keterbatasan SSH
SSH menggantikan protokol shell jarak jauh konvensional seperti Telnet, FTP, rsh (remote shell), rlogin (login jarak jauh), dan rexec (eksekusi jarak jauh) yang bertukar informasi, termasuk kata sandi dalam teks biasa. Protokol lama ini tidak aman dan rentan terhadap pelanggaran keamanan. Ini mengarah pada adopsi protokol SSH yang lebih aman.
Mari kita lihat beberapa keunggulan utama SSH.
– Secure protocol: SSH menggunakan enkripsi data untuk memastikan komunikasi yang aman antara klien dan server.
– Management of remote computer: SSH mendukung eksekusi perintah shell pada mesin jarak jauh, seperti memberikan instruksi ke komputer fisik. Perintah dan skrip SSH berguna untuk administrator karena mereka dapat melihat, menghapus, memindahkan, dan mengelola file, folder, dan direktori dari jarak jauh.
– Multiplexing: SSH mendukung multiplexing di mana banyak aliran data beroperasi melalui satu koneksi TCP. Akibatnya, SSH memungkinkan pembagian sumber daya dengan koneksi TCP minimum.
– Tunneling: SSH memiliki kemampuan yang melekat untuk menggunakan port tunneling dan forwarding, dimana data sewenang-wenang ditransfer melalui koneksi aman terenkripsi. Metode seperti itu dapat digunakan saat Anda bermaksud melewati firewall yang membatasi.
– User access: SSH memungkinkan administrator jaringan untuk mengontrol dan membatasi akses pengguna ke jaringan dari jarak jauh.
– User authentication: Pengguna dapat mengandalkan kunci SSH untuk mengautentikasi diri mereka sendiri dan masuk ke sistem daripada menggunakan nama pengguna dan kata sandi. Biasanya, kunci SSH lebih sulit untuk didekripsi/diretas daripada kata sandi biasa. Dengan demikian, kunci SSH melindungi sistem dari serangan kata sandi brute-force.
– Security in cloud computing: SSH shell/tunnels, saat digunakan dalam pengaturan cloud, cenderung memecahkan masalah konektivitas. Selain itu, mereka melindungi mesin virtual berbasis cloud dari kerentanan keamanan karena terus-menerus terpapar ke internet.
Sekarang mari kita pahami beberapa keterbatasan SSH.
– Security vulnerabilities: SSH adalah protokol jaringan kriptografi yang aman. Namun, ia memiliki kerentanan keamanannya sendiri. Misalnya, penjahat dunia maya menggunakan kunci SSH untuk membuat pintu belakang untuk menyelinap ke jaringan perusahaan secara lateral. Setelah intrusi jaringan berhasil, penyerang meluncurkan serangan brute force dan malware. Pembajakan sesi SSH dan akses tidak sah adalah kerentanan keamanan lain dari protokol SSH.
– Tunneling effects: Administrator jaringan menggunakan terowongan yang mendukung SSH untuk memasuki jaringan dari tempat yang jauh. Tetapi transaksi SSH keluar terkadang menyebabkan kerentanan keamanan yang serius karena umumnya tidak dibatasi. Selain itu, tunneling memberi peretas akses pintu belakang dan, dalam beberapa kasus, melanggar peraturan keamanan seperti PCI dan HIPAA. Dibandingkan dengan transaksi SSH keluar, transaksi SSH masuk lebih mudah dikendalikan. Misalnya, Anda dapat dengan mudah mengalihkan koneksi port 22 (SSH) ke alamat IP tertentu.
– SSH keys: Kunci SSH adalah alternatif kata sandi yang digunakan pengguna untuk masuk ke sistem. Kunci SSH biasanya tidak kedaluwarsa. Di perusahaan besar, beberapa kunci SSH berada di beberapa server. Kunci SSH menuntut manajemen kunci pengguna yang tepat. Jika tidak, ini dapat menyebabkan key sprawl parah yang memungkinkan peretas mengeksploitasi jaringan organisasi. Selain itu, tunneling SSH juga dapat memberikan kesempatan kepada penyerang untuk mem-bypass firewall dan menargetkan sistem jaringan.
– Private key issues: Beberapa server berbagi kunci yang sama seperti yang telah dikonfigurasi sebelumnya di perangkat. Perangkat ini dapat diakses dengan bantuan kunci privat yang dapat diperoleh melalui rekayasa balik. Selain itu, kunci yang lebih pendek dan lebih tua menyiratkan bahwa penyerang dapat memperoleh nilai kunci pribadi melalui coba-coba.
– Slow connections: SSH dapat memperlambat kecepatan responsnya terhadap perintah atau instruksi bandwidth tinggi karena koneksi yang lambat.
– SSH mismanagement: Studi penelitian menunjukkan alasan utama kegagalan keamanan SSH adalah salah urus SSH oleh departemen TI.
Kesimpulan
Di bawah pengaturan SSH, seluruh komunikasi antara klien dan server tetap terenkripsi.
Enkripsi SSH data klien dilakukan dengan menggunakan parameter yang disepakati oleh pihak yang berkomunikasi saat koneksi awal dibuat antara keduanya. Selain itu, klien dan server juga bernegosiasi tentang algoritma enkripsi simetris yang menghasilkan kunci enkripsi yang digunakan untuk komunikasi di masa mendatang.
Dari beberapa algoritme, Advanced Encryption Standard (AES) adalah algoritme enkripsi paling populer dan kuat yang digunakan di lingkungan SSH. Selain itu, protokol SSH juga menggunakan algoritme hashing standar yang memastikan integritas data dalam jaringan.