Разработчики проекта OpenBSD представили (https://www.mail-archive.com/announce@openbsd.org/msg00...) выпуск переносимой редакции пакета LibreSSL 2.6.3 (http://www.libressl.org/), в рамках которого развивается форк OpenSSL, нацеленный на обеспечение более высокого уровня безопасности. Проект LibreSSL ориентирован на качественную поддержку протоколов SSL/TLS с удалением излишней функциональности, добавлением дополнительных средств защиты и проведением значительной чистки и переработки кодовой базы. LibreSSL 2.6.3 объявлен первым стабильным выпуском серии 2.6.x. Поддержка прошлой стабильной ветки LibreSSL 2.4.x прекращена.
Основные изменения в LibreSSL 2.6:
- Добавлена поддержка загрузки в libtls списков отозванных сертификатов (CRL). Как только CRL будет предоставлен в libtls через вызов функций tls_config_set_crl_file или tls_config_set_crl_mem включается проверка полной цепочки доверия для сертификатов;
- Код проверки имени TLS-сертификата переработан в направлении более жесткого следования RFC 6125 (https://tools.ietf.org/html/rfc6125);
- Почищен и упрощён код для обработки обращений к серверам обмена ключами на основе эллиптических кривых (EC, Elliptic Curve), а также код для обработки конфигурации ключей EC и параметров кривых;
- Из функций BIO_get_accept_socket(), simplified
BIO_get_host_ip() и BIO_accept() удалена неполноценная обработка IPv6;
- Проверка SNI упрощена для обеспечения соединения к TLS-серверу на базе libtls клиентов, не соответствующих RFC и использующих внутренние IP-адреса;
- В libtls добавлена функция tls_peer_cert_chain_pem, которую можно использовать в callback-вызовах для приватной проверки сертификатов, как это делается, например, в relayd;
- Добавлены функции SSL{,_CTX}_set_{min,max}_proto_version();
- Из BoringSSL перенесена реализация HKDF (https://en.wikipedia.org/wiki/HKDF) (HMAC Key Derivation Function);
- Добавлена функция tls_unload_file для очистки памяти, возвращённой при вызове tls_load_file(), для того чтобы удостовериться, что осевшее в памяти содержимое недоступно после его обработки;
- Для libtls tls_config реализован подсчёт ссылок, позволяющий вызвать
tls_config_free как можно быстрее после финального вызова tls_configure();
- Заполнение полей со временем при генерации сертификата через команду "openssl ca" приведено в соответствие с требованиями RFC 5280 (https://tools.ietf.org/html/rfc5280);
- Прекращена поддержка наборов шифров, использующих аутентификацию на базе DSS (https://ru.wikipedia.org/wiki/Digital_Signature_Standard) (Digital Signature Standard);
- В libssl прекращена поддержка DSS и DSA;
- Добавлена возможность использования трёх идентификаторов OID в сертификатах с расширенной проверкой EV (Extended Validation (https://en.wikipedia.org/wiki/Extended_Validation_Certificate));
- Обеспечено разделение статусов самоподписанных сертификатов (self-signed) и самостоятельно выписанных сертификатов (self-issued);
- Добавлен новый фреймворк для управления расширениями TLS, созданный по аналогии с подобным фреймворком из BoringSSL. Все TLS-расширения перенесены под управление нового фреймворка и добавлен новый тестовый набор для проверки расширений;
- В libtls добавлена функция tls_config_set_ecdhecurves(), которая позволяет задавать имена эллиптических кривых для использования при обмене ключами клиентом или сервером;
- Очередная порция кода переведена на использование подсистем CBB/CBS;
- Удалена поддержка потерявшего актуальность TLS-расширения NPN, развившегося в паре с SPDY, на смену которому вместе с HTTP/2 пришло TLS-расширение ALPN;
- Удален код SSL_OP_CRYPTOPRO_TLSEXT_BUG, использовавшийся для обхода проблем в старых клиентах CryptoPro;
- Удалена поддержка TLS-расширения с методом добавочного заполнения, применявшимся для обхода ошибки в продуктах F5;
- Удалена старая реализация набора шифров chacha20-poly1305 (на смену пришла стандартизированная реализация IETF);
Добавлен код для обхода ошибки в обработчике завершения TLS-соединения, проявляющейся в продуктах F5;
- Шифр ECDHE-RSA-DES-CBC3-SHA переведён из категории HIGH в MEDIUM;
Добавлены новые man-руководства и расширены существующие.
- При вызове функции tls_config_parse_protocols() с указателем NULL теперь возвращается набор протоколов по умолчанию.
URL: https://www.mail-archive.com/announce@openbsd.org/msg00...
Новость: http://www.opennet.dev/opennews/art.shtml?num=47519