公開キー基盤

公開キー暗号化 (非対称キー暗号化とも呼ばれます) では、キー ペアを使用してコンテンツの暗号化と暗号化解除を行います。 キー ペアは、数学的に関連する 1 つの公開キーと 1 つの秘密キーで構成されます。 他のユーザーと安全に通信する個人は 、公開キー を配布できますが、 秘密キー シークレットを保持する必要があります。 キーの 1 つを使用して暗号化されたコンテンツは、もう一方を使用して暗号化解除できます。 たとえば、Bob がセキュリティで保護された電子メール メッセージを Alice に送信するとします。 これは、次の方法で実現できます。

  1. Bob と Alice の両方に独自のキー ペアがあります。 秘密キーを安全に保持し、公開キーを相互に直接送信しました。
  2. Bob は Alice の公開キーを使用してメッセージを暗号化し、送信します。
  3. Alice は秘密キーを使用してメッセージの暗号化を解除します。

この簡略化された例では、Bob がメッセージの暗号化に使用した公開キーに関する少なくとも 1 つの明白な懸念を強調しています。 つまり、暗号化に使用したキーが実際に Alice に属していることを確実に知ることはできません。 Bob と Alice の間の通信チャネルを監視している別のパーティが別のキーを置き換えた可能性があります。

公開キー インフラストラクチャの概念は、この問題やその他の問題に対処するために進化しています。 公開キー インフラストラクチャ (PKI) は、信頼されたサード パーティが公開キーの整合性と所有権を確立するために使用できるソフトウェアとハードウェアの要素で構成されます。 証明機関 (CA ) と呼ばれる信頼されたパーティは、通常、証明書のサブジェクトの ID を確認し、その ID を証明書に含まれる公開キーにバインドする署名済み (暗号化された) バイナリ証明書を発行することでこれを実現します。 CA は、秘密キーを使用して証明書に署名します。 自己署名 CA 証明書内のすべての関係者に対応する公開キーを発行します。 CA を使用する場合、前の例は次のように変更できます。

  1. CA が公開キーを含む署名付きデジタル証明書を発行したとします。 CA は、証明書の公開キーに対応する秘密キーを使用して、この証明書に自己署名します。
  2. Alice と Bob は、CA を使用して ID を確認することに同意します。
  3. Alice は CA に公開キー証明書を要求します。
  4. CA は自分の ID を検証し、証明書を構成するコンテンツのハッシュを計算し、公開された CA 証明書の公開キーに対応する秘密キーを使用してハッシュに署名し、証明書コンテンツと署名済みハッシュを連結して新しい証明書を作成し、新しい証明書を公開します。
  5. Bob は証明書を取得し、CA の公開キーを使用して署名済みハッシュを復号化し、証明書コンテンツの新しいハッシュを計算して、2 つのハッシュを比較します。 ハッシュが一致する場合、署名が検証され、Bob は証明書の公開キーが実際に Alice に属していると想定できます。
  6. Bob は Alice の検証済み公開キーを使用して、彼女へのメッセージを暗号化します。
  7. Alice は自分の秘密キーを使用して Bob からのメッセージの暗号化を解除します。

要約すると、証明書署名プロセスにより、Bob は転送中に公開キーが改ざんまたは破損されていないことを確認できます。 証明書を発行する前に、CA はコンテンツをハッシュし、独自の秘密キーを使用してハッシュに署名 (暗号化) し、発行された証明書に暗号化されたハッシュを含めます。 Bob は、CA 公開キーを使用してハッシュを復号化し、証明書の内容の別のハッシュを実行し、2 つのハッシュを比較することで、証明書の内容を検証します。 一致する場合、Bob は証明書とそれに含まれる公開キーが変更されていないことを合理的に確信できます。

一般的な PKI は、次の要素で構成されます。

要素 説明
証明機関
公開キー インフラストラクチャの信頼のルートとして機能し、ネットワーク内の個人、コンピューター、およびその他のエンティティの ID を認証するサービスを提供します。
登録機関
ルート CA によって認定され、ルートで許可されている特定の用途に対して証明書を発行します。 Microsoft PKI では、通常、登録機関 (RA) は下位 CA と呼ばれます。
証明書データベース
CA または RA で証明書要求を保存し、発行および失効した証明書と証明書要求を保存します。
証明書ストア
発行された証明書と保留中または拒否された証明書要求をローカル コンピューターに保存します。
キー アーカイブ サーバー
暗号化された秘密キーを証明書データベースに保存し、損失後に回復します。

証明書登録 API を使用すると、証明書とキーのアーカイブ要求を証明機関と登録機関に送信し、発行された証明書をローカル コンピューターにインストールできます。 証明書データベースまたは証明書ストアを直接操作することはできません。

次のトピックでは、Microsoft 公開キー インフラストラクチャについて詳しく説明します。

証明書登録 API について