Хороший способ зашифровать поля базы данных? - PullRequest
14 голосов
/ 20 октября 2010

Меня попросили зашифровать различные поля БД в БД .

Проблема заключается в том, что эти поля необходимо расшифровать после прочтения.Я использую Django и SQL Server 2005 .

Есть хорошие идеи?

Ответы [ 4 ]

8 голосов
6 голосов
/ 10 июня 2012

У меня была такая же проблема, и я создал следующее решение: http://djangosnippets.org/snippets/2489/

Я использовал M2Crypto в качестве механизма шифрования, но при желании его можно заменить.

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

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

5 голосов
/ 20 октября 2010

Да. Скажите, кто бы ни сказал вам, чтобы стать реальным. Не имеет никакого / маленького смысла. Если речь идет о сохраненных значениях - Enterprise Edition 2008 может хранить зашифрованные файлы БД.

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

1 голос
/ 20 октября 2010

Если вы храните такие вещи, как пароли, вы можете сделать следующее:

  1. сохранить пароли пользователей в виде их хэшей SHA256
  2. получить пароль пользователя
  3. хешit
  4. Элемент списка

проверка его по сохраненному паролю

Вы можете создать хэш SHA-256 в Python с помощью модуля hashlib.

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

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