Поиск…


параметры

Дополнительные параметры подробности
WITH PRIVATE KEY Для CREATE CERTIFICATE может быть указан закрытый ключ: (FILE='D:\Temp\CertTest\private.pvk', DECRYPTION BY PASSWORD = 'password');

замечания

Создание сертификата DER будет работать нормально. Однако, когда используется сертификат Base64, SQL-сервер будет жаловаться на критическое сообщение:

Msg 15468, Level 16, State 6, Line 1
An error occurred during the generation of the certificate.

Импортируйте свой сертификат Base64 в хранилище сертификатов вашей ОС, чтобы иметь возможность реэкспортировать его в двоичный формат DER.


Еще одна важная вещь - иметь иерархию шифрования, чтобы одна защищала другую, вплоть до уровня ОС. См. Статью «Шифрование базы данных / TDE»


Для получения дополнительной информации для создания сертификатов перейдите по адресу : https://msdn.microsoft.com/en-us/library/ms187798.aspx

Для получения дополнительной информации о шифровании базы данных / TDE перейдите по адресу : https://msdn.microsoft.com/en-us/library/bb934049.aspx

Для получения дополнительной информации для шифрования данных перейдите по адресу : https://msdn.microsoft.com/en-us/library/ms188061.aspx

Шифрование по сертификату

CREATE CERTIFICATE My_New_Cert
FROM FILE = 'D:\Temp\CertTest\certificateDER.cer'
GO

Создать сертификат

SELECT EncryptByCert(Cert_ID('My_New_Cert'), 
'This text will get encrypted') encryption_test

Обычно вы шифруете симметричным ключом, этот ключ будет зашифрован с помощью асимметричного ключа (открытого ключа) из вашего сертификата.

Также обратите внимание, что шифрование ограничено определенной длиной в зависимости от длины ключа и возвращает NULL в противном случае. Microsoft пишет: «Предельные значения: 512-битный ключ RSA может шифровать до 53 байтов, 1024-битный ключ может шифровать до 117 байтов, а ключ 2048 бит может шифровать до 245 байт».

EncryptByAsymKey имеет те же ограничения. Для UNICODE это будет разделено на 2 (16 бит на символ), поэтому 58 символов для 1024-битного ключа.

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

USE TDE
CREATE DATABASE ENCRYPTION KEY
WITH ALGORITHM = AES_256
ENCRYPTION BY SERVER CERTIFICATE My_New_Cert
GO

ALTER DATABASE TDE
SET ENCRYPTION ON
GO

Это использует «прозрачное шифрование данных» (TDE)

Шифрование с помощью симметричного ключа

-- Create the key and protect it with the cert
CREATE SYMMETRIC KEY My_Sym_Key
WITH ALGORITHM = AES_256  
ENCRYPTION BY CERTIFICATE My_New_Cert;
GO

-- open the key
OPEN SYMMETRIC KEY My_Sym_Key
DECRYPTION BY CERTIFICATE My_New_Cert;

-- Encrypt
SELECT EncryptByKey(Key_GUID('SSN_Key_01'), 'This text will get encrypted');

Шифрование парольной фразой

SELECT EncryptByPassphrase('MyPassPhrase', 'This text will get encrypted')

Это также зашифровывает, а затем парольная фраза вместо асимметричного ключа (сертификата) или явного симметричного ключа.



Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow