Существует два основных способа, как почта устанавливает шифрованное соединение. В обоих случаях итог один — данные в пути зашифрованы. Разница лишь в моменте, когда включается защита.
STARTTLS. Этот способ работает так: сначала сервер и клиент соединяются «в открытую» — просто чтобы поздороваться и договориться, какие возможности у каждой стороны есть.
После этого они решают: «Давай продолжим по защищённому каналу» — и переключаются в режим TLS. То есть шифрование начинается не с первой секунды, а после того, как стороны убедились, что обе умеют его использовать.
TLS с самого начала (его ещё называют "implicit TLS"). Здесь защита включена сразу, без предварительных договорённостей. Всё общение с самого первого байта идёт через зашифрованный канал. Например, когда почтовый клиент подключается к серверу на порту 465 (SMTP) или 993 (IMAP) — это уже сразу «чистый» TLS.
Перед тем как начать защищённый обмен, серверы должны согласовать, как именно они будут шифровать данные. Этот процесс называют «рукопожатием» (handshake) — потому что стороны как бы пожимают друг другу руки и договариваются о правилах общения. Во время рукопожатия сервер сообщает клиенту:
- какие версии TLS он поддерживает;
- какими алгоритмами умеет шифровать;
- и самое главное — предъявляет сертификат, чтобы подтвердить свою подлинность.
Сертификат — это как паспорт сервера. Его выдают специальные организации — центры сертификации. В нём указаны:
- имя (домен) сервера;
- срок действия сертификата;
- кто его выдал;
- цифровая подпись, которая подтверждает, что сертификат настоящий, а не подделка.
Когда клиент получает сертификат, он проверяет: действительно ли он выдан доверенным центром и совпадает ли имя в сертификате с адресом сервера. Если всё в порядке — соединение считается безопасным, и дальше данные начинают шифроваться.
Иногда сервер отправителя может работать по принципу «если получится — шифрую». Это называется оппортунистическим TLS. Сервер сначала пытается установить защищённое соединение, но если другая сторона не поддерживает TLS, письмо всё равно отправляется — уже без шифрования. Такой вариант удобен для совместимости со старыми системами, но менее безопасен.
Более надёжный вариант — «только по TLS». В этом режиме сервер не отправит письмо, если не удастся установить защищённое соединение. Письмо будет ждать, пока получатель не станет доступен по безопасному каналу. Такую настройку обычно включают компании, которые работают с персональными данными или коммерческой перепиской и не могут позволить себе риск утечек.