Какой лучший способ предотвратить перехват пакетов без использования SSL? - PullRequest
4 голосов
/ 13 июля 2011

Я хочу защитить страницу входа в свой блог.Когда мой браузер отправляет мой пароль на сервер (http), я не хочу, чтобы кто-нибудь украл его.Как бы вы это сделали?

Ответы [ 7 ]

4 голосов
/ 13 июля 2011

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

Для этой цели, по-видимому, существует пара классов JS, например, http://www.jcryption.org/ jCryption использует алгоритм шифрования с открытым ключом RSA для шифрования.

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

Я бы рекомендовал использовать SSL для всех входов в систему! Лично я туннелирую весь свой трафик через VPN, поэтому я знаю, что он немного безопаснее в общественных местах.

3 голосов
/ 13 июля 2011

Вы можете разрешить использование страницы входа только через туннель SSH;) Однако я думаю, что тогда SSL будет намного менее обременительным.

Предложения по javascript, я не знаю, что мне о них думать. Ключ должен быть разделен между клиентом и сервером, поэтому для этого также необходим безопасный обмен ключами. Это совсем не тривиально, и я подозреваю, что очень мало действительно хороших библиотек для этого. Базовое предложение «зашифровать» что-то с помощью javascript наверняка просто потерпит неудачу.

2 голосов
/ 13 июля 2011

Используйте JS для выполнения RSA.Зашифровал его перед публикацией на сервере.Затем расшифруйте его, когда достигнете сервера

1 голос
/ 13 июля 2011

Пожалуйста, ознакомьтесь со следующей ссылкой для шифрования открытым / закрытым ключом RSA с помощью библиотеки javascript под названием jEncryption .

0 голосов
/ 14 июля 2011

Если вы спросите меня, я не буду использовать логины без шифрования SSL. Как только сеансы задействованы, я переключаюсь на SSL, поскольку кража сеансов без SSL слишком проста. Также SSL позволяет мне защищать свои страницы с помощью Basic-Auth, поэтому мне даже не нужен сеанс.

Так что, возможно, лучше всего рассмотреть возможность перехода вашего блога на SSL полностью. Обратите внимание, что для использования SSL на вашем сервере вам просто необходим сертификат SSL. Существует компания, которая предлагает free ssl certificate за 0 $ в год. Также обратите внимание, что Google и все основные поисковые системы могут обрабатывать https страницы без проблем.

Я пропускаю 1000 строк ответа о том, как реализовать собственную схему защищенных паролей с использованием JavaScript и AJAX по небезопасным линиям, поскольку это трудно реализовать.

Мне приходят на ум два варианта безопасного входа в систему без JavaScript и без SSL :

  • Существует дешевое устройство one time password USB. Вы просто подключаете его к USB-порту, нажимаете кнопку, он создает OTP и все готово. Поскольку это OTP, он действителен только один раз, поэтому нет повтора и нет проблем при его прослушивании.

  • Другая вещь - OpenID, которая используется здесь в стеке потока. OpenID не требует SSL между сервером и клиентом. Обратите внимание, что этот USB-токен, указанный выше, также уже поддерживает OpenID.

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

Одна большая оговорка, однако:

Если вы используете сеансы по небезопасным линиям и входы в систему обычно используют сеансы, убедитесь, что сеанс защищен хотя бы по IP-адресу. Это должно быть реализовано на стороне сервера. Таким образом, если кто-то украл файл cookie сеанса, сеанс не может (ab) использоваться при условии, что вор не использует тот же wLAN (или компьютер), что и вы.

0 голосов
/ 13 июля 2011

Вы можете использовать Digest Authentication

0 голосов
/ 13 июля 2011

Semisecure логин? Если вы используете WordPress, вы можете посмотреть на это.

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