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


Di dalam saya /etc/ssh/ direktori, saya dapat melihat tiga bahwa saya memiliki tiga jenis kunci ssh yang berbeda:

-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?


12
2017-10-21 17:19


asal




Jawaban:


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

SSH menggunakan enkripsi kunci publik, yang berarti ketika Anda terhubung ke server SSH, ia menyiarkan kunci publik yang dapat Anda gunakan untuk mengenkripsi lalu lintas lebih lanjut untuk dikirim ke server tersebut. 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 kepada Anda dan membalasnya.

Ketiga kunci tersebut ada di komputer Anda karena setiap server SSH yang Anda sambungkan mungkin dikonfigurasi untuk menggunakan salah satu dari algoritme ini. Komputer Anda akan mengirim kembali kunci unik yang sesuai dengan jenis yang digunakan server, kunci Anda yang telah dihasilkan di komputer Anda oleh algoritme yang sama.

Berikut beberapa sumber daya lebih lanjut:

https://security.stackexchange.com/questions/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


8
2017-10-21 17:38



Secara singkat Anda berbicara tentang mengapa ketiganya ada di sana, tujuan kunci ssh, dan kesamaan kunci: tombol menggunakan algoritme enkripsi. Apa yang tidak Anda bicarakan tentang perbedaan antara kunci RSA, DSA, dan ECDSA. - Enkouyami


Apakah Anda membutuhkan semuanya?
Tidak, server ssh Anda hanya membutuhkan 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 secara luas digunakan untuk transmisi data yang aman. Keamanan itu bergantung pada faktorisasi bilangan bulat, jadi RNG yang aman tidak pernah diperlukan. Dibandingkan dengan DSA, RSA lebih cepat untuk validasi tanda tangan tetapi lebih lambat untuk pembangkitan.

DSA (Algoritma Tanda Tangan Digital) adalah Standar Pemrosesan Informasi Federal untuk tanda tangan digital. Keamanan itu bergantung pada a logaritmik diskrit masalah. Dibandingkan dengan RSA, DSA lebih cepat untuk menghasilkan tanda tangan tetapi lebih lambat untuk validasi. Keamanan bisa rusak jika generator nomor yang buruk digunakan.

ECDSA (Kurva Elliptical Algoritma Tanda Tangan Digital) 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 berbagi kerugian DSA karena sensitif terhadap RNG yang buruk.

EdDSA (Edwards-curve Algoritma Tanda Tangan Digital) adalah skema tanda tangan digital menggunakan varian dari Tanda tangan Schnorr berdasarkan Twisted Edwards melengkung. Penciptaan tanda tangan adalah deterministik di EdDSA dan keamanannya didasarkan pada keteguhan masalah logaritma diskrit tertentu, jadi lebih aman daripada DSA & ECDSA yang memerlukan keacakan kualitas tinggi untuk setiap tanda tangan.

Ed25519, adalah Skema tanda tangan EdDSA, tapi menggunakan SHA-512/256 dan Curve25519; itu a kurva elips aman bahwa menawarkan keamanan yang lebih baik dari DSA, ECDSA, & EdDSA, plus memiliki performa yang lebih baik (tidak terlihat secara manusiawi).


Catatan lainnya
Kunci RSA adalah yang paling banyak digunakan, dan tampaknya paling didukung.

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

Seperti 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 oepnSSH 6.5.


2
2018-01-29 09:35



Apakah itu EdDSA atau ECDSA? - muru
@muru Itu ECDSA. Saya akan memperbarui jawabannya dengan info pada keduanya dan memperbaiki tautannya. - Enkouyami
Apa yang tidak dapat saya temukan adalah ketika EdDSA diperkenalkan di OpenSSH. - Enkouyami