2015年5月9日土曜日

TouchIDは誰があるいはどの指紋が認証を通ったかを教えてくれない

Appleの得意とする「使いやすさ」の裏にある危うさ、でしょうか。
Apple Touch ID design constraint raises authentication red flags - TechRepublic 
Touch IDは、いくつかの指紋を登録することができます。その際、その指紋が所有者本人のものであるかどうかをチェックすることはありません。

通常、シリアスなセキュリティにおける指紋認証では、指紋を登録するときに何らかの手段で(たとえば立会人がいて)本人が指紋を読ませていることを確認します。誰かの認証のための指紋として別人の指紋が登録されるという事態は基本的には防止措置が取られているはずです。そうでなければ何を認証しているかが分からなくなりますからね。

別人の指紋で認証できるようにしてしまうというのは例えて言えばICカードの入構証で扉を通過できる人間をコントロールしているときに、コピーカードを作成して他人に渡して使わせているようなものです。

もちろん、それでもその指紋が完全に信頼できる、かつ、どんな秘密も共有できる間柄の人間のものであれば問題はないのでしょう。そういう存在って何?自分の分身ですか?配偶者?いやいや、配偶者と言えども共有できない情報はあるでしょう。(そのことの良し悪しはさておき。)

実はもっと悪いことに、iOSの仕組み上、指紋は暗証番号さえ知っていれば登録できてしまうらしいです。なので、本当に他人であっても登録できてしまいます。そしてそれを本人に告げる必要はありませんし、本人に通知されることもありません。セキュリティは暗証番号のところで担保されているはずだから。

これは要するに、指紋認証のセキュリティ強度は数字4桁の暗証番号のそれと等しいということです。

そうやって本人の与り知らぬところで登録された指紋であっても、登録を通ってしまえばその指紋はその後事実上あらゆる情報へのアクセスに使えてしまいます。もちろんお金が絡むような処理もできてしまいます。その種の「こっそり登録された指紋」で何かが行われても本人に通知は行きません。理論上、その処理は本人が行ったものであるはずだとされているからです。

また仕組み上、登録された指紋の間には区別がないそうです。アプリの側から見て、どの指紋で認証されたのか、という区別はできなくなっています。たとえば、右手の人差指で認証した場合にはAという動作をさせ、左手の親指で認証した場合にはBという動作をさせる、といった区別はできないわけです。

アプリは指紋認証が通ったという事実のみを用いて、それを全面的に信用して処理を進めるかどうか、という選択を強いられてしまいます。しかしこれは、仕組みがそうなっているのでアプリとしてはそうするしかありません。というかそれが問題だと思っている人が開発者にせよ利用者にせよほとんどいないというのが現状ではないでしょうか。

これ、意外と意識していない人が多そうですね。ちょっと薄ら寒くなってきました…。

iPhoneがTouch IDを搭載する前からスマートフォンに指紋センサが搭載された例はありました。しかし事実上iPhoneのTouch IDが「メインストリームで利用されている指紋センサ」であることはほぼ間違いないでしょう。そのセキュリティがこんな状況であるということはかなり問題であると思われます。

Appleは「Touch IDが気軽に使われる状況」がセキュリティを強化するために必要だと考えていると思います。高いセキュリティとユーザビリティを両立させる道具立てとしてある時点から以降の機種全てのホームボタンに指紋センサを組み込み、日常的に使ってもらい慣れてもらうために画面アンロックと指紋認証を一体化させるという方策を行いました。OSごとサポートして利便性を高める工夫をしています。しかしそこにはある種の限界があります。これがこのままの仕様で進むのであれば相当の問題に発展する可能性もあると思います。

今のところあまり話題になっていないのが気がかりです。

0 件のコメント: