В настоящее время я разрабатываю приложение на HTML + JS, основанное почти полностью на ajax-соединениях (с помощью вызова jQuery.ajax()
, чтобы упростить процесс).
Я думал о наилучшей практике для безопасных вызововбез использования HTTPS (по крайней мере, в настоящее время. Я не могу позволить себе платить за сертификат прямо сейчас).
На данный момент, единственное, что меня беспокоит, это шаги регистрации и входа в систему.Может быть, вход немного проще.Я думал о отправке имени пользователя и метки времени, а затем зашифровывать их, используя пароль пользователя. Таким образом, при этом я не буду отправлять пароль (сохраняя в качестве секрета, как в OAuth).Сервер должен проверить пользователя, расшифровать его с помощью пароля и сопоставить полученную метку времени с дешифрованным результатом.Сервер должен сохранить номер типа nonce в базе данных (чтобы избежать атак повторения), а затем вернуть пользователю еще один уникальный идентификатор (зашифрованный с помощью пароля пользователя).В этот момент пользователь должен начать использовать этот ключ для шифрования всей своей информации (и, возможно, другого одноразового номера) и отправить ее на сервер.Пожалуйста, исправьте меня, если вы обнаружите ошибку или утечку.
Очень большая проблема для меня - регистрация.Я не могу зашифровать с помощью обычного пароля информацию, потому что, если я сделаю это в JavaScript, любой может знать пароль.Если я использую временные сгенерированные пароли для шифрования и отправляю их с сервера клиенту, любой перехватчик может получить его и использовать для расшифровки информации.
Я знаю, что в этот момент HTTPS может спасти мою жизнь (и, возможно,это единственное решение), но на данный момент я не могу его использовать.
Есть ли какое-либо другое решение или мне следует подождать, пока я смогу использовать HTTPS?Имейте в виду, что если бы я мог пропустить ожидание, было бы лучше.Спасибо товарищи!