Apa perbedaan antara kunci RSA, DSA, dan ECDSA yang digunakan ssh?


13

Dalam /etc/ssh/direktori saya , saya dapat melihat tiga bahwa saya memiliki tiga jenis kunci ssh:

-rw------- 1 root root    607 Oct  4 22:43 ssh_host_dsa_key
-rw-r--r-- 1 root root    623 Oct  4 22:43 ssh_host_dsa_key.pub
-rw------- 1 root root    241 Oct  4 22:43 ssh_host_ecdsa_key
-rw-r--r-- 1 root root    194 Oct  4 22:43 ssh_host_ecdsa_key.pub
-rw------- 1 root root   1602 Oct  4 22:43 ssh_host_rsa_key
-rw-r--r-- 1 root root    378 Oct  4 22:43 ssh_host_rsa_key.pub

Apa perbedaan antara kunci RSA, DSA, dan ECDSA ssh, dan apakah saya perlu ketiganya?

Jawaban:


9

Mereka kunci yang dihasilkan menggunakan algoritma enkripsi yang berbeda. Anda dapat memilih untuk menggunakan berbagai bentuk enkripsi saat menggunakan SSH, agak mirip dengan kemampuan untuk memilih metode enkripsi yang berbeda untuk WiFi (WPA2, WPA, WEP, dll).

SSH menggunakan enkripsi kunci publik, artinya ketika Anda terhubung ke server SSH itu menyiarkan kunci publik yang dapat Anda gunakan untuk mengenkripsi lalu lintas lebih lanjut untuk dikirim ke server itu. Jika server dikonfigurasi untuk menggunakan RSA, itu akan menjadi kunci yang dihasilkan oleh algoritma RSA.

Komputer Anda mengirim kembali kunci RSA publiknya sendiri dari file kunci yang Anda cantumkan dalam pertanyaan Anda. Server membutuhkan kunci ini untuk menghubungkan kembali ke Anda dan membalas.

Ketiga kunci ada di komputer Anda karena server SSH tertentu yang Anda hubungi mungkin dikonfigurasikan untuk menggunakan salah satu dari algoritma ini. Komputer Anda akan mengirim kembali kunci unik yang cocok dengan jenis yang digunakan server, kunci Anda telah dihasilkan di komputer Anda dengan algoritma yang sama.

Berikut beberapa sumber lebih lanjut:

/security/5096/rsa-vs-dsa-for-ssh-authentication-keys

http://en.wikipedia.org/wiki/Public-key_cryptography

http://en.wikipedia.org/wiki/RSA_(algorithm)

http://en.wikipedia.org/wiki/Digital_Signature_Algorithm

http://en.wikipedia.org/wiki/Elliptic_Curve_DSA


2
Anda secara singkat berbicara tentang mengapa ketiganya ada di sana, tujuan dari kunci ssh, dan apa kesamaan kunci tersebut: kunci menggunakan algoritma enkripsi. Apa yang tidak Anda bicarakan tentang apa perbedaan antara kunci RSA, DSA, dan ECDSA.
Enkouyami

6

Apakah Anda membutuhkan semuanya?
Tidak, server ssh Anda hanya perlu satu dan klien hanya perlu mendukung satu jenis kunci untuk koneksi ssh.


RSA, DSA, ECDSA, EdDSA, & Ed25519 semuanya digunakan untuk penandatanganan digital, tetapi hanya RSA yang juga dapat digunakan untuk mengenkripsi.

RSA ( Rivest – Shamir – Adleman ) adalah salah satu cryptosystem kunci publik pertama dan banyak digunakan untuk transmisi data yang aman. Keamanannya bergantung pada faktorisasi bilangan bulat , sehingga RNG (Random Number Generator) yang aman tidak pernah diperlukan. Dibandingkan dengan DSA, RSA lebih cepat untuk validasi tanda tangan tetapi lebih lambat untuk dibuat.

DSA ( Digital Signature Algorithm ) adalah Standar Pemrosesan Informasi Federal untuk tanda tangan digital. Keamanannya bergantung pada masalah logaritmik diskrit . Dibandingkan dengan RSA, DSA lebih cepat untuk pembuatan tanda tangan tetapi lebih lambat untuk validasi. Keamanan dapat dipatahkan jika generator nomor buruk digunakan .

ECDSA ( Elliptical curve Digital Signature Algorithm ) adalah implementasi Elliptic Curve dari DSA (Digital Signature Algorithm). Kriptografi kurva eliptik mampu memberikan tingkat keamanan yang relatif sama dengan RSA dengan kunci yang lebih kecil. Ini juga memiliki kelemahan DSA karena sensitif terhadap RNG yang buruk.

EdDSA ( Edwards-curve Digital Signature Algorithm ) adalah skema tanda tangan digital menggunakan varian tanda tangan Schnorr berdasarkan kurva Twisted Edwards . Penciptaan tanda tangan bersifat deterministik dalam EdDSA dan keamanannya didasarkan pada ketidakstabilan masalah logaritma diskrit tertentu, sehingga lebih aman daripada DSA & ECDSA yang membutuhkan keacakan kualitas tinggi untuk setiap tanda tangan.

Ed25519 , adalah skema tanda tangan EdDSA, tetapi menggunakan SHA-512/256 dan Curve25519 ; itu adalah kurva elips aman yang menawarkan keamanan yang lebih baik daripada DSA, ECDSA, & EdDSA, plus memiliki kinerja yang lebih baik (tidak terlihat secara manusiawi).


Catatan lain
Kunci RSA adalah yang paling banyak digunakan, dan tampaknya menjadi yang terbaik didukung.

ECDSA, (diperkenalkan dalam OpenSSH v5.7 ), secara komputasi lebih ringan dari DSA, tetapi perbedaannya tidak terlihat kecuali Anda memiliki mesin dengan daya pemrosesan yang sangat rendah.

Pada OpenSSH 7.0 , SSH tidak lagi mendukung kunci DSA (ssh-dss) secara default. Kunci DSA digunakan untuk bekerja di mana saja, sesuai standar SSH (RFC 4251 dan selanjutnya).

Ed25519 diperkenalkan di openSSH 6.5 .


1
Apakah itu EdDSA atau ECDSA ?
muru

@muru Ini ECDSA. Saya akan memperbarui jawabannya dengan info tentang keduanya dan memperbaiki tautannya.
Enkouyami

Apa yang tidak bisa saya temukan adalah ketika EdDSA diperkenalkan di OpenSSH.
Enkouyami

Dapatkah komputer kuantum menghancurkan semuanya?
Kjeld Flarup

@KjeldFlarup, Ya; berdasarkan jawaban & komentar pada security.stackexchange.com/questions/211587/… , komputer kuantum dapat menghancurkan semuanya.
Enkouyami
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.