公開鍵基盤
出典: フリー百科事典『ウィキペディア(Wikipedia)』
暗号技術において、公開鍵基盤(こうかいかぎきばん、英:public key infrastructure、以下PKI)とは、利用者の身元について「信頼できる第三者」(英:trusted third party)が審査を行い、保証を実現する仕組みのことである。
目次 |
[編集] 概要
PKIでは公開鍵は利用者に結びつけられる。通常は離れた場所にあるソフトウェア同士が協調し合う事で公開鍵は配布される。PKIでは公開鍵は公開鍵証明書に収められた形で利用される事が一般的である。
この用語は、認証局(英:certificate authority、以下CA)や関連する取り決めの事だけではなく、電子通信における公開鍵暗号の使用目的という(広義かつ多少紛らわしい)意味でも使われる事が多いが、公開鍵暗号にはPKI以外の用途もあり必ずしもPKIの体系が要るものではないので、後者の意味は誤りである。
[編集] 用途と機能
PKIは、公開鍵証明書に記載された利用者の公開鍵を使用して、利用者が相互に相手を正当であると認める事(認証、英:authentication)や、利用者同士が直接、通信文を暗号化・復号することが可能になる。一般にPKIはクライアントソフトウェアとCAなどのサーバソフトウェア、スマートカードなどのハードウェア、証明書ポリシー(英:certificate policy、CP)および認証実施規程(英:certification practice statement、CPS)などの運用手順から成る。
ある利用者Aが自分の秘密鍵を用いて通信文にデジタル署名を行ったとき、別の利用者Bは(CAによって発行された利用者Aの公開鍵証明書に収められた公開鍵を用いて)その署名を確認できる。この仕組みによって、通信を行う人同士が事前に何らかの機密情報をやり取りする必要なしに機密性、完全性、相手認証ができる。
[編集] 主な使用法
企業向けのPKIシステムのほとんどは、ユーザの身元を確定するための証明書xは、証明書xを発行したCAが保証し、そのCAの'正当性'はさらに同様の方法で一段上位のCAから発行された証明書yによって確立され、そしてそのCAはさらに上位のCAの・・・というように、証明書の連鎖に頼っている。 この仕組みは最低でも数台のコンピュータ、一つ以上の組織からなる証明書の階層をもたらし、いくつかのプログラムからなるソフトウェアパッケージによって調和し相互運用がなされる。
PKIの運営には標準規格が重要であり、特にPKIの大規模運用を意図する場合に重要である。IETFのPKIXワークグループがこの領域の標準化のほとんどを完了している。
企業でのPKIシステムは企業のディレクトリ体系と密接につながっていることが多く、各従業員の公開鍵が各々の個人情報(電話番号、Eメールアドレス、住所、部署など)とともに保存されることがよくある。今日の主なディレクトリ技術はLDAPであるが、実際に現在最も一般的な証明書フォーマットであるX.509はLDAPの前身であるX.500ディレクトリスキーマに由来している。
[編集] その他
[編集] 信用の輪(Web of Trust)
公開鍵情報の認証を手っ取り早くやるという問題に対する代替策として、自己署名証明書を用いて、第三者が他の証明書の証明を行う信用の輪(Web of Trust)というものがある。例としてPGP(Pretty Good Privacy)や、その標準仕様である OpenPGP のフリーな実装であるGnuPG (The GNU Privacy Guard)が挙げられる。PGPやそのクローンがEメールで広く使用されているため、最初にPGPによって実装された信用の輪は2004年現在最も広く使われている双方向PKIとなっている。CAcert.orgは、信頼関係の全情報がすべて中央のデータベースに入れられることを除いて、PGPの信用の輪と同等のPKI Web of Trustを運営している。
[編集] Simple Public Key Infrastructure(簡易公開鍵基盤)
まだ新しく急速に成長しているものとして、X.509の複雑さとWeb of Trustの無秩序に打ち勝つべく3人の個々人の努力によって生まれたSimple Public Key Infrastructure(SPKI)がある。SPKIは設計に不可欠となる委任を追加するとともにローカル認証を使用することで人/システムと鍵を結びつける(PGP Web of Trustに近い)。
[編集] ロボットCA
ロボットCAとは、公開鍵の正当性を特定の条件から自動的に検証し、その条件について有効性を証明するための署名を自動的に行う無人プログラムである。ロボットCAは公開鍵システムの攻撃者、特に合法なサイトからのすべてのネットワークトラフィックを一時転換する種の攻撃者を排除もしくは大いに抑制することができる。
[編集] 歴史
1976年にDiffie (Whitfield Diffie)、Hellman (Martin Hellman) の両名によって発表された安全な鍵交換の仕組みであるDiffie-Hellman (DH)、そして1978年にロナルド・リベスト (Ron Rivest)、アディ・シャミア (Adi Shamir)、レオナルド・エーデルマン (Leonard Adleman) の3名によって発表された非対称鍵アルゴリズムであるRSAは、安全な通信について劇的な変化をもたらした。高速デジタル通信(インターネットやその前身)の更なる発展により、利用者がお互いに安全に通信できる方法や、更に利用者が実際に対話していた人を確認できる方法の必要性が明白になった。利用者の同一性を公開鍵に結び付ける、暗号的に保護された証明書のアイデアが精力的に研究された。
初期の暗号技術の中から効果的な使い方ができる組み合わせが発明および分析された。World Wide Web (WWW)の発明とその急速な普及と共に、認証(authentication)と安全な通信の必要性が更に深刻となった。(電子商取引や、Webブラウザから商用データベースへのオンラインアクセスなど)商用の理由だけで十分だった。ネットスケープコミュニケーションズ (Netscape Communications Corporation) のテヘール・エルガメル(Taher ElGamal)たちは、鍵の立証やサーバ認証(v3より前は片方向のみ)などを含む、Secure Socket Layer (SSL)プロトコル(URLでの'https')を開発した。このようにPKIの構造はWebの利用者/サイトが望む(あるいはそれ以上の)安全な通信のために造られた
ベンダーや起業家が広大な市場の可能性を予測し、新しい会社や企業内プロジェクトを始め、責任からの保護と法的な承認について議論され始めた。米国弁護士協会 (American Bar Association, ABA) のテクノロジ・プロジェクトはPKI運用に関して予測し得る法的な側面について広範囲に渡る分析を発表し(en:ABA digital signature guidelines 参照)、その後間もなくして、(1995年の米国ユタ州を皮切りに)世界中のあらゆる国や自治体が、法律の制定および規則の採択をし始めた。消費者団体などは、プライバシー、アクセス、責任について、幾つかの地域では更に考慮するべきであるという問題を挙げた。
制定された法律や規則とは異なり、上手くいっている商取引にPKIの体系を組み込むには技術上や運用上の問題が有り、またそれは先駆者が予想していたより遥かに進展が遅かった。
21世紀の初めの数年までには、基本的な暗号技術を正確に展開する事は容易ではない事や、(手動または自動の)運用手順を正確に設計する事は容易ではない事(もし技術的に完璧に実施するように設計したとしても)、そして定められた標準規格はそれらの目的のために尊重するには不十分な事が明確になった。
PKIベンダーは市場を造ったが、1990年代中頃には必ずしも思い描いていた物ではなく、ゆっくり、そして期待されていた物とは多少違った方向に成長していった。PKIは、期待されていた幾つかの問題は解決せず、いくつもの大手ベンダーが撤退したり他社に買収される事になった。PKI最大の成功は政府に採用された事である。現時点における最大のPKI実装は、米国防衛情報システム局 (Defense Information Systems Agency, DISA) PKI infrastructure for the Common Access Cards programである。
[編集] 使用例
PKIはさまざまなベンダからさまざまな種類のものが提供され、さまざまな使用方法がある(公開鍵の配布、ユーザの個人情報の隠蔽など)。
- 文章の暗号化や認証 --- 文章がXMLであればXML Signature * やXML Encryption* など。文章が電子メールであれば、OpenPGPやS/MIMEなど。
- ユーザー認証 --- スマートカードログオン, SSLによるクライアント認証など。
- 安全な通信プロトコルの初期セットアップ --- インターネット鍵交換(IKE)やSSLなど。 IKE、SSLともに初期セットアップ時は公開鍵暗号を用いるが、実際の通信は公開鍵暗号より速度が速い共通鍵暗号を用いる。
[編集] 実装
一部の主要な認証局(Verisignなど)は、他のソフトウェアが使用できないためここには記述していない。
- RedHat Certificate Management System
- Computer Associates eTrust PKI
- Entrust
- Microsoft
- US Government External Certificate Authority (ECA)
- Nexus
- OpenCA (サーバーソフトを含む公的に利用可能なPKIを目指すオープンソース運動)
- RSA Security
- phpki
- GenCerti
- ejbca
- newpki
- Papyrus CA Software
- pyCA
- IDX-PKI
- EuropePKI (休止中)
- TinyCA
- ElyCA
- SimpleCA
- SeguriData
[編集] 関連項目
[編集] 外部リンク
[編集] 日本のサイト
[編集] 海外のサイト
- PKI tutorial by Peter Gutmann
- PKIX workgroup
- Easing the PAIN — a detailed explanation of PKI Privacy, Authentication, Integrity and Non-repudiation (PAIN)
- NIST PKI Program — in which the National Institute of Standards and Technology (NIST) is attempting to develop a public key infrastructure
- Mozilla Open Source PKI Projects
- NewPKI — a PKI based on the OpenSSL low-level API