公開鍵認証基盤 (PKI)
公開鍵認証基盤(PKI:Public Key Infrastructure )とは,公開鍵暗号方式に基づく公開鍵証明書を生成,管理,保管,配布,失効させるために必要となるハードウェア,ソフトウェア,ポリシーおよび手続きのセットである.
PKI は,公開鍵暗号に基づく認証基盤技術であり,認証に用いる鍵とその所有者の結び付きを証明する公開鍵証明書を第三者機関が発行し,通信相手が作成したディジタル署名と公開鍵証明書の対応関係を検証することにより,利用者認証を可能としている.
公開鍵証明書を発行するシステムが認証局(CA: Certificate Authority)であり,CA の機能は,公開鍵証明書の発行や失効の役割を担う発行局(IA)機能と,発行申請の受付と本人性審査,被発行者(利用者)の情報管理を担う登録局(RA)機能に分けられる.
日本国内では,行政機関に対する申請・届出等や,行政機関から国民等への申請・届出等に対する結果の通知等をインターネットを利用しペーパーレスで行うことを目的として,
政府認証基盤(GPKI:Government Public Key Infrastructure) が構築されている.
PKI とは
- PKI の要素
公開鍵証明書(以下,証明書) の発行プロセスに関連する基本的な要素は,エンドエンティティ(証明書利用者),登録局(RA),発行局(IA)および証明書リポジトリである.
各要素の役割は以下のとおりである.
- エンドエンティティ(証明書利用者)
秘密鍵,公開鍵のペア(鍵ペア)の所有者であり,証明書を利用するエンドエンティティ(人やサーバなど)である.
- 登録局(RA :Registration Authority)
証明書の発行を要求する鍵ペアの所有者の審査/確認を行う機能を持つ.
- 発行局(IA:Issueing Authority)
鍵ペアの所有者に対して証明書を発行し,鍵ペアの確かさを保証する役割を果たす.鍵ペアの所有者の確認はRAで行うが,自身のディジタル署名を鍵ペア所有者の証明書に施す.狭義の意味の CA である. 登録局と発行局の機能をまとめて認証局(CA:Certificate Authority)と呼ぶこともある.
- 証明書リポジトリ
IAが発行した証明書とその無効性を示す証明書失効リスト(CRL)を保管し,外部からも利用できるようにする.
- 証明書の発行手順
証明書が発行されるまでの基本的な手順は,以下のとおりである.
- 公開鍵と秘密鍵のペアの作成
利用者の秘密鍵,公開鍵の鍵ペアを生成する.利用者が自身で作成する場合と登録局側に作成を依頼する場合がある.
- 登録申請
証明書の利用者(申請者)が証明書の発行に必要な情報(発行申請情報)を RA に提出し,証明書の発行を受ける.
- 申請受付,審査
RA が申請者の認証(本人確認)と証明書に記述する内容の正当性を確認する.
申請者は自身を識別する情報を提示するとともに,その情報の正当性を示す必要がある.一般的には(オフライン登録),登録局の窓口にて本人確認の上で登録が行われる.このとき,申請者は本人性を証明するための初期認証情報を受け取り,証明書のオンラインでの発行申請時に利用する.
ここで.初期認証情報とは,証明書をオンラインにて発行する時に申請者を認証するための情報であり,以下のような情報が考えられる.
・申請者と認証局が事前に秘密裏に保持している情報
ID/パスワード,ID/ワンタイムURLなど
・公開鍵証明書
別途発行されている既存の公開鍵証明書
RA は申請者の認証後,証明書の発行をIAに依頼し,証明書を取得する.
- 証明書の発行
IA は,証明書を作成し自らの秘密鍵により署名する.
- 証明書の保管,配布
IAは,証明書を RA に送付する他,第三者もアクセス可能な場所(証明書リポジトリ)に保管する.
これらのの証明書発行プロセスの中で,証明書の発行や取得機能については,CA の運用面を除けば,証明書の形式や送受信等の方法は基本的には統一されている.一方,利用者情報の登録,審査に関しては,対象とする利用者の範囲や規模,利用者の審査や確認方法,運用方法などに関連して証明書発行システムごとに異なる.
認証局 (CA)
- 認証局の機能
インターネット上で公開鍵を配布する場合,公開鍵を偽造されないようにする必要がある.公開鍵を配布したい人は認証局から公開鍵の証明書を発行してもらい,公開鍵を受け取る人はこの証明書を確認することで,公開鍵が偽造されていないかどうかを確認する.この証明書には認証局の電子署名が入っており証明書自体も改ざんできないようになっている.
認証局の主な機能は以下である.
- 鍵の生成と更新
- 証明書発行要求(PKCS#10)の受付け,検証
- 公開鍵証明書の発行(証明書への署名生成)
- 公開鍵証明書の更新
- 証明書失効要求の生成
- 証明書失効リスト (CRL) の生成
- CA の信頼構造
- 階層型
階層的なピラミッド構造であり,上位の CA が下位の CA を認証する.最上位の CA はルート CA と呼ばれ,どの CA からも認証されない.
- 相互認証型
各利用者は自らの公開鍵を認証してもらっている CA の公開鍵を保有しており,他の CA による認証の有無に関わらずその公開鍵を信頼するということを前提としている.各 CA は他の CA と相互に認証を行っているが,そのパスを追うことにより他 CA 配下の利用者の公開鍵証明書の有効性を確認することができる.
- ハイブリッド型
階層型と相互認証型を組み合わせた構造である.階層型構造のブロックが複数存在しており,各ブロックのルートCA 同士が相互認証をしているというのが基本的な構造となっている.
失効リスト (CRL)
認証局が発行する証明書には有効期間が記載されているが,証明書が無効になったことを知らせる1つの方法が証明書失効リスト(Certificate Revocation List:CRL) である.
CRL は,公開鍵証明書の廃棄を周知するため,CA が作成し,定期的に配布する.
ISO/CD 15782-1 は,CRL に関する留意事項として以下の3 点を指摘している.
- その完全性と発行日時を確認できるようにするため,CA がCRL を作成し,これにディジタル署名を行う.
- 仮に廃棄情報に変更がなくとも, CRL を定期的に発行する.
- システム配下の全主体が CRL にアクセス可能とする.
証明書の発行数が多くなると CRL も大きくなり,CRL を入手するときのネットワーク負荷が大きくなるので,次のような方式が使われる.
- Delta-CRL(差分)CRL
- 基本の CRL と併用し,その差分データのみを抽出して1つの CRL として発行する方式
- 毎回全リストを更新せず,必要なデータのみに署名して発行するのでデータ量が削減でき,発行間隔も短くできる.
- 一定周期ごとには全リストを更新する.
例えば,基本 CRL の発行間隔を1週間,差分 CRL の発行間隔を1日とする.
- CRL-Distribution Points
- あるルールに従ってCRLを分割し,各々の CRL は独立して管理される.
- 証明書内には,その証明書の正当性を確認すべきCRLの場所 (Distribution Point) を記入する.
- LDAP または X.500 のディレクトリサーバに CRL を格納し,証明書の正当性を確認するアプリケーションは,LDAP 等のプロトコルにより必要な CRL を取得する.
- VA(Validation Authority)
- 証明書の失効データを管理し,クライアントからの証明書の正当性に関する問い合わせに応答する.
- 問い合わせプロトコル
OCSP (Online Certificate Status Protocol):RFC2560
証明書の正当性(失効の有無)を確認するためのプロトコルであり,証明書の失効のチェックに対する AP の処理を軽減化する.
OCSPレスポンダは,CA 自身または CA から発行される CRL を取得して管理することにより,証明書の正当性に関する問い合わせに応答する. OCSP レスポンダとリクエストクライアント間は,HTTP,SMTP,LDAP などのトランスポートメカニズムを用いて行われる.
公開鍵証明書
- 公開鍵証明書の形式
公開鍵証明書は,ユーザ識別名,公開鍵,発行者名,有効期限などの情報を信頼できる認証局(CA)の秘密鍵で署名を付与したものである. 公開鍵の証明書として普及している標準形式にX509証明書(Ver.3)がある. X509証明書には,バージョン番号,シリアル番号,有効期間,署名アルゴリズムなどの情報が記載されている.
以下に,X509証明書の構成を示す.
version |
: 証明書のバージョン番号 |
serialNumber |
: 同一CAが発行した証明書を一意に識別するための識別番号 |
signature |
: 署名アルゴリズム |
issuer |
: 証明書を発行するCAのディレクトリ名 |
validity |
: 証明書の有効期限 |
subject |
: 公開鍵の所有者のディレクトリ名 |
subjectPublicKeyInfo |
: 公開鍵 |
issuerUniqID |
: 同一名のCAを区別するために用いる識別子 |
subjectUniqID |
: 同一名の公開鍵所有者を区別するために用いる識別子 |
alternative name |
: メールアドレス,DNS名などの識別子 |
certificate policy |
: ポリシーの識別番号 |
key attribute |
: 鍵自身の識別子,寿命,用途等 |
key usage restriction |
: 鍵の利用制限 |
basic constraints |
: 発行局となることの制限 |
information access |
: 発行局アドレスと参照 |
authority key identifier |
: 署名鍵の識別子 |
CRL distribution point |
: CRL配布先 |