公開鍵基盤
公開鍵基盤(Public Key Infrastructure、以下、PKI)とは、ネットワーク上で利用されている公開鍵や秘密鍵が、本人と結びついた正当なものであることを、第三者(認証局)によって証明するための仕組みです。
これを実現するために、デジタル署名やデジタル証明書の技術が用いられます。PKIを構成する要素は以下になります。
認証局(CA)
認証局(Certification Authority)は、以下のような役割を持ちます。
- デジタル証明書を発行する。
- 証明書失効リスト(CRL)を発行する。
- CAのデジタル証明書を公開する。
CAは階層構造になっており、上位CAが下位CAを認証して証明書を発行します。最上位のCAはルートCAと呼ばれます。ルートCAとは、上位の認証局の認証を受けず、自分の正当性を自分で証明するCAのことです。
尚、ルートCAのデジタル証明書は、トラストアンカーとも呼ばれ、ルートCA自身のデジタル署名が付加されています。
登録局(RA)
登録局(Registration Authority)は、以下のような役割を持ちます。
- 証明書発行や失効などの審査
- デジタル証明書利用者情報の登録
- 鍵の管理と配布
証明書失効リスト(CRL)
証明書失効リスト(Certificate Revocation List)とは、例えばデジタル証明書の悪用や誤発行などにより、有効期限内に失効させる必要が生じたデジタル証明書が登録されたリストです。尚、デジタル証明書は有効期限が切れると、その時点でCRLからの削除されます。
デジタル署名
デジタル署名(電子署名)とは、メッセージダイジェスト(以下、MD)を自身の秘密鍵で暗号化した電子的な署名です。デジタル署名により、以下の点を確認することができます。
- 文書の正当性(なりすまし防止)
- 文書の完全性(改ざん防止)
尚、デジタル署名では文書の機密性(盗聴の防止)は守れませんので、暗号化など別の対策を行う必要があります。
デジタル署名の手順
文書を送る場合、送信者側の手順は以下になります。
- ハッシュ関数を用いて送信文書のMDを作成する。
- MDを送信者の秘密鍵で暗号化し、デジタル署名を作成する。
- 文書とデジタル署名、デジタル証明書を併せて送信する。
文書を受け取った後の受信者側の手順は以下になります。
- 送信者と同じハッシュ関数を用いて受信文書のMDを作成する(①)。
- 送信者のデジタル証明書(公開鍵)で送信者のデジタル署名を複合化する(②)。
- ①と②のMDを比較する。
①と②のMDが同一であれば、送られてきた文書の正当性(なりすましがないこと)と完全性(改ざんがないこと)が担保されたことになります。
尚、ハッシュ関数とは、任意のデータから別の値を得るための操作で、以下のような性質を持ちます。
- 与えたデータが異なれば、生成されるハッシュ値は異なる。
- ハッシュ値から元の値を求めることができない。
- 与えたデータの長さに関わらず、ハッシュ値は一定の長さを持つ。
デジタル証明書
デジタル証明書(公開鍵証明書)とは、個人や組織に対する電子式の身分証明書で、CA(認証局)から発行されます。デジタル証明書は用途により、SSL証明書やサーバ証明書(サーバの認証)、クライアント証明書(クライアントの認証)などの呼び方があります。
デジタル証明書の内容
デジタル証明書に含まれる情報は主に以下になります。尚、FQDNとは完全修飾ドメイン名(Fully Qualified Domain Name)の略です。
- コモンネーム(サーバのFQDN)
- 組織名、住所
- 公開鍵
- 発行日
- 有効期限
- CAのデジタル署名
デジタル証明書の作成
デジタル証明書の作成の手順は以下になります。
- ユーザによる鍵ペアの生成
- 公開鍵と識別情報を含む証明書署名要求(CSR)をCAに送信
- CAによるユーザの身元の検証
- CAの秘密鍵によってデジタル署名を作成
- デジタル証明書の発行
デジタル証明書の確認点
ブラウザがWebサーバとSSL通信を行う際は、以下のようなサーバ証明書の有効性を確認する必要があります。
- 有効期限が切れていないこと。
- 失効状態でないこと。
- コモンネームがアクセス先のFQDNと一致すること。
- ルートCAまで辿って信頼性が確認できること。
デジタル証明書に含まれるCAのデジタル署名は、当該デジタル証明書を発行したCAが、当該デジタル証明書の正当性と完全性を保証するためのものです。
受信者は、受信文書の正当性と完全性を確認したときと同じ手順で、当該デジタル証明書の正当性と完全性を確認することができます。つまり、CAの公開鍵(中間証明書)を使ってCAのデジタル署名を複合化し、これと当該デジタル証明書のMDを比較することで確認できます。
中間証明書
中間証明書(中間CA証明書)とは、デジタル証明書を発行したCA自身のデジタル証明書です。中間証明書には、CAの公開鍵が付けられています。
さらに、CAの中間証明書の信頼性を確認する場合は、中間証明書には上位CAのデジタル署名が付加されているので、これにより中間証明書の正当性と完全性を確認することができます。
デジタル証明書の失効と更新
自身が保有する秘密鍵が漏洩した場合や、退職等により署名権限失った場合には、まだ期限が切れていない公開鍵証明書は無効化(失効)されます。
そのため、証明書の期限が切れる前に新しい鍵ペアを生成し、新しい鍵ペアに対する証明書を発行する必要があります。新しい証明書の発行の際は、古い鍵ペアを使ってネットワーク越しに手続きを行うことができます。