Поделиться через


Иерархия шифрования

SQL Server шифрует данные с помощью иерархической инфраструктуры шифрования и управления ключами. Каждый слой шифрует слой под ним с помощью сочетания сертификатов, асимметричных ключей и симметричных ключей. Асимметричные ключи и симметричные ключи можно хранить за пределами SQL Server в модуле расширенного управления ключами (EKM).

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

Отображает некоторые сочетания шифрования в стеке.

Следует учитывать следующие основные понятия.

  • Для повышения производительности шифруйте данные с помощью симметричных ключей вместо сертификатов или асимметричных ключей.

  • Основные ключи базы данных защищены главным ключом службы. Главный ключ службы создается программой установки SQL Server и шифруется с помощью API защиты данных Windows (DPAPI).

  • Возможны другие иерархии шифрования с накоплением дополнительных слоев.

  • Модуль расширенного управления ключами (EKM) содержит симметричные или асимметричные ключи за пределами SQL Server.

  • Прозрачное шифрование данных (TDE) должно использовать симметричный ключ, называемый ключом шифрования базы данных, который защищен либо сертификатом, защищенным главным ключом главной базы данных, либо асимметричным ключом, хранящимся в EKM.

  • Главный ключ службы и все основные ключи базы данных являются симметричными ключами.

На следующем рисунке показаны те же сведения альтернативным образом.

Отображает некоторые сочетания шифрования в колесике.

На этой схеме показаны следующие дополнительные понятия:

  • На этом рисунке стрелки указывают общие иерархии шифрования.

  • Симметричные и асимметричные ключи в EKM могут защитить доступ к симметричным и асимметричным ключам, хранящимся в SQL Server. Пунктирная линия, связанная с EKM, указывает, что ключи в EKM могут заменить симметричные и асимметричные ключи, хранящиеся в SQL Server.

Механизмы шифрования

SQL Server предоставляет следующие механизмы шифрования:

  • функции Transact-SQL

  • Асимметричные ключи

  • симметричные ключи;

  • Сертификаты

  • Прозрачное шифрование данных

Функции Transact-SQL

Отдельные элементы можно зашифровать при их вставке или обновлении с помощью функций Transact-SQL. Дополнительные сведения см. в разделе ENCRYPTBYPASSPHRASE (Transact-SQL) и DECRYPTBYPASSPHRASE (Transact-SQL).

Сертификаты

Сертификат открытого ключа, как правило, просто называемый сертификатом, представляет собой цифровую подпись, которая привязывает значение открытого ключа к удостоверению пользователя, устройства или службы, содержащей соответствующий закрытый ключ. Сертификаты выдаются и подписаны центром сертификации (ЦС). Сущность, получающая сертификат от ЦС, является держателем этого сертификата. Как правило, сертификаты содержат следующие сведения.

  • Открытый ключ субъекта.

  • Сведения об идентификаторе субъекта, такие как имя и адрес электронной почты.

  • Срок действия. Это срок действия сертификата, который считается допустимым.

    Сертификат действителен только в течение определенного периода времени; каждый сертификат содержит допустимые даты и допустимые даты. Эти даты задают границы срока действия. Когда срок действия сертификата прошел, новый сертификат должен запрашиваться субъектом сертификата с истекшим сроком действия.

  • Сведения об идентификаторе издателя.

  • Цифровая подпись издателя.

    Эта подпись подтверждает допустимость привязки между открытым ключом и сведениями об идентификаторе субъекта. (Процесс цифровой подписи подразумевает преобразование информации, а также некоторые секретные сведения, удерживаемые отправителем, в тег, называемый подписью.)

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

Когда узел, например безопасный веб-сервер, назначает издателя в качестве доверенного корневого центра, узел неявно доверяет политикам, которые издатель использовал для установления привязок сертификатов, которые он выдает. Фактически хост доверяет, что издатель проверил личность субъекта сертификата. Компьютер назначает эмитента в качестве доверенного корневого центра, помещая самоподписанный сертификат эмитента, который содержит открытый ключ эмитента, в хранилище сертификатов доверенного корневого центра сертификации на хост-компьютере. Промежуточные или подчиненные центры сертификации являются доверенными только в том случае, если у них есть допустимый путь сертификации из доверенного корневого центра сертификации.

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

Самозаверяемые сертификаты, созданные SQL Server, соответствуют стандарту X.509 и поддерживают поля X.509 версии 1.

Асимметричные ключи

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

Симметричные ключи

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

Прозрачное шифрование данных

Прозрачное шифрование данных (TDE) — это особый случай шифрования с помощью симметричного ключа. TDE шифрует всю базу данных с помощью этого симметричного ключа, называемого ключом шифрования базы данных. Ключ шифрования базы данных защищен другими ключами или сертификатами, защищенными главным ключом базы данных или асимметричным ключом, хранящимся в модуле EKM. Дополнительные сведения см. в разделе прозрачное шифрование данных (TDE).

Обеспечение безопасности SQL Server

Функция безопасности (Transact-SQL)

См. также

Иерархия разрешений (ядро СУБД)
Защищаемые объекты