個人的にSSHの鍵管理で利用しているkryptonがFIDOのU2F(Universal Second Factor)をサポートしていたので使ってみました。

仕組み

この説明がわかりやすい。
データの流れなどが簡単な説明とともに記載されている。
ブラウザ拡張がウェブページのU2Fに対する通信をフックして〜みたいな感じで動く模様。
これにより手持ちのスマホがU2F認証用のデバイスに変身する。

準備

  1. スマホにKryptonアプリをインストール
  2. ブラウザにKrypton拡張機能をインストール
  3. ブラウザに拡張機能を選択
  4. ペアリング用のQRコードが表示されるのでスマホアプリで読み込みして承認

これで準備完了。簡単。

U2Fデバイスとしての登録

ここではGithubを例に設定方法を説明。(他も基本は同じ)
1. ログイン → setting → Security → Two-factor authentication → Security keys
2. Register new deviceボタンを押下
3. デバイス名を登録後、Addボタンを押下
4. スマホアプリに通知がくるので認証

これで登録完了。

U2F認証

利用方法はシンプルでログイン後、セキュリティキーの利用が求められるとスマホアプリに通知が来るので承認すればシステムにログインすることができます。

設定自体はスマホアプリに登録されるので、Chormeの拡張機能でU2Fデバイスとして登録すれば、Safariで同じスマホアプリでペアリングしておけば同じようにスマホをU2Fデバイスとして利用可能になります。

スマホアプリ側でペアリングを信頼済みにするとスマホへの認証確認の通知が省略されて認証されます。
セキュリティと利便性のバランスを考えてユーザーがペアリング毎に設定を変更できるのは嬉しいところ。

その他

FAQにぱっと思いつきそうな疑問に対する回答がのってます。
krypto.coがスマホの中にある秘密鍵にアクセスできるようになってないか?
 とか
スマホなくしたらどうするの?
 とか
利用時に気になるところやリスクについてのっているので一読しておいたほうがよいです。

まとめ

  • 個人利用でカジュアルにスマホをセキュリティキーとして利用したい場合はとても有効
  • 事前にブラウザ拡張をインストールしてペアリングしてという作業が発生するのでU2Fデバイスを利用するよりも手間がかかる
  • スマホがあってもブラウザ拡張をインストールしてペアリングしないとU2Fの認証はできない
  • 当然のことながらスマホが電池切れしたりネットワークにつながってなかったり壊れてたら使えない
  • Kryptonに技術的な課題や事故が発生する可能性は0ではないので利用する場合はリスクがあることを理解しておくこと

元記事はこちら

KryptonでFIDO U2F