Рукопожатие

Когда вы начали читать этот комикс, ваш браузер отобразил зеленый значок в адресной строке.

Как это произошло?

Ваш браузер соединился с нашим сервером, где размещен этот комикс, и они оба установили безопасное соединение для передачи сообщений.

Но сначала, им нужно было договориться о том как обеспечить безопасное соединение.

Если переговоры завершились неудачно, ваш браузер даст вам знать отобразив ошибку или предупреждение.
Если соглашение было достигнуто, ваш браузер будет рад отобразить зеленый замок в адресной строке.

Этот процесс переговоров между браузером и сервером называется 'рукопожатием'

Это происходит очень быстро. Мы покажем вам как это работает.

Браузерберд будет вашим браузером.
ПеСель будет нашим сервером.

Вам слово, ребята!

Готовы? Вот как выглядит 'рукопожатие' в слоумо.

Левой
Правой
Вертикальная шака
Горизонтальная шака
Потеребонькаем

Готово!

Давай еще раз, только быстрее.

Левой - Правой - Шака - Поворотная шака - Потеребонькаем.

Е-Щ-Ё !

Да хорош!

Попробуем разобраться. Шаг за шагом.

Шаг первый: Левой. Или приветствие со стороны клиента.

Я отправляю список SSL/TLS версий и алгоритмов шифрования, с которыми я могу работать, Песелю.

Модное словечко для списка алгоритмов шифрования - 'шифрокомплект'.

Так что, можете почувствовать себя профи, используя это слово за ужином.

Протоколы SSL и TLS все время развиваются, скоро мы расскажем об этом подробнее.

А я, тем временем, жду ответа от ПеСеля.

Шаг второй: Правой. Или приветствие сервера.

Я выбираю наилучшую версию SSL/TLS и алгоритма шифрования среди тех, что мне отправил Браузерберд, и на основании моих настроек.

Я отправляю ответ с моим сертификатом, который включает в себя мой публичный ключ, таким образом, подтверждая кто я такой.

Шаг третий: Вертикальная шака. Или Обмен с ключом клиента.

Я проверяю сертификат ПеСеля, чтобы убедиться что он законный.

Я генерирую 'предварительный ключ', чтобы мы оба могли его использовать позже, при создании уникального ключа.

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

Шаг четвертый: Горизонтальная Шака. Или изменение шифра.

Я использую мой приватный ключ чтобы расшифровать этот предварительный ключ.

До сих пор соединение между ними было открытым. У них не было защищенных сообщений.

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

Сейчас они оба сгенерировали одинаковый 'общий секрет', который они собираются использовать как симметричный ключ.
И БраузерБерд отправляет тестовое сообщение.
ПеСель отвечает.
Шаг пятый: Потеребонькаем. Или, теперь все защищено.
Сейчас все данные проходящие между Браузербердом и ПеСелем защищены до конца сеанса.

Пароли, данные кредитных кард, всё остальное.

Довольно просто, правда?

В следующий раз при защищенном соединении с сайтом использующим HTTPS, отбейте вашему бразеру шаку потому что теперь вы знаете их секретное рукопожатие.

Далее на HowHTTPS.works...

HTTPS, SSL, TLS, о блин! Похоже на ланч у меня был суп из акронимов. Что они все означают? Они все одно и то же?

Продолжение следует...