ポイント●暗号方式の組み合わせ技術で,主役となっているのは公開鍵暗号方式である●公開鍵暗号方式をインターネットなどで使う場合,公開鍵が悪意のある第三者に漏えいしていてもかまわないが,入手した公開鍵が信頼できるかを確認する必要がある ●PKI(Public Key Infrastructure)とは公開鍵(公開鍵証明書)を安全にやり取りするための基盤のことで,公開鍵を第三者機関が保証する |
公開鍵暗号方式を利用する際には,事前に相手の公開鍵を入手しておく必要があります。この時,仮に公開鍵が悪意のある第三者に漏えいしても問題にはなりません。
しかし,実際にインターネットなどを介して公開鍵暗号方式を利用するには,考慮しておかなければならないことがあります。それは「入手した公開鍵(公開鍵証明書)が信頼できるものなのか」という点です。
前回までの解説では,「事前に入手している相手の公開鍵は信頼できるものだ」という前提で話をしてきました。実世界では,入手した公開鍵が信頼できるかどうかを確認するには,PKI (Public Key Infrastructure)というしくみを利用して判断しています。PKIとは,公開鍵(公開鍵証明書)を第三者が保証することで,安全にやりとりするための基盤です。
主役は公開鍵暗号方式
最初に,暗号方式に関わる基礎技術と,その組み合わせ技術に関して整理しておきましょう(図1)。
図1 ハイブリッド暗号方式もデジタル署名も公開鍵暗号方式を利用している |
図1のように三つの基礎技術---共通鍵暗号方式,公開鍵暗号方式,ハッシュ関数---がありました。この中にある公開鍵暗号方式は,「鍵の配送が容易で管理が楽」という利点と「送信元が正しいか判断できる」という機能を持っています。これらの特徴は,顔の見えない相手とやり取りすることが多いインターネットでの通信に有効です。
しかし,これらの特徴を活用しようとしても公開鍵暗号方式単独での実装だと処理が重くなるため,暗号化/復号に時間がかかってしまう,という短所がありました。
そこで,守秘・機密(中を見られたくない)で利用する場合は,共通鍵暗号方式と公開鍵暗号方式を組み合わせた「ハイブリッド暗号方式」を使うのが一般的です。また,署名(送信元が正しいかを確認する)で使いたい場合は,ハッシュ関数と公開鍵暗号方式を組み合わせて出来ている「デジタル署名」を使います。これらの組み合わせ技術を使うことによって,公開鍵暗号方式の持つ長所である「鍵の配送が容易」という点を利用することができ,かつパフォーマンスへの悪影響を最低限に抑えることができました。
最初に公開鍵を入手する時は認証が必要
ハイブリッド暗号方式も,デジタル署名も,公開鍵暗号方式の特長や機能があって成り立っています。ですから,どちらの仕組みを利用する時も,事前に相手の公開鍵を入手しておく必要があるわけです。
この時,仮に公開鍵が悪意のある第三者に漏えいしても問題にはなりません。しかし,実際にインターネットを介して公開鍵暗号方式を利用するには,入手した公開鍵が信頼できるものなのか,間違いなく本人の公開鍵なのかを確認(=認証)する必要があります。
理想的な方法は,直接本人に会って,手渡ししてもらうことです。これならば,簡単になりすましはできませんので,渡された公開鍵を確実に信頼できます。しかし,この方法が有効なのは相手の顔を知っていて,かつ(二人が会うための)距離と時間に制約が無い場合に限られます。
第三者が保証するPKI
ここで以前に解説した「認証には2種類ある 」という記事を思い出してください。認証には2者間認証と3者間認証がありました。
PKIでは,3者間認証が利用されています。顔が見えない状態でのやり取りや,初めて会う相手とのやり取りがあることを考えた場合,3者間認証の方が適しているからです。
「顔が見えない状態で,初めて会う相手を認証する」と言われてもピンと来ないかもしれませんが,身近な例を一つ挙げてみますと,『初めてアクセスするインターネット上のWebサーバーを信頼するかどうか判断する』作業が該当します。
3者間認証が利用される理由(1)
---はじめて会う相手を認証できる
なぜ3者間認証の方が適しているのかを考えてみましょう。
まず「初めて会う相手を認証する」という視点から見てみます(図2)。
図2 2者間認証では初めて会う相手を認証できない
|
2者間認証では,あなたと私,クライアントとサーバーのように2つの要素間で事前に共有しているパスワードなどを確認します。このため,事前準備をすることができない初めて会う相手を信頼することができません。
一方の3者間認証では,あなたと私,それぞれが信頼できる機関に証明書を発行してもらいます。たとえ初めて会う相手でも,自分が信頼している(1)認証局が発行した証明書(2)を提示した人(3)なら,信頼しても大丈夫だろうと判断することができます。
3者間認証が利用されている理由(2)
---公開鍵を無効にできる
次に「顔の見えない相手とのやり取り」という視点から見てみます。
例として,Bさんが顔の見えない相手(Aさん)から公開鍵(公開鍵証明書)を入手するときを考えます。このとき,あるタイミングでなりすましをされていた場合に,Bさんはなりすましされていることに気がつけません。どんなタイミングかイメージできるでしょうか。