6

По умолчанию в моей текущей версии (6.9p1) OpenSSH Server создает четыре типа ключей хоста:

$ ls /etc/ssh/ssh_host_*_key.pub
/etc/ssh/ssh_host_dsa_key.pub
/etc/ssh/ssh_host_ecdsa_key.pub
/etc/ssh/ssh_host_ed25519_key.pub
/etc/ssh/ssh_host_rsa_key.pub

В ходе тестирования я заметил, что, по крайней мере, при использовании той же версии клиента OpenSSH (6.9p1) ключ ECDSA будет использоваться хостом, независимо от типа ключа клиента.

Где OpenSSH решает, какой приоритет имеют поддерживаемые алгоритмы? Является ли эта информация редактируемой или жестко закодированной в исходный код текущей версии?

И что еще более важно, почему OpenSSH решил уделить первоочередное внимание алгоритму ECDSA?

2 ответа2

6

Порядок выбирается клиентом с помощью опции конфигурации HostKeyAlgorithms . По умолчанию в моей системе (согласно man-странице):

  1. ecdsa-sha2-nistp256-cert-v01@openssh.com
  2. ecdsa-sha2-nistp384-cert-v01@openssh.com
  3. ecdsa-sha2-nistp521-cert-v01@openssh.com
  4. ssh-ed25519-cert-v01@openssh.com
  5. ssh-rsa-cert-v01@openssh.com
  6. ssh-dss-cert-v01@openssh.com
  7. ssh-rsa-cert-v00@openssh.com
  8. ssh-dss-cert-v00@openssh.com
  9. ECDSA-SHA2-nistp256
  10. ECDSA-SHA2-nistp384
  11. ECDSA-SHA2-nistp521
  12. SSH-ed25519
  13. SSH-RSA
  14. SSH-ДСС

Чтобы переопределить это, сделайте что-то вроде:

ssh -oHostKeyAlgorithms=ssh-ed25519 user@foo.com

4

И что еще более важно, почему OpenSSH решил уделить первоочередное внимание алгоритму ECDSA?

ECDSA была введена в openssh с версией 5.7, вы можете найти примечания к выпуску здесь. В частности, заявлено:

Реализуйте режимы криптографии с эллиптической кривой для обмена ключами (ECDH) и ключей хост / пользователь (ECDSA), как указано в RFC5656. ECDH и ECDSA предлагают лучшую производительность, чем простые DH и DSA при той же эквивалентной длине симметричного ключа, а также намного более короткие ключи.

.......

Поддерживаются ключи сертификата и пользовательские ключи, использующие новые типы ключей ECDSA - ключ ECDSA может быть сертифицирован, а ключ ECDSA может выступать в качестве CA для подписи сертификатов.

ECDH в 256-битном поле кривой является предпочтительным алгоритмом согласования ключей, когда его поддерживают и клиент, и сервер. Ключи хоста ECDSA предпочтительны при первом изучении ключей хоста или могут быть изучены с помощью ssh-keyscan (1).

Также RFC 5656 заявляет:

Во многих оценках считается, что 2 80–2 90 операций недопустимы, поэтому предлагается использовать эллиптические кривые длиной не менее 160–180 бит. ТРЕБУЕМЫЕ кривые в этом документе - это 256-, 384- и 521-битные кривые; реализации не должны использовать кривые размером менее 160 бит

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .