1. Що таке BoringSSL

BoringSSL — це криптографічна бібліотека з відкритим вихідним кодом від Google, заснована на OpenSSL, спеціально розроблена для проектів Chromium та Android. Основні компоненти включають:

  1. Реалізація протоколів: TLS 1.2/1.3, DTLS 1.2
  2. Криптографічні примітиви: AES-GCM, ChaCha20-Poly1305, RSA-PSS, ECDSA
  3. Перевірка сертифікатів: перевірка ланцюжка X.509
  4. Безпечний транспорт: абстрактний рівень BIO

На відміну від OpenSSL, BoringSSL:

  • Видаляє підтримку застарілих алгоритмів (SSLv3, RC4)
  • Усуває вимоги щодо валідації FIPS 140-2
  • Використовує статичне компонування за замовчуванням
  • Реалізує суворі політики сертифікатів

2. Архітектура BoringSSL проти OpenSSL

ОсобливістьBoringSSLOpenSSL
Кодова база~240 тис. рядків (спрощено)~500 тис. рядків
ПотокобезпечністьАтомарні операціїГлобальні блокування
Пам’ятьВласний розподільникСтандартний malloc/free
APIСпецифічний для ChromiumЗагального призначення
ОновленняЩотижневі розгортанняЩоквартальні випуски
СумісністьНавмисно порушує ABIПідтримує стабільність ABI

Ключові архітектурні відмінності:

  • BoringSSL використовує модуль BoringCrypto FIPS
  • Немає підтримки API ENGINE
  • Видалено 80% опцій конфігурації
  • Спрощена система обробки помилок

3. Основні модулі BoringSSL

  1. Стек TLS

    • Відновлення сесії без стану сервера
    • Оптимізація False Start
    • Експортер ключового матеріалу
  2. Криптографія

    • Реалізації з постійним часом виконання
    • Апаратне прискорення (AES-NI, PCLMULQDQ)
    • Експерименти з постквантовою криптографією
  3. X.509

    • Прозорість сертифікатів
    • OCSP stapling
    • Обмеження імен
  4. Керування пам’яттю

    • Макрос ScopedOPENSSL
    • Відсутність malloc/free на критичних шляхах
    • Гарантії обнулення
  5. Тестування

    • Покриття рядків на 92%
    • Фазінг за допомогою libFuzzer
    • Крос-платформний CI

4. BoringSSL у сучасних додатках

Критичні ролі в стеку безпеки:

  1. Інтеграція з Chromium

    • Забезпечує QUIC та HTTP/3 у Chrome
    • Перевірка сертифікатів для >1 млрд пристроїв
    • Реалізація WebRTC DTLS
  2. Оптимізація продуктивності

    • У 2 рази швидше рукостискання TLS 1.3 у порівнянні з OpenSSL
    • На 40% менший розмір бінарного файлу
    • Криптографічні розширення ARMv8
  3. Покращення безпеки

    • Суворе зіставлення імен сертифікатів
    • Автоматичний вибір EC кривої
    • Завжди увімкнена прозорість сертифікатів
  4. Досвід розробника

    • Спрощені поверхні API
    • Чіткі політики застарівання
    • Документація для кожної функції

Вам також може сподобатися

Run multiple accounts without bans and blocks
Спробуйте безкоштовно

Захист безпеки кількох облікових записів, починаючи з FlashID

Завдяки нашій технології відбитків пальців, залишайтеся непоміченими.

Захист безпеки кількох облікових записів, починаючи з FlashID