Опасность отключения проверки сертификата в Java - PullRequest
2 голосов
/ 26 ноября 2011

Этот вопрос может показаться новичку, и, возможно, 'глупый' вопрос, но, пожалуйста, потерпите меня ...

Я все еще пытаюсь найти способ получить мою Javaприложение, чтобы использовать хранилище ключей, расположенное внутри файла JAR, и я очень соблазн просто отключить проверку сертификата все вместе, используя метод здесь. Однако, прежде чем я это сделаю, я просто хотел подтвердить, почему вы должныне делайте этого и примените ли эти причины ко мне.

Я слышал, что никакая проверка сертификата не может сделать ваше приложение подверженным атакам "Человек посередине" (я думаю), но даже если я правЯ не уверен, что это на самом деле, так что, пожалуйста, кто-нибудь может объяснить.Хотя, если они являются тем, кем, как я думаю, они могут быть, я не уверен, будет ли мое приложение когда-либо им подчиняться, потому что мое приложение использует только соединение SSL для получения данных с моего веб-сайта, поэтому пользователи не сообщают приложению, какие URL-адресапосетить - если это имеет смысл ...

Ответы [ 2 ]

5 голосов
/ 26 ноября 2011

Вот сценарий атаки.Другие могут захотеть внести еще немного.

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

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

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

1 голос
/ 26 ноября 2011

Хотя, если они такие, как я думаю, они могут быть, я не уверен, моё заявление когда-либо будет им подчинено, потому что моё заявление только использует соединение SSL для получения данных с моего сайта, поэтому пользователи не сообщите приложению, какие URL-адреса следует посетить - если это имеет смысл ...

Если вы подключаетесь к серверу по протоколу SSL и не выполняете аутентификацию, фактически у вас нет безопасности.
Вы не представляете, с какой конечной точкой вы разговариваете.

Тот факт, что пользователь не вводит URL-адрес, а URL-адрес является жестко заданным URL-адресом для вашего сайта, не имеет значения. Простой прокси-сервер, который перенаправляет данные с вашего клиента на сервер, может украсть все данные вашего клиента, поскольку нет никакой аутентификации (это атака «человек посередине»).

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

...