Рукопожатие
Когда вы начали читать этот комикс, ваш браузер отобразил зеленый значок в адресной строке.
Как это произошло?
Ваш браузер соединился с нашим серевером, где размещен этот комикс, и они оба установили безопасное соединение для передачм сообщений.
Но сначала, им нужно было договориться о том как обеспечить безопасное соединение.
Если переговоры завершились неудачно, ваш браузер даст вам знать отобразив ошибку или предупреждение.
Если соглашение было достигнуто, ваш браузер будет рад отобразить зеленый замок в адресной строке.
РУКОПОЖАТИЕ
Этот процесс переговоров между браузером и сервером называется "рукопожатием"
Это происходит очень быстро. Мы покажем вам как это работает.
Браузерберд будет вашим браузером.
ПеСель будет нашим сервером.
Вам слово, ребята!
Готовы? Вот как выглядит "рукопожатие" в слоумо.
Левой
Правой
Вертикальная шака
Горизонтальная шака
Потеребонькаем
Готово!
Давай еще раз, только быстрее.
Левой - Правой - Шака - Поворотная шака - Потеребонькаем.
Е-Щ-Ё !
Да хорош!
Попробуем разобраться. Шаг за шагом.
Шаг первый: Левой. Или приветствие со стороны клиента.
Я отправляю список SSL/TLS версий и алгоритмов шифрования, с которыми я могу работать, Песелю.
Модное словечко для списка алгоритмов шифрования - "шифрокомплект".
Так что, можете почувствовать себя профи, используя это слово за ужином.
Протоколы SSL и TLS все время развиваются, скоро мы расскажем об этом подробнее.
А я, тем временем, жду ответа от ПеСеля.
Шаг второй: Правой. Или приветствие сервера.
Я выбираю наилучшую версию SSL/TLS и алгоритма шифрования среди тех, что мне отправил Браузерберд, и на основании моих настроек.
Я отправляю ответ с моим сертификатом, который включает в себя мой публичный ключ, таким образом, подтверждая кто я такой.
Шаг третий: Вертикальная шака. Или Обмен с ключом клиента.
Я проверяю сертификат ПеСеля, чтобы убедиться что он законный.
Я генерирую "предварительный ключ", чтобы мы оба могли его использовать позже, при создании уникального ключа.
Я зашифрую этот предварительный ключ с помощью публичного ключа ПеСеля и отправлю его ему.
Шаг четвертый: Горизонтальная Шака. Или изменение шифра.
Я использую мой приватный ключ чтобы расшифровать этот предварительный ключ.
До сих пор соединение между ними было открытым. У них не было защищенных сообщений.
Они использовали ассиметричные ключи (публичный и приватный) чтобы зашифровать предварительный ключ, так что никто не мог его перехватить.
Сейчас они оба сгенерировали одинаковый "общий секрет", который они собираются использовать как симметричный ключ.
От
Кому
Привет! Это тестовое сообщение, зашифрованное нашим общим секретным ключом. Ты можешь его прочесть? С этого момента, я все буду шифровать этим ключом.
И БраузерБерд отправляет тестовое сообщение.
От
Кому
Да! Все отлично. Убедись, что тоже можешь это прочесть. С этого момента, я все буду шифровать этим ключом.
ПеСель отвечает.
Шаг пятый: Потеребонькаем. Или, теперь все защищено.
Сейчас все данные проходящие между Браузербердом и ПеСелем защищены до конца сеанса.
Пароли, данные кредитных кард, всё остальное.
Довольно просто, правда?
В следующий раз при защищенном соединении с сайтом использующим HTTPS, отбейте вашему бразеру шаку потому что теперь вы знаете их секретное рукопожатие.
HTTPS, SSL, TLS, о блин! Похоже на ланч у меня был суп из акронимов. Что они все означают? Они все одно и то же?