11月27日の日記に書いたニュースの森の報道の件、その後番組の内容に進展があったので書いておくことにする。
まず暗証番号がどうしてわかったのかという点。11月28日の放送によると、誕生日もしくは誕生日の数字を並べ替えたものを暗証番号にしていた人が被害に遭ったのだという。そりゃだめだ。番組によると、ある銀行が被害をまとめた文書によると、犯人は同じATMで1時間に47回偽造キャッシュカードの挿入をしており、そのうち引き出しに成功したのは、4回だけだったという。それ以外は「暗証相違」だったという。これをみて驚いたのは、1割近くもの人が、予測されてしまうような数字を暗証番号に使っているという実態だ。そこまで酷い状況とは……。
しかし、暗証番号が知られた原因はそれだけではないようだ。12月1日の放送によると、クレジットカードの電話による「音声照会」の機能がパスワード探索に使われていたという。クレジット会社の調査で、それが利用されていたのが後でわかったという。音声照会とは、利用限度額まであといくらの余裕があるかを、電話で確認できるもので、カード番号と暗証番号をプッシュ音で送信すると、暗証番号が当たっていれば機械が24時間自動応答する仕組みだ。番組によると、暗証を間違えても何度でも試せるシステムだったという。被害者がクレジット会社に問い合わせたら「無制限にできる」「1日に5回以上あるとチェックする」という回答だったそうだ。犯人は、1日3回までしか試さないようにし、同じ人物について毎日2、3回ずつ試して、4日目で的中させた(9回目での的中)という。
「安全なWebアプリ開発40箇条の鉄則」の8番に書かれているように、パスワード認証機能はパスワード検証機能でもあるのであり、繰り返せばパスワード探索機能となってしまう。残高照会など、セキュリティをさほど厳しくしないでよいだろうというサービスで、このような仕組みにしてしまうと、セキュリティを厳しくしなくてはならないサービス用の暗証を漏らすことになりかねない。
やはり、いまどき4桁数字暗証はもう駄目だろう。
続いて番組によると、クレジットカードの電話照会機能で暗証番号を割り出した上、その人の銀行口座から同じ暗証番号で現金を引き出していたという事例が3件あったという。クレジットカードとキャッシュカードの暗証番号を同じにしていたという。どうやって、同じ人のカード番号と銀行口座の番号の対応表を得たのかは不明だが、自己防衛のためには、自分の暗証番号がどこのサービスで「検証」できる状態になっているのかを把握し、危ないところと大切なところとは暗証番号を異なるものにするしかなさそうだ。
キャッシュカードの非接触スキミングが本当に行われているのかという点については、その後番組ではとりあげられなかった。12月1日の放送では、自宅に侵入されて財布からカードを取り出してスキミングされたという話になっていた。被害者によると、財布が手元から離れるのは、2階の寝室に財布を置いて1階で食事などをしているときくらいだという。その間に侵入されたといい、ホンマかいなと思ったが、番組では「警察の調べでわかりました」と言っていた。
次に、キャッシュカードの磁気ストライプには何が記録されているのかという点。番組によると、1987年以前に発行されたキャッシュカードの場合、暗証番号、住所、名前、生年月日、電話番号まで入っているのだという。たしかに、昔のキャッシュカードではカードに暗証番号を入れていたという話はよく耳にしてきたが、住所や電話番号まで入っていたとは驚いた。何のために入れていたのだろう?
ちなみに、番組によると、現在ではほとんどの大手銀行のATMで、暗証番号の入った古いキャッシュカードを使うと、暗証番号を磁気ストライプから消去するように対策されているという。しかし、最近に被害に遭った人の古いカードにはまだ暗証番号が残っていたという。「ほとんどの大手銀行」という表現が微妙だ。どこか対応していない銀行があるということだろうか。そういう情報は預金者にきちんと伝えられているだろうか。
カードの磁気ストライプに暗証番号情報を入れないように対策がうたれることになったのは、次などの事件がきっかけだったようだ。東京地裁の富士銀行等不正キャッシュカード使用事件判決によると、
被告人は,(略)昭和63年6月22日ころ,神奈川県横浜市戸塚区<番地略>,A電子サービス株式会社技術教育センターにおいて,あらかじめビデオテープを貼り付けたキャッシュカード大のプラスチック板8枚の各磁気ストライプ部分に,オフィスコンピューター,実習用ATM等を用いて,「暗証番号」,「銀行番号」,「支店番号」,「口座番号」等の順に,別表の「作出」欄記載のとおり,「8600」,「0003」,「0124」,「0023571」等を表す印磁をそれぞれして,同銀行の預金管理等の事務処理の用に供する事実証明等に関する電磁的記録をそれぞれ不正に作出し,(略)
本件犯行は,(略)被告人が,その有するコンピューターに関する専門知識と技術を悪用して,キャッシュカードに関するコンピューターのデータの構造を解析して,正規の暗証番号に関係なくして他人の銀行口座から預金を引き出す方法を解明し,判示のとおり,キャッシュカードの磁気ストライプ部分の電磁的記録を不正に作出し,銀行の現金自動預入払出機から,合計362万5000円を窃取した事案であるが,
とある。
昔のシステムは、カードに暗証番号が書かれているから拾ったり盗んだカードから磁気カードリーダで読み出せば暗証番号がわかるというだけでなく、カードに暗証番号として適当な4桁数字を書き込んで、その番号をATMで入力すれば引き出せてしまう(オフラインでの認証)というものだった。
では、最近のカードではどうなっているのだろうか。11月27日の日記では口座番号と口座名義しか書かれていないのでは? と思った。上の東京地裁判決に書かれている手口からすると、昔は、口座番号(銀行番号と支店番号を含む意味で)と暗証番号だけが認証に使われていて、名義すらチェックがなかったことがうかがえる。
安全性を高める方法としては、カード発行時に、乱数で第二の暗証番号を生成して、磁気ストライプに書き込むと同時にオンラインシステムに登録し、ATM使用時にはこの暗証もチェックするようにすることが考えられる。スキミング攻撃に対する効力はないが、スキミングなしのカード偽造は防止できる。こうした対策はとられているのだろうか。少なくとも、番組に出てきた専門家はそうしたことは言っていなかった。
「口座番号はカード面にも書かれているのだから、口座番号しか書かないのなら何のための磁気ストライプなんだ?」という発言をどこかで目にしたが、磁気ストライプは低コストで数字列を読む手段だったということだろう。今でこそ、CCDカメラと画像処理が低コスト化したため、カード面の静止画像認識でも低コストな読み取り機を製造できそうだが、昔は磁気ストライプが効率的で正確だったのだろう。
ちなみに、次の判例がある。古いタイプの本物のキャッシュカードから磁気ストライプの情報を読み出して暗証番号を得て、それを使ってATMから引き出したという、昭和56年(1981年)に起きた事件で、被害者が銀行に賠償を求めた民事訴訟の最高裁判決が平成5年(1993年)に出ている。
主文
本件上告を棄却する。
理由
(略)、銀行が預金者に交付していた真正なキャッシュカードが使用され、正しい暗証番号が入力されていた場合には、銀行による暗証番号の管理が不十分であったなど特段の事情がない限り、銀行は、現金自動支払機によりキャッシュカードと暗証番号を確認して預金の払戻しをした場合には責任を負わない旨の免責約款により免責されるものと解するのが相当である。(略)
当時被上告人が上告人を含む預金者に交付していたキャッシュカードの磁気ストライプ上には、預金者が被上告人に届け出た暗証番号がコード化されて記録されていたことは、原審の適法に確定したところであるが、所論中には、このようなキャッシュカードについては、市販のカードリーダーをパーソナルコンピューターに接続することにより、暗証番号を解読することができるから、支払システムとしての安全性を欠き、免責約款は無効であるとする部分がある。しかし、所論の方法で暗証番号を解読するためにはコンピューターに関する相応の知識と技術が必要であることは明らかである(なお、記録によれば、本件支払がされた当時、このような解読技術はそれほど知られていなかったことがうかがえる。)から、被上告人が当時採用していた現金自動支払機による支払システムが免責約款の効力を否定しなければならないほど安全性を欠くものということはできず、右の点に関する論旨は採用することができない よって、民訴法四〇一条、九五条、八九条に従い、裁判官全員一致の意見で、主文のとおり判決する。
何が「相応の知識」かというのが、裁判官の技術センスによって左右されたりすることがなければよいのだが。
この件は、磁気カードリーダが汎用品として普及するとは予想されていなかった時点でシステムが設計され、汎用品が出回るようになってもそのままシステムを使い続けてしまったところに問題があるだろう。
これは、RFIDタグの議論にも共通する。RFIDリーダが現状で普及していないという理由をもって、システムの安全性の根拠とすべきではない。IT製品がオープン仕様で作られ、コモディティ化するのが必然なのはいまや常識であり、20年前と同じ過ちを繰り返してはならない。
何のセキュリティ機構も搭載されていないのだから、リプレイ攻撃で簡単に個人情報を引き出せることになる。
すなわち、会場で目の前にいる誰だか知らない人に、RFIDリーダの電波を浴びせかける。すると、RFIDがIDを応答してくる。これを読み取ってもよいし、あるいは学習型赤外線リモコンの如く電波のパターンをそのまま記憶してもよい。そして、情報端末の前に行って、その電波を浴びせるのだ。そうすることによって、さっき目の前にいた人が、何と言う名前の人なのかを画面に出すことができるだろう。
ということを書いた。
他人のタグのデータを読み取って、正規の装置に対して使うというのは、磁気カードのスキミングと同じ話だ。磁気カードではおそらく遠隔からのスキミングは無理だろう。skimming(すくい取り)というくらいだから、表面をなぞって剥がし取るという感じだ。それに対してRFIDタグの場合は、何十センチか何メートルか先から「スキミング」できる。それに、磁気カードの場合は磁気カードを偽造してそこにデータを書き込む必要があったのに対し、RFIDタグの場合は非接触なのだから、物体として偽造する必要がない。同じ電波を応答するどんな形状の装置でもかまわない。
インプレス発行のIPv6styleの記事に、こんな事例が紹介されている。
ノキアジャパン・ノキアリサーチセンターのRF-IDタグ連携PDA
つまり、この端末は、ユーザが手にするだけで、ユーザ単位のアクセス制御を適用し、このユーザに許されたアプリケーションやコンテンツだけを見せることができる。強固なセキュリティを確保するための原則としてよく指摘されるのは、正規ユーザだけが持っているもの(デジタル証明書など)に正規ユーザだけが知っている情報(パスワードなど)を組み合わせることだ。その点では、この製品は正規ユーザだけが知っている情報を適用しないため、セキュリティレベルとしては若干低くなる。つまり、PDAとRF-IDタグ付きブレスレットを一緒に盗まれたとしたら、成りすましを防ぐには該当するIPv6アドレスやIPsec鍵を無効にするしかない。
タグを物理的に盗まれた場合? そういう問題なのだろうか? このRFIDタグはリプレイ攻撃対策がされていたのだろうか? 何らかの演算機能をタグ内に搭載しない限りリプレイ攻撃は防げない。RFIDカード(非接触スマートカード)並みの高セキュリティなRFIDを使えばよいのだが、はたしてそうなのか?
こういう記事を書く記者にはそういうところに切り込んでもらいたい。無理ですか?
どこが運営するサイトかよく知らないが、RFIDの解説としてこういう説明があった。
他人のクレジットカードの磁気記録情報を不正に読み出してコピーを作成し、使用するスキミングが横行しています。「スキマー」と呼ばれるカード情報を読み取る装置を用いてクレジットカード情報を複製し、偽造カードを利用して高額商品を購入し、換金するという犯罪であり、これらの被害の拡大に対しクレジットカード各社はセキュリティ性の高いICカードへの移行を検討・実施しております。
(略)
金銭情報・個人情報が書き込まれる可能性の高い13.56MHz帯ISO14443のカードには暗号化などの高度なセキュリティ機能が搭載されており、磁気カードと比べて偽造される可能性は非常に低いと考えられます。13.56MHz帯ISO15693のICタグに関しても、13.56MHz帯ISO14443のような高度なセキュリティ機能は搭載されておりませんが、磁気カードと比べると偽造される可能性は低いと考えられます。
「高度なセキュリティ機能は搭載されておりませんが、偽造される可能性は低い」だそうだが、いったいどういう根拠なんだろうか。チップを製造することが困難だとしても、リプレイ攻撃の可能性とは関係がない。