結構前にYubiKey 4C Nanoを買って使ってるので、その設定や使い道についてのメモ。

追記(2022/11/27): より実践的なYubikeyの運用方法については次の記事を参照してください。Yubikey 2枚ないと実用は難しかった。

Macbook Pro/AirとYubiKeyの運用

Macbook系はUSB Cなので、YubiKey 4C Nanoを買った。

AirもProも2ポート以上あるので、基本的にずっと挿しっぱなし。 1ポートはUSB Cハブ、1ポートはYubiKey 4C Nanoを刺している状態。

この運用からも分かるように、YubiKeyのみでログインとか何かできるような状態では使ってない。 あくまで二要素認証のSMSの代わりという感じの使い方に収まるようにしている。 YubiKeyをなくした場合にも登録済みサービスからRevokeするだけで済む範囲でしか使ってない。

Yubikeyにニックネームをつける

Yubikeyを登録できるサービスには、Security Keysにニックネームをつけられるものがある。 複数のSecurity Keyを登録できるため、それぞれに固有の名前をつける。

このニックネームは万が一Yubikeyをなくした時にrevokeするために使うので、わかりやすい名前にしておく。Revokeしたいときは、他のサービスからもRevokeすると思うので、共通の名前を使うのが良さそうです。

Yubikeyのケースにニックネームを書いておいて保存した。

Firefox

Firefox(64)ではまだU2Fがデフォルトではオフなのでabout:configから有効化する。

security.webauth.u2f: true

に変更するとGoogleのサービス以外はちゃんと認識した。

GoogleはGoogle Chromeでしか動かないように作られているので、Firefoxではセキュリティキーを認識しない。

Google

Firefox本体はまだ2要素認証としてセキュリティキーに対応してない。

サービスの設定

Universal 2nd Factor (U2F)やOne Time Passwords (OTP)での2要素に対応しているサービスは次のサイトにまとめられている

U2Fに対応しているサイトは2要素認証部分がYubikeyにタッチするだけで良くなるので設定した方がいい。 (アプリでワンタイムパスワード入れて、どういうみたいなのがワンタップでよくなる)

OTPだけに対応しているサイトは、上手くやるには工夫が必要なので後述。

どちらのサイトもYubikeyなどの物理トークンを設定したからといって、リカバリーコードなどをなくさないようにする。 自分はそれぞれのサービスで次の2つを行った。

  • AuthyでQRコードを読み込み保存
  • バックアップ用のリカバリーコードを別途保存

Yubikey自体をなくした場合は、各サイトからyubiKeyをrevokeすれば、なくしたYubikeyを使って2要素認証はできなくなる。 Yubikey自体をなくした場合でもAuthyなどを使ってログインが可能。

GitHub

Settings > Securityから設定できる。

Google

https://myaccount.google.com/signinoptions/two-step-verificationから設定できる。

Note: UAでU2F判定してるためFirefox 61では利用できない実装だった

Dropbox

https://www.dropbox.com/account/securityから設定できる。

Twitter

Twitter / Settingsで2要素認証を設定。 その後 https://twitter.com/settings/account/login_verification で設定できる。

Twitterはクライアントアプリでログインした時に、セキュリティキーの認証を求めてくる + そのアプリがElectronで対応してないとかの場合はログインできなくて詰んでしまう問題がある。

一時的にセキュリティキーをオフにするとかの回避方法しかなかった。

npm

https://www.npmjs.com/settings/~/profileから設定できる。

npmはauth-onlyとauth-and-publishのモードがある(またパッケージごとに2要素認証を設定できる)

npm

これらの違いは次の表で確認できる(publishまで2要素認証を求めるかという違い)

現状のauth-and-publishはmonorepoだとpublishが難しい問題がある。

その他

AWSとかお金がかかる系は逐次やっておく。

銀行系は2要素認証は対応してるけど、独自アプリだったり、セキュリティキーは対応してないところが多い。

YubiKey Manager

YubiKey Managerを使うと、OTPを無効化したり、長押し時に行う動作を設定できたりする。 (Yubico OTP、Challenge-response、Static password、OATH-HOTPなど)

Short Touchは誤爆するので無効化した。

image

感想

Yubikeyを使うことによって便利なケースは自分の使う範囲だとそこまでない感じ。 USBポート空いてたので刺しておこうぐらい。

GitHubはセキュリティキーがあると便利なサイトで、ログインだけじゃなくてコラボレーターの追加なども認証を求めてくるので、頻度的には1日1回ぐらいはYubikeyに触っている感じがする。

GitHub: add collaborator

Macbook Airから指紋認証ができるので、指紋認証でセキュリティキーにできるソフトウェア実装があれば使わなくなる場合もありそう。 一方でYubikeyは取り外しができるので、Macbook Pro -> Airへと移動した時に、キーを付けるだけで良かったという話もある。

Yubikeyは便利な使い方をするなら、OTPのAPIを叩いて結構遊べるけど、なくした時に何も起きないことを優先しているので、あんまり便利な使い方をしてない。(外さない/外れないので、なくすときはmacbookごとなくしそう)

Yubikey買ってからの運用方法まとめ

  • 登録したウェブサービスをメモる
    • Revokeできるようにするため
  • なくした場合に困らない運用にする