SSH generasi keypair: RSA atau DSA?

104

SSH mendukung dua algoritma tanda tangan untuk pasangan kunci: RSA dan DSA. Mana yang lebih disukai, jika ada? Untuk RSA, berapa panjang kunci minimum yang dapat diterima?

Brad Ackerman
sumber

Jawaban:

70

RSA umumnya lebih disukai (sekarang setelah masalah paten selesai) karena dapat naik hingga 4096 bit, di mana DSA harus tepat 1024 bit (menurut pendapat ssh-keygen). 2048 bit adalah ssh-keygenpanjang standar untuk kunci RSA, dan saya tidak melihat alasan khusus untuk menggunakan yang lebih pendek. (Kemungkinan minimum adalah 768 bit; apakah itu "dapat diterima" adalah situasional, saya kira.)

kekacauan
sumber
Saya sering bertanya-tanya mengapa orang merasa perlu untuk mengamankan koneksi ssh mereka dengan kunci 2048 bit, ketika bank Anda, yang mungkin Anda percayai, sangat tidak mungkin untuk melebihi 256 bit, dan lebih mungkin untuk tetap dengan 128 bit. Saya tentu tidak mengatakan ada yang salah dengan menggunakan kunci besar, saya hanya ... katakan saja.
msanford
25
Koneksi SSL bank adalah jenis sandi berbeda yang digunakan dan lebih khusus kunci yang digunakan untuk bagian utama dari transaksi dihasilkan dan digunakan semata-mata untuk transaksi itu dan kemudian dibuang.
Ophidian
Alasannya sebenarnya berkaitan dengan penskalaan. enkripsi tidak murah dan semakin tinggi kekuatan kunci Anda semakin sedikit koneksi SSL yang dapat Anda layani. Jika Anda memiliki bank ritel dengan setiap konsumen yang mencoba menggunakan SSL maka Anda harus memilih rangkaian kunci yang kompatibel tetapi yang juga cocok dengan perangkat keras Anda.
Spence
15
msanford: Seperti kata Ophidian mereka adalah berbagai jenis enkripsi. Kunci RSA 256bit akan sama sekali tidak berguna untuk tujuan apa pun. Kunci simetris berada di kisaran 128-512bit, sementara asimetri mulai dari 768bit, dan aman pada sekitar 1500-2000bit dan lebih tinggi. Kunci publik 768bit dapat dan telah rusak. Simetris 128bit tidak bisa (dengan sendirinya) praktis dapat dipatahkan.
Thomas
2
@xenoterracide, ssh menggunakan pustaka openssl. Ketika SSH pertama kali dimulai itu menggunakan kunci RSA / DSA untuk melakukan verifikasi host dan untuk mengatur kunci simetris untuk sesi. Ini adalah prosedur yang sama dengan yang diikuti oleh server SSL dan klien, sehingga Anda akan menemukan bahwa kami orang-orang berbicara tentang SSH, mereka akan sering merujuk untuk memungkinkan penelitian dan dokumentasi dilakukan untuk SSL
Walter
5

Ini bukan tentang enkripsi simetris atau asimetris. Ini tentang algoritma tertentu (RSA dan DSA) yang membutuhkan jumlah bit lebih tinggi untuk mencapai tingkat keamanan yang dapat diterima. Sebagai contoh, ECC juga merupakan enkripsi asimetris, tetapi memberikan keamanan yang baik pada jumlah bit yang jauh lebih rendah daripada RSA atau DSA.


sumber
5

Jika Anda memiliki implementasi SSH baru-baru ini, Anda juga dapat mempertimbangkan ECDSA!

b0fh
sumber
3

256 bit sertifikat yang digunakan bank untuk koneksi SSL adalah kode simetris seperti 3DES atau AES, karenanya jumlah bit lebih rendah. Ketika Anda melihat 1024 dan 2048 (dan bahkan 4096) ini adalah sandi asimetris.


sumber
1

Kunci DSA memiliki signaure yang jauh lebih pendek daripada kunci RSA (untuk "tingkat keamanan" yang sama), jadi satu alasan untuk menggunakan DSA akan berada di lingkungan yang terbatas.

Jus12
sumber