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