SSH merupakan salah satu elemen penting yang memungkinkan jaringan atau komputermu aman setiap saat. Kamu sendiri pasti memiliki SSH ini. Namun mungkin kamu tidak mengerti tentang apa itu SSH sesungguhnya. Well tidak usah khawatir karena di artikel ini kami akan membahas secara lebih lanjut tentang SSH ini.
SSH itu apa sih?
SSH, atau Secure Shell,
merupakan protokol administrasi remote yang mengizinkan pengguna untuk
mengontrol dan memodifikasi server remote mereka melalui internet. Layanan ini
dibuat sebagai pengganti yang aman bagi Telnet yang tidak dienkripsi dan
menggunakan teknik kriptografi untuk memastikan bahwa semua komunikasi yang
masuk dan keluar dari server remote terjadi secara aman dan terenkripsi.
Lalu, layanan ini juga
menyediakan mekanisme untuk mengautentikasi pengguna remote, mentranfer input
dari klien ke host, dan mengirimkan hasilnya (output) kembali ke klien.
Siapa pun itu, baik pengguna Linux atau macOS bisa menggunakan SSH di dalam server remote mereka secara langsung dari jendela terminal. Pengguna Windows bisa memanfaatkan aplikasi SSH client, seperti Putty. Selain itu, kamu juga bisa menjalankan command shell dengan cara yang sama seperti jika kamu mengoperasikan komputer remote secara fisik.
Bagaimana cara kerja SSH?
Jika pada saat ini kamu
menggunakan Linux atau Mac, maka bukan masalah yang sulit untuk menggunakan
SSH. Bilamana kamu menggunakan Windows, maka kamu perlu memiliki SSH client
untuk membuka koneksi SSH. SSH client yang paling banyak digunakan adalah
PuTTY.
SSH command terdiri atas 3
bagian berbeda:
ssh {user}@{host}
Command SSH key memberi
perintah ke pada sistem bahwa kamu ingin membuka Koneksi Secure Shell yang
dienkripsi. {user} merujuk pada akun yang ingin diakses. Misalnya, kamu ingin
mengakses pengguna root, yang pada dasarnya sama untuk administrator sistem
dengan hak lengkap untuk modifikasi apa pun pada sistem. {host} merujuk pada
komputer yang ingin diakses. Bisa jadi ini adalah alamat IP milikmu (misalnya,
244.235.23.19) atau nama domain (misalnya, www.qwertydomain.com).
Pada saat menekan tombol
Enter, kamu akan diminta untuk memasukkan password untuk akun yang diminta.
Ketika sedang mengetikkan password, kamu tidak akan melihat apa pun di layar.
Padahal sebenarnya passwordmu sedang ditransmisikan. Setelah menginput
password, tekan tombol Enter sekali lagi. Jika password yang kamu masukkan
sudah benar, maka akan muncul jendela terminal remote.
Memahami Teknik Enkripsi yang
Berbeda
Kelebihan berarti yang
ditawarkan oleh SSH melalui predesesornya adalah penggunaan enkripsi untuk
memastikan transfer informasi yang lebih aman antara host ke klien. Host
menunjuk pada server remote yang ingin diakses, di sisi lain client merupakan
komputer yang ingin kamu gunakan untuk dapat mengakses host. Ada tiga teknologi
enkripsi berbeda yang bisa digunakan oleh SSH:
1. Enkripsi simetris
2. Enkripsi asimetris
3. Hashing
Enkripsi Simetris
Enkripsi simetris adalah
bentuk dari enkripsi di mana secret key digunakan baik untuk enkripsi maupun
dekripsi pesan oleh klien dan juga oleh host. Secara efektif, setiap orang yang
memiliki key dapat mendekripsi pesan yang sedang ditransfer.
Enkripsi simetris sering atau
lebih akrab disebut enkripsi shared key atau shared secret. Biasanya hanya satu
key yang digunakan, atau terkadang sepasang key di mana satu key tersebut dapat
dikalkulasi dengan mudah menggunakan key yang lain.
Key simetris digunakan untuk
mengenkripsi keseluruhan komunikasi selagi Sesi SSH. Baik klien maupun server
memperoleh secret key menggunakan metode yang telah disetujui, dan resultant
key tidak akan pernah diberitahukan kepada pihak ketiga mana pun.
Akan tetapi, yang paling
penting perlu diketahui bahwa secret token khusus untuk setiap sesi SSH, dan
sebelumnya dibuat untuk autentikasi klien. Setelah key selesai dibuat, semua paket
yang dipindahkan di antara dua sistem tersebut harus dienkripsi dengan private
key. Hal ini termasuk password yang diketik oleh pengguna, sehingga kredensi
akan selalu terlindungi dari penganalisa paket jaringan yang bisa menghack
websitemu.
Enkripsi Asimetris
Tidak seperti enkripsi
simetris, enkripsi asimetris menggunakan dua key yang terpisah untuk enkripsi
dan dekripsi. Kedua key ini dikenal sebagai public key dan private key. Secara
bersama-sama, kedua key ini mencipatakan sepasang public-private key.
Public key, seperti namanya,
secara terbuka didistribusikan dan dibagian ke semua pihak. Meskipun terkait
erat dengan private key dal hal fungsionalitas, komputasi tidak dapat dilakukan
pada private key dari public key. Hubungan di antara kedua key ini sangat
rumit: sebuah pesan yang dienkripsi dengan sistem public key hanya dapat
didekripsi oleh sistem yang sama milik private key. Hubungan satu arah ini
mengindikasikan bahwa public key tidak dapat mendekripsi pesannya sendiri
maupun mendekripsi apa pun yang telah dienkripsi oleh private key.
Private key harus tetap
rahasia, contohnya untuk koneksi yang hendak diamankan sehingga tidak boleh ada
pihak ketiga yang mengetahuinya. Kelebihan dari seluruh koneksi ini terletak
pada fakta bahwa private key tidak pernah diizinkan untuk diketahui sebagaimana
komponen itu merupakan satu-satunya komponen yang bisa mendekripsi pesan yang
telah dienkripsi dengan menggunakan public key. Oleh karena itu, pihak mana pun
dengan kemampuannya untuk mendekripsi pesan yang sudah diketahui secara publik
harus memiliki private key yang cocok.
Hashing
Hashing satu arah (one-way)
merupakan salah satu bentuk dari kriptografi yang digunakan di Koneksi Secure
Shell. Fungsi one-way-hash berbeda dengan dua bentuk enkripsi yang telah disebutkan
di atas dalam artian tidak dimaksudkan untuk didekripsi.
Fungsi dari one-way-hash
adalah mecipatakan value unik dari panjang tetap untuk setiap input yang tidak
menunjukkan trend jelas yang bisa dieksploitasi. Karena itulah fungsi-fungsi
itu sangat tidak mungkin untuk dibalik.
Terbilang gampang untuk
membuat hash kriptografi dari input yang diberi, tapi sangat tidak mungkin
untuk membuat input dari hash tersebut. Hal ini berarti jika klien menyimpan
input yang benar, maka ia bisa membuat hash kripto-grafis dan membandingkan value-nya
untuk memastikan apakah klien tersebut memiliki input yang benar.
SSH menggunakan hash untuk
memverifikasi keaslian pesan. Kita dapat melakukannya menggunakan HMAC, atau
yang lebih dikenal dengan Hash-based Message Authentication Codes. Langkah ini
untuk memastikan jika command yang diterima tidak dimanipulasi dengan cara apa
pun.
Setiap pesan yang ditransmisi
harus memiliki MAC, yang dihitung memakai key simetris, nomor urut paket, dan
isi pesan. Pesan tersebut dikirim di luar data enkripsi simetris untuk bagian
akhir dari paket komunikasi.