指紋認証のセキュリティは、これまで長いこと、熱い議論の的になってきました。2013年、iPhone 5SにTouch IDが導入されて間もない時期には、Touch IDがクラッキング可能であることをリサーチャーが実演して見せました(英語)。ガラス面に触れる指紋の写真を撮り、これを使って型を作成し、システムを欺くという方法です。しかし、テクノロジーの発展はとどまるところを知らず、改善が重ねられて希望の光も見えています。
たとえば昨年は、超音波式の指紋センサーがスマートフォンに搭載されるようになりました。センサーは画面の下に隠されているため、追加のパネルは必要なく、少なくとも理論上はセキュリティが強化されています。
最新のデバイスに搭載されているさまざまな指紋スキャナーを突破することはできるのか。それとも、指紋認証テクノロジーはついに安全なものになったのか。Cisco Talosにいる仲間が実験を行いました(英語)。
指紋認証の仕組み
まず、指紋センサーの動作の仕組みをおさらいしておきましょう。スマートフォンやノートPCにあるスキャナーまたはスマートロックに指を置くと、センサーが指紋の画像を抽出します。センサーは、種類によってそれぞれ独自の方法で指紋を認識します。Cisco Talosの調査チームは、最も普及している3種類に着目しました。
- 静電容量センサー:最もよく使われているタイプです。内蔵された小型のコンデンサーで電気を蓄え、そこから生成される小さな電荷を使って画像を作成します。スキャナーに指が触れると、コンデンサーから放電されます。接触が大きい部分(指紋の凸部)は放電が大きく、肌とセンサーのすき間部分(指紋の凹部)は放電が小さくなります。センサーはこの差異を測ってパターンを特定します。
- 光学センサー:指紋の写真を撮ることで認識します。プリズムを通して指に光を当て、指紋の凸部と凹部で異なる光の反射を読み取って、画像に変換します。
- 超音波センサー:光ではなく超音波を使用し、指紋の凸部と凹部が生成するエコーを記録します(光の反射の場合と同じように、凸部と凹部ではエコーが異なります)。指を接触させる必要がないため、スキャナーを画面の下に埋め込むことができます。さらに、超音波スキャナーは画面に近い指の部分だけではなく、センサーから離れた端の部分も「聞き取る」ため、作成される画像は3Dに近くなります。そのため、2Dのコピーを使用した偽物の指紋を検出しやすくなっています。
指紋の情報を取得すると、センサーまたはOSは、この情報をデバイスに保存されている指紋の情報と照合します。既存の指紋読み取り方法はどれも完璧ではないため、各メーカーはある程度のエラーを許容しています。
許容するエラーの余地が大きいほど、偽の指紋でだまされやすくなります。設定を厳しくして許容されるエラーを小さくすると、だまされにくくはなりますが、本当の持ち主の指紋が認識されない可能性が高くなります。
調査チームはどのように指紋の偽物を作ったのか
指紋の物理的なコピーを作るには、当然ですが、指紋を手に入れる必要があります。調査チームは3つの方法を考えました。
指紋を盗み出す方法 その1:型を作る
指紋の型を取れる状況と言えば、たとえば、相手が意識のないときや具合が悪くて動けないときが考えられます。型を取るには、モデリングクレイのような、しっかり固まる柔らかい素材が適しています。
その型を使って偽の指紋を作るのですが、対象の人が都合の良い状態(眠っているなど)になっている必要がある、対象の人に物理的に接近しなければならない、という難点があります。
指紋を盗み出す方法 その2:センサーの画像を手に入れる
センサーが読み取った指紋を入手する方法です。先ほどの方法よりも技術的には複雑ですが、攻撃者にとって都合の良いことに、生体認証データを扱う会社がデータをしっかりと保管しているとはかぎりません。指紋のスキャン映像がインターネット上で見つかることもありますし(英語記事)、闇市場で安く購入することも可能です。
データを入手したら、2D画像を3Dに変換し、3Dプリンターで出力する必要があります。調査チームはここでいくつか問題に直面しました。まず、彼らが図面の作成に使用したプログラムでは、サイズの設定ができませんでした。また、実験に使ったのは手ごろな価格の3Dプリンターでしたが、このプリンターが使うフォトポリマーは出力後に熱を加える必要があったため、モデルの大きさが変わってしまいました。ようやく適切なモデルの作成にこぎつけたときには、素材のポリマーが硬くなりすぎていて、だまされるセンサーは皆無でした。
こうした問題を回避するため、リサーチャーらは指のモデルではなく型を作成し、もっと柔らかい素材から人工の指を作る方法を採りました。
指紋を盗み出す方法 その3:ガラス面に置いた指紋の写真を撮る
対象者の指紋をガラス面越しに撮影するという、単純な方法です。iPhone 5Sのクラッキングでは、まさにこの方法が使われました。画像を必要なレベルまで鮮明にする処理を施してから、3Dプリンターで出力します。
3Dプリンターでの実験は時間のかかる退屈な作業であった、とリサーチャーらは述べています。プリンターを調整し、試行錯誤しながら型の適正サイズを見極めなければならず、モデルの一つ一つ(全部で50個)を必要な設定で実際に出力するには1時間かかりました。偽の指紋を作り、盗んだスマートフォンのロックを解除するのは、すぐにできることではないのです。眠っている人の指紋をコピーする方法にしても、それなりに時間がかかります。
指紋を偽造するための型を作っても、まだまだ道半ばです。偽指紋用の素材選びは、さらに厄介でした。偽の指紋は3種類のセンサーをテストするのに使いますが、指紋の読み取り方法はセンサーによって異なります。たとえば、電流を伝導する素材であるかどうかは、超音波センサーと光学センサーの場合は関係ありませんが、静電容量センサーの場合は考慮が必要です。
ところが、解決策は偶然見つかりました。偽の指紋を作るのに最適なのは、どこででも手に入る、布用の安価な糊でした。
偽の指紋でクラッキングできたデバイスとは
調査チームは、用意した偽の指紋を使用して、指紋センサー付きのデバイスをテストしました。対象となったのは、さまざまなメーカー製のスマートフォン、タブレット、ノートPCを複数種類、スマートロック1種類、USBメモリ2種類(Verbatim Fingerprint SecureとLexar Jumpdrive Fingerprint F35)です。
結果は芳しくありませんでした。半数以上のスマートフォンとタブレットで、80%~90%の確率でクラッキングが成功し、100%成功した場合もありました。3Dで出力された型を使う方法は成功率が比較的低かったものの、それほど大きな差はなく、3つの方法はどれも実効性がありました。
例外もありました。たとえば、Samsung A70スマートフォンはまったくロックを解除できませんでした。ただし、この機種は所有者本人の指紋を認識しない可能性も一番高いことを付け加えておくべきでしょう。
Windows 10が稼働するデバイスの場合は、メーカーを問わず、ロックを解除しにくいことが分かりました。メーカーにかかわらず同じ結果が出ることについて、調査チームは、OS自体が指紋の照合を行っているため、デバイスの製造元によって差が出ないのではないかと見ています。
一方で、セキュリティ機能付きUSBメモリはその名にふさわしいことが実証されたのですが、当社のリサーチャーは、もっと高度な攻撃には持ちこたえられない可能性があることを警告しています。
最後になりましたが、最もだまされやすかったのは、超音波指紋スキャナーでした。超音波スキャナーには3D画像を認識する能力がありますが、本物の指が偽物の指紋をセンサーに押しつけたときには、偽物を本物だと判断しました。
一般の人にはどんな影響があるのか
調査チームは、指紋認証のセキュリティには相当な改善の余地があり、状況は過去数年と比べてある程度悪化しているとしています。
とはいえ、偽の指紋を作るのはコストのかかる作業であり、少なくとも時間がかかることは確かですから、一般の人は心配する必要はありません。しかし、資金を潤沢に持つ犯罪者グループや諜報機関に狙われるようなことになったら、話が別です。そんな事態に陥ったら、手持ちのデバイスをすべて昔ながらのパスワードで保護するのが最善策です。結局のところ、強力なパスワードを破る方が難しいものですし、悪意ある人の手にわたったと感じたらすぐに変更できるという強みもあります。