Цифровой сертификат — электронный документ, который связывает открытый ключ с владельцем (доменным именем, организацией или человеком) и подписан доверенным центром сертификации.
Как работают цифровые сертификаты
Большинство сертификатов соответствуют стандарту X.509, профиль которого для интернета описан в RFC 5280. Сертификат содержит имя субъекта (для сайтов — доменные имена в поле Subject Alternative Name), его открытый ключ, издателя, серийный номер, срок действия и цифровую подпись издателя. Браузеры и операционные системы проверяют цепочку доверия: сертификат сервера подписан промежуточным УЦ, а тот — корневым, который хранится в хранилище доверенных сертификатов. Если цепочка, имя или даты не сходятся, соединение отклоняется.
Основные типы — серверные сертификаты для TLS и HTTPS, сертификаты подписи кода, S/MIME-сертификаты для почты и клиентские сертификаты для аутентификации устройств и пользователей. Сертификаты отзываются через CRL или OCSP, а журналы Certificate Transparency (RFC 6962) публично фиксируют каждый выпущенный TLS-сертификат.
Почему сертификаты важны для безопасности
Сертификаты — фундамент доверия в вебе, поэтому привлекают злоумышленников:
- Взлом УЦ — в 2011 году хакеры проникли в нидерландский центр DigiNotar и выпустили поддельный сертификат для google.com, с помощью которого следили за пользователями в Иране; DigiNotar обанкротился.
- Кража сертификатов подписи кода — драйверы Stuxnet были подписаны сертификатами, украденными у двух тайваньских производителей оборудования.
- Фишинг — бесплатный автоматический выпуск означает, что замок в адресной строке подтверждает лишь контроль над доменом, а не честность сайта.
Рекомендации
- Автоматизировать выпуск и продление по протоколу ACME (Let’s Encrypt или коммерческие центры сертификации), так как максимальные сроки действия постоянно сокращаются.
- Вести реестр сертификатов и отслеживать журналы Certificate Transparency для своих доменов.
- Хранить закрытые ключи и ключи подписи кода в HSM и немедленно отзывать сертификаты при компрометации.