Как браузер работает с SSL сертификатами
Независимо от каких-либо расширений браузеры должны всегда проверять основную информацию о сертификате, такую как подпись или издатель. Шаги проверки информации о сертификате:
- Проверка целостности сертификата. Выполняется с помощью криптографической операции Verify, выполняемой с открытым ключом. Если подпись недействительна, то сертификат считается поддельным, который был изменён после его выдачи третьей стороной, и отклоняется.
- Проверка действительности сертификата. Выполняется с помощью криптографической операции Decrypt и считыванием сопутствующей информации. Сертификат считается действительным в течение оплаченного клиентом периода либо срока годности. Срок годности сертификата – это срок гарантии подлинности владельца со стороны Удостоверяющего центра, осуществившего его выпуск. Браузеры отклоняют любые сертификаты со сроком годности, истёкшим до или начавшимся после даты и времени проверки.
- Проверка статуса отзыва сертификата. Выполняется с помощью криптографической операции Decrypt, загрузкой и сверкой c CRL. Ряд обстоятельств, например, обращение правоохранительных органов, обнаружение изменения исходной информации или подтверждение факта компрометации закрытого ключа сервера могут привести к тому, что сертификат станет недействительным до истечения срока его действия. Для этого сертификат добавляют в CRL на стороне Удостоверяющего центра. Центры сертификации на периодической основе выпускают новую версию подписанного CRL, который распространяется в общедоступных репозиториях. Браузеры получают и просматривают последнюю версию CRL при проверке сертификата. Главный недостаток такого подхода заключается в ограничении проверки периодом выдачи CRL. Браузер будет уведомлён об отзыве только после того, как получит актуальный CRL. В зависимости от политики подписывающего Удостоверяющего центра период обновления CRL может исчисляться неделями. При работе с TLSv2 и TLSv3 браузер может использовать протокол определения состояния сетевого сертификата OCSP, описанного в RFC 6960. OCSP позволяет браузеру запрашивать статус отзыва определённого сертификата в режиме онлайн (операция reply). При корректной настройке OCSP проверка наличия сертификата в CRL выполняется намного быстрее и позволяет избежать использования фактически отозванных сертификатов до следующего обновления CRL. Существует технология OCSP Stapling, позволяющая включать копию ответа на запрос состояния сертификата от Удостоверяющего центра в заголовки HTTP-ответов веб-сервера, что в свою очередь повышает производительность и скорость обмена данными.
- Проверка издателя сертификата по цепочке сертификатов. Сертификаты обычно связаны с несколькими Удостоверяющими центрами: корневым, который является владельцем открытого ключа подписи сертификатов, и рядом промежуточных, которые ссылаются на предыдущего владельца открытого ключа вплоть до корневого. Браузеры проверяют сертификаты каждого Удостоверяющего центров на предмет нахождения в цепочке доверия с корневым во главе. Для дополнительной безопасности большинство реализации PKI также проверяют, что открытый ключ Удостоверяющего центра совпадает с ключом, которым был подписан текущий сертификат. Таким образом, определяются самоподписанные сертификаты, т.к. они имеют одного и того же издателя только на том сервере, где были выпущены, либо были добавлены в список корневых сертификатов. Формат X.509 v3 позволяет определять какие именно сертификаты цепочки следует проверить. Данные ограничения редко влияют на обычного пользователя Интернета, хотя они довольно часто встречаются в корпоративных системах на этапе разработки и отладки.
- Проверка ограничения доменного имениУдостоверяющий центр может ограничивать действие сертификата на сервере с определённым доменным именем или перечнем дочерних доменов организации. Ограничения доменных имён часто используются для сертификатов промежуточного Удостоверяющего центра, приобретённых у Удостоверяющего центра, пользующегося всеобщим доверием, чтобы исключить возможность выпуска им действительных сертификатов для сторонних доменов.
- Проверка политики выпуска сертификатаПолитика выпуска сертификатов – это юридический документ, опубликованный Удостоверяющим центром, в котором подробно описываются процедуры выдачи и управления сертификатами. Удостоверяющие центры могут выдавать сертификат в соответствии с одной или несколькими политиками, ссылки на которые добавляются в информацию выпущенного сертификата, чтобы проверяющие стороны могли валидировать данные эти политики, прежде чем принять решение о доверии этому сертификату. Например, могут накладываться ограничения регион или временные (на период технологического обслуживания программного обеспечения Удостоверяющего центра) рамки.
- Проверка длины цепочки сертификатаФормат X.509 v3 позволяет издателям определять максимальное количество промежуточных удостоверяющих центров, которые могут поддерживать сертификат. Данное ограничение было введено после того, как в 2009-м году была продемонстрирована возможность подделки действительного сертификата путём включения самоподписанного сертификата в очень длинную цепочку.
- Проверка назначения открытого ключаБраузер проверяет назначение открытого ключа, содержащегося в сертификате шифрование, подписи, подпись сертификата и так далее. Браузеры отклоняют сертификаты, например, в случае обнаружения сертификата сервера с ключом, предназначенным только для подписи CRL.
- Проверка остальных сертификатов цепочкиБраузер выполняет проверку каждого сертификата цепочки. Если данные проверки завершились без ошибок, то вся операция считается действительной. Если возникают какие-либо ошибки, то цепочка помечается как недопустимая, и безопасное соединение не устанавливается.
Сертификат безопасности можно проверить непосредственно в браузере. Все современные браузеры отображают сведения о сертификате непосредственно в адресной строке. Признак установки защищённого соединения с веб-ресурсом представлен в виде замка в левой части адресной строки браузера. В случае ошибки будет отображаться перечёркнутое слово «HTTPS» или пиктограмма в виде открытого замка. В зависимости от вида браузера и его версии вид пиктограмм и поведение при работе с SSL-сертификатами может отличаться. Ниже приведены примеры изображений для различных версий современных браузеров:
Google Chrome
Mozilla Firefox
Opera
Microsoft Edge
Chrome for Android
Safari for iOS
Чтобы посмотреть детали сертификата, кликните по пиктограмме в виде замка и в появившемся меню кликните по пункту, связанному с безопасностью. Информация о сертификате появится после клика по соответствующей кнопке или по информационной ссылке.
Google Chrome
Mozilla Firefox
Microsoft Edge
Chrome for Android
В большинстве браузеров отображается предупреждение безопасности. Эти предупреждения информируют о том, что сертификат не прошёл проверку доверенного центра сертификации.
Существует ряд причин, по которым SSL-сертификат может считаться недействительным в браузере. Наиболее распространённые причины:
- Ошибки в процессе установки цепочки сертификатов, не хватает промежуточного сертификата;
- Срок действия SSL-сертификата истёк;
- SSL-сертификат действителен только для основного домена, а не для поддоменов;
- Используется самоподписанный SSL-сертификат, или корневой сертификат Удостоверяющего центра не добавлен в список доверенных на текущем устройстве;