重要なセキュリティ用語

TL;DR

  • 公開鍵 / 秘密鍵は、ブラウザとサーバー間のメッセージに署名し、メッセージを復号化するために使用されます。
  • 認証局(CA)とは、公開鍵とパブリック DNS 名(「www.foobar.com」など)間のマッピングを保証する組織です。
  • 証明書署名要求(CSR)は、鍵を所有するエンティティに関するメタデータと一緒に公開鍵をバンドルしたデータ形式です。

公開鍵と秘密鍵のペアとは

公開鍵と秘密鍵のペアは、暗号鍵および復号鍵として使用できる非常に多くの数字から成るペアであり、特殊な数学的関係を共有します。 鍵のペアの一般的なシステムは、RSA 暗号システムです。 公開鍵はメッセージを暗号化するために使用され、メッセージは対応する秘密鍵によってのみ復号化することができます。 ウェブサーバーは世界にその公開鍵を通知し、クライアント(ウェブブラウザなど)は、サーバーに安全なチャネルをブートストラップするためにそれを使用します。

認証局とは

認証局(CA)とは、公開鍵とパブリック DNS 名(「www.foobar.com」など)間のマッピングを保証する組織です。たとえば、特定の公開鍵が本物の www.foobar.com の公開鍵であることをクライアントが確認するにはどうすればよいでしょうか。 先験的には知る方法はありません。CA は、独自の秘密鍵を使ってウェブサイトの公開鍵に暗号により署名することで、特定の鍵が特定のサイトの本物の公開鍵であることを保証します。 この署名は、計算上偽造が不可能です。ブラウザ(およびその他のクライアント)は、有名な CA が所有する公開鍵を含むトラスト アンカー ストアを保持し、それらの公開鍵を使用して、CA の署名を暗号により検証します。

X.509 証明書は、鍵を所有するエンティティに関するメタデータと一緒に公開鍵をバンドルしたデータ形式です。 ウェブの場合、鍵の所有者はサイトの運営者であり、重要なメタデータはウェブサーバーの DNS 名です。 クライアントが HTTPS ウェブサーバーに接続すると、ウェブサーバーは、クライアントが確認できるようにその証明書を提示します。 クライアントは、証明書の有効期限が切れていないこと、DNS 名がクライアントが接続を試みたサーバー名と一致していること、および既知のトラスト アンカー CA が証明書に署名していることを検証します。 ほとんどの場合、CA はウェブサーバーの証明書に直接署名はしません。通常、トラスト アンカーを中間署名者または署名者、そして最終的にウェブサーバーの独自の証明書(エンド エンティティ)にリンクする証明書チェーンが存在します。

証明書署名要求とは

証明書署名要求(CSR)とは、証明書と同様に、鍵を所有するエンティティに関するメタデータと一緒に公開鍵をバンドルしたデータ形式です。 ただし、クライアントは CSR を解釈しません。解釈は CA が行います。CA にウェブサーバーの公開鍵の保証を求める場合に、CA に CSR を送信します。 CA は CSR の情報を検証し、それを使用して証明書を生成します。次に、最終的な証明書をユーザーに送信します。ユーザーはウェブサーバー上に証明書(多くの場合は証明書チェーン)と秘密鍵をインストールします。