生体認証での2段階認証 vs 公開鍵認証
今月上旬に2段階認証デバイスのYubico社が生体認証できるデバイスを発表しました。今日のコラムはU2Fによる2段階認証について、YubiKeyやハードウェアウォレットとの関連を交えて紹介します。
YUBIKEYとは
USBに差し込む2段階認証デバイスです。皆さんが普段慣れているワンタイムパスワード方式の2段階認証もできますが、特徴としてU2Fという方式も使用できるという点があります。これは、YubiKeyに内蔵されている秘密鍵を用いてサーバーからの情報(チャレンジ)に署名し、サーバー側で登録しておいた公開鍵で復号して認証する方式です。これを使うと、6桁の数字を入力する必要もない上、秘密鍵をデバイスから取り出せないので、設定用のコードを控えていたのが盗まれて悪用されるようなこともありません。まさに物理的な秘密鍵によるログインという方式です。(あくまでID・パスワードと併用する2段階認証デバイスというスタンスですが)
ただし、YubiKeyはバックアップできない分、無くすとかなり大変なことになるので、YubiKeyを複数セットアップしておいて、無くした場合は残された方ですぐに対応する必要があります。(壊れた場合は物理的に破壊するだけでいいでしょう)
また、U2Fに対応しているブラウザはまだ限定的で、PC版でChrome, Firefox, Opera, Edge、アンドロイド版のFirefoxとなっています。個別に対応しているアプリもありますが、まだ徐々に普及中の技術だといえます。
ちなみに、Google Authenticatorなどでおなじみのワンタイムパスワード方式には弱点が多くあり、サーバーとクライアント双方で同じシークレットが平文で保管されていることや、登録時にインターネットを介して送られてくることなど、流出する可能性のある経路が数多くあります。もちろん、2段階認証をしないよりは遥かに良いですが。
YUBIKEY BIOの概要
指紋認証用のセンサがついている以外は他のYubiKeyと似たシンプルなデザインで、ドライバのインストールや充電などは不要です。セットアップ時に指紋を登録することで、コンピューターに差し込んで使用する際に指紋認証を求められる模様です。
YubiKeyと比較した長所は、紛失・盗難に遭ったとしても登録してある指紋を使わないと使用できないため、ある意味ID・パスワードとYubiKey自体の保有という2段階に加えて、指紋の認証という本人確認があるという感じでしょうか。発売日などは未定です。
生体認証について
生体認証はセキュリティ面では本人確認性が非常に強いものとされています。(その中では指紋は虹彩や静脈より第三者に取得されやすい情報だとは思いますが。) YubiKey BioではTEE内に指紋データが登録されるので、流出する可能性も低いでしょう。
また、生体認証についてよくある誤解ですが、指紋認証や顔認証などのシステムにおいて保管されていて実物と比較対象になるデータは「特徴点を抽出したデータ」であって画像自体ではありません。なので、流出してもただちに個人の特定につながりませんが、アルゴリズムによっては復元可能なものとなる可能性があります。
個人的には、生体認証に関しては公開されている写真から顔面を復元したり、何らかの方法で指紋を取得して再現するなどの攻撃への耐性が気になります。流出した場合に簡単に変えられないことも相まって、体表で世界に公開されている情報よりは、やはり秘密の情報が直感的には強い気がします。
ちなみに、もはや完全に余談ですが、写真さえあれば3Dプリンターの普及で家の鍵の偽造が非常に簡単になってしまったので、家の鍵もスマート化が早急に必要だと思ってます。ディンプルキーであろうとも、鍵の表面に鍵の情報が公開されていることに違いはないので。
仮想通貨の管理に使える?
では、YubiKey Bioが指紋認証付きのYubiKeyなのはわかりましたが、そもそもYubiKeyとハードウェアウォレットの違いとは何でしょうか。
共通点を述べると、どちらも、デバイス内のセキュアチップ上に秘密鍵を保管して、署名をする機能のあるデバイスです。実は、かなり昔の開発版のYubiKeyにオープンソースのアプレットをインストールすることで、ハードウェアウォレットとして使用することができたそうです。そして逆に、Ledger NanoシリーズもTrezorもU2Fに対応しており、YubiKeyと同様に2段階認証に使えるのです!
しかし、最近のYubiKeyはこのように使うことはできず、そもそも処理能力も低いため、仮想通貨の管理に関してはLedgerやTrezorのハードウェアウォレットには敵いません。
(※そもそも安全に保管することが第一のハードウェアウォレットを、頻繁に取り出す必要のある2段階認証デバイスとして使うこともおすすめできませんので、2段階認証デバイスとして使うなら専用のものを用意しましょう。)
また、既に指紋認証付きのハードウェアウォレットも存在します。ただ、かなりマイナーなので現時点ではセキュリティ面での信頼性に不安が残ります。
まとめると、主流のハードウェアウォレットはYubiKeyのできることがすべてできますが、現行のYubiKeyをウォレットとして使うことはできません。
指紋認証のできるYubiKey Bioの活用法の1つのアイデアとしては、ブロックチェーンスマホに関する記事で紹介した流行りの秘密鍵のバックアップ方法「シャミアの秘密分散法」において、信頼した友人同士が共謀して秘密鍵を復元してしまうことへの対策ではないでしょうか。
分割したシェアを友人たちが指紋認証したYubiKey Bioで暗号化し、復元までYubiKey Bioをすべて自分が保管すれば、自分の知らないところで盗難されることは防げるのではないでしょうか。ただ、セキュリティが向上する代わり、スマホだけで遠隔でも簡単に復元できるというお手軽さはなくなりますね。YubiKeyも数を揃えると高いので、結局ウォレットをバックアップするなどの選択肢が勝つ気もします。
おわりに
U2Fのような公開鍵認証の仕組みと仮想通貨は親和性が高く、これから2段階認証やログイン自体がそのような仕組みに置き換わっていく可能性は高いと考えています。
しかし、生体認証が仮想通貨の管理に向いているかといえばそこには疑問の余地があります。「不正アクセス」や「複製」に対して脆弱で、かつ変更が困難な自分の身体を秘密鍵の代わりにするのは甘いように思います。結局は既存のYubiKeyやOpendimeのように秘密鍵を誰も知らないものや、ハードウェアウォレットのようにセットアップの方法次第でバックアップ可能性と秘密鍵の安全性を両立できるソリューションが長続きするのではないでしょうか。
次の記事
読者になる
一緒に新しい世界を探求していきましょう。
ディスカッション