Когда вы начали читать этот комикс, ваш браузер отобразил зеленый значок в адресной строке.
Как это произошло?
Но сначала, им нужно было договориться о том как обеспечить безопасное соединение.
Этот процесс переговоров между браузером и сервером называется 'рукопожатием'
Это происходит очень быстро. Мы покажем вам как это работает.
Вам слово, ребята!
Готовы? Вот как выглядит 'рукопожатие' в слоумо.
Готово!
Давай еще раз, только быстрее.
Е-Щ-Ё !
Да хорош!
Попробуем разобраться. Шаг за шагом.
Я отправляю Compugter список версий SSL/TLS и алгоритмов шифрования, с которыми могу работать. Сейчас я предпочитаю TLS 1.3, поэтому также отправляю key_share.
Модное словечко для списка алгоритмов шифрования - 'шифрокомплект'.
Так что, можете почувствовать себя профи, используя это слово за ужином.
Протоколы SSL и TLS все время развиваются, скоро мы расскажем об этом подробнее.
А я, тем временем, жду ответа от ПеСеля.
Я выбираю TLS 1.3 и набор шифров (cipher suite) и также отправляю свой key_share. С этого момента TLS 1.3 шифрует остальную часть рукопожатия.
Сразу после этого я отправляю свой сертификат, в котором содержится мой открытый ключ, чтобы они могли подтвердить мою личность.
Я проверяю сертификат ПеСеля, чтобы убедиться что он законный.
Поскольку мы оба ранее отправили key share, мы можем вывести один и тот же секрет, обеспечивая конфиденциальность.
Начиная с ServerHello (шаг второй), рукопожатие зашифровано.
Они обмениваются сообщениями Finished, чтобы доказать, что получили один и тот же секрет — и за один раунд-трип ключи сеанса готовы.
Пароли, данные кредитных кард, всё остальное.
Довольно просто, правда?
В следующий раз при защищенном соединении с сайтом использующим HTTPS, отбейте вашему бразеру шаку потому что теперь вы знаете их секретное рукопожатие.