セキュリティキー YubiKey 4C Nanoの設定と運用
結構前に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 4C Nano + Macbook Air 2018 pic.twitter.com/cciCb01h7P
— azu (@azu_re) January 2, 2019
この運用からも分かるように、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ではセキュリティキーを認識しない。
Firefox本体はまだ2要素認証としてセキュリティキーに対応してない。
- Firefoxアカウント: Firefox アカウントを取得
- Firefoxのマスターパスワードなど
サービスの設定
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から設定できる。
- Using Your YubiKey with GitHub : Yubico Support
- Configuring two-factor authentication - User Documentation
https://myaccount.google.com/signinoptions/two-step-verificationから設定できる。
- Using Your YubiKey with Google : Yubico Support
- 2 段階認証プロセスにセキュリティ キーを使用する - Android - Google アカウント ヘルプ
Note: UAでU2F判定してるためFirefox 61では利用できない実装だった
Dropbox
https://www.dropbox.com/account/securityから設定できる。
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要素認証を設定できる)
これらの違いは次の表で確認できる(publishまで2要素認証を求めるかという違い)
現状のauth-and-publish
はmonorepoだとpublishが難しい問題がある。
- Support 2FA
--otp=123456
· Issue #1091 · lerna/lerna - 2FA security - skipping OTP on npm publish when relogin - 🐞 bugs - npm forum
その他
AWSとかお金がかかる系は逐次やっておく。
銀行系は2要素認証は対応してるけど、独自アプリだったり、セキュリティキーは対応してないところが多い。
YubiKey Manager
YubiKey Managerを使うと、OTPを無効化したり、長押し時に行う動作を設定できたりする。 (Yubico OTP、Challenge-response、Static password、OATH-HOTPなど)
Short Touchは誤爆するので無効化した。
感想
Yubikeyを使うことによって便利に感じることはほとんどないけど(GitHubはちょこちょこ二要素認証するので便利かな)、使うことで不便になる(Twitterは逆にセキュリティキー使うと認証できなくなるクライアントがある…)こともあんまりない。
— azu (@azu_re) December 26, 2018
二要素認証を積極的にオンにできるお守りみたいな感じ。
Yubikeyを使うことによって便利なケースは自分の使う範囲だとそこまでない感じ。 USBポート空いてたので刺しておこうぐらい。
GitHubはセキュリティキーがあると便利なサイトで、ログインだけじゃなくてコラボレーターの追加なども認証を求めてくるので、頻度的には1日1回ぐらいはYubikeyに触っている感じがする。
Macbook Airから指紋認証ができるので、指紋認証でセキュリティキーにできるソフトウェア実装があれば使わなくなる場合もありそう。 一方でYubikeyは取り外しができるので、Macbook Pro -> Airへと移動した時に、キーを付けるだけで良かったという話もある。
Yubikeyは便利な使い方をするなら、OTPのAPIを叩いて結構遊べるけど、なくした時に何も起きないことを優先しているので、あんまり便利な使い方をしてない。(外さない/外れないので、なくすときはmacbookごとなくしそう)
- pallotron/yubiswitch: OSX status bar application to enable/disable Yubikey Nano
- 二要素認証に使われてるYubico OTP の仕組み - 試運転ブログ
- How to use Yubikeys with Node.js - YouTube
Yubikey買ってからの運用方法まとめ
- 登録したウェブサービスをメモる
- Revokeできるようにするため
- なくした場合に困らない運用にする
お知らせ欄
JavaScript Primerの書籍版がAmazonで購入できます。
JavaScriptに関する最新情報は週一でJSer.infoを更新しています。
GitHub Sponsorsでの支援を募集しています。