重要なセキュリティ用語

デベロッパーが HTTPS に移行する際に直面する 2 つのハードルは、概念と用語です。このガイドでは、両方の機能の概要を説明します。

Chris Palmer
Chris Palmer

まとめ

  • ブラウザとサーバー間のメッセージの署名と復号に公開鍵/秘密鍵を使用。
  • 認証局(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 の情報を検証し、それを使用して証明書を生成します。CA から最終的な証明書が送信され、その証明書(または証明書チェーン)と秘密鍵がウェブサーバーにインストールされます。