Universal Second Factor(U2F)とは、ユーザ認証ワークフローの一部として物理的なデバイスを使用することにより、多要素認証(MFA)をシンプルにする認証規格のことです。ログイン資格情報を入力したあと、コンピュータのUSBポートに挿した小型デバイスを押すかタップするだけで、それが第二認証要素として機能する仕組みです。ドライバのインストールは不要で、対応するブラウザさえあれば利用可能なので、便利な上にセキュリティも確保できます。U2Fなら、キーロギングやフィッシング、中間者攻撃などの攻撃を防ぐことができます。
U2Fは、インターネットユーザにとって使いやすく安全なログイン方法を提供しようと、FIDOアライアンスが考案、リリースした規格です。GoogleはFIDO内のU2F策定グループの設立メンバーで、現在は第二認証要素としてU2Fを加えるための支援をしています。また最近では、U2Fの上位に構築された新たな仕様セットであるFIDO2もFIDOアライアンスから発表されています。
Facebook、Bitbucket、GitHub、Gmail、YouTubeなど、主要なWebサイトやアプリケーションの多くがU2Fに対応しています。
ブラウザに関しては、現在以下のものが対応しています。
iOSデバイスの場合、U2FはSafari経由で使用される一方、Androidデバイスの場合は、Google ChromeとAndroidのデフォルトブラウザの両方に対応しています。
持ち運び可能なU2Fハードウェアは、USB、Bluetooth-LE、近距離無線通信のデバイス形式に対応しており、これらのデバイスを使うことで、U2Fプロトコルに対応しているインターネット上のあらゆるWebサイトへのセキュアなログインができます。U2Fによる一般的な二要素認証の仕組みは次の通りです。
なお、この5つのステップは複雑に見えるかもしれませんが、すべて見えないところで行われ、エンドユーザはU2Fデバイスを挿してボタンを押す(またはタップする)だけです。
同じU2Fデバイスを使って、インターネット上の別のサイトを登録することもできます。U2Fデバイスを自分だけの仮想キーチェーンとお考えください。これを使えば、お気に入りのWebサイトに滞りなくセキュアにログインすることができます。
どんな認証メカニズムもハッキングを絶対に受けないとは言い切れません。とはいえ、これまでのところU2Fプロトコルに関して侵害や脆弱性は報告されていません。
U2Fはフィッシング攻撃の防止を意図したものです。仮に、ユーザがだまされて偽のWebサイトを本物と思ってしまったとしても、パブリックキーとプライベートキーが一致しないため、認証は失敗します。
また、U2Fは中間者(MITM)攻撃の防止にも非常に有効です。認証プロセス中にWebサイトとユーザ間の通信に干渉しようとしている人がいると考えてみてください。中間者が干渉するとすぐに、チャレンジのオリジンが登録されたものと違うとU2Fデバイスが気付き、レスポンスを中止するのです。
認証要求はどれも同じように行われるわけではありません。適応型多要素認証は、ログイン試行の状況を使用して、適用すべき認証ルールやポリシーをリアルタイムで判断します。ログインの連続失敗回数、アクセス要求のレベル、IPアドレス、位置情報、デバイスのID、時間帯などさまざまな要素を用いて、ユーザのログインエクスペリエンスを調整します。
たとえば、ログイン試行を何度も失敗している、正式に登録されていないデバイスから要求している、勤務時間外に機密データがあるサーバにログイン要求しているなど、高いリスクのユーザと判断された場合に限り、MFAが使用されます。適応型多要素認証を利用すると、
MFAは、別のセキュリティレイヤを追加することでパスワード関連の侵害を防止します。ただし、エンドユーザに多要素認証の登録をしてもらうのはハードルが高い場合もあります。それも当然でしょう。ワンタイムパスワード(OTP)が生成されるのを待ってから入力するのは面倒だからです。1日に何度もそれを行うとなればなおさらです。ユーザは、ソーシャルメディアのフィードをチェックしたり、記事を読んだり、TV番組をストリーミングで見たりしたいだけであって、こうした一見ささいな行動のために、わざわざ2つ目の認証要素を追加しようとは思いません。もちろんMFAを必須にすることもできますが、それでは顧客の不満を犠牲にすることに(往々にして)なってしまいます。
セキュリティとユーザエクスペリエンスという2つのバランスを絶妙に確保することは難しい問題ですが、非常に重要です。ここで役立つのがAMFAです。AMFAを利用すると、第一要素の認証時に不審な点やリスクの高そうな点が見受けられなければ、多くの場合、第二要素の入力が不要になります。従来のMFAを強化したこの方法によって、日頃からアクセスしているユーザの利便性は、はるかに向上します。次などを考慮します。
シナリオ1: アランという顧客が、あるWebポータルにログインするシナリオを考えてみましょう。彼はこのWebサイトに登録して以来ずっと、同じノートパソコンでログインしています。IPアドレスもいつも同じ都市です。そして、パスワードの認証は1回目でパスしています。こうした要素や他の認証要素を基に、ログインしようとしている者が本当にアラン本人であることをシステムで確認できた場合、第二認証要素の入力は求められません。
シナリオ2: 今度は、アダムというハッカーがアランのログイン資格情報を入手した場合を考えてみましょう。アダムがログインしようとすると、ログインの要求元が新しいデバイスであり、位置情報も異なることをシステムが検知します。そして、この要求をリスクの高いものと分類し、アダムに対して第二認証要素を入力するよう求めます。アダムは第二認証要素を入力できないので、アクセスは拒否されます。
AMFAは、エンドユーザとサービスプロバイダの双方にメリットがあります。サービスプロバイダは厳重ながらも顧客の立場を考えたセキュリティポリシーを実行でき、エンドユーザは第二認証要素の入力がほとんどの場合で不要になります。では、U2FとAMFAを併用して、よりお客様重視の堅牢性を高めた認証ソリューションを形成したらどうなるでしょうか。
まれに第二認証要素の入力が必要になっても、お客様は自身のU2Fデバイスのボタンをタップするか押すだけなので、別のアプリケーションを開いてパスコードを取得したり、OTPのメッセージが届くのを待ったりするより、はるかに利便性に優れています。サービスプロバイダにとっても、デバイスがブラウザと直接通信してくれる上に、キー署名の複製が実質不可能になるため、セキュリティがはるかに向上します。
U2Fは、二要素認証をシンプルにすると同時に、フィッシング攻撃や中間者攻撃などの危険なサイバー攻撃のリスクを軽減します。AMFAは、定期的にアクセスするユーザに対しては第二認証要素を要求せず、不審な人物が初めてアクセスした場合には第二認証要素を厳しく要求します。この2つの方式を組み合わせれば、シンプルながらもセキュアなログインを実現することができます。