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