儀間 隆夫 日本ボルチモアテクノロジーズ 技術本部 E&Tグループ コンサルタント

不特定多数の通信が行き交うインターネットの世界では,通信相手を確認するなど安心して情報をやり取りできる環境が求められます。これを解決するPKIについて,企業がこの仕組みを導入する上での注意点やポイントを解説します。

 PKI(public key infrastructure:公開鍵基盤)とは,「ネットワーク上で使う身分証明書を発行,管理するための仕組み」であり,セキュリティ・インフラとして使用されます。

 現実の世界では,契約を交わしたりクレジットカードを取得する場合などに,印鑑証明書や運転免許証といった自分の身元を保証するための書類が必要になります。ところが,ネットワークを介した取引では,取引相手と直接会うことが非常に少なくなるため,取引をするお互いの身元を保証するための手段が,一層重要になります。このネット上で身分証明を実現する技術や仕組みがPKIです。

インターネットのビジネス利用に不可欠

PKIはいくつかの暗号技術を組み合わせることで実現されます。データを暗号化するために使う512~2048ビット程度のビット列を暗号鍵と呼びますが,この暗号鍵を信頼される第三者機関であるCA(certificate authority:認証局)が所有者の情報と結び付けることにより,暗号鍵の持ち主の身元を保証します。

図1 紙ベースの文書とPKIのディジタル文書の違い
ディジタル証明書は現実の世界で使う印鑑証明書に,ディジタル署名は印影に相当する。認証局の署名付きのディジタル証明書を添付することで,書類に記入したディジタル署名を保証できるだけでなく,データの暗号化や改ざん検出も可能になる。
 実際には,公開鍵(パブリック・キー)と呼ぶ暗号鍵とその持ち主を結び付けるディジタル証明書を,CAが発行するという形式を取ります。このディジタル証明書が,現実の世界の印鑑証明書や運転免許証に相当します。印鑑証明書などは本人の身元を保証する役割だけですが,ディジタル証明書はデータの暗号化やデータの改ざんをチェックする機能も備えています(図1[拡大表示])。

ネット上にあるリスクを解消

 PKIは技術的にはそれほど新しいものではありません。それが最近になって重要視されるようになったのは,オープン・ネットワークの代表であるインターネットが急速に普及したことが原因です。

 というのも,不特定多数がアクセスするインターネット上には,(1)クレジットカード番号や企業の情報が,通信途中に第三者に不正に傍受される(盗聴・漏えい),(2)発注データなどの情報が通信途中で第三者に書き換えられる(改ざん),(3)他人の名をかたり,サービスの申し込みやデータの送受信を行う(なりすまし),(4)サービスの申し込みやデータの送受信など自分の行為を否定する(否認)――というリスクがあるからです。

図2 PKIの全体像
PKIの環境は信頼される第三者であるCAが公開鍵の所有者に証明書を発行することにより成り立つ。発行された証明書を交換することで,互いに相手の身元を確認する。また証明書の中の公開鍵を使ってインターネット上でも暗号化通信が可能となる。
 このようなリスクが存在するにもかかわらず,インターネットは拡大を続けており,ビジネスに利用する企業がますます増えています。

 これは,企業と消費者を結ぶB to C型の電子商取引だけではありません。企業対企業を結ぶB to B型の電子商取引にも広がっています(図2[拡大表示])。特にB to Bの分野では,インターネットを使った資材のオープン調達など,従来のビジネスのやり方を変えるモデルが次々に登場しています。このため,企業にとっては相手との通信を外部に漏れないようにしたり,通信相手を特定したりできるPKIの機能が重要になってきたのです。つまりPKIは,インターネットを使ったビジネスの普及・拡大を推進する企業にとっては必要不可欠なインフラなのです。

PKIが可能にするSSL通信

 PKIという言葉はまだ耳慣れないかもしれませんが,多くの人は特に意識することなく既にPKIの仕組みを利用しています。一番良い例が電子商店などとユーザー間のデータを暗号化するために使われているプロトコルのSSLです。SSL通信は,PKIを利用することではじめて成立します。

写真1 PKIを利用して実現するSSL通信の例SSLでは,ディジタル証明書を使って認証と暗号化を行う。SSL通信が利用されているWebページにアクセスした際に,ブラウザのプロパティを見ると,証明書の発行元やサイトの運営元,有効期限などの情報が入手できる。写真は,野村証券のホームトレード・サービスのページのプロパティ。サイバートラストがディジタル証明書を発行し,野村証券がサーバーを運営していることが確認できる。
 B to Cで使われているSSLでは,Webサーバーに対して発行されているディジタル証明書を使用します。これをSSLのサーバー認証といいます。ユーザーは,この証明書でWebサーバーの所有者を特定し,証明書の中にある暗号鍵を使ってWebサーバーとブラウザ間の暗号化通信を実現しています(写真1[拡大表示])。

 Internet ExplorerやNetscape Navigatorなどのブラウザでは,既に稼働しているCAの証明書があらかじめ組み込まれています。これらを見ると,PKIが既に一般的であることを実感できるはずです。

 ブラウザの所有者を特定するクライアント認証もありますが,個々のユーザーに証明書を配布する必要があることなどから,まだあまり普及していません。ただし,Web-EDIシングル・サインオンなどのWebベースのアプリケーションなどで,使われ始めています。