Как работает TLS/SSL
Зачем это знать?
Помимо изучения симметричного и асимметричного шифрования в теории, интересно взглянуть как и где это все применяется на практике. Самый очевидный ответ - это TLS/SSL. Ведь WEB тестируют практически все - а HTTPS сейчас нужно использовать повсеместно в Интернетах.
Что такое TLS/SSL?
SSL (Secure Sockets Layer) - криптографический протокол, обеспечивающий безопасную связь. Предшественник TLS.
TLS (Transport Layer Security) - тоже криптографический протокол (современный стандарт) для безопасной передачи данных между узлами в сети. Основан на спецификации SSL 3.0.
Как работает TLS?
Как мы уже знаем, симметричное шифрование происходит быстрее, чем ассиметричное. Но для этого нужно безопасно обменяться общим ключом.
Поэтому в TLS применяется микс симметричного и асимметричного шифрования.
Упрощенное, схема начала коммуникации в TLS выглядит так:

Что же происходит в этой схеме:
- Клиент (или браузер) хочет получить доступ к веб сайту (серверу) по защищенному каналу. Поэтому клиент посылает HelloRequest. Туда он включает набор алгоритмов шифрования, которые он поддерживает и рандомное значение.
- Сервер получает запрос от клиента и проверяет, что поддерживает хотя бы один из предложенных алгоритмов шифрования.
- В ответ на запрос - сервер посылает свой валидный SSL сертификат и свое рандомное число.
- Клиент проверяет, что сертификат сервера не истек и что ему можно доверять. Сертификат помимо прочего, включает в себя публичный ключ сервера.
- Клиент генерирует с помощью двух рандомных чисел генерирует ключ сессии.Этот ключ в дальнейшем будет использоваться для шифрования сообщений между клиентом и сервером. Затем клиент шифрует этот ключ сессии с помощью публичного ключа сервера.
- Зашифрованный ключ отправляется серверу. На своей стороне, он расшифровывает ключ с помощью своего приватного ключа.
- Теперь и у клиента и у сервера есть один и тот же секретный ключ. С помощью него, они будут шифровать сообщения (симметричными алгоритмами шифрования).
Подробнее?
Как всегда, для желающих узнать весь этот процесс поглубже - оставляю ссылку на видео пояснение от Computerphile.