GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana SSH membangun komunikasi yang aman

Saat kami mengirim informasi/surat sensitif, kami ingin menyembunyikannya dari dunia luar. Jadi, kami telah memastikannya dilindungi dengan menyegelnya dalam amplop dan mengirimkannya ke tujuan menggunakan Layanan Pos Amerika Serikat (USPS). Setidaknya, begitulah cara kami mengirim informasi. Saya bahkan tidak memasuki diskusi seputar enkripsi dan kode Morse, yang menggunakan tingkat kerahasiaan yang lebih tinggi.

Sekarang, karena kita manusia telah berevolusi dan beradaptasi dengan internet, kita bertukar informasi menggunakan koneksi yang aman. Sebelumnya, kami menggunakan telnet untuk terhubung ke server jarak jauh menggunakan port 23. Masalahnya adalah kami mengirim informasi melalui teks biasa, artinya siapa pun yang ingin membaca info dapat mengendus jaringan dan info tersebut dikompromikan (setara dengan bahwa mereka dapat membuka surat yang dikirim melalui USPS dan membacanya.)

Hasil ini tidak seperti yang kami inginkan ketika kami mengirim pesan asli. Pasti ada cara aman untuk mengirim pesan ke server jauh, bukan? Tentu saja, dan solusinya adalah mengirimkannya melalui Secure Shell (SSH).

Bagaimana SSH mengirim pesan terenkripsi

Jadi, saya ingin berkomunikasi dengan aman menggunakan pesan terenkripsi dari klien ke server dan sebaliknya. Saya mencapai ini dengan SSH sebagai berikut. SSH membuat koneksi aman antara dua host melalui port 22:Host-1 (server) dan Host (klien). Setelah saling mengautentikasi, mereka mengaktifkan pertukaran pesan yang aman.

Jenis enkripsi

SSH menggunakan tiga jenis enkripsi yang berbeda:

  • Enkripsi simetris
  • Enkripsi asimetris
  • Hashing

Saya akan menjelaskan secara singkat jenis-jenis ini.

Enkripsi simetris

Juga dikenal sebagai enkripsi kunci bersama, enkripsi simetris biasanya merupakan kunci tunggal atau sepasang kunci yang digunakan untuk enkripsi dan dekripsi pesan. Kunci ini digunakan untuk mengenkripsi seluruh sesi komunikasi antara klien dan server.

Baik klien dan server menyetujui satu metode dan menghasilkan kunci bersama, yang tentu saja tidak pernah diungkapkan kepada pihak ketiga, dan karenanya digunakan untuk mengirim pesan kunci bersama/rahasia. Bagian yang paling menarik tentang metode ini adalah bahwa kunci tidak pernah dipertukarkan antara klien dan server. Sebagai gantinya, setiap mesin menghitung kunci bersama secara independen menggunakan metode yang telah disepakati sebelumnya. Meskipun mesin pihak ketiga menangkap data, mesin tersebut tidak dapat mendekripsi karena metode yang digunakan untuk mengenkripsi data tidak diketahui.

Enkripsi asimetris

Berbeda dengan metode di atas, metode ini menggunakan sepasang kunci untuk enkripsi dan dekripsi. Ini dikenal sebagai kunci publik dan pribadi. Kunci publik, seperti namanya, didistribusikan secara luas. Kunci pribadi terkait erat dengan kunci publik dalam hal fungsionalitas tetapi tidak dapat dihitung hanya dengan mengetahui kunci publik.

Kunci pribadi merupakan faktor penting dalam keseluruhan komunikasi karena kerahasiaannya bergantung pada fakta bahwa kunci pribadi tidak diungkapkan kepada pihak ketiga mana pun, dan itu adalah satu-satunya kunci yang mampu mendekripsi pesan, yang dienkripsi oleh kunci publiknya sendiri. Jadi, jika ada pihak yang ingin mendekripsi dan membaca pesan, mereka harus memiliki kunci pribadi.

Mari kita coba metode ini menggunakan dua sistem. Kita akan mulai dengan workstation, yang memiliki dua pasang kunci yang dihasilkan seperti di bawah ini:

Saya kemudian memulai koneksi dari server ke workstation:

Dan karenanya, server menyimpan info workstation di known_hosts file sebagai:

Setelah server diverifikasi, server dan klien menegosiasikan kunci sesi menggunakan algoritma pertukaran kunci Diffie-Hellman. Kunci bersama ini digunakan untuk enkripsi dan dekripsi.

Tahap terakhir adalah otentikasi klien, dan ini dilakukan dengan menggunakan pasangan kunci SSH. Diagram di bawah menunjukkan bagaimana proses ini terjadi:

Ketika saya mengeluarkan perintah ssh -v [email protected] , inilah yang terjadi:

Kesimpulan

Tujuan artikel ini adalah untuk membuat pengguna mengetahui bagaimana SSH membangun komunikasi yang aman antara dua sistem. Mudah-mudahan, saya telah menawarkan beberapa wawasan tentang proses itu.

[Ingin mempelajari lebih lanjut tentang SSH? Unduh Lembar Cheat SSH Lanjutan.]


Linux
  1. Cara Mengatur Kunci SSH

  2. Bagaimana Cara Ssh Ke Server Menggunakan Server Lain??

  3. Cara Mengamankan Server PostgreSQL

  1. Bagaimana Cara Membuat Kunci SSH di Server Khusus Linux ?

  2. Cara SSH di Linux dari Android

  3. Cara Mengamankan Layanan SSH dengan Port Knocking

  1. Cara Mengatur Login SSH Tanpa Kata Sandi

  2. Cara Mengatur Kunci SSH di Ubuntu 18.04

  3. Cara Mengatur SSH Tanpa Kata Sandi di Linux