В новом году все больше стали упоминать прозрачность сертификатов (certificate transparency). И все потому что Google, а точнее, команда, работающая над принадлежащим ему браузером Chrome, заявила о своем намерении сделать требование прозрачности обязательным для всех выпущенных с октября 2017 года SSL сертификатов. Давайте же разберемся, что это такое и зачем она нужна.
Рост мошенничества с SSL/TLS
За последние несколько лет значительно вырос уровень выпуска SSL сертификатов для мошенников. Чаще всего это происходило вследствие ошибок центров сертификации при валидации или же умелой подделке данных со стороны мошенников. Наиболее часто встречаются следующие проблемы:
- Центр сертификации по ошибке выдал сертификат для домена не его настоящему владельцу.
- Центр сертификации был скомпрометирован и мошенники сами выпустили неправомерные SSL сертификаты. Такая ситуация произошла с датским ЦС DigiNotar. Взломав его, хакеры выпустили мошеннические сертификаты и смогли подделать многочисленные веб-сайты в Иране, среди которых Facebook и Gmail, и таким образом заполучить данные множества пользователей, а также отслеживать их. DigiNotar был в последствии закрыт, от чего пострадали многие пользователи сайтов, использовавших их продукты.
- Центр сертификации (особенно это касается малоизвестных компаний) могут сами оказаться мошенниками.
В любом из этих случаев могут быть выпущены неверные SSL сертификаты для доменов, владельцы которых в лучшем случае смогут узнать об этом через несколько недель или месяцев. Дело в том, что браузеры видят эти продукты как доверенные, и не будут выдавать предупреждений об опасности.
Что такое прозрачность сертификатов (certificate transparency)?
Это проект компании Google, целью которого является устранение ряда проблем в области SSL/TLS сертификации, а именно намеренного или случайного выпуска мошеннических SSL сертификатов. Чтобы избежать всех этих проблем, в рамках программы Прозрачность сертификатов планируется внедрить открытую систему выпуска и использования SSL продуктов. В первую очередь владелец любого домена должен знать, когда для него выпускается сертификат. Тогда он сможет быстро среагировать и запросить аннулирование, что поможет сохранить безопасность данных и защитить пользователей. Таким образом, основные цели программы включают:
- Сделать невозможным (или хотя бы крайне сложным) выпуск SSL сертификата для домена, о котором его владелец не будет знать.
- Предоставить открытую систему аудита и мониторинга, которая позволит любому владельцу домена или центру сертификации определять сертификаты, выданные по ошибке или в мошеннических целях.
- Защитить пользователей, насколько это возможно, от обмана с использованием SSL сертификатов, выданных по ошибке или мошенническим путем.
Как работает эта система?
Certificate Transparency позволяет достичь этих целей путем создания открытой схемы для мониторинга процесса выдачи SSL сертификатов и их аудита. Эта схема состоит из трех основных компонентов, описанных ниже.
Публичные логи
Это простые онлайн-сервисы, которые содержат зашифрованные записи о выданных SSL сертификатах. Их может просмотреть каждый желающий, но не может вносить в них изменения. Кроме того каждый может добавить SSL сертификат в журнал, хотя это в первую очередь ожидается от центров сертификации. Также кто угодно может запросить журнал для проверки правильности его ведения и работы, а также для проверки того или иного сертификата. Логи находятся на серверах, которые могут принадлежать центру сертификации, ISP или любой заинтересованной стороне.
Публичные мониторы
Это публичные серверы, которые периодически связываются со всеми серверами логов и проверяют записи в журналах на соответствие техническим нормам, а также на наличие подозрительных свойств. Например, мониторы могут сообщить, если был выдан несанкционированный сертификат для определенного домена. Также они могут найти сертификаты с необычными расширениями или разрешениями (например, с возможностями удостоверяющего центра).
Аудиторы
Это компоненты ПО (например, браузеров, приложений или мониторов) или же самостоятельное программное обеспечение, которое выполняет две основные функции:
- Проверяют корректность работы логов и их криптографическую непротиворечивость. Если они находят какую-либо ошибку в работе лога, ему нужно будет предоставить объяснение, или же лог могут закрыть.
- Проверяют, появился ли определенный сертификат в логах. Его отсутствие может указывать на его подозрительность. В таком случае TLS-клиент может отказать в подключении к сайтам с подозрительными сертификатами.
Все вместе эти компоненты составляют открытую систему, позволяющую всем следить за выпуском новых SSL сертификатов и проверять их практически в режиме реального времени. Пользователи также смогут это делать, ведь Chrome планирует обозначать не внесенные в логи сертификаты:
На данном этапе проект certificate transparency в процессе разработки, но все больше удостоверяющих центров подключается к его нормам. Так, в обязательном порядке в логи вносятся все
EV SSL сертификаты и бесплатные решения, но в скором времени они станут обязательными для всех.