SQL Server - хранение конфиденциальных данных - PullRequest
2 голосов
/ 12 мая 2009

Что такое безопасный способ хранения имени пользователя и пароля (не сведений о членстве asp.net) в таблице базы данных, которую необходимо извлечь и расшифровать, чтобы использовать для передачи в веб-сервис.

Каждый раз, когда я думаю о проблеме, я нахожу дыры в безопасности, поскольку имя пользователя и пароль должны быть в виде простого текста перед передачей в веб-службу.

Ответы [ 5 ]

5 голосов
/ 12 мая 2009

Некоторые предложения:

Для хранения данных

  1. Шифрование данных (лучше всего использовать вызовы CryptoAPI) при вставке
  2. Убедитесь, что у вас включено шифрование между клиентом и SQL Server
  3. если вы используете SQL 2008, включите шифрование файла MDF / LDF

Переход на веб-сервис

  1. Если вы используете .NET, в вашем приложении есть SecureString для обеспечения безопасности в памяти.
  2. Убедитесь, что веб-сервис использует SSL для защиты по проводам
2 голосов
/ 12 мая 2009

ИМХО то, что вы никогда не копируете данные ...

Используйте одностороннее шифрование для шифрования данных перед первым сохранением, используйте это для пароля и имени пользователя.

Когда пользователь входит в систему, вы вводите имя пользователя и пароль, а затем проверяете, совпадают ли зашифрованные значения в БД. Т.е. вам не нужно unencrpt.

Поскольку его однонаправленное шифрование очень трудно расшифровать (некоторые говорят, что его стоит взломать, требуется много времени), поэтому есть один способ ...

MS encrypto class предлагает одностороннее шифрование.

надеюсь, это поможет

Jules

1 голос
/ 12 мая 2009

Как говорит Фермин, Есть ли у вас доступ / контроль над веб-сервисом на другом конце.

если это так, вы должны отправить данные в зашифрованном виде. Тем не менее, даже если вы отправите имя пользователя и пароль в зашифрованном виде. кто-то еще может их понюхать и иметь действительную пару ООН и PW.

HTTPS поможет в этой ситуации.

Не существует 100% безопасного способа передачи конфиденциальных данных по сети. Это дело делать все возможное, что вы можете.

0 голосов
/ 12 мая 2009

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

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

Несколько лет назад в журнале MSDN была статья, посвященная использованию этих функций.

0 голосов
/ 12 мая 2009

Разве вы не можете использовать метод веб-сервиса, чтобы расшифровать их и передать зашифрованную строку из базы данных?

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