Наш клиент должен зашифровать базу данных контента MOSS, чтобы содержимое db не могло быть просмотрено администратором баз данных или несанкционированным пользователем без правильного ключа шифрования. Кажется, что прозрачное шифрование данных (TDE) в SQL Server 2008 не может защитить конфиденциальную информацию от администратора базы данных, поэтому TDE предназначен для защиты данных «в состоянии покоя». Кто-нибудь здесь столкнулся с этой проблемой?Защита конфиденциальной информации от администратора базы данных в SQL Server 2008
ответ
Мне кажется, что требование иметь конфиденциальные данные в базе данных - доверять администратору базы данных.
Даже если вы можете зашифровать данные таким образом, чтобы dba не смог его увидеть, он мог обнюхать соединение, в котором вы передаете ключ (или данные!), Или настроить триггеры для захвата данных перед шифрованием в случае, если схема позволит это.
Короче говоря, получение надежного DBA - это более легкое и лучшее решение.
Чтобы не дотрагиваться до соединения DBA, вы можете сделать шифрование на уровне приложения. – Ottokar
Если вы не можете доверять DBA, вы не можете доверять самой базе данных. Ваше приложение должно передавать только зашифрованные данные на сервер базы данных.
Сказав это, есть и администратор сервера, на котором выполняется ваше приложение. Шифрование вашего пути из надежды на него будет почти невозможным.
Соглашайтесь с Vinko здесь, получите DBA, которому вы можете доверять, или кто может пройти проверку.
Невозможно сделать это, чтобы данные могли использоваться в БД.
Вы: можете сделать так, чтобы данные можно было использовать вне БД. Просто зашифруйте его перед операциями CRUD с помощью некоторого метода.
Есть способы сделать это «разумно» сложнее для DBA для доступа к данным, f.ex. вы можете хранить ключ как встроенные данные в функциях sqlclr, но двоичный код для них по-прежнему доступен администратору базы данных. Однако это означает повторение ключа вокруг, синхронизация, и это в значительной степени препятствует эффективной безопасности.
Не будет ли входить только зашифрованный контент в реальный убийца? Кроме того, учитывая, что это БД Sharepoint, я сомневаюсь, что вы действительно можете это сделать. –
Доверяйте администраторам баз данных ?! Технически, если мы позволяем администратору баз данных контролировать безопасность без каких-либо ограничений, вся система становится уязвимой, потому что, если администратор базы данных находится под угрозой, безопасность всей системы будет скомпрометирована, что будет катастрофой.
Как насчет программистов-изгоев, вставляющих бэкдоры в систему? Или менеджеры-изгои, продающие данные из отчетов, получаемых от их действительного использования системы? Или румяная уборщица, которая копирует жесткий диск? ... у вас есть идея. Тебе просто нужно доверять кому-то. Иначе мы говорим о уровне военной безопасности, где никто не знает всего и все зависит от необходимости знать основы и т. Д., Но это настоящие деньги. Для базы данных Sharepoint мне кажется, что получить честного администратора базы данных достаточно. Я даже не уверен, что вы можете добиться такой безопасности с серверов серверов на полке. –
Значит, надежные программисты управляют вашими данными, резервными копиями и т. Д.? – gbn
Такая же проблема здесь ...
Мы являемся хостинг компания базы данных MSSQL, я для нас может сказать, что это не вопрос, доверять DBA или нет. Наши клиенты - банки и страховые компании. Их требования заключаются в следующем: «DBA не может читать базу данных», поскольку содержит очень важные данные.
В настоящее время мы ищем решение.
Я думаю, вы должны опубликовать это как вопрос самостоятельно. У меня такая же проблема, как у вас, посмотрите здесь: http://stackoverflow.com/questions/970262/how-to-protect-a-database-from-the-server-administrator-in-sql -server –
Шифрование данных на уровне приложения - это путь. вам нужно будет хранить ключи, в которых DBA не сможет получить к нему доступ.
Это проверенное решение не имеет ничего нового.
Вы не доверяете администраторам баз данных? – gbn
Возможно, это не вопрос доверия, а возможности. Похоже, что они требуют, чтобы администратор баз данных не мог видеть конфиденциальные данные. DBA должен иметь возможность _destroy_ всех данных, но не видеть его. –