パスワードを使う認証は,ネットワークの重要な技術の一つ。しかし,パスワードを入力した裏側でなにが行われているか,きちんと理解しているユーザーは少ないのではないだろうか。Part1では,ネットワークで使われる基本的な認証方式の原理を説明する。

 お気に入りのポータル・サイトにログインしたり,新着の電子メールを読み出すときなど,インターネットを利用するいろいろな局面で,私たちはIDとパスワードを入力している。自分を自分と認めてもらい,正当な立場でいろいろなサービスを利用するためだ。

 パスワードを使う認証は,ネットワークの重要な技術の一つ。しかし,パスワードを入力した裏側でなにが行われているか,きちんと理解しているユーザーは少ないのではないだろうか。

 そこでこの講座では,ネットワーク認証のしくみを詳しく見ていく。まずPart1でネットワークで使われる基本的な認証方式の原理を説明する。次のPart2では具体的な場面場面でどんなふうに認証技術が使われているか見ていく。

ネットワークでは相手の確認が難しい

 実際に顔を合わせれば,それがだれだかすぐわかる。道ばたで知り合いに声をかけられれば,顔やしぐさ,声,話し方,服装といった特徴から私たちは相手を簡単に確認できる。

 でも,ネットワーク経由では同じように事は済まない。コンピュータ・ネットワークを流れるのは無機質なデータだけだからだ。

 例えば,お軽(かる)さんと由良之助(ゆらのすけ)の二人がネットワーク越しにテキスト・チャットを行うケースを考えてみよう(図1)。モニターに「お軽です」と名乗る文字が表示されたとして,それが確かにお軽さんからのメッセージだとどうやったらわかるだろう?モニターに表示されるのはお軽さんの名前を示す文字(ID)だけである。

図1●認証は現実世界では簡単でもディジタル化されていると難しい<br>認証の目的は相手を確認する,もしくは相手に自分を自分だと確認してもらうことだ。日常生活では簡単だが,ネットワーク越しでは名前(ID)だけ名乗られても相手が本物かどうか確かめるのは難しい。
図1●認証は現実世界では簡単でもディジタル化されていると難しい
認証の目的は相手を確認する,もしくは相手に自分を自分だと確認してもらうことだ。日常生活では簡単だが,ネットワーク越しでは名前(ID)だけ名乗られても相手が本物かどうか確かめるのは難しい。
[画像のクリックで拡大表示]

 悪者の九太夫(きゅうだゆう)がお軽さんに成りすまして由良之助をあざむこうとしたら,由良之助には見分ける手段がない。姿が見えない相手から名前だけ書かれた手紙を受け取っても本物かどうか確認しようがないのと同じである。

 つまりネットワーク越しに相手を本物だと知るためには,相手の名前の情報だけでは不十分なのだ。何らかの方法でいま通信している相手がだれかを確認する手段が必要になる。それがネットワーク認証の技術である。

 ネットワーク上の認証手段はいろいろある。要求されるセキュリティのレベルが上がるほど,複雑な方法が使われる。現実世界でも顔を合わせて「こんにちは」と言えば済む相手がいる一方で,証書や印鑑を持ち出さないと成立しない取引があるのと同じことだ。

 ネットワーク認証の中で,一番広く使われているのがパスワードである。顔が見えているのに「味方なら合い言葉を答えろ」と聞き返すのは,時代劇の世界だけ。でも,ネットワークの世界ではこれが当たり前なのだ。

平文認証

これが基本中の基本

 通信するお互いだけが知っている情報をネットワーク経由でやりとりすれば,間違いなく相手を確認できる。これがネットワーク認証の基本形である平文(ひらぶん)認証と呼ばれる方式だ(図2)。

図2●認証の基本は平文認証である<br>通信前に秘密のパスワードを決めておき,アクセス時に最初にパスワードを示せば本物かどうか判別できる。
図2●認証の基本は平文認証である
通信前に秘密のパスワードを決めておき,アクセス時に最初にパスワードを示せば本物かどうか判別できる。
[画像のクリックで拡大表示]

 この方式の手順は簡単である。お軽さんの秘密のパスワードをあらかじめ決めておく。お軽さんはログインする際に,IDとパスワードを送る。由良之助の方では送られてきたパスワードがあらかじめ取り決めたパスワードと同じならお軽さん本人だとわかる。なぜなら秘密のパスワードを知っているのはお軽さんしかいないはずだからだ。

 しかし平文認証には重大な欠陥がある。盗聴されると一巻の終わりなのである。

 平文認証ではIDとパスワードを組み合わせてネットワークで送る。だからもし悪者の九太夫が由良之助をだましたければ,通信路の途中で盗聴すればいい。これだけでお軽さんのIDとパスワードが簡単にわかってしまう。始末の悪いことに通信路の多く――特にLANやインターネット――では通信の盗聴がとても簡単である。つまり平文認証はネットワーク向きとは言えないのだ。

 もし秘密のパスワードがばれてしまえば,話は振り出しに戻る。九太夫が悪さをしようとお軽さんのIDとパスワードを使ってアクセスしてくるかもしれない。こんな状況では由良之助はアクセスしてきたのが本物のお軽さんか,それともお軽さんの偽者なのか区別できない。

 ではどうするか。問題は,IDとパスワードの組み合わせがそのままネットワークを流れてしまうことだ。ではパスワードを暗号化すればいいと考えるかもしれない。パスワードを暗号化して送るためには,双方でどうやって暗号化するか決めておけばいい。しかし,いつも同じ方式で暗号化したパスワードを送るなら,それは生のパスワードを送るのと同じことだ。お軽さんの偽者は暗号化した後のパスワードを盗んでそれを代わりに送れば済む。つまり暗号化するなら,例えば毎回暗号の鍵を変えるといった運用が必要なのだ。これはちょっと面倒である。

 とはいえ,暗号化するというアイデアは悪くない。パスワードに何らかの「処理」を行った結果を送り,双方で比較することで認証を行えば,パスワードそのものがネットワークを流れないようにできる。これを簡単に実現するのが次に説明するチャレンジ・レスポンス認証である。