証明書とは
公開鍵証明書 (単に証明書とも) は以下の2つのセットのことです。
信頼を有するある者が、信頼のないある者の公開鍵の信頼性を第三者に保証するために発行します。
- デジタル署名: 信頼を有するある者がその秘密鍵で、信頼のないある者の公開鍵 (のハッシュ値) を暗号化した結果。電子署名とも。
- 信頼のないある者の公開鍵
第三者が証明書を利用する手順は以下の通りです。
- 公開鍵証明書から、デジタル署名と信頼のないある者の公開鍵を取り出す
- 信頼を有するある者の公開鍵を用意
- 信頼を有するある者の公開鍵でデジタル署名を復号化し、信頼のないある者の公開鍵 (のハッシュ値) と一致するか確認
- 信頼性が保証された、信頼のなかった者の公開鍵を用いて、メッセージを暗号化または復号化して通信
- 今後認証の手間を省くために、第三者は信頼のなかった者の公開鍵を、信頼のあるものとして保存しておく
公開鍵証明書は単に証明書とよばれたり、PKC (public-key certificate) と記述されたりします。
認証局 (CA) とは
上述の「信頼を有するある者」はこの分野では一般に認証局とよばれます。CA (certification authority) とも記述されます。
有名な認証局に、ベリサインという企業があります。
ルートCA
ある認証局 (CA) の信頼性を保証するために、別のCAが必要になる場合があります。
そしてそのCAの信頼性を保証するために、また別のCAが必要になるかもしれません。
そうしてCAは階層構造になっており、そのルートをルートCAとよびます。
なお、ルートCAの信頼性はルートCA自身が保証しています(セルフ署名)。
世界には唯一のルートCAというものはなく、無数のルートCAが存在しています。
X.509
証明書の標準規格です。公開鍵証明書には主に2つ、厳密には3つの要素が含まれています。
- 公開鍵
- デジタル署名 (公開鍵 (のハッシュ値) を認証局の公開鍵で暗号化した結果)
- デジタル署名を生成するとき (暗号化するとき) に用いたアルゴリズム
それら3つの要素を証明書として受け渡す際の手順のようなものです。
第三者のアプリケーションはX.509をサポートしているため、その手順に従って証明書を受け取ります。
公開鍵基盤 (PKI)
公開鍵の認証を行うために必要となるあらゆる要素を総合したものです。
PKI (public-key infrastructure) ともよばれます。
前述のX.509もPKIの構成要素です。
企業や政府は必要な要素をまとめて各々のPKIを構築し、運用しています。
証明書ディレクトリ
認証局が発行した証明書を保管しておく場所です。第三者はここから証明書を取得します。
レポジトリともよばれます。
証明書破棄リスト (CRL)
有効期限がきた証明書や、有効期限以前であっても無効化しなければならない
証明書のリスト (に認証局のデジタル署名を付加したもの) です。
CRL (certificate revocation list) ともよばれます。
第三者は最新のCRLを取得し、リストと署名を取り出し、
リスト (のハッシュ値) を認証局の公開鍵で暗号化し署名と比較して、リストの妥当性を検証します。
そして、リストに掲載されている証明書を保持していれば破棄します (破り捨てます)。
プログラミング教育者。ScratchやPythonを教えています。
記事の執筆者にステッカーを贈る
有益な情報に対するお礼として、またはコメント欄における質問への返答に対するお礼として、 記事の読者は、執筆者に有料のステッカーを贈ることができます。
さらに詳しく →Feedbacks
ログインするとコメントを投稿できます。




