P
PingOn

Как работает HTTPS: что происходит за 300 мс до первой буквы сайта

CLIENT SERVER ClientHello ServerHello Finished ✓ Finished ✓

Вы набираете адрес сайта. Браузер отображает замочек. Кажется, всё просто. На самом деле за эти несколько сотен миллисекунд происходит один из самых элегантных протоколов в истории компьютерных сетей.

1994 год. Netscape и первый замочек

До середины 90-х весь веб-трафик ходил открытым текстом. Пароли, номера карт, личные сообщения — любой, кто мог прослушать канал, читал всё. Когда Netscape начал строить интернет-магазины, стало очевидно: так нельзя.

Инженер Тахер Эль-Гамаль разработал протокол SSL (Secure Sockets Layer) и внедрил его в Netscape Navigator 1.1 в 1994 году. Идея была проста: прежде чем передавать данные, клиент и сервер договариваются о шифровании. Никто посередине не может ни прочитать, ни подменить трафик.

Тахер Эль-Гамаль
Тахер Эль-Гамаль — автор протокола SSL, 1994. Сегодня его называют «отцом SSL».

Рукопожатие за 300 миллисекунд

Когда браузер открывает HTTPS-соединение, происходит TLS Handshake — обмен сообщениями, после которого обе стороны знают общий секрет, не передав его по сети.

Упрощённо это выглядит так: браузер говорит «умею вот такие алгоритмы шифрования». Сервер выбирает лучший, отдаёт сертификат с публичным ключом и подписью удостоверяющего центра. Браузер проверяет подпись, генерирует случайный секрет, шифрует его публичным ключом сервера и отправляет. Теперь оба знают секрет — и никто другой не знает, потому что расшифровать может только сервер своим приватным ключом.

Весь этот обмен в современном TLS 1.3 занимает один круговой путь — один round trip. При повторном подключении можно обойтись вообще без рукопожатия: 0-RTT. Для пользователя это незаметно, но инженеры потратили годы, чтобы выжать каждую миллисекунду.

От SSL к TLS: 30 лет эволюции

SSL 2.0 (1995) оказался уязвим и был быстро заменён SSL 3.0. Затем появился TLS 1.0 (1999) — фактически SSL 4.0, просто переименованный из дипломатических соображений. TLS 1.2 (2008) стал рабочей лошадкой на десятилетие. TLS 1.3 (2018) убрал устаревшие алгоритмы, ускорил рукопожатие и закрыл целый класс атак.

SSL 2.0, SSL 3.0, TLS 1.0 и TLS 1.1 сегодня официально признаны устаревшими. Браузеры блокируют сайты, которые их поддерживают. PingOn проверяет срок действия вашего сертификата именно потому, что просроченный TLS — одна из самых частых причин неожиданного падения сайта.

🐧 Забавный факт

Замочек в браузере придумала команда Netscape в 1994 году — просто как иконку, чтобы пользователи понимали, что соединение защищено. Сегодня Chrome показывает предупреждение вместо замочка для HTTP-сайтов и вовсе убрал иконку замка для HTTPS в 2023 году: исследования показали, что пользователи начали путать замочек с «сайт проверен и безопасен», хотя он означает лишь «соединение зашифровано».