2段階認証の運用方針
運用方針
「YubiKey を紛失したり、携帯し忘れたら詰む」ことがないようにする
YubiKey の代替となるような認証デバイスを設定するなどして、YubiKey がなくてもログインできるようにする
あくまで FIDO2 などでワンタップで楽に認証するためのデバイスとして使う
認証方式が複数設定できる場合は、「FIDO2 => OTP => SMS認証 => メールアドレス認証 => その他」の優先度で設定する
FIDO2 があれば FIDO2 を、FIDO2 がない場合は OTP を、FIDO2 も OTP もない場合はメールアドレス認証を設定する
セキュアな認証方式を優先的に利用する
FIDO2 の認証デバイスには YubiKey を利用する
複数のホストマシン(PCなど)で、同一の認証デバイスを使って認証できるようにするため
例外として YubiKey を携帯し忘れた状況を考慮し、生体認証のある認証デバイスであればそれを使っても良いものとする
TouchID など
ただし TouchID だけでなく、YubiKey も認証デバイスとして設定しておくこと
同一アカウントの OTP の秘密鍵を複数の認証デバイスに保存しないようにする
やろうと思えば Google Authenticator、YubiKey、1Password など複数の認証デバイス (1Password はデバイスというよりはサービスだけど) に同時に保存して、YubiKey がなくても Google Authenticator があれば認証できる、みたいなことができる
しかし紛失してはならない認証デバイスが増え、気にすることが多くなってしまう
そのため、どれか1つだけにだけ保存する
OTP の秘密鍵は 1Password に保存する
YubiKey やスマートフォンを携帯し忘れた時でも認証できるようにするため
もし YubiKey やスマートフォンに 秘密鍵を保存していた場合、YubiKey やスマートフォンを携帯し忘れると、認証できなくなる
割と携帯し忘れるので、そうならないようにしたい
1Password に保存しておけば、1Password にログインできるデバイスさえ持っていれば、認証できる
1Password に全てを集約することになるので、2要素認証と言えなくなって本末転倒感はある…
とはいえ便利さにはかえられない
そこで 1Password アカウントが掌握されないよう、1Password アカウントを厳重に保護する方向でカバーする
1Password のデータの閲覧には生体認証 OR マスターパスワードの入力を必須とする
1Password のデータを盗み見されないよう、1Password アプリをインストールした物理デバイスからは、認証を解除した状態で離れないようにする
一定時間経過したり、表示するアプリを切り替えたら 1Password アプリのロックが掛かるようにする
YubiKey による2要素認証を設定する
代案として複数の物理デバイスに Google Authenticator を入れて、それぞれに同じ秘密鍵を登録して運用する方法もある
しかし「同一アカウントの OTP の秘密鍵を複数の認証デバイスに保存しないようにする」に反してしまう
よって却下
FIDO2 に加えて、FIDO2 以外の認証方式も同時に設定できる場合は、FIDO2 と一緒にその認証方式も設定しておく
YubiKey がなくても認証できるようにするため
例: FIDO2 と OTP を同時に設定できるサービスでは FIDO2 の認証デバイスとして YubiKey を、OTP の認証デバイスとして 1Password を設定しておく
FIDO2 以外の認証方式が複数同時に設定できる場合は、どれか1つだけ設定しておく
紛失してはならない認証デバイスを減らすため
例: OTP と SMS を同時に設定できるサービスでは OTP だけ設定しておく
ただし一部サービスは、逆に認証デバイスを増やしてログインできる方法を増やしておいたほうが良い
Google や 1Password など、他のサービスのログインに必要なサービスなど
これらにログインできなくなると、様々なサービスにログインできなくなってしまう
そこで以下のようなサービスでは、アカウントのセキュリティを厳重に設定した上で (パスワードを強固にしたり、不審なログインに気づけるようにするなど)、複数の認証方式を設定して良いものとする
IDaaS (Okta など)
Oauth をサポートするサービス (Google、GitHub、Twitter など)
パスワードマネージャー (1Password など)
その他細かい運用ルールや運用上の工夫など
リカバリーコードの管理方法
紙に印刷し、クリアファイルに保管しておく
どのサービスのどのアカウントのリカバリーコードか分かるよう、サービス名とアカウント名を手書きしておく
リカバリーコードを使用した場合は、使用したリカバリーコードに打ち消し線を引く
印刷ミスや二段階認証の再設定、アカウントの解約などでリカバリーコードの用紙を廃棄することになった場合は、シュレッダーで裁断した上で廃棄する
どの YubiKey のモデルを買うか
NFC モデルだとスマートフォンからも利用できて便利そう / Bio モデルだと指紋認証できて便利そう
一方でこうしたモデルは細長い形状をしていて、根本からポキっといきそうで怖い
そこで mizdra.icon は YubiKey 5 Nano を使っている
USB ポートからほとんど出っ張らないので折れる心配がない
ただし、つまんで外しにくくなるという欠点がある
複数ホストマシンで差し替えて利用することを想定しているので、これでは不便
そこで mizdra.icon はマグネットでくっつくアダプターを間に挟んで使っている
これ使ってる
https://gyazo.com/3415a7a797e84bb269311414c170c535
予めType-C のオスが付いているパーツをそれぞれのホストマシンに挿しておく & 黒いパーツに YubiKey 5 Nano を挿しておく
YubiKey を使いたくなったら、そのデバイスの前者のパーツに対して、後者のパーツをくっつければ良い
別のホストデバイスで YubiKey を使いたくなったら、黒いパーツだけ外して新しいホストマシンに付け替える
マグネットでくっついているだけなので、簡単に外せる
Type-C のオスが付いているパーツはホストマシンに挿しっぱなしにしておけば良い
様子
https://gyazo.com/c8a6937ddb767da8c379e4afa449c1ab
SMS認証とメールアドレス認証のどちらの優先度を高くするか
別にどっちでも良いと思う
最近はSMS認証だと autofill できたりするので SMS認証のほうが使い勝手良いと思う