Альтернатива SSL - шифрование пароля с помощью JavaScript, отправка в PHP для расшифровки

Я создаю веб-сайт, и мои способы оплаты будут Google Checkout и Paypal. Там будут ссылки / кнопки, которые будут перенаправлять пользователя на безопасные сайты Google / Paypal для обработки платежей. Это означает, что мне не нужны дополнительные 150 долларов в год и сложность установки SSL-сертификатов для моего сайта.

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

Я считаю, что это можно реализовать с помощью криптографии с открытым ключом. Допустим, процесс происходит примерно так:

  1. Открытый ключ находится во внешнем файле JavaScript, закрытый ключ в PHP на сервере
  2. Пользователь вводит свое имя пользователя и пароль в форму и нажимает «Отправить»
  3. JavaScript запускается и шифрует пароль, сохраняя его обратно в текстовое поле
  4. Форма отправляется на сервер, и пароль дешифруется с помощью PHP
  5. Обычный текстовый пароль в PHP обрабатывается и хешируется, а затем сравнивается с хешем в базе данных.
  6. Возможное подобное процесс для функций регистрации / изменения пароля.

Я думаю, что что-то вроде RSA поможет. Но я искал в сети рабочую библиотеку JavaScript, чтобы сделать это, но ни одна из них не кажется совместимой с доступными библиотеками PHP. В любом случае ему необходимо сгенерировать набор ключей, совместимых с JavaScript и PHP.

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

NB: Пожалуйста, не размещайте кучу ссылок на автономные библиотеки шифрования Javascript или PHP, я уже нашел их в Google. На самом деле это бесполезно. Что мне нужно, так это код для шифрования JavaScript И дешифрования PHP, который действительно гармонично работает вместе для получения желаемого результата, описанного выше.

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

Большое спасибо!

5
задан zuallauz 20 April 2011 в 02:37
поделиться