Какой лучший способ сохранить ключ расшифровки для расшифровки зашифрованной базы данных? - PullRequest
4 голосов
/ 09 июня 2009

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

  1. Жесткий код в сборке.
  2. хранить в реестре.
  3. хранить в оперативной памяти.

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

  1. RSA
  2. AES
  3. Twofish

RSA против AES

Спасибо

Ответы [ 4 ]

4 голосов
/ 09 июня 2009

Невозможно «сохранить ключ расшифровки от взлома», если вы храните его с зашифрованными данными. Период. Управление ключами часто является самой сложной частью любой политики безопасности.

Что касается алгоритма шифрования, RSA - это совсем другой тип алгоритма, чем AES и twofish (см. http://en.wikipedia.org/wiki/Symmetric-key_algorithm#Symmetric_vs._asymmetric_algorithms).

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

4 голосов
/ 09 июня 2009

Вы задаете неправильные вопросы: сначала вам нужно решить, насколько безопасными вам должны быть вещи. Затем вам нужно решить, хотите ли вы симметричный (например, DES, общий ключ)) или асимметричный (например, RSA, открытый и закрытый ключи), а также тщательно продумать управление ключами, поскольку это часто является слабым местом.

Асимметричные алгоритмы на несколько порядков медленнее, чем симметричные; они часто используются для защиты симметричного ключа, а не для целых данных.

2 голосов
/ 09 июня 2009

Он никогда не будет абсолютно безопасным, особенно если учесть физический доступ к машинам, но вы можете усложнить это.

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

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

Храните резервную копию ключа на флэш-накопителе или чем-то еще. Не пропустите этот шаг.

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

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

0 голосов
/ 09 июня 2009

Я интерпретирую ваше описание о том, что для выполнения вашей работы необходимо держать ключ расшифровки ГДЕ-ТО на компьютере базы данных.

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

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

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