Вставить зашифрованный пароль с помощью класса RSACryptoServiceProvider в БД? - PullRequest
1 голос
/ 22 августа 2009

У меня есть служба WCF, которая используется клиентами, и ниже приведена моя текущая реализация аутентификации пользователей, я хочу рекомендации по ее улучшению или более эффективному механизму.

  • Я использую RSACryptoServiceProvider класс (реализация RSA) для сохранения зашифрованных паролей пользователей в базе данных

  • Клиент должен зашифровывать пароль при каждом входе в систему с помощью открытого ключа (хранится в файле) и отправлять его методу регистрации с именем пользователя

  • На стороне сервера метод входа выберите зашифрованный пароль для предоставленное имя пользователя и сравнение дешифрованных паролей (отправленных пользователем и одним пользователем) с использованием закрытого ключа

    Примечание: каждый раз, когда вы шифруете строка с использованием RSA с той же публикой введите новые зашифрованные байты, поэтому я не могу сравнить зашифрованные пароли и я должен расшифровать их для сравнения

P.S Ответы гласят: «В целях аутентификации не следует хранить пароли с использованием обратимого шифрования»

Я спрашиваю, может ли никто не расшифровать пароль, кроме случаев, когда у него есть закрытый ключ, так в чем же проблема, даже хеширование необратимо, но оно сломано !!

Ответы [ 2 ]

3 голосов
/ 22 августа 2009

Не принято хранить пароли в зашифрованном виде вместо хешированных. Есть ли у вас особые причины для этого?

Если нет, я бы предложил хранить хеши паролей (SHA-2 или что-то в этом роде) с солью.

0 голосов
/ 22 августа 2009

Я думаю, что есть две проблемы, требующие внимания:

  • Как надежно передаются пароли?
  • Как надежно хранить пароли?

Существующие соглашения о ключах на основе пароля , такие как SRP , решают обе проблемы.

Ваше решение для шифрования паролей с помощью RSA - неплохая идея, но является лишь частичным решением: поскольку RSA рандомизирует шифрование, оно предотвращает атаки в автономном словаре. Из вашего описания неясно, предотвращает ли ваше предложение повторные атаки. Может ли злоумышленник войти в систему, отправив ранее перехваченный зашифрованный пароль, или у вас есть контрмеры, такие как отметки времени?

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