На самом деле можно установить зашифрованное соединение между совершенно незнакомыми людьми без сертификата, используя Диффи-Хеллмана или аналогичные алгоритмы обмена ключами.
Алиса и Боб договариваются о случайном числе x ,Алиса вычисляет x a , где a - большое простое число, известное только Алисе, и отправляет его Бобу.Боб вычисляет x b и отправляет его Алисе.Алиса вычисляет (x b ) a , а Боб вычисляет (x a ) b .Поскольку (x a ) b = (x b ) a = x ab , Алиса и Боб теперь знают число x ab и могут использовать его в качестве ключа шифрования.Прелесть этого в том, что Боб не знает a , Алиса не знает b , и любые подслушивающие не знают ни одного числа (потому что вычисление a с x a , в случае больших чисел, потребуются годы).
Как указывает суперкат, это само по себе все еще восприимчиво к человеку.атака в середине, и поэтому по крайней мере один конец транзакции должен пройти аутентификацию с использованием сертификата.Чтобы быть точным, однако, это не сервер, который проверяет это, это браузер, и большинство браузеров позволяют пользователю продолжать работу, если сертификат недействителен (или, возможно, даже мусор).В этом случае соединение все равно будет значительно более безопасным, чем обычное соединение.Для прослушивания вам необходимо иметь возможность манипулировать IP-маршрутизацией или поиском DNS, и вам нужно будет настроить его до того, как соединение будет установлено в первый раз, что нелегко сделать.
Кстатипары ключей в сертификатах не используются для шифрования реального трафика;они используются для создания нового одноразового ключа для гораздо более быстрого симметричного шифра (такого как DES), который затем выполняет остальную часть работы.