2015-12-05 2 views
-2

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

Примечание - Пересмотрено вопрос в комментариях.

+0

Может кто-то, пожалуйста, проголосуйте, чтобы открыть его снова? – TechnoCrat

ответ

1

Данные не должны храниться в виде простого текста.

Это зависит от чувствительности данных. Если это конфиденциальные данные, такие как учетные данные, данные о карте, то они должны быть зашифрованы. Если это общие данные, вы попадаете в шифрование каждый раз, когда вы храните или обновляете данные и дешифруете каждый раз, когда вы извлекаете данные. Часто пароль не расшифровывается, пароль пользователя зашифрован и сравнивается с зашифрованным паролем, сохраненным в БД.

У разработчика есть доступ к базе данных.

Разработчик не должен иметь доступ к данным производства, поскольку некоторые из них могут содержать секретную data.Also, если доступ предоставляется несколько таблиц, которые не чувствительны, то только обеспечивают доступ только для чтения, так что он не может быть изменен с secure_file_priv так что данные не могут быть загружены.

У разработчика есть доступ к сертификатам.

Нет, не разработчики, только детоходы должны иметь доступ к сертификатам.

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

Ни один пользователь не должен иметь права на вставку/обновление/удаление. Только администратор базы данных должен иметь доступ и что они также должны иметь доступ к данным в зашифрованном формате для получения конфиденциальной информации.

тип приложения - веб (построен с использованием стека Java)

Есть много приложений, которые находятся в ASPX и многие в PHP также. Разработка веб-приложений в стеке java не гарантирует безопасность. Он использует архитектуру, ваши превентивные меры против атак, таких как атака среднего человека, атака для инъекций SQL, атака DOS и т. Д.

База данных - SQL сервер MS

Это зависит от приложения, которое вы разрабатываете и его поддержки с этой базой данных.

Операционная система - Linux

сервер и серверы Windows Linux оба могут быть использованы. Не проблема.Оба внедрили профилактические методы, чтобы обеспечить вашу систему

Web-сервер - Apache Tomcat

Вы можете использовать сервер Apache Tomcat или IBM WAS server.It dpends по вашему требованию.

Прилагательное время очень важно. Поэтому любое решение, связанное с поддержанием

Да, для этого ваше решение должно поддерживать высокую доступность путем передачи данных как на конец БД, так и на серверы Backend.

пароль суперпользователя в памяти не будет работать, поскольку приложение потеряет пароль во время перезапуска сервера.

Эти пароли хранятся в файле конфигурации или считываются для БД приложением напрямую с использованием ключа шифрования.

+0

* «пароль пользователя зашифрован» * [Разница между Hashing a Password и Encrypting it] (http://stackoverflow.com/q/326699) – Tom

+0

@Tom В основном некоторые данные хэшируются, затем зашифровываются с использованием различных алгоритмов. – Naruto

+0

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

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