Файлы System/bin Android 12. Справочник.


  Все     Команда     Скрипт     Служба     Приложение  

boringssl_self_test32
Тест самопроверки SSL

Тип файла: команда
  Eng  

Системные домены и домены поставщиков для двоичных файлов самопроверки BoringSSL.

Для соответствия FIPS все процессы, связанные с libcrypto, выполняют самопроверку при запуске, которая вычисляет хэш криптомодуля BoringSSL (BCM), а также, по крайней мере, один раз при загрузке устройства, запускают серию тестов известных ответов (KAT - Known Answer Tests) для проверки функциональности.

KAT дорогие, и чтобы обеспечить их запуск как можно меньше раз, они пропускаются, если в /dev/boringssl/selftest существует файл маркера, имя которого является хэшем BCM, который был вычислен ранее. Файлы имеют нулевую длину, и их содержимое никогда не должно быть прочитано или записано. Чтобы избежать предоставления произвольным процессам доступа к /dev/boringssl для создания этих файлов маркеров, существуют специальные двоичные файлы самопроверки, к которым эта политика предоставляет доступ и которые запускаются во время ранней инициализации.

Из-за перекоса сборки версия libcrypto в /vendor может иметь другой хэш, чем системный. Для этого существуют варианты двоичных файлов самопроверки от поставщиков, которые также имеют разрешение на запись в те же файлы в /dev/boringssl. В случае, когда вендор и системная libcrypto имеют одинаковый хэш, будет гонка за создание файла, но это безобидно.

Если самопроверка не удалась, то устройство должно перезагрузиться в прошивку, и по этой причине системный домен Boringssl_self_test должен находиться в coredomain. Как домены поставщиков
не разрешены в coredomain, это означает, что самотестирование поставщика не может вызвать перезагрузку. Однако каждый двоичный файл, связанный с поставщиком libcrypto, будет прерван при запуске, поэтому на практике устройство все равно выйдет из строя в этом маловероятном сценарии.

   

Комментарии
BoringSSL — это форк OpenSSL, разработанный для удовлетворения потребностей Google.

Хотя BoringSSL является проектом с открытым исходным кодом, он не предназначен для общего использования, как OpenSSL. Мы не рекомендуем, чтобы третьи лица зависели от него. Это, вероятно, разочарует, потому что нет никаких гарантий стабильности API или ABI.

Программы отправляют свои собственные копии BoringSSL, когда они его используют, и мы обновляем все по мере необходимости, когда принимаем решение о внесении изменений в API. Это позволяет нам в основном избегать компромиссов во имя совместимости. Это работает для нас, но может не сработать для вас.

BoringSSL возник из-за того, что Google много лет использовал OpenSSL различными способами и со временем создал большое количество исправлений, которые поддерживались при отслеживании вышестоящего OpenSSL. По мере того, как портфель продуктов Google становился все более сложным, появлялось все больше копий OpenSSL, и усилия, связанные с поддержкой всех этих исправлений в разных местах, неуклонно росли.

В настоящее время BoringSSL — это библиотека SSL в Chrome/Chromium, Android (но она не является частью NDK) и ряде других приложений/программ.