novtanの日常

ネタです。ネタなんです。マジレスする人は撲滅すべき敵です。だからネタだってば!

ドコモ口座の問題に対するドコモの会見はクソだったけど次は銀行の番じゃないですかね?

僕の最近のトレンドは「フロント側の企業を信用するな」ですね。ヤのつく人たちの話ではないですよ(似たようなもんな気がしなくもない)。

今までのシステムが信頼ベースで成り立っていたのは、なんだかんだ言ってその信頼を担保するための手段(あっち側での確認であったり、ちゃんとわかってて偽造したとかじゃない限り手間に見合ったリターンがない印影だったり、そもそも手続きに時間がかかること自体がセキュリティーだったり)があってこそなんですよね。だから、「システムで接続する」場合に責任を取れる自社内でのことであればともかく、相手先のシステムが脆弱であった場合に起きる問題はすべてリスクとして捉えて対応をしなければならない。

だから、Web口振受付の「本人認証」の問題はあまりにも甘すぎる、というのが妥当な評価だと思いますね。事情があってこれしかできない?じゃあやるな(断罪する音)。

もう一度、本人確認

犯罪収益移転防止法(犯収法)というのは国際的な動きを受けた国内法ですが、いずれにしても国際的にも基準があるものであり、それにそってないと著しく不利になりますので必要最低限の対応がどんどん追加されては行きますね。日本は現金天国であり、ATMで現金だけ振込ができた時代ももう懐かしい感じですがまだまだ現金の流通が盛んですね。今回の話もある意味「ATMで現金で降ろせる」という日本の事情が悪さをしているとすら言って良いと思います。だって電子マネーの現金化なんて要らんじゃない。まあ、これは個人間送金のニーズに起因しているサービスであって、ちょっとの手数料(まあアレをちょっとと云うのも良くないですが)を払わないために信用のおけないサービスを使う気がしれない、というのが個人的な感想ではあります。
さて、本人確認です。これは僕は専門ではない分野なので、あまり詳しいことは書けませんが、一般的には住所、電話番号とそれを所有していることが認められる手段で確認しますよね。一番簡単なのは写真付き身分証明書で、これはほぼ運転免許証かマイナンバーカード(New!)を指します。それ以外のものだと複数別種のものが必要とかそうなりますけど、単に種類だけの話であれば偽造を頑張れば良いので検証するの難しいですよね。この辺どのような処理になっているのかは気になります。で、窓口だったらそれで良いんですが、オンライン手続きだとそうはいきません。よくある口座開設の申込みなんかは免許証写真で撮って送るみたいなことやりますよね。これも偽造がーとかいう話ありますけど、そもそも窓口の人が偽造免許証ぱっと見抜けるかというとそうでもないと思うので、そのあたりはどう考えているんだろうか。最近流行りのe-KYCだとくるくる写真を取らされますね。
ただ、やっぱり口座開設(もっというと、CIF開設)時のチェックってのは厳しいわけです。逆に、一度開設できてしまえばその顧客情報を登録できるので次からはその顧客情報の持ち主であることを検証していけばよいわけですね。この「銀行内に持っている情報との突合」のことも一般的には本人確認と言われています。登録時の確認と、同一性の確認は本質的には違うよってのはわかったと思いますが。
身もふたもないことを言うと、ATMでのキャッシュカードで暗証番号ってのは本人を確認しているわけではないですよね。あくまで、そのカードの所有者しか知り得ないことを知っていることにより取引の許可を与える、ということをしているに過ぎません。別に氏名とか聞かれないし。だから、代理で行って取引をすることもできるし、それだけでしょっぴかれたりもしません。言ってみれば、取引時の確認ってのは本人ではなく、本人の秘密を知っているかを確認しているわけですね。物理カードを持っていて本人の秘密を知っている。よし通れ!。話がそれましたね。

じゃあ、オンラインではそれをどのように確認するんでしょうか。一般的な手段としてはやはりインターネットバンキングのアカウントを作成することです。オンラインで取引するのにインターネットバンキングが使えないリテラシーじゃ困りますからね(これ、重要なこと)。もちろん、これは非常に重要な情報になりますから、厳密に本人のみに渡さないといけません。ここで言う本人も「口座を開設した人」であることの証明をするわけですね。もっとも、一度開設されていれば住所や電話番号が銀行側に登録されていますから、書留で送る、電話で認証するなどの手段でかなり安全に情報の受け渡しができます。で、フィッシングに引っかかる、と(リテラシーはどこへ)。まあフィッシングばっかりは銀行ではどうにもならん。

でも、インターネットバンキングのアカウント開設って時間がかかるんですよね(時間がかからないで使えるようになるところがあるって?それってもしかして…)。あと、相応のウェブリテラシーがないと使えない。なので、実は結構ハードル高いんですよね。今すぐチャージしたいのにまずインターネットバンキングのアカウント開設から。これはビジネスチャンスがどっかに飛んでいきますよね…

銀行ごとの事情

というわけで、一部の銀行のWeb口振システムはインターネットバンキングのアカウントを前提としない方式をとることになりました(そういう経緯があるかは全然知らないが)。ここまでの話が正しいかどうかはわかりませんけど、正しいとすると、おおよそこれは「リテラシーが低くて使えないか、そこまでのニーズを持っていなくてインターネットバンキングを使っていない人」をターゲットにしたシステムと言えます。逆に言うと、せっかくインターネットバンキングに登録している人も、その低レベルの人達に巻き込まれている、と言って良いでしょう。この点に限って言うとほにゃららネット銀行とかは相対的に安全ですよね。何しろ絶対にインターネットバンキングのアカウント持ってますからね…

そこから、銀行ごとの特段の事情(預金者の層や自行システムの歴史的経緯による制約)が出てきます。なにぶん、ホスト側がちゃんとしている銀行ほどこの手の話に弱いという事があって、元々いろんな制約でガチガチになっている結果として、抜け道がこれしかない、みたいなことがありそうです。追加の認証項目もそういったシステムの制約を受けます。最終記帳残高は良いアイディアですが、ずっと記帳をサボっておまとめ記帳になっている人が使えない、とかの制約があるとしたら、ウェブでなにかやりたい層の人がちゃんと記帳しているだろうか、いや、してない。生年月日はないよりマシだがそれでなんかやった気になるのはちょっとおかしい。結局、ろくな選択肢がなかった、という銀行もあったかと思います。じゃあ作れよ(でも金が)じゃあやるなよ!!!

これ、ビジネスとシステム戦ったんだろうな…戦ってなかったらダメだな…

ドコモはともかく(現実はともかくではなかった!)、なんとかPayに対してそんな態度で望んでよいのだろうか。そういう議論はあったと思います。ドコモはともかく(現実は!)。
ただ、大半の場合、預金口座に始まり預金口座に終わる。出金口座の身元が押さえられれば現金をさらわれることはないはず…ショッピング?知らねーよ店舗でバレんだろ(雑)。
まさかATMで直に出勤できるとはね(さすが現金大国)。

フロントエンドを信用しないのが銀行のスタンスであるべき

これから取引系APIも出てくると思うんですが、欧州で盛んに議論されているセキュリティー基準をベースに日本でも考えていく、というのが基本姿勢になりますし、そのあたりの厳密性を守れるのであれば今やっているような仕組みよりは遥かにセキュアなシステムになっていくと思います。その点でいうとまず最初の砦である、APIの実行を認可する銀行側の認証処理がとても重要だ、ということですし、取引時の認証もOTPなどをきちんと使ったものにするべきだし、そのあたりの煩わしさを解消するのは手段を緩めるのではなく、テクノロジー(FIDOなど信頼できるデバイス側に寄せていく仕組み)でカバーすべきことだと思います。Web口振受付の仕組み自体は悪いものではないと思うし、今回の問題の原因は銀行側のリスク評価が甘かった点がまず問題なんですよね。クソなシステムには使わせないってのはもちろんそうだけど、界隈を見ていると例えば連携先がヤのつくところののフロント企業(の息のかかった会社)に買収されたみたいなケースまで想定しておくべきだろうなって思っちゃいますね。もちろん、そうじゃなくても完璧なシステムなどないので、おかしなことが起きる可能性もあります。そうすると、接続先がどんなに信頼すべき相手であっても一定の防御はしておくべきですし、それでも今の仕組みを維持したいのであれば、速やかにユーザー保護をする方針で行くべきなんですよね(でも、それをすればよいというのは犯収法からするとNGですよね)。

本人確認という最初の砦(しかもその先に壁すらない…)が簡単に破られるようじゃ、お先真っ暗です。

もうちょい補足

今回の攻撃手法について当初から言われていたのはリバースブルートフォースなんだけど、それは別に確定事項ではないんだよね。(銀行側サイトに遷移する際に改ざんが可能でなければ)ドコモ口座と銀行口座で名義を合わせたアカウントを用意する必要があるので、そのアカウントごとに数少ない攻撃機会(回数)を狙う、というのは非常に効率が悪い。であるならば、暗証番号はある程度決め打ち(生年月日、電話番号下4桁、よく使われがちな4桁)したり(まあこれもリバースブルートフォースではある)、フィッシングサイトで入手したり、という可能性はあるだろうね。ただここは確定的な情報は掴めないでしょうね。検証するすべとしてはこれまでエラーになったログを分析することでわかるくらい(ただ、それができるなら結構な確度でどの方向性での攻撃なのかは判別できると思う。これは銀行側でやるべきですよね)。
で、問題なのは、「ウェブでもキャッシュカード暗証番号を入れさせることがある」という一般認識がWeb口振受付使用者の間で広がったり、銀行のヘルプページに乗ったりすることで、フィッシングサイトを怪しく思わなくなる人が一定量出てくる可能性だね。そう考えるとキャッシュカード暗証番号を入れさせるのであれば、それ以外の追加の項目が相応の強度を持っていることを徹底しないといけない。まあ、キャッシュカード暗証番号は原則使うのやっぱりダメだと思うけど。