Сертификаты безопасности транспортного уровня (Transport Layer Security, TLS) для защищенных веб-сайтов подтверждают целостность как прав собственности, так и информации о посещаемых вами веб-сайтах. В этой статье объясняется, как это работает.
Оглавление
Какие веб-сайты используют сертификаты?
Веб-сайты, адреса которых начинаются с https, используют сертификаты сервера TLS. Веб-сайты, использующие сертификаты сервера TLS, безопасны только в том случае, если они гарантируют две вещи:
- Администратор веб-сайта владеет доменным именем или контролирует его, гарантируя, что пользователи подключаются к законному сайту, а не к поддельной или вредоносной копии веб-сайта.
- Зашифрованный обмен данными по протоколу TLS между браузером и веб-сайтом обеспечивает защиту от прослушивания или несанкционированного вмешательства третьих лиц.
Цепочка доверия
Браузеры, такие как Firefox, проверяют сертификаты с помощью иерархии, называемой 'цепочка доверия. Она определяет структуру для браузеров и других программ для проверки целостности сертификата. Это список из трех сертификатов:
- Корневой сертификат (привязка доверия)
- Промежуточный сертификат
- Сертификат TLS-сервера (конечная сущность)
Давайте определим их: корневой сертификат принадлежит Центру сертификации (CA), который выдает сертификаты сервера TLS, и браузер по своей сути доверяет ему; промежуточный сертификат действует как посредник (центр сертификации, выдающий сертификаты) между корневым центром сертификации и веб-сайтом; сертификат сервера TLS выдается юридическому лицу или организации, что демонстрирует контроль над доменом веб-сайта.
Сертификаты сервера TLS основаны на криптографии с открытым ключом, в которой асимметричная пара ключей имеет два математически связанных ключа:
Закрытый ключ: Этот ключ хранится в секрете его владельцем и используется для криптографических операций, таких как подписание данных (включая сертификаты) или расшифровка информации, зашифрованной с помощью открытого ключа.
Открытый ключ: Этот ключ является общедоступным и используется для проверки подписей, созданных с помощью закрытого ключа, или для шифрования информации, которую может расшифровать только закрытый ключ.
Сертификаты открытых ключей содержат следующую информацию:
- Сведения о центре сертификации (CA), выдавшем сертификат
- Открытый ключ, принадлежащий организации, получившей сертификат.
- Указание сведений об организации, у которой хранится закрытый ключ (прочитайте Содержимое сертификата ниже. Для TLS это, прежде всего, доменное имя веб-сайта).
Теперь мы можем описать, как Firefox определяет, является ли веб-сайт безопасным.
Как Firefox проверяет целостность сертификата?
Вот как Firefox использует цепочку доверия для проверки сертификатов TLS-серверов:
- Firefox загружает сертификат веб-сайта, который вы посетили.
- Firefox проверяет сертификат по своей внутренней базе данных доверенных центров сертификации (CAs).
- Он использует открытый ключ сертификата корневого центра сертификации, чтобы убедиться, что корневой сертификат и промежуточный сертификат были должным образом подписаны по цепочке с сертификатом сервера TLS, предоставленным веб-сайтом.
- Firefox проверяет информацию в сертификате, чтобы убедиться, что веб-сайт, к которому вы подключены, соответствует веб-сайту, указанному в сертификате.
- Firefox генерирует симметричный (одиночный) ключ для шифрования HTTP-трафика для соединения.
- Firefox шифрует симметричный ключ открытым ключом сервера, который содержится в сертификате сервера.
- Закрытый ключ, который находится на веб-сервере, расшифровывает необходимые данные подключения для завершения так называемого TLS-рукопожатия.
После этого между Firefox и веб-сайтом может осуществляться защищенная связь.
Просмотр сертификата
Чтобы просмотреть сертификат, выполните следующие действия:
- Нажмите на значок замка в адресной строке.
- На открывшейся панели Информация о сайте нажмите на .
- На следующей панели нажмите на
- В открывшемся окне Информация о странице нажмите на
Теперь Firefox откроет страницу about:certificate, чтобы отобразить информацию о сертификате для веб-сайта, на котором вы находитесь:
На трёх вкладках слева направо показаны сертификат TLS-сервера, промежуточный сертификат и корневой сертификат.
Содержимое сертификата
Сертификаты TLS-серверов содержат следующую информацию:
- Субъект: Содержит необязательные атрибуты, такие как название веб-сайта и другую информацию об организации, владеющей сертификатом.
- Издатель: Идентифицирует организацию CA, выдавшую сертификат.
- Срок действия: Показывает, как долго действителен сертификат.
- Расширение альтернативного имени субъекта: Содержит список адресов веб-сайтов, для которых действителен сертификат.
- Информация об открытом ключе: Перечисляет атрибуты открытого ключа сертификата.
- Серийный номер: Однозначно идентифицирует сертификат.
- Алгоритм подписи: Алгоритм, используемый для создания подписи.
- Отпечатки: Хэш файла сертификата в двоичном формате DER.
- Использование ключа и Расширенное использование ключа: Указывают, как пользователи могут использовать сертификат, например, для проверки подлинности на веб-сервере по протоколу TLS.
- Идентификатор ключа субъекта: Идентификатор, сгенерированный из открытого ключа сертификата TLS для идентификации сертификата.
- Идентификатор ключа центра сертификатов: Идентификатор, сгенерированный из открытого ключа CA как способ идентификации открытого ключа, соответствующего закрытому ключу, используемому для подписи сертификата.
- Точки распределения списков отзыва (CRL): Местоположения Списка отзыва сертификатов (CRL) центра сертификации-эмитента.
- Доступ к информации о центрах сертификации: Содержит метод проверки для центра сертификации и промежуточный файл сертификата.
- Политики сертификата: Содержит указатели на тип сертификата TLS, которым он является (например, информация, подтвержденная при выдаче сертификата).
- Список SCT: Перечисляет Временные метки подписанного сертификата (SCTS).
Проблемные сертификаты
Когда вы посещаете веб-сайт, адрес которого начинается с https, и возникает проблема с сертификатом TLS, отображается страница с ошибкой. В статье Что означают коды предупреждения о безопасности? описаны распространенные ошибки сертификатов.
Чтобы просмотреть проблемный сертификат, выполните следующие действия:
- На странице предупреждения нажмите
- Нажмите Просмотреть сертификат.
Теперь отобразится неверный сертификат.