Значительный выпуск криптографической библиотеки OpenSSL 1.1.0

После более полутора лет разработки состоялся релиз библиотеки OpenSSL 1.1.0 с реализацией протоколов SSL/TLS и различных алгоритмов шифрования. Новая ветка включает изменения, нарушающие обратную совместимость на уровне API. Поддержка выпуска OpenSSL 1.1.0 будет осуществляться до 30 апреля 2018 года, выпуск 1.0.2 будет поддерживаться до 31 декабря 2019 года, а 1.0.1 — до 31 декабря 2016 года.

Основные новшества OpenSSL 1.1.0:

  • В libcrypto и libssl интегрированы потоковый шифр ChaCha20 и алгоритм аутентификации сообщений (MAC) Poly1305, разработанные Дэниелом Бернштейном (Daniel J. Bernstein), Таней Ланге (Tanja Lange) и Питером Швабе (Peter Schwabe). ChaCha20 и Poly1305 можно рассматривать, как более быстрые и безопасные аналоги AES-256-CTR и HMAC, программная реализация которых позволяет добиться фиксированного времени выполнения без задействования специальных аппаратных ускорителей;
  • Прекращена поддержка устаревших технологий, в том числе удалены компоненты, обеспечивающие работу SSLv2, Kerberos, 40- и 56-разрядных шифров. Из набора шифров по умолчанию исключён алгоритм RC4;
  • В libcrypto и libssl добавлена поддержка асинхронных криптографических операций;
  • Поддержка TLS-расширения Extended Master Secret (RFC 7627);
  • Интеграция набора блочных шифров CCM;
  • Переработка тестового набора, который переписан на Perl с использованием модулей Test: Harness и Test: More;
  • Скрыты многие внутренние структуры libssl и libcrypto, в том числе BIGNUM, EVP_MD, EVP_MD_CTX и HMAC_CTX.
  • Переписаны реализация конечного автомата для SSL/TLS, код согласования версий протокола и слой обработки записей;
  • Операции с эллиптическими кривыми переведены на новый метод EC_KEY_METHOD;
  • В libcrypto добавлен режим работы с блочными шифрами OCB (Offset Codebook Mode);
  • Все публичные заголовочные файлы перенесены в директорию include/openssl (ранее использовались символические ссылки);
  • По умолчанию отключена поддержка 3DES, в связи с обнаружением возможности проведения атаки через подбор коллизий.

© OpenNet