Szukaj…


Parametry

Parametry opcjonalne Detale
WITH PRIVATE KEY Dla opcji UTWÓRZ CERTYFIKAT można określić klucz prywatny: (FILE='D:\Temp\CertTest\private.pvk', DECRYPTION BY PASSWORD = 'password');

Uwagi

Utworzenie certyfikatu DER będzie działać poprawnie. Jednak gdy używany jest certyfikat Base64, serwer SQL narzeka na tajemniczą wiadomość:

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

Zaimportuj certyfikat Base64 do magazynu certyfikatów systemu operacyjnego, aby móc ponownie wyeksportować go do formatu binarnego DER.


Inną ważną rzeczą do zrobienia jest posiadanie hierarchii szyfrowania, aby jedna chroniła drugą, aż do poziomu systemu operacyjnego. Zobacz artykuł o „Szyfrowaniu bazy danych / TDE”


Więcej informacji na temat tworzenia certyfikatów znajduje się na stronie : https://msdn.microsoft.com/en-us/library/ms187798.aspx

Aby uzyskać więcej informacji na temat szyfrowania bazy danych / TDE, przejdź do: https://msdn.microsoft.com/en-us/library/bb934049.aspx

Aby uzyskać więcej informacji na temat szyfrowania danych, przejdź do: https://msdn.microsoft.com/en-us/library/ms188061.aspx

Szyfrowanie za pomocą certyfikatu

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

Utwórz certyfikat

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

Zazwyczaj szyfrujesz kluczem symetrycznym, klucz ten jest szyfrowany kluczem asymetrycznym (kluczem publicznym) z twojego certyfikatu.

Należy również pamiętać, że szyfrowanie jest ograniczone do niektórych długości w zależności od długości klucza, w przeciwnym razie zwraca NULL. Microsoft pisze: „Ograniczenia są następujące: 512-bitowy klucz RSA może szyfrować do 53 bajtów, 1024-bitowy klucz może szyfrować do 117 bajtów, a 2048-bitowy klucz może szyfrować do 245 bajtów”.

EncryptByAsymKey ma takie same ograniczenia. Dla UNICODE byłoby to podzielone przez 2 (16 bitów na znak), czyli 58 znaków dla 1024-bitowego klucza.

Szyfrowanie bazy danych

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

Wykorzystuje to „Transparent Data Encryption” (TDE)

Szyfrowanie za pomocą klucza symetrycznego

-- 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');

Szyfrowanie za pomocą hasła

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

Spowoduje to również szyfrowanie, ale następnie za pomocą hasła zamiast klucza asymetrycznego (certyfikatu) lub jawnego klucza symetrycznego.



Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow