公開鍵基盤 (PKI:public key infrastructure)

PKIとは公開鍵暗号技術を使った電子署名を中心とした社会基盤です。
具体的には、公開鍵の所有者を信頼できる第三者 (TTP:Trusted Third Party)に 保障させる仕組みと、それらを実現する様々な技術の総称といえます。

公開鍵暗号方式の公開鍵は、「対になる秘密鍵の所有者のものである」と 技術的に証明できます。
しかしその公開鍵だけでは、 それが意図とする相手の物かどうかが分かりません。
偽り公開鍵で、ある名前に成りすましているかもしれないわけです。
よって、その公開鍵と所有者が、意図する相手の物かを 保障する社会的に信用できる別機関が必要となります。

この保障する機関を認証局( CA : Certification Authorrty)と呼びます。
認証局では、公開鍵に署名をすることで、 公開鍵証明書X.509証明書)を作成し、それを発行します。
同時に、公開鍵証明書と所有者関連情報は、 リポジトリと呼ばれるデータベースで公開されます。
(身分証明書を、CAに発行してもらうことで、 その身分証明書を信頼できるようにする考え方です)

公開鍵証明書の公開鍵を使う利用者は、 その内部情報とリポジトリの情報で、 そのCAが署名したものかを鑑定することが出来ます。
(署名は、CAの秘密キーで暗号化されたものですから、 CAの公開鍵で復号できます。それにより そのCAが署名したということと、 改ざんが無いことを調べることができます。)
このCAの公開鍵は、CA自己署名証明書と呼ばれます。

公開鍵証明書を取得する場合は、 CA の請負組織である登録局( RA : Registration Autority)に、証明書の申請を行います。
RAでは、証明書申請に対して、本人性(間違いなく本人であること)や 申請記載情報が正確であることの確認し、 CAに対して、 公開鍵証明書の発行や失効を要求します。

CAでは、RAから送られてきた署名前証明書からダイジェストを 作成して、CAの秘密鍵で暗号することにより、署名して公開鍵証明書を 作成し、リポジトリに公開します。

リポジトリでは、この証明書以外に、 証明書失効リストCRL)や、 証明書ポリシーCP) や、 認証局運用規定CPS) などが規定されて公開されまます。
証明書失効リストCRL)は、 有効期限内で証明書を無効にしなければならないケースで使われます。 (証明書の記載内容変更、所有者の秘密鍵の漏洩や、 所有者が資格を失う場合などです)
証明書ポリシーCP:Certifcation Policy)は、 証明書の利用や目的、その範囲を規定するものです。
認証局運用規定CPS:Certifcation Practice Statement)は、 運用局のセキュリティを どのように実現しているかや、CPの具体的運用手順を提示します。

なお、認証局の秘密鍵はPKIの要なので、絶対に揺曳しないような管理が必要となります。 そこで、秘密鍵はハードウェアセキュリティモジュール (HSM:Hardware Security Module)と呼ばれる 情報を取り出せないように作られた専用ハードウェアで保管されます。

さて、 このように堅牢に見えるCAが存在していても、 まだ、落とし穴があります。
それは、公開鍵証明書とそのCAが、偽りである場合です。
つまり、悪意のある人が偽りのCA用リポジトリを作り、その秘密鍵で、 偽りの公開鍵証明書を作ることが可能なのです。

結局最終的には、「何をもってそのCAを信頼するのか」ということになります。
CAの公開鍵である自己署名証明書は、自分のもので間違いないと証明するものなので、 CA自体を信頼できるかどうかの指標にはなりません。
リポジトリにある証明書ポリシー(CP)や認証局運用規定(CPS)も 自身の記載事項なので、信用できなければ意味がありません。
(実績や知名度のあるCAに見えてもそれ自体が偽りの可能性もあります)

CAの自己署名証明書を持つ(利用できるようする)」ことは、 そのCAを信頼したことになります。
その為には、正当なCAの自己署名証明書を なりすましや 改ざんがない安全な方法で受け取る必要があります。
では、どうやって受け取ればよいのでしょうか?
手渡しや郵送などの物理的な手法も考えられますが、
自己署名証明書を使用するソフトウェアの インストーラに組み込んで、 ソフトウェアと一緒にインストールする方法が よく使われます。
そしてこのようにしてインストールされているような実績、知名度の 高いCAが、さらに別のCAを証明します。 (信頼できるCAが保証しているCAであれば、 そのCAも信頼できるというわけです)
このようにCAの信頼は階層構造になります。
階層構造の最上位に位置で、下層のCAに証明を与えるような、 知名度も高いCAを「ルートCA」、 そのCAの自己署名証明書のことを、「ルート証明書」と呼びます。
また、上位の証明機関に証明されたCAを 「中間証明機関」と呼ぶことがあります。
インターネットエクスプローラであれば、「ツール」メニュー内の 「インターネットオプション」の中の 「コンテンツ」タブの証明書をクリックすることで確認できます。




なお、認証パス上において、信用の基点となる CA は、 トラストアンカー(Trust Anchor:信頼点)と呼ばれます。
CA同士で保障しあう信頼モデルは、次の方法があります。

政府認証基盤:GPKI(goverment public key infrastructure)

GPKIは、 政府や行政機関、地方自治体への許認可、申請、届出などを オンライン化して、そこで申請者や文書作成者が、本人であることや、 改ざんを防ぐための行政機関側の仕組みです。
GPKIは、「政府共用証局」と「ブリッジ認証局」で構成されます。
「政府共用認証局」は、電子申請を受け付ける処分権者の証明書を発行し、 ブリッジ認証局」は、 行政機関側認証局と民間認証局等との間で相互認証を行います。