Разработчики проекта OpenBSD представили выпуск переносимой редакции пакета LibreSSL 2.8.1, в рамках которого развивается форк OpenSSL, нацеленный на обеспечение более высокого уровня безопасности. Проект LibreSSL ориентирован на качественную поддержку протоколов SSL/TLS с удалением излишней функциональности, добавлением дополнительных средств защиты и проведением значительной чистки и переработки кодовой базы. Ветка LibreSSL 2.8.x рассматривается как экспериментальная, в которой развиваются возможности для включения в состав OpenBSD 6.4.
Особенности LibreSSL 2.8.1:
- Добавлены тестовые векторы для проверки корректности реализаций ECDH, RSASSA-PSS, AES-GCM,
AES-CMAC, AES-CCM, AES-CBC-PKCS5, DSA, ChaCha20-Poly1305, ECDSA и
X25519 при помощи инструментария для проверки криптографических библиотек Wycheproof;
- Упрощён код генерации и проверки цифровых подписей при обмене ключами;
- Очередная порция кода переведена на использование подсистем CBB/CBS, в том числе на CBB переведён код обработки сообщений при согласовании соединений;
- Устранено несколько утечек памяти;
- Упрощён разбор и обработка сессионных тикетов по аналогии с реализацией из BoringSSL;
- В SSL_copy_session_id, PEM_Sign, EVP_EncodeUpdate, BIO_set_cipher,
X509_OBJECT_up_ref_count обеспечен возврат целочисленного кода ошибки, соответствующего OpenSSL;
- Некоторые #defines-макросы заменены на функции для соответствия c ABI OpenSSL;
- Из OpenSSL перенесена функция X509_get0_serialNumber;
- Для соответствия OpenSSL удалены EVP_PKEY2PKCS8_broken и PKCS8_set_broken. Добавлены PKCS8_pkey_add1_attr_by_NID и PKCS8_pkey_get0_attrs;
- Из утилиты openssl удалена неработающая поддержка форматов pkcs8;
- Некоторые функции из публичного API переведены на использование const для аргументов;
- Добавлен не подверженный тайминг-атакам код проверки результатов верификации цифровых подписей;
- Добавлены дополнительные тесты шифров в appstest.sh, включая все шифры для TLSv1.2;
- Из OpenSSL перенесены функции RSA_meth_get_finish() и RSA_meth_set1_name();
- Добавлен новый API EVP_CIPHER_CTX_(get|set)_iv() для получения вектора инициализации с целью проведения его верификации.
|