В чем разница между ключами RSA, DSA и ECDSA, которые использует ssh?

В моем каталоге /etc/ssh/ я вижу три, у меня есть три разных типа ключей 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

В чем различия между ключами ssh RSA, DSA и ECDSA, и делаю Мне нужны все три?

13
задан 2 February 2018 в 13:04

2 ответа

Это ключи, сгенерированные с использованием разных алгоритмов шифрования. Вы можете выбрать использование разных форм шифрования при использовании SSH, что несколько похоже на возможность выбирать разные методы шифрования для WiFi (WPA2, WPA, WEP и т. Д.).

SSH использует шифрование с открытым ключом. Это означает, что при подключении к серверу SSH он передает открытый ключ, который можно использовать для шифрования дополнительного трафика, который будет отправлен на этот сервер. Если сервер настроен на использование RSA, это будет ключ, сгенерированный алгоритмом RSA.

Ваш компьютер отправляет обратно свой собственный открытый ключ RSA из файла ключа, который вы указали в своем вопросе. Серверу нужен этот ключ, чтобы вернуться к вам и ответить.

Все три ключа существуют на вашем компьютере, потому что любой сервер SSH, к которому вы подключаетесь, может быть настроен на использование любого из этих алгоритмов. Ваш компьютер отправит обратно уникальный ключ, соответствующий типу сервера, ваш ключ был сгенерирован на вашем компьютере по тому же алгоритму.

Вот некоторые дополнительные ресурсы:

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_ (алгоритм) [ 112]

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

http://en.wikipedia.org/wiki/Elliptic_Curve_DSA [ 114]

0
ответ дан 2 February 2018 в 13:04

Вам все они нужны?
Нет, вашему ssh-серверу нужен только один, а клиенту требуется только поддержка этого одного типа ключа для ssh-соединений.


RSA, DSA, ECDSA, EdDSA и & amp; Ed25519 все используются для цифровой подписи, но только RSA также может использоваться для шифрования.

RSA ( Ривест-Шамир-Адлеман ) является одной из первых криптосистем с открытым ключом и широко используется для безопасной передачи данных. Его безопасность основывается на целочисленной факторизации , поэтому безопасный RNG никогда не нужен. По сравнению с DSA RSA быстрее для проверки подписи, но медленнее для генерации.

DSA ( Алгоритм цифровой подписи ) является федеральным стандартом обработки информации для цифровых подписей. Его безопасность зависит от дискретной логарифмической задачи . По сравнению с RSA DSA быстрее для генерации подписи, но медленнее для проверки. Безопасность может быть нарушена , если используются плохие генераторы чисел .

ECDSA ( Алгоритм цифровой подписи на эллиптической кривой ) представляет собой реализацию DSA (алгоритм цифровой подписи) на основе эллиптической кривой. Криптография с эллиптической кривой способна обеспечить относительно тот же уровень безопасности, что и RSA, с меньшим ключом. Это также разделяет недостаток DSA в том, что он чувствителен к плохим RNG.

EdDSA ( Алгоритм цифровой подписи кривой Эдвардса ) представляет собой схему цифровой подписи, использующую вариант сигнатуры Шнорра на основе скрученных кривых Эдвардса [ 118]. Создание подписи в EdDSA является детерминированным, а ее безопасность основана на неразрешимости некоторых дискретных логарифмических проблем, поэтому она безопаснее, чем DSA & amp; ECDSA, которая требует высокого качества случайности для каждой подписи.

Ed25519 , является схемой подписи EdDSA, но с использованием SHA-512/256 и Curve25519 ; это защищенная эллиптическая кривая , которая обеспечивает лучшую безопасность , чем DSA, ECDSA и amp; EdDSA, plus имеет лучшую производительность (не заметно по-человечески).


Другие примечания
Ключи RSA являются наиболее широко используемыми, и поэтому, похоже, лучше всего поддерживаются.

ECDSA, (представленный в OpenSSH v5.7 ), в вычислительном отношении легче DSA, но разница не заметна, если у вас нет машины с очень низкой вычислительной мощностью.

Начиная с OpenSSH 7.0 , SSH больше не поддерживает ключи DSA (ssh-dss) по умолчанию. Ключ DSA используется везде, в соответствии со стандартом SSH (RFC 4251 и последующие).

Ed25519 был введен в oepnSSH 6.5 .

0
ответ дан 2 February 2018 в 13:04

Другие вопросы по тегам:

Похожие вопросы: