Authy のトークンをエクスポートする

memo, authy

February 21, 2021

一時期 Authy というワンタイムパスワードアプリを使っていました。しかし、別のアプリに移行したのでAuthy のトークンをエクスポートしました。

ちなみに今更ですが、この記事を参考にする場合は自己責任でお願いします。たとえばトークンが全部消えたとしても、一切の責任は取りません。

また、Authy 専用のトークンは正しく認証に使えることを確認していません。Authy では20秒ごとにワンタイムパスワードが更新されますが、それ以外では10秒ごとに更新されます。

必要なもの

  • Linux / macOS / Windows いずれかの OS が動いてるコンピュータ
  • デスクトップ用の Authy アプリ
  • Google Chrome 又は Chromium 系のブラウザ

今回は Arch Linux 上で検証しました。macOS 又は Windows の場合はコマンドが違うので、参考にしたサイトを参照してください。また、Authy はあらかじめログインしてワンタイムパスワードを確認できる状態にしてください。

Arch Linux であれば、AUR に authy という名称で登録されています。他の Linux ディストリビューションを使ってる場合は自分で確認してください。

手順

まず、Authy の開発者ツールを開きます。Authy は(おそらく)Electron ベースのアプリケーションなので、リモートデバッグを有効にして起動します。

authy --remote-debugging-port=5858

Authy を起動後、Chromium 系列のブラウザで http://localhost:5858/ を開いて、Twilio Authy と書かれているリンクをクリックします。すると開発者ツールが起動します。

次に、開発者ツールのナビゲーションバーから Application を選択します。もし見つからなければ、開発者ツールの横幅をマウスで広くすると表示されます。その後、左の Frames -> Scripts -> main.html を右クリックして Open in containing folder を選択します。

コンソールが表示されるので、次のコードを貼り付けて実行します。

すると authy-backup.json というファイルがダウンロードされます。そのファイルにトークンが保存されます。

おまけ

出力される URL にはサービス名が含まれていないので、Google Authenticator のようなアプリではサービス名が表示されません。もし必要であれば、語尾に &issuer=サービス名 を付けてください。

おわりに

Authy は公式でエクスポート機能を用意してほしいです。

参考にしたサイト