ワンタイムトークンの喪失リスクとバックアップ

2015年4月20日

GoogleやEvernoteなどのWebサービスではセキュリティのために多要素認証(MFA)を設定できる。メジャーどころはだいたいOATHに準拠したTOTPを使っていて、トークンアプリを一つ入れておけば各サービスのトークンが使えるようになる。
私の場合はスマホにGoogle Authenticator(Google認証システム)を入れているのだけど、もしスマホが壊れたときに認証できなくなるリスクがあるので、バックアップとなる緊急認証手段を用意しておきたい。

Google Authenticator 画面
Google Authenticator 画面

私の手元には10種類以上のアカウントが設定されている。

  • Google
  • Facebook
  • Evernote
  • Microsoft
  • Yahoo! Japan
  • AWS
  • Github
  • Slack

(※ほか多数)
2段階認証におけるTOTPトークンアプリの移行方法
http://reliphone.jp/totp-apps/

どのサービスも基本的に、認証さえできていれば既存のを無効化して新しいトークンを設定できるので、認証済みのPCやスマホを複数用意しておけば緊急時でも再設定ができる。
IIJ SmartKey
http://www.iij.ad.jp/smartkey/

またトークン自体のエクスポート機能を持ったアプリもあるので、データだけ保管しておいて新しいスマホにインポートする事もできる。
もし手元のデバイスが全部壊れた場合、つまりサービス側に保存されている“信頼されたデバイス”が全喪失したときは次回ログイン時にトークンが要求されて(そしてトークンも失われていると)ログイン不可能な状態になる。機種変更するなどの対処で一旦電話が使える状態にまでできればSMS・電話認証で済ませられるが、登録電話番号が分からなくなったとか、携帯電話を出先に忘れてきたとかで待ってられない場合は最終手段バックアップコードの出番になる。事前に紙に印刷するなどしてオフラインで安全に保存しておきたい。

Evernoteのバックアップコードの例
Evernoteのバックアップコードの例

ここからは細かい話。
iPhone5sの交換からAWSコンソールへログインできなくなって復活したところまでの顛末
http://blog.mittostar.info/2014/07/13/iphone5s%E3%81%AE%E4%BA%A4…

AWSだと復旧手段が英語の電話になってしまうようなので、英語に自信がないなら前述のアプリでエクスポートをしておくか、初めからトークンを多重化しておくのがいいだろう。多重化は同一のキー(二次元バーコードのアレ)を複数端末で読み取っておくだけ。
ただ、トークンを多重化した場合たとえば2台持ちが2台とも水に濡れたとか車に轢かれたとかで全滅するリスクもあるので、全滅を防ぐため少なくとも一つはできるだけ安全な場所にバックアップを保管しておきたい。つまりゴミのようなAndroid端末にトークンを設定し、オフライン設定にして、電池を抜いて保管しておくのがいいだろう。(リスクを最小化するなら空き巣に入られても金目のものに見えないようなゴミ端末が良いと思う)
Google Authenticatorを使ったSSHのワンタイムパスワード認証の設定(CentOS 7)
http://blog.virtualtech.jp/tmiyahar/1311

サーバのSSH接続にMFAを設定している場合も、ログイン不能になることを防ぐために同じ方法が使える。
以上、トークンの喪失リスクとバックアップについて長々と紹介したのだけど、結局のところ多要素認証というのはパスワード攻撃を防ぐためのものなので、あまりトークン自体のリスクに悩むよりはパスワードそのものの管理を強化した方がよいかもしれない。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です