私は将来のプロジェクトのためにいくつかの調査を行っており、一部のデータを暗号化する必要があります。
今日の調査で、多くの異なる暗号化アルゴリズム (AES、Triple-DES、X-DES などを含む) があることに気付きました。SQL-Server (2008r2 Express Probs) でアルゴリズムの 1 つを使用したいと考えています。ベストプラクティスなどのように、これを行うことをお勧めしますか?
私は次のようなことを計画しています:
-- Create the master key.
CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'Som3Rand0m!3y?na'
-- Create the cert.
CREATE CERTIFICATE someCert WITH SUBJECT = 'c3p009xFR?'
-- Create Symmetric Key
CREATE SYMMETRIC KEY someSymmetricKey WITH ALGORITHM = TRIPLE_DES ENCRYPTION BY CERTIFICATE someCert
そして、次のように使用します。
declare @sql varchar(8000)
set @sql = 'OPEN SYMMETRIC KEY someSymmetricKey DECRYPTION BY CERTIFICATE someCert '
exec (@sql)
-- Check the table
SELECT col1, Convert(varchar(max), DECRYPTBYKEY(col2)) as col2
FROM myTable
-- dont forget to close the symmetric key again afterwards.
CLOSE SYMMETRIC KEY someSymmetricKey
これは正しい方法だと思います(私は何年も前にそれを読んで例を保存したので、ダブルチェックしてください:])?
また、異なる暗号化アルゴリズムを使用する間に実際にパフォーマンスの違い (またはセキュリティの違い、あるものは別のものよりも破りやすいなど) はありますか? <<- これは、私が本当に知りたい/最も重要なものです。
最後に、データベースを別のサーバーに移動した場合、同じ方法でキー/証明書を再作成するだけで、データを取り戻すことができると思いますか?
良いブログ投稿/リンク/ホワイトペーパーは大歓迎です:) (私が読んだほとんどは静かで悪いものでした)
読んでくれてありがとう:D