Google перешел c OpenSSL на BoringSSL

Новости
Разработчики BoringSSL, форка OpenSSL от компании Google, опубликовали обзор состояния проекта. Последнее время на BoringSSL уже переведены все программные продукты Google, как внутренние сервисы, так и такие проекты как Chrome/Chromium и An­droid. BoringSSL используется как единый TLS-стек для всех продуктов Google, что позволило значительно упростить сопровождение кодовой базы.

При этом использование BoringSSL в сторонних проектах может предоставлять трудности, так как код достаточно сильно почищен, а разработчики не ставят перед собой цель полной совместимости с OpenSSL и ABI может меняться в зависимости от потребностей компании. В отличие от LibreSSL, создание BoringSSL не заключалось в копировании имеющихся исходных текстов OpenSSL для их последующей переработки и чистки. Вместо этого BoringSSL развивался путём создания пустого проекта и поэтапного переноса кода из OpenSSL, функции за функцией с проведением их аудита, документирования и переработки.

В BoringSSL прекращена поддержка Blow­fish, Cam­l­lia, CMS, функций сжатия, движков, IDEA, JPAKE, Ker­beros, MD2, MDC2, OCSP, PKCS#7, RC5, RIPE-MD, SEED, SRP, Whirlpool.

www.imperialviolet.org/2015/10/17/boringssl.html

Google представила BoringSSL, форк OpenSSL

Новости
Код BoringSSL скоро будет добавлен в репозиторий Chromium, а в дальнейшем возможно появится в составе платформы Android. Сохранение совместимости с OpenSSL на уровне API и ABI не гарантируется. При этом, BoringSSL не позиционируется как замена OpenSSL. Google продолжит передачу исправлений ошибок и важных изменений в OpenSSL и будет оказывать финансовую поддержку данному проекту. Кроме того, создатели BoringSSL намерены организовать сотрудничество с LibreSSL, форком OpenSSL от проекта OpenBSD. Для организации обмена кодом с LibreSSL компания Google уже перелицензирвала часть своих патчей под лицензией ISC, что позволит наладить взаимный обмен патчами.

Из изменений можно отметить:
  • удаление нереализованных функций,
  • сокращение числа поддерживаемых форматов в ClientHello,
  • обеспечения одновременной поддержки старого и нового алгоритмов поиска сертификатов X.509,
  • реализация функции OPENSSL_str[n">casecmp,
  • удаление макросов DANE,
  • ограничение _X509_CHECK_FLAG_DOT_SUBDOMAINS только внутренним применением,
  • изменение метода проверки имени хоста по маске,
  • реализация расширения Intel SHA,
  • поддержка асинхронного поиска сеансов,
  • возможность использования только SHA-256 в клиентских сертификатах,
  • поддержка ChannelID,
  • реализация безопасных одноразовых кодов для (EC)DSA,
  • новая реализация функции tls1_change_cipher_state,
  • поддержка SSL AEAD, использование интерфейса AEAD в EVP и AES-GCM,
  • поддержка шифров ChaCha20-Poly1305, ECDHE-PSK-WITH-AES-128-GCM-SHA256,
  • рефакторинг ssl3_send_client_verify,
  • новые функции для определения принадлежности семействам шифров.