Что такое HTTPS?
Основным протоколом, используемым для передачи данных между веб-браузером и веб-сайтом, является HTTPS (Hypertext Transfer Protocol — протокол передачи гипертекста). В HTTPS используется протокол TLS (Transport Layer Security — защита транспортного уровня) для шифрования HTTP-запросов и ответов, что делает его безопасной версией того же протокола (о чем и свидетельствует буква s, т. е. secure — безопасный). Он используется для различных задач, например для входа в учетные записи, в электронной коммерции и в почтовых веб-приложениях.
ПРИМЕЧАНИЕ. Сертификаты TLS часто называют сертификатами TLS/SSL.
Как работает HTTPS? (основы)
HTTPS — это реализация TLS-шифрования поверх HTTP-протокола. Поэтому при посещении сайта, поддерживающего HTTPS, пользователь получает перечисленные далее преимущества в плане безопасности.
- Аутентификация. Помогает проверить удостоверение веб-сайта. Например, если в строке браузера отображается https://www.entrust.com, вы можете быть уверены, что он принадлежит Entrust Corporation.
- Шифрование. Скрывает передаваемые данные от третьих лиц.
- Целостность. Позволяет проверить, не взломаны ли данные.
Почему аутентификация в HTTPS так важна?
Аутентификация веб-сайта важна, поскольку позволяет посетителю сайта проверить идентификационные данные и владельца веб-сайта, помогая отличить реальный веб-сайт от поддельного или мошеннического.
Посетитель сайта может оказаться на неправильном сайте в результате различного рода атак, например из-за отравления DNS-сервера, вредоносного ПО или фишинговых сайтов.
Связывание удостоверения с веб-сайтом обычно осуществляется сторонней организацией, например центром сертификации (ЦС), который следует строгим отраслевым правилам.
Как работает идентификация в HTTPS?
Для аутентификации на веб-сайте с поддержкой HTTPS подключающийся веб-браузер использует сертификат TLS/SSL, выданный центром сертификации, например Entrust.
Запрос сертификата TLS/SSL
Для того чтобы добавить идентификационные данные на веб-сайт, владелец веб-сайта должен запросить сертификат TLS/SSL и его должен выдать общедоступный доверенный центр сертификации, например Entrust. Сертификат TLS/SSL аналогичен цифровому паспорту для бизнеса, поскольку он включает в себя указанные далее проверенные данные.
- URL-адреса веб-сайта.
- Организация, которая владеет сайтом.
- Даты выдачи и истечения срока действия сертификата.
- Имя центра сертификации, выдавшего сертификат.
- Открытый ключ (используется для шифрования данных).
Чтобы получить сертификат TLS/SSL, владелец сайта должен выполнить следующие действия:
- Создать запрос на подпись сертификата (CSR), который включает в себя пару из открытого и закрытого ключа.
- Продемонстрировать центру сертификации, что он контролирует домены, которые должны быть включены в сертификат TLS/SSL.
- Подтвердить идентификационные данные организации и наличие у нее права запрашивать сертификат TLS/SSL от имени организации.
После завершения проверки выдается сертификат TLS/SSL, который владелец веб-сайта может затем установить на соответствующих сайтах. Затем сертификат TLS/SSL предъявляется каждый раз, когда посетитель сайта подключается к URL-адресу веб-сайта через https://.
Как веб-сайт передает свои идентификационные данные посетителям сайта
Когда посетитель сайта переходит на веб-сайт HTTPS, его веб-браузер получает копию сертификата TLS/SSL. Щелкнув значок замка слева на панели URL-адреса и выбрав пункт Подключение защищено и «Сертификат действителен», можно просмотреть сертификат веб-сайта, аналогичный изображенному ниже.
Посетитель сайта может открыть вкладку Подробно, чтобы просмотреть дополнительную информацию об организации, которая владеет сайтом, как на изображении ниже.
Сведения о сертификате SSL для entrust.com
Если в сертификате указаны реквизиты компании владельца веб-сайта (название компании, местонахождение), то это сертификат либо расширенной проверки (EV), либо проверки организации (OV).
Как браузер проверяет сертификат TLS/SSL
Браузер проведет ряд проверок, чтобы убедиться в достоверности и законности сертификата TLS/SSL, предъявленного веб-сайтом. Браузер выполнит следующие действия:
- Проверить цифровую подпись центра сертификации, чтобы убедиться в том, что сертификат был выдан центром сертификации в доверенном корневом хранилище браузера.
- Проверить, совпадает ли домен в сертификате SSL с доменом веб-сайта, на который переходит посетитель.
- Проверить, действителен ли сертификат SSL, не истек ли срок его действия и не был ли он отозван.
После выполнения этих проверок в браузере посетителя сайта появится надпись https://и значок замка напротив URL-адреса сайта.
На изображении ниже показано, что сертификат веб-сайта был выдан Entrust и что он содержит цифровую подпись от Entrust, по которой браузер посетителя сайта может проверить, действителен ли сертификат и выдан ли он Entrust.
Цифровая подпись на сертификате SSL, выданном центром сертификации Entrust
Корневые хранилища
Для проверки сертификата TLS/SSL веб-сайта браузеру требуется копия открытого ключа центра сертификации, который хранится в корневом хранилище браузера.
Корневое хранилище содержит цифровые сертификаты и связанные с ними открытые ключи каждого центра сертификации, которому оно доверяет.
Путь сертификации в случае с сертификатом SSL сайта Entrust.com
- Верхний сертификат — это корневой сертификат. Он предварительно загружается в корневом хранилище браузера.
- Средний сертификат является промежуточным сертификатом. Он подписан в цифровом виде центром сертификации, выдавшим корневой сертификат, и поэтому браузер также будет доверять ему. Браузер проверяет подпись с помощью открытого ключа Entrust из предварительно загруженного корневого сертификата.
- Нижний сертификат является сертификатом конечной сущности: это сертификат TLS/SSL Entrust, отправляемый веб-сервером при подключении браузера к сайту. Браузер может проверить сертификат конечной сущности, используя цифровую подпись промежуточного сертификата.
Как работает шифрование в HTTPS?
На любом HTTPS-сайте, где посетитель сайта вводит информацию (данные кредитной карты, данные для входа в систему, данные в заполненной форме и т. д.), перед отправкой данных на сервер браузер зашифрует данные с помощью открытого ключа из сертификата TLS/SSL веб-сайта.
Процесс шифрования позволяет закодировать передаваемые данные, чтобы их могли прочитать только уполномоченные лица. Таким образом, шифрование переводит легко читаемый человеком простой текст в непонятный зашифрованный текст.
Может показаться, что в результате шифрования данные изменяются случайным образом, однако шифрование выполняется по логичной и предсказуемой схеме. Но для расшифровки данных нужно, чтобы у принимающего данные сайта был правильный закрытый ключ.
Общий обзор процесса шифрования и расшифровки
Что такое ключ в криптографии?
Криптографический ключ — это строка символов, используемая в алгоритме шифрования для изменения простых текстовых данных таким образом, чтобы они выглядели случайными. Криптографический ключ используется для шифрования и расшифровки данных.
Какие существуют типы шифрования?
Существует два основных типа шифрования.
Симметричное шифрование
Симметричное шифрование включает в себя только один ключ, который используется совместно всеми взаимодействующими сторонами как для шифрования, так и для расшифровки сообщения. Хотя симметричное шифрование быстрее, чем асимметричное, оно не поддается масштабированию из-за сложностей, связанных с безопасным распространением ключа.
Асимметричное шифрование
Асимметричное шифрование (также известное как шифрование с открытым ключом) включает в себя два отдельных ключа. Один ключ (открытый) доступен всем и используется для шифрования. Второй ключ (закрытый) хранится в тайне у получателя и используется для расшифровки. Асимметричное шифрование медленнее, чем симметричное, но упрощает распространение ключей среди нескольких пользователей.
Что такое алгоритм шифрования?
Алгоритм шифрования — это метод преобразования простого текста в зашифрованный. Обычный текст преобразуется в зашифрованный, когда алгоритм шифрования изменяет данные предсказуемым образом с помощью закрытого ключа. Это позволяет преобразовать зашифрованный текст обратно в открытый текст с помощью ключа расшифровки.
Популярные алгоритмы симметричного шифрования:
- AES.
- 3-DES.
- SNOW.
Популярные алгоритмы асимметричного шифрования:
- RSA.
- Эллиптическая криптография (ECC).
Что такое подтверждение соединения TLS/SSL?
Соединение TLS начинается с последовательности операций, которую часто называют подтверждением подключения TLS/SSL. Этот процесс запускается, когда посетитель веб-сайта открывает веб-сайт, использующий сертификат TLS/SSL. Процесс начинается между устройством пользователя и веб-сайтом, к которому он подключается.
Этапы 1–2. Приветствие и согласование наборов шифров
Браузер посетителя веб-сайта и веб-сервер обмениваются «приветствиями» и согласовывают наборы шифров (алгоритмы шифрования), которые будут использоваться.
Этапы 3–4. Обмен сертификатами и ключами
Веб-сервер отправляет браузеру посетителя веб-сайта копию своего сертификата TLS/SSL и промежуточного сертификата вместе с открытым ключом. Браузер посетителя сайта проверяет действительность сертификата TLS/SSL на основании его цифровой подписи и корневого сертификата в корневом хранилище сертификата браузера.
Шаг 5. Завершение приветствия сервера
Если все проверки браузера проходят успешно, между браузером и веб-сервером устанавливается односторонний канал защищенного обмена данными.
Этапы 6–10. Обмен ключами клиента и изменение спецификаций шифрования
Веб-браузер и веб-сервер переходят с асимметричного шифрования на симметричное путем создания нового общего ключа шифрования, используя односторонний канал защищенного обмена данными, поскольку он быстрее и эффективнее. То, как создается этот общий ключ сеанса, зависит от набора шифров, который был определен после согласования набора шифров в шаге 2.
После создания ключа сеанса процесс подтверждения подключения TLS завершается, и веб-браузер и веб-сервер используют ключ сеанса для шифрования и расшифровки всех данных, которыми они обмениваются.