Когда я начал иметь дело с серверами * nix, серверы openssh поставлялись с ключами хоста dsa, а также с ключами хоста rsa, а клиенты openssh предпочитали ключ rsa. В наши дни серверы openssh имеют ключи хоста dsa, rsa, а также ключи хоста ecdsa, а клиенты openssh предпочитают ключ хоста ecdsa.
В какой степени мне все еще нужно / хочу, чтобы openssh был настроен для предоставления ключей хоста dsa?
В основном интересно, что касается реализаций клиентов, отличных от openssh.
Я не могу придумать ничего широко используемого, в котором отсутствует поддержка хотя бы RSA, и действительно, если вы используете эмулятор терминала в Windows (например), который поддерживает только DSA, вам следует прекратить его использовать и загрузить замазку или обновить ее.
Есть возможность обеспечить совместимость. Однако это также увеличивает вашу поверхность безопасности; злоумышленник может ослабить вашу криптографию, убедив клиента заявить о поддержке только DSA. Этот сценарий довольно надуман. Если вас это беспокоит, то вам следует отключить DSA.
Единственный сценарий, который, как я могу себе представить, может привести к серьезному компромиссу, - это если один из ваших пользователей использовал пару ключей DSA на ненадежном или скомпрометированном компьютере, который всегда согласовывал DSA и генерировал повторяющиеся эфемерные значения для создания подписей DSA; в результате ключ пользователя может быть скомпрометирован, но не похоже, что это путь наименьшего сопротивления для злоумышленника. Если ваша система не используется международными шпионами, вам, вероятно, не стоит об этом беспокоиться. См. Этот вопрос на одном из наших дочерних сайтов: https://security.stackexchange.com/q/29262/12223.
На самом деле нет прямого способа отключить DSA. Ошибка Debian 528046 предлагает его и предоставляет патч (для варианта PubKeyTypes) и получил поддержку, но не принимал никаких мер с 2009 года, без каких-либо доказательств чего-либо выше по течению.
Ваш ответ, вероятно, находится здесь:
https://security.stackexchange.com/questions/5096/rsa-vs-dsa-for-ssh-authentication-keys
Большинство рекомендаций для ключей RSA по разным причинам, поэтому ключи DSA в основном используются для обратной совместимости. DSA был представлен, когда вышел SSH2, поскольку в то время RSA все еще был запатентован, а DSA был более открытым. С тех пор это изменилось.
Из-за всего этого ключи DSA практически бесполезны. Они будут работать, и ssh-keygen даже создаст их, если вы попросите, но кто-то должен специально спросить об этом, а это означает, что они могут использовать RSA, если вы их заставите. Насколько мне известно, ничего не делалось только с DSA. Ключи DSA можно запретить.
Единственная причина, по которой я могу придумать с точки зрения безопасности, - это если простая факторизация падает, а дискретный журнал - нет, тогда RSA падает, но DSA остается. В этом случае вы спросите, как отключить RSA. Если дискретный журнал падает, то падают и RSA, и DSA. Однако, если вашему ssh по-прежнему требуется ровно 1024 бита для DSA, исправьте это сейчас.