2013-05-13 8 views
0

Я строю систему входа в систему для веб-сайта без SSL, так что вот мой инструмент:
У меня есть таблица на сервере, которая имеет два поля: необработанное имя пользователя и pass_hashed (hased with sha1 (пароль)). Когда-либо пользователь входил в мою систему, я делаю:Работает ли моя система входа в систему?

  1. создать ключ.
  2. password_hashed = sha1 (ключ + sha1 (пароль))
  3. отправить 3 значения: имя пользователя, ключ, password_hashed

В стороне сервера:

  1. проверить, если ключ был сохранен в если да, сделайте логин неверным, иначе сохраните ключ в базе данных.
  2. запрос для информации о пользователе на имя пользователя, а затем сравнить sha1 (key + pass_hased) и password_hashed.

Мой вопрос - мой метод в порядке? Если да, могу ли я использовать ключ как временную метку?

+1

'Я строю систему входа в систему для веб-сайта без SSL. Это невозможно сделать безопасным. Использовать SSL. http://www.matasano.com/articles/javascript-cryptography/ http://rdist.root.org/2010/11/29/final-post-on-javascript-crypto/ – SLaks

+1

Кроме того, что он выиграл Это поможет, это безопасный дизайн, за исключением того, что SHA1 слишком грубодействующий (используйте PBKDFv2). Также обратите внимание, что любой, кто крадет вашу базу данных, может олицетворять любого пользователя (только на вашем сайте) – SLaks

+0

Спасибо за ваши замечательные комментарии. Infact my clinet - это C++-прогама, а не веб-браузер, но вы правы в выдаче выдачи ... – nvcnvn

ответ

0

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

Вам действительно нужен SSL.

0

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

Если это так, вы можете начать с него, но попробуйте различные комбинации, которые помогают повысить безопасность.

0

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

Смежные вопросы