詰まないための二要素認証運用(エンドユーザー編)

最近、使ってた携帯電話が即死してちょっと詰みかけたり、周りでも携帯が突然死して困った同僚がいたのでまとめておく。

基本戦略

  • 防水だろうがなんだろうが携帯電話は精密機器なので割と簡単に壊れるということを思い出す
    • 壊さなくてもなくしたりどこかに置いて来てしまったりする
  • リスクを分散させる

やっておくこと

リカバリコードをちゃんと取得しておく

  • 基本なんだけど、後でやろうと思って忘れがちなので二要素認証を有効にしたタイミングでやっておく

GitHubなど物理トークンで二要素認証できるサービスはFIDO U2F対応のトークンを買って登録しておくこと

  • たとえばyubikeyを買って使いましょうという話です.
  • いちいち携帯を取り出すよりも簡単だし、紛失してもたかだか5千円なので、とっとと諦めてrevokeできるのがよい.
    • とっととrevokeすれば悪意のある第三者がこれでログインするのも難しくなる.
    • 普通に家の鍵とかと同じ扱いをしましょう.

ワンタイムトークンをSMSで発行可能なサービスはアプリではなくSMSを使う

  • アプリだと携帯電話が壊れると即死なことがおおいけれども、SMSなら代替機さえ用意できればなんとかできることが多い.

二要素認証アプリ以外で二要素認証できないサービスは使わない

  • たまにアプリとリカバリコード以外で二要素認証できないサービスがある
  • そんなところに二要素認証が必要な重要なデータを預けるべきではない
  • 真面目に取り出せないリスクがある
  • 法人とかでグループ管理者とか他に復旧してくれる人がいる場合はともかく、なるべく使わないのが正解

色々かんがえること

SMSと物理トークンのどちらか一方しか鍵として登録できないサービスではどちらを登録すべきか

  • GitHubとかはどちらをプライマリキーにするかを選んだ上で登録できるけど、そうじゃないサービスもある
    • AWSとかがこんな感じだった記憶(うろ覚え)
  • 利便性は物理トークンの方が楽なことが多い
  • あんまり深く考えてないけど好きな方でいいんじゃない?
  • リカバリコードの方が重要

まとめ

  • アプリでの二要素認証は回復が大変
    • ハードウェア起因の理由で
  • FIDO U2F対応の物理キー便利です
    • 二要素認証必須の会社は会社支給で配って欲しいし、配るといいと思うし、配らないなら経費申請しよう
  • リカバリコードはちゃんと取っておけ