U2F対応キーを買ってみた

Chrome 38 (Win/Mac/Linux) がUSBセキュリティキーに対応し、あわせてGoogleの2段階認証もこれに対応しました。従来のスマートフォンによる認証と比べてキーを挿す*1だけとお手軽なほか、似たような外見・URLのフィッシングページに誘導されてもブラウザが正規のページか自動的に判断するので騙されてキーを入力してしまうことがなくセキュアだということです。

Use Security Key for 2-Step Verification - Android - Google Account Help


利用できるのは、FIDOが策定しているU2F (Universal 2nd Factor)に対応したキー。


私はamazon.comで↓のを買いました。 たったの$6なり。ボタン等はついてないので挿しっぱなしにはできず、認証時に挿すという感じになりますが、とにかく安かったので。

http://www.amazon.com/gp/product/B00OGPO3ZS/ref=oh_aui_detailpage_o02_s00?ie=UTF8&psc=1


プラスチックのカードが封筒に入って届くので、切り取って、USB端子部分の厚み調整のために折り曲げて完成。


登録はGoogleの登録ページを開いてキーを挿すだけ。以降、認証するときはキーをさすと、自動的にログイン後のページに進んでくれるという感じです。


USBキーが使えない環境では、従来のスマートフォンを使った2段階認証を利用できます。

JavaScript API

FIDOでは、JavaScriptAPI*2も策定しています。

https://fidoalliance.org/specs/fido-u2f-javascript-api-v1.0-rd-20141008.pdf


Googleの認証ページではhigh-level APIを使っているようですが、プラグインと会話できるようにmanifest等が必要なのでセットアップが大変。

今のところ、Googleの2段階認証以外でお手軽に実験するには、リファレンス実装( GitHub )のExtension ( https://chrome.google.com/webstore/detail/fido-u2f-universal-2nd-fa/pfboblefjcgdjicmnffhdgionmgcdmne ) を入れ、デモサイト( https://u2fdemo.appspot.com/ )を訪れるのが簡単そう。

発行されたキーの内容や、認証の様子がビジュアルに見れます。Mac/Chrome 38でなんども動かしてると結構落ちるのがアレですが。

*1:またはボタンを押す

*2:直接キーと情報をやり取りするlow-level、low-levelなページとEventで会話して認証してもらうhigh-levelの2種類