2009-05-12 2 views
2

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

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

ответ

5

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

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

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

Pa ssing к web-сервису

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

Нельзя использовать метод webservice для их дешифрования и передачи в зашифрованной строке из базы данных?

+0

вебсервис обеспечивается третьей части, я не имею никакого контроля и на каждом вызова функции вы передаете имя пользователя и пароль в виде простого текста (вебсервис находится над SSL) – monkeylee

+0

вы не объяснили в своем первоначальном сообщении. – Fermin

1

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

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

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

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

+0

так понимаете, что, поскольку веб-сервис ожидает, что UN и PW станут чистым текстом, тогда в какой-то момент будет дыра в безопасности, что лучший способ защитить данные в db и где/как хранить ключ (который расшифровывает) зашифрованные значения – monkeylee

+0

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

+0

Вебсервис - это платная подписная услуга, предоставляемая внешней компанией (все, что я могу сказать). веб-сервис asp.net soap asmx, называемый https, ограниченный на стороне ip. При вызове функции вы передаете параметры функции, имя пользователя и пароль в виде обычного текста. Я думаю, что это пример того, как обеспечить безопасность деталей в моей системе. поэтому мне нужно зашифровать данные при входе на мой сайт, сохранить его в зашифрованном db и когда мне нужно его расшифровать и перейти в webservice. как я могу безопасно хранить ключи шифрования и какой метод использовать – monkeylee

0

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

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

Была статья несколько лет назад в MSDN magazine, которая охватывала использование этих функций.

2

ИМХО такое, что вы никогда не unencript данных ...

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

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

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

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

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

Жюль

+0

Да, это определенно так, как я бы это сделал. Прохождение хэшей намного безопаснее. –

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