Mozilla внедряет CRLite для проверки проблемных TLS-сертификатов

Кoмпaния Mozilla oбъявилa o нaчaлe тeстирoвaния в нoчныx сбoркax Firefox нoвoгo мexaнизмa oпрeдeлeния oтoзвaнныx сeртификaтoв - CRLite. CRLite пoзвoляeт oргaнизoвaть эффeктивную прoвeрку oтзывa сeртификaтoв пo бaзe дaнныx, рaзмeщaeмoй нa систeмe пoльзoвaтeля. Рaзвивaeмaя в Mozilla рeaлизaция CRLite oпубликoвaнa пoд свoбoднoй лицензией MPL 2.0. Шифр для генерации БД и серверные компоненты написаны для Python и Go. Добавленные в Firefox клиентские части угоду кому) чтения данных из БД подготовлены получи и распишись языке Rust. Применяемая до этих пор поверка сертификатов с привлечением внешних служб бери базе протокола OCSP (Online Certificate Status Protocol) требует наличия гарантированного сетевого доступа и приводит к возникновению ощутимой задержки нате обработку запроса (в среднем 350мс). Организм локальной проверки по спискам CRL (Certificate Revocation List) затруднена большим размером данных - в действительность. Ant. прошлое время БД отозванных сертификатов занимает близ 300 МБ и её рост продолжается. Про блокирования скомпрометированных и отозванных удостоверяющими центрами сертификатов в Firefox с 2015 годы используется централизованный чёрный список OneCRL в сочетании с обращением к сервису Google Safe Browsing про определения возможной вредоносной активности. Вопреки на большую работу по повышению надёжности сервиса online-проверки сертификатов, условия телеметрии показывают, что более 7% запросов OCSP завершается таймаутом (чуть-чуть лет назад этот показатель составлял 15%). Услуги может быть недоступен как изо-за сетевых проблем и ограничений внутренних сетях, неизвестно зачем и блокирован атакующими - для обхода проверки OCSP в ходе MITM-атаки немерено просто заблокировать доступ к сервису проверки. Постольку-поскольку для предотвращения подобных атак реализована мастерство Must-Staple, позволяющая трактовать ошибку обращения в соответствии с OCSP как проблему с сертификатом, же данная возможность опциональна и требует специального оформления сертификата. CRLite позволяет ограничить полные сведения о всех отозванных сертификатах в без оплаты обновляемую структуру, размером всего 1 MB, что-то даёт возможность хранить полную базу CRL сверху стороне клиента. CRLite объединяет багаж из Certificate Transparency, публичного лога всех выданных и отозванных сертификатов, и результатов сканирования сертификатов в интернете (собираются небо и земля CRL-списки удостоверяющих центров и агрегируется материал о всех известных сертификатах). Данные упаковываются с использованием каскадных фильтров Блума, вероятностной структуры, допускающей ложное намечание отсутствующего элемента, но исключающей пропуск существующего элемента (т.е. с определённой вероятностью к тому идет ложное срабатывание на корректный обязательство, но отозванные сертификаты гарантированно будут выявлены). Пользу кого исключения ложных срабатываний в CRLite введены дополнительные корректирующие уровни фильтра. Позднее генерации структуры осуществляется перебор всех исходных записей и формулировка возникших ложных срабатываний. По результатам данной проверки создаётся дополнительная строма, которая каскадно накладывается на первую и корректирует возникшие ложные срабатывания. Неприметно для полного покрытия всех данных удовлетворительно создания 7-10 слоёв. Так на правах состояние БД из-за периодической синхронизации чуточку отстаёт от актуального состояния CRL, инспекция новых сертификатов, выписанных после последнего обновления БД CRLite, осуществляется около помощи протокола OCSP. При помощи фильтров Блума декабрьский пришлифовка сведений из WebPKI, охватывающий 100 млн активных сертификатов и 750 тысяч отозванных сертификатов, посчастливилось упаковать в структуру, размером 1.3 MB. Ход генерации структуры достаточно ресурсоёмкий, да он выполняется на сервере Mozilla и пользователю отдаётся ранее готовое обновление. Например, в бинарной форме используемые подле генерации исходные данные требуют орие 16 ГБ памяти при хранении в СУБД Redis, а в шестнадцатеричном виде дамп всех серийных номеров сертификатов занимает в среднем 6.7 Гб. Процесс агрегирования всех отозванных и активных сертификатов занимает эдак 40 минут, а процесс генерации упакованной структуры получи основе фильтра Блума требует вторично 20 минут. В настоящее время в Mozilla гарантированно обновление БД CRLite четыре раза в с утра до ночи (не все обновляется доставляются клиентам). Производство delta-обновлений пока не реализована - утилизация bsdiff4, используемого для создания delta-обновлений релизов, невыгодный обеспечивает должную эффективность для CRLite и обновления получаются нежелательно большими. Для устранения этого недостатка планируется преобразовать формат структуры хранения для исключения лишнего перестроения и удаления слоёв. CRLite того) (времени работает в Firefox в пассивном режиме и используется симультанно с OCSP для накопления статистики о корректности работы. Корень: http://www.opennet.ru/opennews/art.shtml?num=52175