Генерация пар SSH: RSA или DSA?

104

SSH поддерживает два алгоритма подписи для пар ключей: RSA и DSA. Что предпочтительнее, если есть? Какова минимальная допустимая длина ключа для RSA?

Брэд Акерман
источник

Ответы:

70

RSA, как правило, предпочтительнее (теперь, когда выдача патента закончена), потому что он может достигать 4096 бит, где DSA должен быть ровно 1024 бит (по мнению ssh-keygen). 2048 бит - ssh-keygenэто длина по умолчанию для ключей RSA, и я не вижу особой причины использовать более короткие. (Минимально возможное значение составляет 768 битов; я полагаю, что это "приемлемо", это ситуативно.)

хаос
источник
Я часто задавался вопросом, почему люди чувствуют необходимость защищать свои ssh-соединения с помощью 2048-битного ключа, когда ваш банк, которому вы, вероятно, доверяете, вряд ли превысит 256 бит и с большей вероятностью будет использовать 128 бит. Я, конечно, не говорю, что с большим ключом что-то не так, я просто… говорю.
msanford
25
Банковское SSL-соединение представляет собой другой тип шифра, который используется, и более конкретно, ключ, используемый для основных частей транзакции, генерируется и используется исключительно для этой транзакции, а затем отбрасывается.
Офидиан
Причина на самом деле связана с масштабированием. шифрование недешево, и чем выше ваша стойкость ключа, тем меньше SSL-соединений вы можете обслуживать. Если у вас есть розничный банк, в котором каждый потребитель пытается использовать SSL, вам придется выбрать совместимый набор ключей, который также соответствует вашему оборудованию.
Спенс
15
msanford: Как сказал Офидиан, это разные виды шифрования. 256-битные ключи RSA были бы совершенно бесполезны практически для любых целей. Симметричные ключи находятся в диапазоне 128-512 бит, в то время как ассиметричные начинаются с 768 бит, и безопасны при 1500-2000 бит и выше. Открытые ключи 768 бит могут быть и были сломаны. 128-битная симметрия не может (сама по себе) быть практически нарушена.
Томас
2
@xenoterracide, ssh использует библиотеки openssl. При первом запуске SSH он использует ключи RSA / DSA для проверки хоста и настройки симметричных ключей для сеанса. Это та же самая процедура, которой следуют SSL-серверы и клиенты, поэтому вы обнаружите, что мы, люди, говорим о SSH, они часто будут ссылаться, чтобы разрешить исследование и документацию, выполненную для SSL
Walter
5

Это не симметричное или асимметричное шифрование. Речь идет о конкретных алгоритмах (RSA и DSA), требующих большего числа битов для достижения приемлемого уровня безопасности. Например, ECC - это также асимметричное шифрование, но оно обеспечивает хорошую безопасность при гораздо меньшем количестве битов, чем RSA или DSA.


источник
5

Если у вас есть недавняя реализация SSH, вы также можете рассмотреть ECDSA!

b0fh
источник
3

256-битные сертификаты, которые банки используют для соединений SSL, представляют собой симметричные шифры, такие как 3DES или AES, отсюда и меньшее количество битов. Когда вы видите 1024 и 2048 (и даже 4096), это асимметричные шифры.


источник
1

Ключи DSA имеют значительно более короткие подписи, чем ключи RSA (для того же «уровня безопасности»), поэтому одной из причин использования DSA может быть ограниченная среда.

Jus12
источник