Microsoft SQL Server
암호화
수색…
매개 변수
선택적 매개 변수 | 세부 |
---|---|
WITH PRIVATE KEY | CREATE CERTIFICATE의 경우 개인 키를 지정할 수 있습니다. (FILE='D:\Temp\CertTest\private.pvk', DECRYPTION BY PASSWORD = 'password'); |
비고
DER 인증서를 작성하면 문제가 없습니다. 그러나 Base64 인증서를 사용하면 SQL Server에서 암호화 된 메시지가 표시됩니다.
Msg 15468, Level 16, State 6, Line 1
An error occurred during the generation of the certificate.
Base64 인증서를 OS의 인증서 저장소로 가져와 DER 바이너리 형식으로 다시 내보낼 수 있습니다.
또 다른 중요한 작업은 암호화 계층을 사용하여 다른 사람을 보호하고 OS 수준까지 보호하는 것입니다. '데이터베이스 / 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을 반환합니다. MS는 "한계는 512 비트 RSA 키는 최대 53 바이트까지 암호화 할 수 있고 1024 비트 키는 최대 117 바이트까지 암호화 할 수 있으며 2048 비트 키는 최대 245 바이트까지 암호화 할 수있다"고 적고있다.
EncryptByAsymKey에는 동일한 제한이 있습니다. 유니 코드의 경우이 값은 2 (16 비트 문자)로 나뉘어집니다. 따라서 1024 비트 키는 58 문자입니다.
데이터베이스의 암호화
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')
또한 비대칭 (인증서) 키 대신 암호 또는 암 호로 암호화되거나 명시 적 대칭 키로 암호화됩니다.