Как HTTPS избегает, чтобы ключ для шифрования был перехвачен в первую очередь?

396
Zequez

Когда два компьютера устанавливают соединение HTTPS, они должны решить, какой ключ будет использоваться, верно?

Итак, чтобы сделать это, в какой-то момент ключ должен перемещаться в незашифрованном виде с одного компьютера на другой, нет? В этот момент не может ли человек-посредник понюхать его и получить ключ, чтобы он мог просто читать / записывать зашифрованные пакеты вместе с ним?

Как протокол HTTPS избегает этого?

3

2 ответа на вопрос

3
jlliagre

SSL использует два ключа, приватный и публичный. Отправляется только открытый ключ, и этот ключ не имеет значения, если вы не знаете личный.

Каждая сторона шифрует данные, которые она отправляет, с помощью открытого ключа другой (это немного сложнее, но у вас есть идея). Только получатель может (легко) декодировать трафик.

Это означает, что перехват трафика - не такая уж большая проблема, хотя, конечно, атаки методом "грубой силы" будут зависеть от размера ключа и используемого алгоритма.

Атаки «человек посередине», основанные на перехвате трафика и замене сервера, представляют более высокий риск, но обычно предотвращаются использованием доверенных центров сертификации. Однако он будет побежден, если вы проигнорируете предупреждения, которые отображает ваш браузер, когда сертификат сервера не соответствует имени сайта или не был выдан доверенной цепочкой органов (например, самозаверяющий сертификат).

1
Chris Nava

Протокол HTTPS / SSL использует закрытые / открытые ключи для обеспечения безопасного соединения. http://en.wikipedia.org/wiki/Transport_Layer_Security