サーチ…


パラメーター

オプションのパラメータ詳細
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証明書をOSの証明書ストアにインポートして、DERバイナリ形式に再エクスポートできるようにします。


もう1つの重要なことは、暗号化階層を使用して、他のものを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が返されることに注意してください。マイクロソフトは次のように書いている。「制限は512ビットRSAキーで最大53バイト、1024ビットキーで117バイト、2048ビットで最大245バイトの暗号化が可能」

EncryptByAsymKeyには同じ制限があります。 UNICODEの場合、これは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

これは、「透過的データ暗号化(Transparent Data Encryption: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