DeepEdit!

Программирование баз данных на Oracle, техническая документация, литература, статьи и публикации

  • Увеличить размер шрифта
  • Размер шрифта по умолчанию
  • Уменьшить размер шрифта

Защита от администратора базы данных?

Следует ли защищать зашифрованные данные от собственного администратора базы данных? Такой вопрос возникает при проектировании системы, и вы должны как-то на него ответить.
Ключ хранится в базе данных или в файловой системе. Если ключ хранится в базе данных, то администратор имеет возможность расшифровать любые зашифрованные данные (так как у него есть права на выборку из любой таблицы, в том числе и из таблицы, в которой хранятся ключи). Если ключ хранится в файловой системе, он должен быть доступен владельцу программного обеспечения Oracle, так чтобы его можно было прочитать с помощью пакета UTL_FILE, к которому может иметь доступ администратор базы данных. Таким образом, где бы ни хранился ключ, попытка защиты зашифрованных данных от администратора базы данных представляется безуспешной. Оправдан ли подобный риск в вашей компании? Ответ зависит от проводимой политики безопасности и руководящих документов. В большинстве случаев администраторам доверяют, но это может быть предметом обсуждения. В некоторых случаях необходимо защищать зашифрованные данные даже от администраторов баз данных.
В таком случае придется хранить ключи там, куда у администратора базы данных нет доступа, например на сервере приложений. Но такими ключами будет сложно управлять. Необходимо будет обеспечить их резервное копирование и защиту от кражи.
Можно использовать более сложную систему управления, используя мастер-ключ. Мастер-ключ может быть помещен в цифровой «бумажник» (wallet), а приложение будет запрашивать ключ каждый раз при шифровании данных. Ключ будет недоступен администратору базы данных, но вся система станет более сложной, и время обработки возрастет.
Если ваша цель состоит в том, чтобы воспрепятствовать администратору базы данных изменить ключ, не запрещая просмотр ключа, можно также использовать механизм с мастер-ключом. Мастер- ключ может быть помещен в файловую систему, которая доступна владельцу программного обеспечения Oracle только для чтения. В этом случае база данных (и администратор) сможет использовать ключ для шифрования, но изменить ключ администратор не сможет.
Для того чтобы обеспечить управляемость системы (особенно если вы хотите быть уверены в том, что влияние на ваши приложения минимально), следует хранить ключи или в файловой системе, или внутри таблицы базы данных. В этом случае скрыть их от администратора базы данных не удастся.
Не существует совершенного механизма управления ключами шифрования. При выборе такого механизма следует руководствоваться спецификой конкретного приложения и пытаться найти компромисс между простотой доступа к ключам и безопасностью данных. Три рассмотренных нами подхода описывают три основных механизма управления ключами, на основе которых вы сможете разработать собственный подход к управлению ключами шифрования. Возможно, у вас появятся более удачные идеи, лучше подходящие к вашей конкретной ситуации. Например, возможно применение гибридного подхода, с использованием различных ключей для наиболее важных таблиц.
 









jAntivirus