|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
5.6.3. Принципы шифрования информации в базах данных SQL Server 2005Шифрование данных SQL Server 2005, сертификаты, асимметричные ключи, симметричные ключи, пароли Еще одна большая проблема, связанная с безопасностью SQL Server, заключается в том, что информация хранится в базах данных в незащищенном виде. Фактически единственный рубеж защиты — это разрешения самого SQL Server. Как только они перестают действовать, становится возможным получение доступа к любой информации в базе данных. Приведем несколько обычных ситуаций, когда может произойти нарушение системы безопасности SQL Server: q администратор сети недосмотрел за безопасностью учетных записей в домене. В результате злоумышленник смог подключиться к SQL Server при помощи учетной записи, от имени которой работают службы SQL Server (эта учетная запись обладает правами встроенной серверной роли SYSADMIN); q злоумышленник смог получить физический доступ к компьютеру, на котором работает SQL Server, и скопировал файлы базы данных (это можно сделать разными способами, например, загрузившись с компакт-диска или подключив RAID-массив сервера к другому компьютеру). Затем злоумышленник сможет присоединить эти файлы к другому серверу SQL Server, на котором он обладает правами системного администратора; q в чужие руки попал носитель с резервной копией базы данных. Злоумышленник также сможет восстановить эту резервную копию на другом сервере, на котором он обладает правами системного администратора, и получить таким образом доступ ко всем данным. Для того чтобы обезопасить себя от подобных ситуаций, следует использовать шифрование. В SQL Server предыдущих версий никаких встроенных средств для шифрования данных в базах данных не было (кроме специальных ситуаций, например, шифрование определений объектов или паролей логинов SQL Server). В SQL Server 2005 такие возможности появились. Для шифрования данных в SQL Server 2005 предусмотрено четыре способа: q шифрование при помощи сертификатов. Сертификат при этом должен присутствовать в виде объекта в базе данных (в SQL Server Management Studio можно просмотреть имеющиеся сертификаты в контейнере Databases | Имя_базы_данных | Security | Certificates); q шифрование при помощи ассиметричных ключей. Алгоритм здесь такой же, как и при использовании сертификатов. От сертификата асимметричный ключ отличается тем, что в нем не предусмотрено дополнительных полей с информацией о том, кому он выдан, для каких целей, до какого времени действителен и т. п. Имеющиеся асимметричные ключи можно просмотреть в контейнере Asymmetric Keys, который находится там же, где и контейнер Certificates; q шифрование при помощи симметричных ключей. Используются намного более быстрые алгоритмы, по сравнению с асимметричными ключами. Сами симметричные ключи также создаются в виде объектов базы данных и могут быть защищены сертификатом, другим симметричным ключом, ассиметричным ключом или просто паролем. Просмотреть их можно при помощи контейнера Symmetric Keys; q простое шифрование при помощи паролей. Отметим также, что вам совсем необязательно ограничиваться только встроенными средствами SQL Server 2005. Он также позволяет использовать в коде Transact-SQL вызовы к сборкам .NET. Поэтому для шифрования данных можно использовать классы из пространства имен System.Security.Cryptography в .NET Framework или свои собственные сборки.
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||
Получить учебные материалы по этому курсу |
||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||