После пяти месяцев разработки объявлен (http://lists.mindrot.org/pipermail/openssh-unix-announce/201... выпуск OpenSSH 6.5 (http://www.openssh.com/), открытой реализации клиента и сервера для работы по протоколам SSH (1.3, 1.5 и 2.0) и SFTP. Из заметных улучшений можно отметить:
- В ssh и sshd добавлена поддержка метода обмена ключами на базе функции Curve25519 (http://cr.yp.to/ecdh.html), предложенной Дэниэлом Бернштейном (D. J. Bernstein (http://cr.yp.to/djb.html)) и основанной на использовании криптографии по эллиптическим кривым. Указанный метод используется по умолчанию, в случае его поддержки на стороне клиента и сервера;
- В ssh и sshd добавлена поддержка схемы цифровой подписи с открытым ключом Ed25519 (http://ed25519.cr.yp.to/), также разработанной Дэниэлом Бернштейном. Цифровые подписи Ed25519 обладают более высоким уровнем безопасности, чем ECDSA и DSA, и при этом отличаются очень высокой скоростью верификации и создания подписей. Стойкость к взлому для Ed25519 составляет порядка 2^128 (в среднем для атаки на Ed25519 потребуется совершить 2^140 битовых операций), что соответствует стойкости таких алгоритмов, как NIST P-256 и RSA с размером ключа в 375 байт или 128-битному блочному шифру. Ed25519 также не подвержен проблемам с коллизиями в хэшах, не чувствителен к атакам через определение содержимого кэша (cache-timing attacks) и атакам по сторонним каналам (side-channel attacks).
- Новый формат хранения закрытого ключа, основанный на использовании KDF (http://en.wikipedia.org/wiki/Key_derivation_function)-функции (Key Derivation Function) bcrypt и обеспечивающий более высокий уровень защиты ключа. Данный формат используется по умолчанию только для ключей Ed25519, но может быть задействован и для других типов ключей при указании опции "-o" в ssh-keygen;
- В ssh и sshd добавлен (http://www.opennet.ru/opennews/art.shtml?num=38635) новый транспортный протокол "chacha20-poly1305@openssh.com" на основе алгоритмов потокового шифра ChaCha20 (http://cr.yp.to/chacha.html) и аутентификации сообщений Poly1305-AES (http://cr.yp.to/mac.html), разработанных Дэниэлом Бернштейном. Алгоритмы ChaCha20 и Poly1305-AES созданы специально для обеспечения наивысшей безопасности при наименьших вычислительных затратах. Программная реализация алгоритмов позволяет добиться фиксированного времени выполнения без задействования специальной аппаратной поддержки.
- Ssh и sshd теперь отклоняют RSA-ключи от старых проприетарных клиентов и серверов, использующих устаревшую схему формирования сигнатур RSA+MD5 и методы обмена ключей на основе уязвимых способов расчёта хэшей. Соединение с такими системами пока допускается, но только с использованием ключей DSA. В будущем поддержка будет прекращена полностью;
- В ssh и ssh-agent обеспечена поддержка только токенов kcs#11, которые представлены сертификатами X.509, а не raw-ключами;
- В ssh добавлена поддержка директивы "Match", позволяющей определять условные блоки в конфигурации ssh_config в зависимости от имени хоста, пользователя и результата выполнения произвольной команды;
- В ssh добавлена поддержка канонизации имени хоста на стороне клиента, используя набор правил и суффиксов DNS в ssh_config. Изменение позволяет преобразовать неполное имя в полное, исключающее неоднозначность при поиске ключей в known_hosts или при проверке имён сертификатов хоста;
- В sftp-server добавлена возможность помещения запросов по протоколу SFTP в белый или чёрный списки по имени;
- В sftp-server добавлена схема "fsync@openssh.com" для вызова
fsync для открытого файловго дескриптора;
- В конфигурацию sshd добавлена директива PermitTTY, запрещающая выделение TTY и повторяющая по своей сути опцию no-pty в файле authorized_keys;
- В конфигурацию ssh добавлена опция ProxyUseFDPass, которая позволяет использовать директиву ProxyCommands для установки соединения, а затем передать сформированный файловый дескриптор обратно в ssh. Использование опции позволяет сразу завершить выполнение команды, заданной через ProxyCommands, а оставлять её во время передачи данных;
- Улучшения, специфичные для переносимой версии OpenSSH:
- В sshd добавлена поддержка Capsicum API во FreeBSD 10 для помещения процесса в изолированное окружение на стадии до начала аутентификации;
- Автоматически включаются доступные в используемом для сборки инструментарии методы повышения безопасности кода, в том числе применяются "-ftrapv" для защиты от целочисленных переполнений, -fstack-protector-strong, -fstack-protector-all и -fstack-protector для зщиты от переполнений стека и опции для защиты от записи информации о динамическом связывании. Данное поведение можно отключить при помощи опций "--without-hardening" и "--without-stackprotect";
- OpenSSH 6.5 является последним выпуском, поддерживающий версии OpenSSL младше 0.9.6;
- В Linux, OS X и OpenBSD при сборке с использованием современных компиляторов по возможности формируются исполняемые файлы PIE (Position Independent Executable (http://en.wikipedia.org/wiki/Position_independent_executable));
- Для платформ, не предоставляющих генератор псевдослучайных чисел, теперь используется функция arc4random() на базе алгоритма ChaCha20.
URL: http://lists.mindrot.org/pipermail/openssh-unix-announce/201...
Новость: http://www.opennet.ru/opennews/art.shtml?num=38971