Предотвращение человеку в средней атаке при использовании HTTPS

StackOverflow https://stackoverflow.com/questions/3075489

Вопрос

Я пишу маленькое приложение, похожее на Omegle. У меня есть HTTP-сервер, написанный в Java и клиенту, который является HTML-документом. Основным способом связи является HTTP-запросами (длинный опрос).

Я внедрил какую-то безопасность, используя протокол HTTPS, и у меня есть SCARECID для каждого клиента, который подключается к серверу. Когда клиент подключается, сервер дает ему PUCKIDID, который клиент всегда должен отправлять обратно, когда он хочет запрос.

Я боюсь человека в средней атаке здесь, у вас есть какие-либо предложения о том, как я мог защитить приложение от такой атаки.

Обратите внимание, что это приложение является сборкой для теоретических целей, оно никогда не будет использоваться по практическим причинам, поэтому ваши решения не должны быть обязательно практичными.

Это было полезно?

Решение

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

Другие советы

Просто включение HTTPS недостаточно хорош, потому что веб-сайт приносит слишком много осложнений.

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

Это также хорошая идея, чтобы пользователи могли получить доступ только к сайту через набрав https://<yourdomain> В адресной строке это единственный способ убедиться, что сеанс HTTPS выполнен с действительным сертификатом. Когда вы напечатаете https://<yourdomain>, браузер откажется от того, чтобы позволить вам на сайт, если сервер не дает допустимого сертификата для <yourdomain>.

Если вы просто введите <yourdomain> Без HTTPS: // спереди, браузер не позаботится о том, что произойдет. Это имеет два последствия, которые я могу подумать о верхней части головы:

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

  2. Злоумышленник может эмулировать сервер, но без HTTPS он сделает свое собственное крепежное подключение к реальному серверу и станет прокси-сервером ClearText между вами и сервером, он теперь может запечатлеть весь ваш трафик и делать все, что он хочет, потому что он принадлежит вашу сессию.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top