SQL Server には、次の暗号化メカニズムが用意されています。
-
Transact-SQL 関数
-
非対称キー
-
対称キー
-
証明書
-
透過的なデータ暗号化
Transact-SQL 関数
証明書
通常は単に証明書と呼ばれる公開キー証明書は、公開キーの値を、対応する秘密キーを保持する人物、デバイス、またはサービスの ID にバインドする、デジタル署名されたステートメントです。証明書は、CA (証明機関) によって発行および書名されます。CA から証明書を受け取るエンティティは、その証明書のサブジェクトです。通常、証明書には次の情報が含まれています。
-
サブジェクトの公開キー。
-
サブジェクトの ID 情報 (名前や電子メール アドレスなど)。
-
有効期間。これは、証明書が有効であると見なされる期間です。
証明書は、証明書で指定された期間中のみ有効です。すべての証明書には、有効期間の開始日と有効期間の終了日の日付が含まれています。これらの日付によって、有効期間の境界が設定されます。証明書の有効期間が終了すると、現在期限が切れている証明書のサブジェクトを使用して新しい証明書を要求する必要があります。
-
発行者の ID 情報。
-
発行者のデジタル署名。
この署名により、公開キーとサブジェクトの ID 情報のバインドが有効であることが証明されます (デジタル署名情報の処理により、その情報だけでなく、送信者が保持している一部の機密情報が署名と呼ばれるタグに変換されます)。
証明書の主な利点は、個々のサブジェクトのパスワードの設定をホストで保守する必要性がなくなる点です。ホストでは、証明書の発行者の信頼を確立するだけで済みます。信頼された発行者は、多数の証明書に署名できます。
セキュリティで保護された Web サーバーなどのホストが、信頼されているルート機関として発行者を指定すると、このときホストは、発行された証明書のバインドを確立するために発行者が使用したポリシーを暗黙的に信頼することになります。つまりホストは、証明書のサブジェクトの ID が発行者側で確認されているものと見なします。ホストが発行者を信頼されているルート機関として指定する際は、発行者の公開キーが含まれている発行者の自己署名付きの証明書を、ホスト コンピュータの信頼されているルート証明機関の証明書ストアに配置します。中間または下位の証明機関が信頼されるのは、信頼されているルート証明機関からの有効な証明書パスを持っている場合のみです。
発行者は、証明書の有効期限が切れる前に、証明書を取り消すことができます。証明書を取り消すと、証明書で評価されている公開キーと ID のバインドがキャンセルされます。各発行者は、特定の証明書の有効性をチェックするときにプログラムで使用できる、証明書の廃止リストを保持しています。
SQL Server によって作成された自己署名付きの証明書は、X.509 標準に従っており、X.509 v1 フィールドをサポートしています。
非対称キー
非対称キーは、秘密キーとそれに対応する公開キーで構成されています。各キーは、他方のキーで暗号化されたデータを暗号化解除できます。非対称の暗号化と暗号化解除は、比較的リソースを集中して消費しますが、対称の暗号化よりも高レベルのセキュリティを提供します。非対称キーは、データベース内のストレージに対する対称キーの暗号化に使用できます。
対称キー
対称キーは、暗号化と暗号化解除の両方で使用される 1 つのキーです。対称キーを使用した暗号化および暗号化解除は、高速であり、データベース内の機密データでの定型的な使用に適しています。
透過的なデータ暗号化
透過的なデータ暗号化 (TDE) は、対称キーを使用した暗号化の特殊なケースです。TDE では、データベース暗号化キーという対称キーを使用してデータベース全体を暗号化します。データベース暗号化キーは、データベース マスタ キーまたは EKM モジュールに格納された非対称キーによって保護される、他のキーまたは証明書によって保護されます。詳細については、「透過的なデータ暗号化 (TDE) について」を参照してください。