Выпуск OpenSSH 6.8

Доступен выпуск OpenSSH 6.8 — открытой реализации клиента и сервера для работы по протоколам SSH (1.3, 1.5 и 2.0) и SFTP. Из наиболее важных улучшений можно отметить возможность сборки без OpenSSL, проведение внутреннего рефакторинга, возможность автозамены ключей хоста на стороне клиента, встроенную реализацию списков отозванных сертификатов, изменение формата отпечатков ключей. Основные улучшения:

Переработана значительная часть внутреннего кода с целью выноса базовых частей OpenSSH в отдельную библиотеку. Несмотря на то, что связанные с рефакторингом изменения не заметны пользователям, они позволили существенно улучшить тестируемость кода и оптимизировать внутреннюю структуру проекта; В ssh и sshd добавлена опция FingerprintHash, через которую можно управлять выбором алгоритма для создания fingerprint-отпечатков ключей. По умолчанию отпечатки теперь создаются с использованием хэша SHA256 и формата base64, вместо ранее применяемого шестнадцатеричного вывода MD5. Кроме того, строка с отпечатком теперь содержит явное указание алгоритма хэширования, например, «SHA256: mVPwvezndPv/ARoIadVY98vAC0g+P/5633yTC4d/wXE»; Экспериментальная поддержка автозамены ключей хоста. Реализовано специальное расширение протокола «hostkeys@openssh.com», позволяющее серверу после прохождения аутентификации информировать клиента о всех доступных ключах хоста. Клиент может отразить эти ключи в своём файле ~/.ssh/known_hosts, что позволяет организовать обновление ключей хоста и упрощает смену ключей на сервере. На стороне клиента обновление ключей хоста можно разрешить воспользовавшись опцией UpdateHostkeys (по умолчанию значение «no»). В качестве примера можно привести переход от ключей DSA, для работы с которыми требуется OpenSSL/LibreSSL, на интегрированную в OpenSSH реализацию цифровой подписи с открытым ключом Ed25519. При использовании новой функции, sshd отправит клиенту все имеющиеся на сервере открытые ключи узла. В свою очередь, клиент осуществит замену всех имеющихся ключей доверяемого узла на предоставленные таким образом новые ключи. Для инициирования замены ключей на сервере, необходимо в sshd_config одновременно указать как старые, так и новые ключи, добавив дополнительные секции HostKey;

Переносимая версия OpenSSH избавлена от привязки к OpenSSL и теперь может быть собрана без OpenSSL/LibreSSL. При сборке с опцией »--without-openssl» вместо OpenSSL будет использован только внутренний набор алгоритмов (curve25519, aes-ctr, chacha20+poly1305 и ed25519), применяемых при использовании протокола SSH-2, а протокол SSH-1 поддерживаться не будет. Работа без OpenSSL пока возможна только на системах, предоставляющих механизмы arc4random или /dev/urandom для доступа к генераторам псевдослучайных чисел; Реализована встроенная поддержка списков отозванных ключей KRL (Key Revocation List) в ssh-keygen и sshd, не требующая сборки с OpenSSL; Параметр UseDNS по умолчанию теперь принимает значение 'no', что потребует явного указания «UseDNS yes» для конфигураций в которых в sshd_config или authorized_keys применяется сопоставление по именам клиентских хостов; В ssh и ssh-keysign обеспечена возможность использования ключей ed25519 для аутентификации в привязке к хосту (Host-based Authentication); В sshd обеспечено запоминание уже использованного для аутентификации открытого ключа и отвержение попыток указания того же ключа при аутентификации по двум ключам. Иными словами, если в настройках указано «AuthenticationMethods=publickey, publickey», то пользователь теперь должен использовать два разных ключа; В sshd_config добавлены опции HostbasedAcceptedKeyTypes и PubkeyAcceptedKeyTypes, позволяющие определить допустимые типы открытых ключей. По умолчанию разрешены все типы ключей. В свою очередь для клиента в ssh_config добавлена опция HostbasedKeyType, дающая возможность указать допустимые типы открытых ключей хоста; В добавлена опция RevokedHostKeys, позволяющая подключить список отозванных ключей хоста в форме текстового файла или KRL; В ssh-keygen и sshd добавлена поддержка отзыва сертификатов по их порядковому номеру или идентификатору ключа, не вдаваясь в подробности привязки к CA; В ssh добавлена опция »-G», в которой по аналогии с «sshd -T» производится разбор конфигурации и её дамп в стандартный выходной поток; В ssh реализована поддержка операции отрицания в блоках Match. Например, «Match! host»; В ssh и sshd устранены проблемы с обрывом соединения при предоставлении нескольких ECDSA-ключей разного размера; В переносимую версию OpenSSH добавлена опция »--without-ssh1», позволяющая собрать пакет без поддержки первой версии протокола SSH; При работе в окружении Cygwin для sshd реализована возможность указанием собственных имён сервисов, что позволяет запустить несколько экземпляров sshd с разными именами сервисов.

© OpenNet