---
title: "Протокол https (http + tls)"
description: "Как известно веб сайты работают на веб серверах, а веб браузеры их отображают используя протокол htt..."
author: "semenenko"
published: "2019-05-24T14:08:43+00:00"
modified: "2019-05-24T14:08:43+00:00"
locale: "ru"
canonical_url: "https://yvision.kz/post/protokol-https-http-tls-833103"
markdown_url: "https://yvision.kz/post/protokol-https-http-tls-833103/markdown"
site_name: "Yvision.kz"
---

# Протокол https (http + tls)

> Как известно веб сайты работают на веб серверах, а веб браузеры их отображают используя протокол htt...

Как известно веб сайты работают на веб серверах, а веб браузеры их отображают используя протокол http. В какой-то момент к аббревиатуре http в адресной строке сайтов стала добавляться буква s (secure — безопасный).

HTTP — протокол передачи гипертекста, в настоящий момент используется для передачи произвольных данных. Повсеместно используется во всемирной паутине для получения информации с веб-сайтов. Использует 80 порт.

Иногда помимо просмотра сайта нам нужно что-то передать на сайт, например заходя в личный кабинет, мы вводим логин и пароль. И все что мы передаем на сайт передается в открытом виде. Таким образом любой кто сможет перехватить наш трафик узнает переданный логин и пароль, ну или например номер кредитной или дебетовой карты и их cvv.

Для решение этой проблемы начали шифровать соединение между браузером и сайтом. Такое шифрование происходит с помощью протокола SSL (TLS) и http превращается в https. HTTPS использует 443 порт.

SSL (secure sockets layer — уровень защищённых сокетов) — это криптографический протокол для повышения безопасности связи. Он использует асимметричное и симметричное шифрование.

TLS (transport layer security — безопасность транспортного уровня) — с версии 3.0 SSL переименовали в TLS. Так что это взаимозаменяемые понятия. Но название SSL прижилось, сегодня под SSL чаще всего подразумевают TLS.

Принцип работы SSL и TLS один и тот же. Поверх протокола TCP/IPустанавливается зашифрованный канал, внутри которого передаются данные по прикладному протоколу (http, ftp, smtp и т.д.).

Прикладной протокол «упаковывается» в TLS/SSL, а тот в свою очередь в TCP/IP. Таким образом данные передаются в зашифрованном виде. А расшифровать их сможет только та машина, которая устанавливала соединение.

ООсновные понятия

Для дальнейшего понимания статьи давайте пробежимся по основным понятиям. Это очень упрощенные определения, если хотите разобраться в них глубже, придется почитать другие статьи:

Симметричное шифрование — это когда информацию можно зашифровать и расшифровать с помощью одного и того же ключа. Более быстрое.

Асимметричное шифрование — это когда информацию зашифровывают одним ключом, а расшифровать могут только другим ключом. При таком шифровании всегда используется связка из двух ключей. Более медленное.

Ключи шифрования — какая-нибудь текстовая фраза, или просто текстовая последовательность, используемая при шифровании.

Протокол — определенный набор правил и инструкций.

SSL — протокол шифрования.

TLS — улучшенный протокол шифрования.

HTTP — протокол работы браузера с сайтом.

HTTPS — http зашифрованный с помощью ssl / tls.

РРассмотрим алгоритм установки соединения https

Пользователь заходит на сайт https. Браузер (далее клиент) сообщает серверу, какие алгоритмы шифрования ему известны, сервер сравнивает его со своим списком алгоритмов шифрования и находит тот, который поддерживается обеими сторонами. Здесь я подразумеваю симметричное шифрование.

Сервер выбирает, из доступных себе и клиенту, алгоритм шифрования и сообщает клиенту, что будет использоваться именно этот алгоритм.

Клиент запрашивает информацию о сертификате сервера.

Сервер высылает свой открытый ключ, в котором содержится его сертификат.

Клиент проверяет сертификат сервера. Совпадает ли название сертификата с именем сайта, не просрочен ли сертификат. Также проверяется наличие корневого сертификата, выданного надежным центром сертификации.

Далее клиент генерирует сеансовый ключ. Сеансовый ключ генерируется таким образом: клиент генерирует случайную последовательность цифр, шифрует её открытым ключом сервера и отправляет этот шифр на сервер.

Сервер расшифровывает этот шифр с помощью своего закрытого ключа. Учитывая, что алгоритм шифрования является асимметричным, расшифровать последовательность может только сервер. Если сеансовый ключ удается расшифровать, то сервер соглашается продолжить связь.

Таким образом устанавливается защищенный канал связи, клиент и сервер теперь все шифруют симметричным шифрованием (которое является более быстрым), используя сеансовый ключ, который есть только у клиента и сервера. Данные будут шифроваться и расшифровываться до тех пор, пока соединение не будет разорвано.

Но помимо шифрования соединения у https есть еще вторая задача. Подтвердить, что сайт действительно принадлежит именно этому человеку, или именно этой организации.

ВВиды сертификатов по типу validation

Domain Validation — сертификаты с проверкой домена. Подтверждают только то что сайт работает по этому доменному имени, на который выдан сертификат.

Organization Validation — сертификаты с проверкой организации. В дополнение к предыдущему виду сертификатов, данный подтверждает также, что сертификат получила компания — владелец сайта. Компания должна предоставить свои регистрационные данные удостоверяющему центру, тот все проверяет, а затем выпускает для компании такой сертификат. Сертификат содержит информацию о том, кто его подтвердил, и данные об организации.

Extended Validation — сертификаты с расширенной проверкой. Считаются самыми надежными. Чтобы получить данный сертификат, организация должна пройти двойную проверку. Как результат, в браузере появляется зеленый замочек с названием организации.

ВВиды сертификатов по количеству доменов на которые они выданы

Однодоменные (Single Certificate) — привязанные к одному домену, например для test.ru

Мультидоменные (Subject Alternative Name, Unified Communications Certificate, Multi Domain Certificate) — будут действовать для большего числа доменных имен, например test1.ru и test2.ru

Поддоменные (WildCard) — будут охватывать все поддомены указанного домена, например www.test.ru, mail.test.ru и test.ru

Хотите знать больше...

---

Source: [https://yvision.kz/post/protokol-https-http-tls-833103](https://yvision.kz/post/protokol-https-http-tls-833103)