Шифрование с открытым ключом является основой современной безопасности веб-интернета. В центре этой системы лежит Secure Sockets Layer (SSL). Эта технология была разработана компанией Netscape для обеспечения безопасного взаимодействия между браузерами и веб-серверами. Однако изначально она не предназначалась для использования в качестве единственного и постоянного решения.
Сегодня термин SSL считается устаревшим. Фактическим действующим стандартом является Transport Layer Security (TLS).
Вам не нужно быть программистом, чтобы заметить разницу в повседневном веб-сёрфинге. Она находится прямо в адресной строке. Обратите внимание на букву «s» в https.
Ранее вы видели http. Теперь вы видите https.
Обычно рядом отображается небольшой значок замка. Иногда он находится в строке состояния внизу окна, а иногда — в поле адреса URL. Смысл одинаков: ваши данные зашифрованы. Если вы входите в банковский аккаунт или используете PayPal, вы должны видеть этот замок. Ваши платёжные реквизиты не должны передаваться в открытом виде.
«TLS и SSL в значительной степени полагаются на центры сертификации для проверки подлинности.»
Но как именно браузер узнаёт, что сайт безопасен? Это не магия. Это процесс рукопожатия с центром сертификации (Certificate Authority, CA).
Когда вы запрашиваете защищённую страницу, процесс запускается. Браузер добавляет букву «s» к «http», а затем проверяет три конкретных условия перед загрузкой страницы:
- Доверие : Выдаётся ли сертификат организацией, которой доверяет браузер?
- Действительность : Активен ли сертификат в данный момент и не истёк ли его срок?
- Соответствие : Действительно ли сертификат принадлежит сайту, который вы посещаете?
Если хотя бы одна из этих проверок не проходит, браузер выдаст предупреждение и не позволит продолжить просмотр без внимания к этому факту. Именно благодаря этой системе вы можете быть уверены, что конфиденциальная информация передаётся безопасно. Протокол эволюционировал, но его основная задача остаётся неизменной: защищать ваши данные от перехвата.
Рукопожатие, которое защищает ваши данные
Именно здесь происходит настоящая защита.
Браузер берет полученный вами открытый ключ и использует его для шифрования случайно сгенерированного симметричного ключа. Всё достаточно просто.
Но вот в чём подвох. Шифрование с открытым ключом требует больших вычислительных ресурсов. Оно требует серьёзной мощности процессора. Выполнение таких операций для каждого отдельного пакета данных остановило бы работу вашего браузера. Поэтому системы так не поступают.
Вместо этого они используют гибридный подход.
Представьте себе защищённый туннель. Открытый ключ — это всего лишь дверной звонок. Он пропускает начальное сообщение. После этого вы переключаетесь на симметричное шифрование для остальной части общения. Это быстрее. Это легче. Это стандартный способ, которым два компьютера начинают защищённую сессию.
Один компьютер создаёт симметричный ключ. Он оборачивает его, используя шифрование с открытым ключом. Отправляет его другой стороне. Другая сторона разблокирует его. Теперь обе стороны имеют одинаковый секретный код.
С этого момента они общаются, используя симметричное шифрование.
И вот часть, которую большинство пользователей упускает. Ключ не сохраняется надолго.
Когда сессия заканчивается, ключ уничтожается. Он отбрасывается. Исчезает.
Если вы начнёте новую сессию, будет создан новый симметричный ключ. Весь процесс повторяется.
«После завершения сессии каждый компьютер отбрасывает симметричный ключ, использованный для этой сессии.»
Это называется прямой секретностью (forward secrecy). Или, по крайней мере, её базовой версией. Это означает, что даже если хакер похитит один ключ, он бесполезен для чего-либо ещё. Каждая сессия изолирована. У каждой сессии свой уникальный замок.
Почему это важно?
Потому что это ограничивает ущерб. Если ваше HTTPS-соединение перехвачено, злоумышленник получает только данные этой одной сессии. Он не получает историю ваших паролей. Он не получает ваши старые письма. Он не получает ключ от всего королевства.
Ключ временный. Сессия эфемерна. Защита непрерывна.
Это танец создания и уничтожения. Ключи рождаются. Данные текут. Ключи умирают.
И вы даже не замечаете этого.
























