2012-03-02 3 views
0

Я хочу построить частную схему передачи и защиты данных для входа пользователя на мой сайт. Частные данные, которые я хочу защитить, - это идентификатор пользователя и пароль.Является ли это хорошим решением для частной передачи и защиты данных?

Мои требования к этой схеме включают: Безопасная передача данных (без SSL, TCL), высоко безопасное хранение (один раз потерять пароль, данные становятся своего рода неисправимая)

я подготовил один перечисленных ниже:

  1. RSA (шифрование и дешифрование на клиентских и серверных сайтах, соответственно) Подробно я планирую использовать Javascript для шифрования идентификатора пользователя и пароля на клиентском сайте и PHP для создания закрытых открытых ключей & и расшифровки полученного шифрованного текста на сайт сервера.

  2. SHA256/SHA512/Twice MD5 (на сайте сервера, шифрование с использованием случайных соли, который велено с идентификатором пользователя) Использование PHP для повторного шифрования обычный пароль с помощью алгоритма SHA256 со связывающим идентификатор пользователя соли.

Является ли это хорошим решением для удовлетворения моих требований? благодаря

+2

Безопасная передача данных без SSL/TLS - как? Шифрование корыта JS? Как это безопасно? Потерять пароль, потерять все данные? WTF? Зачем кому-либо пользоваться такой услугой? –

+0

Вы также можете попробовать просить по адресу http: //security.stackexchange.com/ – Mchl

+1

«без SSL, TCL» никогда не является нормальным требованием для системы, которая хочет надежно передавать данные через HTTP. – Quentin

ответ

1

Лучший способ убедиться, что ваш пароль не может быть перехвачен, IST не передавать его: Это намного проще, чем можно было бы подумать:

  • На стороне сервера, складировать passowrds соленая и hashed (Есть тысячи статей о том, как это сделать должным образом)
  • Когда пользователь на клиенте входит в систему, он вводит имя пользователя и пароль
  • С именем пользователя запросите соль с сервера (например, через AJAX). Это не проблема безопасности, так как соль не секретна. В этом же ответе отправьте отметку времени сервера.
  • На клиенте создается соленый хеш, это приводит к тайне, которую знают обе стороны, даже если она никогда не пересекала провод. Оставь это.
  • Используйте временную метку сервера и локальное время клиента, чтобы рассчитать смещение по времени и сохранить его - вам понадобится его, чтобы избежать атак повтора.
  • Теперь вы можете использовать этот секретный (хэш-файл соленых паролей) и метку времени, чтобы надежно передавать все, что вы хотите: для запроса солить кассу с меткой времени с исправлением коррекции и некоторой энтропией, хэш снова. Используйте это как ключ для шифрования (AES приходит на ум) ваше сообщение на сервер, отправка метки времени и случайной соли по адресу
  • На сервере отбрасываются отметки времени, превышающие несколько секунд, для безопасного повторного воспроизведения
  • На сервере используется обеспечивают временную метку и соль, чтобы воссоздать ключ для этого сообщения

Crypto-JS имеет части JS вам нужно

+0

спасибо, но есть два вопроса, которые мы не должны игнорировать. 1) почему передача соли не приведет к проблеме безопасности. я имею в виду, как только кто-то получит соль, которую мы использовали для соленого пароля, соль кажется прозрачной для восстановления пересылки с грубой силой. Причина использования RSA в моем решении заключается в том, что утечка открытого ключа не является проблемой безопасности. – Damao17

+0

2) AES с использованием того же ключа для шифрования и дешифрования, не так ли. Если да, будет ли передача метки времени и соли, которая будет использоваться в качестве ключа, вызовет проблемы безопасности? Предполагая, что хакер может получить доступ к исходному коду для шифрования и дешифрования. – Damao17

+0

1) Прочитайте о соле: Соль не секретна, это защита от прекоммутирующих атак (например, радужных столов). 2.) Обе стороны используют один и тот же ключ, но никогда не передаются, что затрудняет его перехват. Если браузер скомпрометирован, вам не нужно думать о шифровании: в этом случае также скомпрометируется пароль cleartext. –

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