SQL Server の証明書と非対称キー

適用対象:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)

公開キー暗号化は、メッセージを秘匿する方法の 1 つです。この方法では、ユーザーが "公開" キーと "秘密" キーを作成します。 秘密キーは秘匿されますが、公開キーは他のユーザーに配布できます。 2 つのキーは数学的に相関していますが、公開キーを使用して秘密キーを簡単に導出することはできません。 公開キーを使用して、対応する秘密キーでのみ復号化できるデータ暗号化を行うことができます。 これは、秘密キーの所有者へのメッセージの暗号化に使用できます。 同様に、秘密キーの所有者は、公開キーでのみ復号化できるデータ暗号化を行うことができます。 このような使い方により、証明書に含まれる情報が秘密キーの所有者によって暗号化される、コンテンツの作成者を保証するデジタル証明書の基礎が形成されます。 暗号化キーと復号化キーは異なるので、これらは "非対称" キーと呼ばれます。

証明書と非対称キーは、どちらも非対称暗号化を使用するための手段です。 証明書は、有効期限や発行者などの詳細情報を格納できることから、非対称キーのコンテナーとしてよく使用されます。 この 2 つのメカニズムに暗号化アルゴリズムの違いはなく、同じキー長が指定された場合の強度にも違いはありません。 一般に、データベース内の他の種類の暗号化キーを暗号化する場合や、コード モジュールに署名する場合は、証明書を使用します。

証明書と非対称キーは、一方が暗号化したデータを暗号化解除できます。 一般に、データベース内のストレージに対する対称キーを暗号化する場合は、非対称暗号化を使用します。

公開キーには証明書のような特定の形式がありません。また、公開キーはファイルにエクスポートできません。

Note

SQL Server には、サーバーとデータベースで使用するための証明書とキーを作成および管理できる機能が用意されています。 SQL Server を使用して、他のアプリケーションやオペレーティング システム用の証明書とキーを作成および管理することはできません。

証明書

証明書は、 SQL Serverの公開キー (およびオプションで秘密キー) を含んでいるデジタル署名されたセキュリティ オブジェクトです。 外部で生成された証明書を使用するか、または SQL Server で証明書を生成できます。

Note

SQL Server 証明書は、IETF X.509v3 の証明書標準に準拠しています。

証明書は、X.509 証明書ファイルに対してキーをエクスポートおよびインポートできるので便利です。 証明書を作成する構文では、有効期限などの証明書の作成オプションを指定できます。

SQL Server での証明書の使用

証明書は、データベース ミラーリングで接続を保護したり、パッケージや他のオブジェクトに署名したり、データや接続を暗号化したりする場合に使用できます。 SQL Serverの証明書に関するその他のリソースを次の表に示します。

トピック 説明
CREATE CERTIFICATE (Transact-SQL) 証明書を作成するためのコマンドについて説明します。
デジタル署名を使用してパッケージのソースを特定する 証明書を使用してソフトウェア パッケージに署名する方法について説明します。
データベース ミラーリング エンドポイントでの証明書の使用 (Transact-SQL) データベース ミラーリングで証明書を使用する方法について説明します。

非対称キー

非対称キーは、対称キーを保護するために使用します。 また、制限付きでデータを暗号化する場合や、データベース オブジェクトにデジタル署名する場合にも使用できます。 非対称キーは、秘密キーと対応する公開キーで構成されます。 非対称キーの詳細については、「 CREATE ASYMMETRIC KEY (Transact-SQL)」を参照してください。

非対称キーは、厳密な名前のキー ファイルからインポートできますが、エクスポートすることはできません。 また、有効期限のオプションもありません。 非対称キーで接続を暗号化することはできません。

SQL Server での非対称キーの使用

非対称キーは、データを保護したり、プレーンテキストに署名したりする場合に使用できます。 SQL Serverでの非対称キーに関するその他のリソースを次の表に示します。

トピック 説明
CREATE ASYMMETRIC KEY (Transact-SQL) 非対称キーを作成するためのコマンドについて説明します。
SIGNBYASYMKEY (Transact-SQL) オブジェクトに署名するためのオプションについて説明します。

ツール

Microsoft では、証明書および厳密な名前のキー ファイルを生成するツールとユーティリティを提供しています。 これらのツールでは、 SQL Server 構文よりも柔軟にキーを生成できます。 これらのツールを使用することで、より複雑なキー長の RSA キーを作成して SQL Serverにインポートできます。 これらのツールの入手先を次の表に示します。

ツール 目的
New-SelfSignedCertificate 自己署名証明書を作成します。
makecert 証明書を作成します。 New-SelfSignedCertificate を優先するために非推奨になりました。
sn 対称キーの厳密名を作成します。

暗号化アルゴリズムの選択

CREATE SYMMETRIC KEY (Transact-SQL)

CREATE CERTIFICATE (Transact-SQL)

参照

sys.certificates (Transact-SQL)
透過的なデータ暗号化 (TDE)