2010-09-03 2 views
12

Я собираюсь хранить несколько чувствительных фрагментов информации (SSN, банковские счета и т. Д.), Поэтому они, очевидно, должны быть зашифрованы. Какие стратегии вы рекомендуете?Стратегии шифрования с Django + Postgres?

Должен ли я выполнять все шифрование/дешифрование в самом веб-приложении? Должен ли я использовать что-то вроде pgcrypto и делать преобразования на стороне БД? Что-то еще?

Кроме того, если вы думаете, что я должен делать шифрование на стороне веб-приложения, какие библиотеки Python вы бы порекомендовали?

ответ

1

Что вы защищаете от? Если злоумышленник получит доступ к вашей DB/файловой системе, он найдет, как вы расшифруете данные &. Скрытие вашего ключа регистрации - непростая задача (и редко реализуется в «обычных» приложениях).

Я потратил больше времени на защиту сервера и устранение всех общих проблем безопасности.

+0

Я согласен, и я планирую использовать полностью управляемый сервис для запуска моей установки производства именно по этой причине - я знаю, достаточно о администрировании системы Linux, чтобы знать, как мало я знаю :) Это, как говорится, я все равно хотел бы зашифровать поля. Я рассматриваю его как тот же вид деятельности, что и запирание дверей в вашем доме. До сих пор довольно легко пробиться, но это добавляет немного сдерживающего фактора. –

+0

Тогда вы должны наклеить все свои символы и клавиши на стороне веб-клиента, чтобы, если БД украден злоумышленник ничего не получил. Если файлы украдены - тоже ничего. Таким образом, код жесткого кода в коде и шифрование/децинирование всех данных с использованием AES из стандартной библиотеки Python. – BarsMonster

+0

Я думаю, вы также можете поместить свой ключ в какое-то странное место, поэтому при слепом копировании корня вашего сайта злоумышленник не получит ключ. – BarsMonster

1

Я согласен, что сначала вы должны рассмотреть вашу общую модель безопасности и какие угрозы бульвары может быть самым риск, а-ля эта статья:

https://security.stackexchange.com/questions/16939/is-it-generally-a-bad-idea-to-encrypt-database-fields

, но и взглянуть на них для шифрованных полей в Django:

зашифрованная поля: https://github.com/svetlyak40wt/django-fields

более шифрованные поля:

https://github.com/defrex/django-encrypted-fields, https://github.com/django-extensions/django-extensions

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