Microsoft SQL Server
暗号化
サーチ…
パラメーター
オプションのパラメータ | 詳細 |
---|---|
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')
また、非対称(証明書)キーの代わりにパスフレーズを使用して暗号化するか、または明示的な対称キーで暗号化します。