Шифрование базы данных

Мне нужно, чтобы моя база данных была защищена на случай кражи жесткого диска.

Я не видел много баз данных (даже основных), претендующих на поддержку шифрования.

  • Ребята, вы знаете какие-нибудь базы данных, которые поддерживают шифрование?
  • Если я использую базу данных, которая не поддерживает шифрование, это плохая идея, чтобы зашифровать данные нативно (например, с помощью библиотек шифрования Java)? Может ли это вызвать проблемы для баз данных со строго типизированными полями?
  • Какие другие решения доступны для шифрования моей базы данных?

11 ответов

Может быть, вы должны подумать, чтобы зашифровать весь жесткий диск. Это сделано изначально на уровне файловой системы.

Он использует учетные данные Windows для шифрования. Таким образом, даже если весь ваш компьютер украден, ваши данные защищены.

Стилеру придется переформатировать диск, чтобы использовать его.

Конечно, если ваш компьютер использует автоматический вход, это не вариант для вас.

HTH, даже если это не решение для шифрования базы данных.

MS SQL Server 2008 определенно поддерживает это. Не уверен насчет старых версий.

И Microsoft SQL Server, и Oracle поддерживают шифрование базы данных. В SQL Server 2008 добавлено прозрачное шифрование данных, которого не было в SQL Server 2005, который поддерживал только шифрование на уровне ячейки.

Oracle поддерживает что-то под названием Transparent Encryption и работает с кошельком.

Возможно из-за нашей реализации мы не имели успеха с этим. Мы столкнулись с проблемами, когда после того, как ЛЮБОЙ пользователь, имеющий учетные данные (т.е. пользователь с записью в кошельке), получил доступ к данным, он был открыт для всех тех, кто имел доступ к таблице. Если вы беспокоитесь только о шифровании в состоянии покоя, это может сработать для вас (вы можете проверить в документации Oracle, что он выполняет шифрование в состоянии покоя) - если вам нужна зашифрованная передача в / из БД, я не уверен, что это это то, что вы после.

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

Отказ от ответственности: я не являюсь администратором по профессии, поэтому я могу предложить это только из опыта, который мы имели с технологией Oracle. Я работаю в компании Fortune 500, и у нас наверняка были подходящие люди, которые смотрели на это.

Если вы ищете хорошую встроенную базу данных, которая поддерживает шифрование, я бы порекомендовал SQLCipher*, который является версией SQLite, которая обеспечивает прозрачное шифрование базы данных по лицензии с открытым исходным кодом. Очевидный вариант использования - в мобильных и автономных приложениях.

* Полное раскрытие: я в команде разработчиков.

Sybase SQL Anywhere поддерживает 128-битное и 256-битное шифрование AES.

Fujitsu и Samsung продают жесткие диски с шифрованием на уровне жесткого диска. Я не знаю, если это вариант для вашей проблемы.

Базы данных SQL Compact предлагают шифрование "из коробки", предоставляя им пароль.

http://blogs.msdn.com/stevelasker/archive/2008/05/14/security-and-encryption-for-sql-server-compact.aspx

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

SQLiteDatabase.loadLibs(контекст); SQLiteOpenHelper.getWritableDatabase("yourSecretKey"):

TDE - лучший способ добиться этого...

http://technet.microsoft.com/en-us/library/cc278098%28v=sql.100%29.aspx

Не уверен, что это вариант для вас, но разработчик SQLite продает версии библиотеки, которые используют зашифрованные базы данных: http://www.hwaci.com/sw/sqlite/prosupport.html.

Другие вопросы по тегам