Compare Revisions
Сертификат защищённого веб-сайта
Revision 292587:
Revision 292587 by Goudron on
Revision 304018:
Revision 304018 by Goudron on
Keywords:
безопасность просмотр
безопасность просмотр
Search results summary:
Веб-сайты предоставляют Firefox сертификаты, чтобы идентифицировать себя. Узнайте, как Firefox проверяет подлинность сайтов, которые вы посещаете.
Веб-сайты предоставляют Firefox сертификаты, чтобы идентифицировать себя. Узнайте, как Firefox проверяет подлинность сайтов, которые вы посещаете.
Content:
Сертификаты [https://developer.mozilla.org/docs/Web/Security/Transport_Layer_Security безопасности транспортного уровня (Transport Layer Security, TLS)] для защищенных веб-сайтов проверяют права собственности и целостность информации на веб-сайтах, которые вы посещаете. В этой статье объясняется, как это работает.
__TOC__
=Какие веб-сайты используют сертификаты?=
Веб-сайты, адреса которых начинаются с '''https''', используют сертификаты сервера TLS. Веб-сайты, использующие сертификаты сервера TLS, гарантируют две вещи:
* Администратор веб-сайта владеет доменным именем или контролирует его, гарантируя, что пользователи подключаются к законному сайту, а не к поддельной или вредоносной копии веб-сайта.
* Зашифрованный обмен данными по протоколу TLS между браузером и веб-сайтом защищен от прослушивания или вмешательства посторонних лиц.
=Цепочка доверия=
Браузеры, такие как Firefox, проверяют сертификаты с помощью иерархии, называемой '''цепочкой доверия'', в которую обычно входят по меньшей мере три сертификата:
* Корневой сертификат '''(привязка доверия)'''
* Один или больше промежуточных сертификатов
* Сертификат TLS-сервера '''(конечная сущность)'''
;[[Image:chain-of-trust]] <!-- Localizers: "chain-of-trust" image is optional -->
Корневой сертификат принадлежит [https://ru.wikipedia.org/wiki/Центр_сертификации Центру сертификации] (CA), которому браузер доверяет выдавать другие сертификаты. Как правило, корневой сертификат выдает один или несколько промежуточных сертификатов, которые затем используются для выдачи сертификатов сервера TLS организациям, которые могут продемонстрировать контроль над доменами веб-сайтов, указанными этими сертификатами.
Сертификаты основаны на криптографии с открытым ключом, в которой асимметричная пара ключей содержит два математически связанных ключа:
* '''Закрытый ключ:''' Этот ключ хранится в секрете его владельцем и используется для криптографических операций, таких как подписание данных (включая сертификаты) или расшифровка информации, зашифрованной с помощью открытого ключа
* '''Открытый ключ:''' Этот ключ является общедоступным и используется для проверки подписей, созданных с помощью закрытого ключа, или для шифрования информации, которую может расшифровать только закрытый ключ
Сертификаты открытых ключей содержат следующую информацию:
* Сведения о центре сертификации (CA), выдавшем сертификат
* Открытый ключ, принадлежащий организации, получившей сертификат.
* Указание сведений об организации, у которой хранится закрытый ключ (прочитайте [[#w_soderzhimoe-sertifikata|Содержимое сертификата]] ниже. Для сертификатов сервера TLS это, прежде всего, доменное имя веб-сайта).
Теперь мы можем описать, как Firefox определяет, является ли веб-сайт безопасным.
==Как Firefox проверяет целостность сертификата?==
Вот как Firefox использует цепочку доверия для проверки сертификатов TLS-серверов:
# Firefox загружает сертификат веб-сайта, который вы посетили.
# Firefox проверяет сертификат по своей внутренней базе данных доверенных центров сертификации (CAs).
#* Он использует открытый ключ сертификата корневого центра сертификации, чтобы убедиться, что корневой сертификат и промежуточные сертификаты были должным образом подписаны по цепочке с сертификатом сервера TLS, предоставленным веб-сайтом.
# Firefox проверяет информацию в сертификате, чтобы убедиться, что веб-сайт, к которому вы подключены, соответствует веб-сайту, указанному в сертификате.
# Firefox генерирует симметричный (одиночный) ключ для шифрования HTTP-трафика для соединения.
# Firefox шифрует симметричный ключ открытым ключом сервера, который содержится в сертификате сервера.
# Закрытый ключ, который находится на веб-сервере, расшифровывает необходимые данные подключения для завершения так называемого ''TLS-рукопожатия''.
После этого между Firefox и веб-сайтом может осуществляться защищенная связь.
=Просмотр сертификата=
Чтобы просмотреть сертификат, выполните следующие действия:
# Нажмите значок замка [[Image:Fx89Padlock]] в адресной строке.
# На открывшейся [[Site Information panel|панели Информация о сайте]] нажмите {button Защищённое соединение}.
#; [[Image:Fx134SiteInfo-ConnectionSecure]]
# На следующей панели нажмите {button Подробнее}
#; [[Image:Fx134SiteInfo-MoreInfo]]
# В открывшемся [[Firefox Page Info window|окне Информация о странице]] нажмите {button Просмотреть сертификат}
#; [[Image:Fx134SiteInfo-ViewCert]]
Теперь Firefox откроет страницу ''about:certificate'', чтобы отобразить информацию о сертификате для веб-сайта, на котором вы находитесь:
;[[Image:Fx134SiteInfo-AboutCert]]
На трёх вкладках слева направо показаны сертификат TLS-сервера, промежуточный сертификат и корневой сертификат.
=Содержимое сертификата=
Сертификаты TLS-серверов содержат следующую информацию:
* '''Субъект:''' Содержит необязательные атрибуты, такие как название веб-сайта и другую информацию об организации, владеющей сертификатом.
* '''Издатель:''' Идентифицирует организацию CA, выдавшую сертификат.
* '''Срок действия:''' Показывает, как долго действителен сертификат.
* '''Расширение альтернативного имени субъекта:''' Содержит список адресов веб-сайтов, для которых действителен сертификат.
* '''Информация об открытом ключе:''' Перечисляет атрибуты открытого ключа сертификата.
* '''Серийный номер:''' Однозначно идентифицирует сертификат.
* '''Алгоритм подписи:''' Алгоритм, используемый для создания подписи.
* '''Отпечатки:''' Хэш файла сертификата в двоичном формате [https://wiki.openssl.org/index.php/DER DER].
* '''Использование ключа''' и '''Расширенное использование ключа''': Указывают, как пользователи могут использовать сертификат, например, для проверки подлинности на веб-сервере по протоколу TLS.
* '''Идентификатор ключа субъекта:''' Идентификатор, сгенерированный из открытого ключа сертификата TLS для идентификации сертификата.
* '''Идентификатор ключа центра сертификатов:''' Идентификатор, сгенерированный из открытого ключа CA как способ идентификации открытого ключа, соответствующего закрытому ключу, используемому для подписи сертификата.
* '''Точки распределения списков отзыва (CRL):''' Местоположения [https://csrc.nist.gov/glossary/term/certificate_revocation_list Списка отзыва сертификатов] (CRL) центра сертификации-эмитента.
* '''Доступ к информации о центрах сертификации:''' Содержит метод проверки для центра сертификации и промежуточный файл сертификата.
* '''Политики сертификата:''' Содержит указатели на тип сертификата TLS, которым он является (например, информация, подтвержденная при выдаче сертификата).
* '''Список SCT:''' Перечисляет [https://www.globalsign.com/en/blog/what-is-certificate-transparency Временные метки подписанного сертификата] (SCTS).
=Проблемные сертификаты=
Когда вы посещаете веб-сайт, адрес которого начинается с '''https''', и обнаруживается проблема с сертификатом TLS, браузер отобразит страницу с ошибкой. В статье [[What do the security warning codes mean?]] описаны распространенные ошибки сертификатов.
Чтобы просмотреть проблемный сертификат, выполните следующие действия:
# На странице предупреждения нажмите {button Дополнительно…}.
#; [[Image:Fx134SecurityWarning]]
# Нажмите ''Просмотреть сертификат''.
#; [[Image:Fx134SecurityWarning-ViewCert]]
Теперь отобразится неверный сертификат.
<!-- see discussion
=Удаление сертификатов=
Вы можете удалить сертификаты, совершив следующие действия:
# [[Template:optionspreferences]]
# Щёлкните на панели слева по {menu Приватность и Защита}.
# Прокрутите страницу до раздела '''Сертификаты'''.
# Щёлкните по кнопке {button Просмотр сертификатов…}.
#;Отобразится всплывающее окно '''Управление сертификатами''' со вкладкой {menu Ваши сертификаты}, выбранной по умолчанию, которая содержит список связанных сертификатов.
# Щёлкните по сертификату в списке.
# Щёлкните по кнопке {button Удалить…} в нижней части всплывающего окна.
#; Отобразится всплывающее окно подтверждения.
# Щёлкните по кнопке {button OK}.
#;Этот сертификат больше не будет отображаться на вкладке {menu Ваши сертификаты}.
-->
Сертификаты [https://developer.mozilla.org/docs/Web/Security/Transport_Layer_Security безопасности транспортного уровня (Transport Layer Security, TLS)] для защищенных веб-сайтов проверяют права собственности и целостность информации на веб-сайтах, которые вы посещаете. В этой статье объясняется, как это работает.
__TOC__
=Какие веб-сайты используют сертификаты?=
Веб-сайты, адреса которых начинаются с '''https''', используют сертификаты сервера TLS. Веб-сайты, использующие сертификаты сервера TLS, гарантируют две вещи:
* Администратор веб-сайта владеет доменным именем или контролирует его, гарантируя, что пользователи подключаются к законному сайту, а не к поддельной или вредоносной копии веб-сайта.
* Зашифрованный обмен данными по протоколу TLS между браузером и веб-сайтом защищен от прослушивания или вмешательства посторонних лиц.
=Цепочка доверия=
Браузеры, такие как Firefox, проверяют сертификаты с помощью иерархии, называемой '''цепочкой доверия'', в которую обычно входят по меньшей мере три сертификата:
* Корневой сертификат '''(привязка доверия)'''
* Один или больше промежуточных сертификатов
* Сертификат TLS-сервера '''(конечная сущность)'''
;[[Image:Chain of trust diagram]] <!-- Localizers: "chain-of-trust" image is optional -->
Корневой сертификат принадлежит [https://ru.wikipedia.org/wiki/Центр_сертификации Центру сертификации] (CA), которому браузер доверяет выдавать другие сертификаты. Как правило, корневой сертификат выдает один или несколько промежуточных сертификатов, которые затем используются для выдачи сертификатов сервера TLS организациям, которые могут продемонстрировать контроль над доменами веб-сайтов, указанными этими сертификатами.
Сертификаты основаны на криптографии с открытым ключом, в которой асимметричная пара ключей содержит два математически связанных ключа:
* '''Закрытый ключ:''' Этот ключ хранится в секрете его владельцем и используется для криптографических операций, таких как подписание данных (включая сертификаты) или расшифровка информации, зашифрованной с помощью открытого ключа
* '''Открытый ключ:''' Этот ключ является общедоступным и используется для проверки подписей, созданных с помощью закрытого ключа, или для шифрования информации, которую может расшифровать только закрытый ключ
Сертификаты открытых ключей содержат следующую информацию:
* Сведения о центре сертификации (CA), выдавшем сертификат
* Открытый ключ, принадлежащий организации, получившей сертификат.
* Указание сведений об организации, у которой хранится закрытый ключ (прочитайте [[#w_soderzhimoe-sertifikata|Содержимое сертификата]] ниже. Для сертификатов сервера TLS это, прежде всего, доменное имя веб-сайта).
Теперь мы можем описать, как Firefox определяет, является ли веб-сайт безопасным.
==Как Firefox проверяет целостность сертификата?==
Вот как Firefox использует цепочку доверия для проверки сертификатов TLS-серверов:
# Firefox загружает сертификат веб-сайта, который вы посетили.
# Firefox проверяет сертификат по своей внутренней базе данных доверенных центров сертификации (CAs).
#* Он использует открытый ключ сертификата корневого центра сертификации, чтобы убедиться, что корневой сертификат и промежуточные сертификаты были должным образом подписаны по цепочке с сертификатом сервера TLS, предоставленным веб-сайтом.
# Firefox проверяет информацию в сертификате, чтобы убедиться, что веб-сайт, к которому вы подключены, соответствует веб-сайту, указанному в сертификате.
# Firefox генерирует симметричный (одиночный) ключ для шифрования HTTP-трафика для соединения.
# Firefox шифрует симметричный ключ открытым ключом сервера, который содержится в сертификате сервера.
# Закрытый ключ, который находится на веб-сервере, расшифровывает необходимые данные подключения для завершения так называемого ''TLS-рукопожатия''.
После этого между Firefox и веб-сайтом может осуществляться защищенная связь.
=Просмотр сертификата=
Чтобы просмотреть сертификат, выполните следующие действия:
# Нажмите значок замка [[Image:Fx89Padlock]] в адресной строке.
# На открывшейся [[Site Information panel|панели Информация о сайте]] нажмите {button Защищённое соединение}.
#; [[Image:Fx134SiteInfo-ConnectionSecure]]
# На следующей панели нажмите {button Подробнее}
#; [[Image:Fx134SiteInfo-MoreInfo]]
# В открывшемся [[View site information with Page Info|окне Информация о странице]] нажмите {button Просмотреть сертификат}
#; [[Image:Fx134SiteInfo-ViewCert]]
Теперь Firefox откроет страницу ''about:certificate'', чтобы отобразить информацию о сертификате для веб-сайта, на котором вы находитесь:
;[[Image:Fx134SiteInfo-AboutCert]]
На трёх вкладках слева направо показаны сертификат TLS-сервера, промежуточный сертификат и корневой сертификат.
=Содержимое сертификата=
Сертификаты TLS-серверов содержат следующую информацию:
* '''Субъект:''' Содержит необязательные атрибуты, такие как название веб-сайта и другую информацию об организации, владеющей сертификатом.
* '''Издатель:''' Идентифицирует организацию CA, выдавшую сертификат.
* '''Срок действия:''' Показывает, как долго действителен сертификат.
* '''Расширение альтернативного имени субъекта:''' Содержит список адресов веб-сайтов, для которых действителен сертификат.
* '''Информация об открытом ключе:''' Перечисляет атрибуты открытого ключа сертификата.
* '''Серийный номер:''' Однозначно идентифицирует сертификат.
* '''Алгоритм подписи:''' Алгоритм, используемый для создания подписи.
* '''Отпечатки:''' Хэш файла сертификата в двоичном формате [https://wiki.openssl.org/index.php/DER DER].
* '''Использование ключа''' и '''Расширенное использование ключа''': Указывают, как пользователи могут использовать сертификат, например, для проверки подлинности на веб-сервере по протоколу TLS.
* '''Идентификатор ключа субъекта:''' Идентификатор, сгенерированный из открытого ключа сертификата TLS для идентификации сертификата.
* '''Идентификатор ключа центра сертификатов:''' Идентификатор, сгенерированный из открытого ключа CA как способ идентификации открытого ключа, соответствующего закрытому ключу, используемому для подписи сертификата.
* '''Точки распределения списков отзыва (CRL):''' Местоположения [https://csrc.nist.gov/glossary/term/certificate_revocation_list Списка отзыва сертификатов] (CRL) центра сертификации-эмитента.
* '''Доступ к информации о центрах сертификации:''' Содержит метод проверки для центра сертификации и промежуточный файл сертификата.
* '''Политики сертификата:''' Содержит указатели на тип сертификата TLS, которым он является (например, информация, подтвержденная при выдаче сертификата).
* '''Список SCT:''' Перечисляет [https://www.globalsign.com/en/blog/what-is-certificate-transparency Временные метки подписанного сертификата] (SCTS).
=Проблемные сертификаты=
Когда вы посещаете веб-сайт, адрес которого начинается с '''https''', и обнаруживается проблема с сертификатом TLS, браузер отобразит страницу с ошибкой. В статье [[What do the security warning codes mean?]] описаны распространенные ошибки сертификатов.
Чтобы просмотреть проблемный сертификат, выполните следующие действия:
# На странице предупреждения нажмите {button Дополнительно…}.
#; [[Image:Fx134SecurityWarning]]
# Нажмите ''Просмотреть сертификат''.
#; [[Image:Fx134SecurityWarning-ViewCert]]
Теперь отобразится неверный сертификат.
<!-- see discussion
=Удаление сертификатов=
Вы можете удалить сертификаты, совершив следующие действия:
# [[Template:optionspreferences]]
# Щёлкните на панели слева по {menu Приватность и Защита}.
# Прокрутите страницу до раздела '''Сертификаты'''.
# Щёлкните по кнопке {button Просмотр сертификатов…}.
#;Отобразится всплывающее окно '''Управление сертификатами''' со вкладкой {menu Ваши сертификаты}, выбранной по умолчанию, которая содержит список связанных сертификатов.
# Щёлкните по сертификату в списке.
# Щёлкните по кнопке {button Удалить…} в нижней части всплывающего окна.
#; Отобразится всплывающее окно подтверждения.
# Щёлкните по кнопке {button OK}.
#;Этот сертификат больше не будет отображаться на вкладке {menu Ваши сертификаты}.
-->