Безопасно ли соединение HTTPS без действительного сертификата SSL? - PullRequest
51 голосов
/ 05 октября 2010

Я использую соединение HTTPS без действительного сертификата SSL. Безопасно ли соединение? Зашифрована ли информация?

Ответы [ 6 ]

55 голосов
/ 05 октября 2010

Соединение шифруется, даже если сертификат SSL недействителен (истек срок действия, змеиный жир, ненадежный центр сертификации и т. Д.). Проверка сертификата SSL просто гарантирует, что вы подключаетесь к тем людям, к которым вы подключаетесь. Шифрование не принесет вам пользы, если люди, расшифровывающие ваши данные, являются взломщиками, а не PayPal.

24 голосов
/ 28 марта 2013

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

Алиса и Боб договариваются о случайном числе 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), который затем выполняет остальную часть работы.

9 голосов
/ 05 октября 2010

Если не было проверки SSL-сертификатов, то кто-то, кто перехватил канал связи, мог получить запрос на подключение к https://www.acmebank.com,, отправить свой собственный запрос на www.acmebank.com и согласовать ключи с обоими acmebank.ком и пользователь.После этого он может получать каждый кусок данных от пользователя, расшифровывать с помощью ключа пользователя и шифровать с помощью ключа acmebank, а также поступать с данными из acmebank.com.Конечным результатом будет то, что ни пользователь, ни acmebank не увидят ничего плохого, но перехватчик сможет расшифровать все данные между пользователем и acmebank.Пользователь и банк будут использовать разные ключи для управления своим общением, но ни один из них не узнает об этом.Добавление какого-либо стандартного аспекта к протоколу для выяснения того, какой ключ используется, не поможет, поскольку перехватчик может обнаруживать такие запросы и соответствующим образом изменять ответы.

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

6 голосов
/ 07 января 2016

Не утруждайте себя недействительным сертификатом ssl. Теперь вы можете создать бесплатный действующий сертификат браузера для своего сервера так же легко, как и сертификат snakeoil (самоподписанный, недействительный браузер) Посмотрите https://letsencrypt.org/ это бесплатно и открыто для вкладов.

2 голосов
/ 05 октября 2010

Неа. То, что вы делаете при использовании HTTPS, говорит браузеру подключиться через другой порт (443), тогда как обычно вы подключаетесь через (80). Без сертификата сервер откажется от соединения. HTTPS просто невозможен без сертификата. Посмотрите здесь, и вы увидите, что сертификат необходим для его работы.

0 голосов
/ 09 апреля 2014

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...