SQL Server の証明書と非対称キー
公開キー暗号化 (PKI) は、メッセージを秘匿する方法の 1 つです。この方法では、ユーザーが公開キーと秘密キーを作成します。秘密キーは秘匿されますが、公開キーは他のユーザーに配布できます。2 つのキーは数学的に相関していますが、公開キーを使用して秘密キーを簡単に導出することはできません。公開キーはデータの暗号化に使用され、秘密キーはデータの暗号化解除に使用されます。公開キーを使用して暗号化されたメッセージは、正しい秘密キーを使用しないと暗号化解除できません。2 つの異なるキーが存在するので、これらのキーは非対称です。
証明書と非対称キーは、どちらも非対称暗号化を使用するための手段です。証明書は、有効期限や発行者などの詳細情報を格納できることから、非対称キーのコンテナとしてよく使用されます。この 2 つのメカニズムに暗号化アルゴリズムの違いはなく、同じキー長が指定された場合の強度にも違いはありません。一般に、データベース内の他の種類の暗号化キーを暗号化する場合や、コード モジュールに署名する場合は、証明書を使用します。
証明書と非対称キーは、一方が暗号化したデータを暗号化解除できます。一般に、データベース内のストレージに対する対称キーを暗号化する場合は、非対称暗号化を使用します。
公開キーには証明書のような特定の形式がありません。また、公開キーはファイルにエクスポートできません。
注 |
---|
SQL Server には、サーバーとデータベースで使用する証明書とキーを作成し、管理するための機能が用意されています。他のアプリケーションやオペレーティング システムで使用する証明書とキーを SQL Server で作成および管理することはできません。 |
証明書
証明書は、SQL Server の公開キー (およびオプションで秘密キー) を含んでいるデジタル署名されたセキュリティ オブジェクトです。外部で生成された証明書を使用するか、または SQL Server で証明書を生成できます。
注 |
---|
SQL Server 証明書は、IETF X.509v3 の証明書標準に準拠しています。 |
証明書は、X.509 証明書ファイルに対してキーをエクスポートおよびインポートできるので便利です。証明書を作成する構文では、有効期限などの証明書の作成オプションを指定できます。
SQL Server での証明書の使用
証明書は、データベース ミラーリングで接続を保護したり、パッケージや他のオブジェクトに署名したり、データや接続を暗号化したりする場合に使用できます。SQL Server の証明書に関するその他のリソースを次の表に示します。
トピック |
内容 |
---|---|
証明書を作成するためのコマンドについて説明します。 |
|
Service Broker で証明書を使用する方法について説明します。 |
|
証明書を使用してソフトウェア パッケージに署名する方法について説明します。 |
|
ダイアログで証明書を使用する方法について説明します。 |
|
データベース ミラーリングで証明書を使用する方法について説明します。 |
|
SQL Server との接続を暗号化する方法について説明します。 |
非対称キー
非対称キーは、対称キーを保護するために使用します。また、制限付きでデータを暗号化する場合や、データベース オブジェクトにデジタル署名する場合にも使用できます。非対称キーは、秘密キーと対応する公開キーで構成されます。非対称キーの詳細については、「CREATE ASYMMETRIC KEY (Transact-SQL)」を参照してください。
非対称キーは、厳密な名前のキー ファイルからインポートできますが、エクスポートすることはできません。また、有効期限のオプションもありません。非対称キーで接続を暗号化することはできません。
SQL Server での非対称キーの使用
非対称キーは、データを保護したり、プレーン テキストに署名したりする場合に使用できます。SQL Server での非対称キーに関するその他のリソースを次の表に示します。
トピック |
内容 |
---|---|
非対称キーを作成するためのコマンドについて説明します。 |
|
オブジェクトに署名するためのオプションについて説明します。 |
ツール
Microsoft では、証明書および厳密な名前のキー ファイルを生成するツールとユーティリティを提供しています。これらのツールでは、SQL Server 構文よりも柔軟にキーを生成できます。これらのツールを使用することで、より複雑なキー長の RSA キーを作成して SQL Server にインポートできます。次の表では、これらのツールの入手先を示します。