【リリース】【アプリ紹介】TOTP Tool
2020/11/28
テーマ: リリース / 2020 / すべて
iPhone を機種変更した時 に Google Authenticator の移行ができなくて面倒だったので、otpauth URL をコピペすると その URL に対応する QR コードを生成するツール "TOTP tool" を作りました。
TOTP tool
使い方や特徴
- otpauth URL は各自どこか安全な所に保管しておく前提。
- 新しいスマホの Google Authenticator に otpauth URL を読み込ませたい場合、以下のことを行う。
- otpauth URL を改行区切りでいくつか並べたテキストを作って TOTP tool のテキストエリアにコピペする。
- TOTP tool に QR コードが出てくるので Google Authenticator などの TOTP アプリで読み込む。
- おまけで現在時刻における TOTP の表示もできる。
otpauth URL を書いたテキストの例
otpauth://totp/SampleSecret1?secret=aaaaaaaaaaaaaaaaaaaaaaaaaaaaa
otpauth://totp/SampleSecret2?secret=bbbbbbbbbbbbb
技術的な解説
- いろんなサービスで 2FA 設定するときに出てくる QR コードにはだいたい otpauth URL が入っています。
- otpauth URL の例:
otpauth://totp/label?secret=aaaaaaaaaaaa
- label の部分が Google Authenticator の各エントリに表示されるラベルです。値は人間が識別できればなんでも良いです。サービス名が含まれないとわけがわからなくなります。
- secret=??? の部分は秘密鍵です。
- 6 桁の OTP(one time password) は floor(unixtime / 30) を秘密鍵で HMAC-SHA1 した結果の一部 mod 10^6 になります(大まかな説明)。
- ということで、otpauth URL だけメモっておけば TOTP アプリが変わっても OTP ジェネレータを復元できます。
考察、作ってみた感想
- 入力された otpauth URL はどこにも送信しないようになっておりソースコードからそれを確認することができますが、secret が他人に漏れると危険なので、使う場合は念のためご自身で確認してから使った方が良いです。
- あるいはこのツールを使うときだけ通信手段をすべて OFF にするとかでもいいかもです。
- 入力された secret がどこにも送信されない html であることがブラウザなりなんなりのツールで保証できるといいんですが、今の所できないようですねぇ。
- ともかくこれで TOTP アプリの移行が楽になりました。めでたしめでたし。
2020/11/28
テーマ: リリース / 2020 / すべて