安全な認証を使おう

 クレジットカードの明細を利用してカードの持ち主になりすまし、インターネットのWebサイトで不正に買い物をするという事件が摘発されたらしい(2005年10月27日 日本経済新聞)。
 通常、明細だけでは買い物をすることができない。明細にカード番号が全桁書いてあったとしても、カードの有効期限が書かれていないからだ。インターネットのショッピングサイトでは、カード番号と有効期限の両方を入力しないと決済ができない。
 ところが報道によれば、犯人は何度誤った情報を入れても受付拒否をしないショッピングサイトを利用し、しらみつぶしに有効期限を入れて正しい期限を知ったらしい。悪用されたサイト(悪い人が有効期限の不正解析に用いるという意味で、以下「有効期限解析サイト」という)では、本来ならば何度か間違えた情報を入力したら、そのカード番号での受け付けは保留にすべきであった。受付拒否が望ましいが、せめて例えば「3回間違えたら24時間だけ一時拒否する」という仕組みがあるだけでも違ったかも知れない。2回以内に偶然一致したら不運だが、3回間違えたら犯人は1日後まで試し打ちを待たされることになるから犯行の効率が下がる。よって、有効期限解析サイトとして狙われる可能性が減っただろう。明らかに、有効期限解析サイトを作ったプログラム担当者の無知が生んだ脆弱性だ。Webプログラマーの無知は他人に迷惑をかける。
 カード番号と有効期限の両方がわからないと買い物ができないというのは、言い換えると「カード番号と有効期限の両方を知っている人を本人とみなし、その人が決済することを許可する」という認証を行っていることになる。2つの情報をもとに認証をすることから「2情報認証」と呼ぶ。
 2情報認証は、

  • 本人が誰かを示す情報 (識別情報)
  • 本人にしか再現できない*1情報 (非公知認証情報)*2

の組み合わせであるとき、初めて成立する。ところが、非公知認証情報が本人以外に再現できてしまったのである。これでは認証機能が働いていないに等しい。

利用者は識別情報も隠せ

 わたしたちが2情報認証を用いた認証を利用してよいかどうかは、認証機能が信用できるかどうかにかかっている。認証機構*3を提供する側(例えばWebサイト運営者など)にとっては、利用者が非公知認証情報を他人にばらさないようにしてくれれば問題ない。ただし、利用者にしてみれば、認証機構が非公知認証情報をばらしていてはこの認証を信用できない。もちろん、認証機構を提供している側が非公知認証情報を漏えいする事件を起こすようだったら言うまでもないが、有効期限解析サイトのような信頼できない認証機構がある限り、利用するのは差し支えるべきなのであろう。カード番号と有効期限だけで買い物ができてしまう仕組みは、損害保険があるからかろうじて認められているものの、本人が買い物をしているかどうかの確認は完全に無視された状態になっている。
 わたしの手元に届くクレジットカード明細は、カード番号の一部が「*」になっている。2情報認証機構が放置されている現状では、識別情報もまた隠さなければならない。カード番号も非公知認証情報、有効期限も非公知認証情報なのである。これならば、少なくても明細からカード番号が漏えいすることはないから、わずかに安全が高まると言える。
 カード会社は、第三情報を付ける努力をしている。例えば、顔写真入りカードは、お店での対面決済において本人確認が容易になるようにするためのものだ。また、ある会社の明細は、カード番号の他にお客様問い合わせ番号が書かれている。これは、カード番号をもはや識別情報として使用できないから、電話問い合わせなどのために新たに識別情報を配布しているのである。ただ、お客様問い合わせ番号はこのカード会社とのやり取りにしか使えないから、インターネットサイトを用いたなりすましショッピングは防げない。

  • ネット決済の決済限度額を下げる
  • 顧客の申し込みに応じてネット決済をできないカードを発行する

といった対策が必要だと思う。もっとも、カードを受け取る店員はカード番号や有効期限をじっくり見ることができるのだから、2情報認証の脆弱性を気にするくらいならカードを持つのを止めた方がいいのかもしれない。クレジットカードは性善説を前提とした仕組みだ。

IDは公開情報?

 今年2005年、個人情報保護士という資格が誕生し、第1回の試験が行われた。そこで以下のような問題*4が出題されたらしい。

アクセス制限において、一般的にはIDとパスワードによる認証が利用されているが、
IDとパスワードにおいては、
両者ともに同等に厳格に個人管理すべきである。

わたしは最近の考え方では○になると思っていたが、模範解答は×であった。IDは公開情報なのだそうだ。古典的には確かにIDは単なる識別情報で、パスワードは「暗証番号」という呼び方もあるくらいだから*5非公知認証情報である。
 ID・パスワード管理やID・パスワード認証システムが正しく運用されていたら、この問題文は○であると認めていいだろう。ここでいう認証システムとは、機械的な仕掛けだけではなく、機械の周りで管理を行う人や手順までも含めた全体を指す。そこまで利用者は確認できるだろうか。例えば利用者が知らないところでサポート担当の人がIDだけでパスワードの再発行をしていたりしたらどうだろう。ID・パスワード管理は信頼できないから、IDもむやみに人に教えてはいけないことになる。
 ある認証システムの利用者になったとき、ID・パスワードをもらったとたん、いきなり認証システムの運営先を信頼するなんてことはあまりできないから、デフォルトの状態ではID・パスワード管理は信頼できないわけで、そうするとIDも非公知認証情報として管理しなければならない。問題文はいいことを言っていて、利用者の立場に立ち、安易にID・パスワードの管理者側を信頼せず自己責任で「個人管理すべきである」と言っている。だからわたしは○でいいのではないかと思う*6
 ましてや今は、有効期限解析サイトがあったり、カード会社が第三情報としてのお客様問い合わせ番号を発行したりしているのであるから、ID→カード番号、パスワード→有効期限と考えればやはりIDはめったに人に見せるものではないと考えていいと思う。例えば、口座番号刻印なしの銀行キャッシュカードなんていうのがあってもいいと思う。

IDは秘密にしよう。

1情報認証は無条件に信用できない

 話は変わるが、1情報認証というのがある。古典では童話「赤ずきんちゃん」。オオカミの声という唯一の情報を聞いて扉を開けてしまったのは、浅はかである。ところが、非公知認証情報を複雑にできるようになって、にわかに1情報認証が普及してきた。それは生体認証である。
 パスワードだけの認証システムでも、乱数で100桁ならばさすがに再現はできないだろう。また、入力の手間を考えるとIDの辞書攻撃も難しい。そこで、1情報認証でもいいかなという気になってくる。でもこれだと正規の利用者も入力の手間が大変だ。生体認証は、認証に用いる情報は複雑だが入力するのは簡単でいいとこ取りなように見える。そこで「生体だけで認証できる」という装置が商品化されている。かくゆうわたしのノートパソコンも指をかざすだけでBIOS認証、ハードディスクパスワード、OSログイン認証におけるパスワード入力を自動化されるように設定してある。
 わたしのノートパソコンはちょっとした移動でも必ず手元から離さず持ち歩くようにしているからいい。ところが、これが学校や職場に常設されたデスクトップ・パソコンだったらどうだろうか。利用者が帰った後、パソコンの周りの指紋を採取し、グミ指と呼ばれるものを作れば、偽の指が完成。オオカミの偽声に相当するものが完成する。指紋認証機構は、指紋は偽造できないという前提で作られているのだが、いつかは生体情報も容易に偽造可能となるだろう。虹彩や静脈は今はまだ偽造しにくいから単独認証でも大丈夫だと思われるが、将来的にはわからない。例えば、目の近くで撮影すれば虹彩情報が盗めるような小型装置が開発されるかもしれない。長く住むマンションの玄関に取り付けると、忘れた頃に泥棒が入るかもしれない。「21世紀初頭は安全と言われていたのに」と悔やんでも遅い。
 生体認証を使いたいならば、

  • A.生体認証以外の方法で、本人がいなければ認証が通らないようにする
  • B.生体認証以外の方法で、本人がいないところで認証機構が働かないようにする

というような対策が必要である*7。繰り返すが、生体情報は単に複雑で長い情報を簡単に入れるためのもので、偽造しにくい=本人でなければ入力できないという性質は完全に保証されていない。グミ指は偽造不可能との思いこみを打ち砕いてくれた。だから「偽造しにくい」は前提にせず、本人がいることを別の方法で確かめることを前提にする。
 前段のAとBは似ているようだが微妙に違う。Aは、例えば本人にICカードやワンタイム・パスワード・トーク*8などを持たせることにする。1物1情報認証*9である。あるいは2情報認証にしてもいい。指紋提示を求めた後パスワードを要求する。Bは、わたしが実践している「ノートパソコンを手元から離さない」という方法である。わたしのそばにあるから、わたしが見ている前で不正ログインを試みることは難しくなる*10。本当は、わたしの身辺で電波を出して、パソコンが電波を受信しなくなったら認証装置が機能しなくなるようにするのが理想だが、常に電波を浴びるのは体に悪そうなので、わたしがいないところに認証機構があるという状態を排除し、間接的にBの状態を作り出す。そばにあるのが邪魔な場合は施錠管理する。個人所有の認証システムならばBが採用できるが、入退室管理システムなど、共用する物の場合はAを採用する。

生体認証には、生体+αが常識となることを願いたい

個人情報保護士試験の認証もどきシステム?

 前述の試験について。聞いたところによると、合格発表の方法が特殊である。

  1. ユーザー名とパスワードでログインする。
  2. 自分の受験番号を入れる。
  3. 結果が表示される。

受験番号一覧を発表するのが個人情報保護法に抵触すると思ったのだろうか。受験者は受験番号と受験者名の関係が書かれたデータベースを容易に照合しうる状態にないから、他人の受験番号を見てもわからない。受験番号一覧を見せてもらえば充分だ*11と思うのだが、なぜだろう。
 ユーザー名とパスワードの組み合わせは、試験会場で本人確認なしに紙の封筒で渡されたらしい。つまり、ユーザー名は識別情報ではないし、ユーザー名とパスワードは同じ紙に書いてあったのだとすれば一体のものである。ユーザー名とパスワードの2情報のようにも見えるが実態は1情報認証である。しかしここに1情報認証をかけることに何のメリットがあるのだろう。本人識別をしないということであれば「受験者以外に結果を見せない」という効果しかない。でも、非公知認証情報は、前述の通り「本人にしか再現できない情報」でなければ意味がない。試験会場からの帰り道で封筒を落としたらばれてしまう。果たして何の意味があったのだろうか。認証と似たような手続きを踏ませるが、こういうものは不完全な認証というか、認証システムと認めることができない。
 受験番号を入力するときも、本人識別がなかったらしい。適当に番号を入れれば他人の結果も見られる状態だったのだろうか。番号と結果だけわかっても誰の結果かわからないだろうって? それなら受験番号入力を要求する必要はない。
 封筒は落とさない、他人の結果は見ないなど、どうも性善説前提で作られたシステムのように思えてならない。
 考えられる可能性として、合格者名簿全貌をダウンロードさせまいとする配慮があったのかもしれない。全体像がわかると、合格者数がわかったり、受験番号の番号割り振り方法から、例えば団体受験の合格率がそれ以外と違ったりすることがわかったりするかもしれない。しかしそれはあくまで個人情報保護とは関係ない世界だ。
 「電球とりつけ3級」とか「りんごの皮むき5級」とかならこれでいいが(もし本当にこのような資格があったのだとしたらごめんなさい)、この試験、

個人情報保護士

の試験である。意味のない認証システムを利用することに対してクレームはあがらなかったのだろうか。それとも安上がりの認証システムとしてご自慢だったりしないだろうか。たとえ認証機能を提供した主催者側に意味があったとしても、

受験者が、この仕組みを個人情報保護システムと勘違いしないかどうか

が心配である。誰かが真似して「個人情報保護の試験でもこれでやっているから大丈夫」と言い出したら責任を取ってほしい。
 Webサイトに「これはアクセスを若干面倒にしているだけで、認証機構ではありません。」と書いてほしい。そんなことは書けないし、一応認証っぽいじゃんなどと軽い気持ちでいるならば即刻やめて合格発表は個人宛郵便で個別通知するのがよい。ID/パスワードのペアを封筒に入れて配布する手間をかけて電子発表にこだわったのだから、封筒に代えてメール向けの電子証明書をFDに入れて配り、S/MIMEでメール送付すればよかったのに。

*1:ここでは本人が内緒にしている「非公開」ではない。「非公開」という言葉は非公知情報の管理方法を表現しているにすぎない。また「ワンタイム・パスワード」においては、「入力中における背後からののぞき見」や「通信の盗聴」によってパスワードが漏えいしてもかまわないなど、特殊なものもある。非公知と非公開は違う

*2:単に「認証情報」というと、識別情報+非公知認証情報の組み合わせを指すことがある。財団法人金融情報システムセンターの定義では「生体」認証情報というときには非公知情報だけを指す

*3:平たく言えば、ID/パスワード・システム

*4:http://www.joho-gakushu.or.jp/piip/exam/piip-exam2.html

*5:数字以外が含まれている「符号」でも暗証「番号」と言ったり、意味ない文字列が含まれていてもパス「ワード」、パス「フレーズ」と言ったりするが、慣用なので気にしないことにする

*6:厳密には、きちんと作られた認証システムではパスワードは変換されて保存されるので本当に本人以外が知ることはない。一方、IDは認証システム管理者と認証システム自体には知っている。よって機密度は同じではないが、問題文は認証システム管理者が知っているゆえ個人管理ではないという趣旨ではないと思うから、この差は勘弁してほしい

*7:本来は、知識のないプログラマーにショッピングサイトを作らせないことや、すでにある欠陥サイトをインターネットから排除することが最初に求められるのだが、このアプローチは届出制度があるだけであまり対策が進んでいない

*8:そのとき限りしか使えないパスワードを生成して表示する小型装置

*9:ここでは、強度の弱い生体情報は偽造可能という前提で、生体を「生体情報」とみなしたが、破られにくい生体を採用するならば「もの」を使った認証とみなしてもよい。前者は人間が入れるのは情報だから再現可能、後者は人間の体そのものを提供する以外に方法がないから再現不可能という意味である。「もの」とみなす後者の場合は2物認証と呼ぶ

*10:ただ、移動中の電車・バスで寝るのは止めた方がいいだろう。自省

*11:友達の番号はわかるとクレームが来るかも知れないが、事前に「受験番号は一覧で公開します。受験票は個人管理してください」と案内しておけば問題ない。利用目的の開示にもなり、個人情報保護法対応として十分だ・・・異論もあろうが