Ente Authはエンドツーエンド暗号化され、複数デバイスで同期ができる二段階認証アプリです。Google認証システムからの移行を考えているのであれば、有力な候補となります。この記事では、そもそも二段階認証アプリ(TOTP)とは何か、なぜエンドツーエンド暗号化が必要かということからEnte Authの安全性について解説します。合わせて、Ente Authの基本的な使い方と注意点についても解説します。
Ente Authとは
Ente Authの概要と安全性、TOTPの仕組み、セルフホストについて解説します。
Ente Authの概要
「Ente Auth」は、アメリカの「Ente Technologies」社が提供する二段階認証アプリです。
オープンソースで開発されており、完全無料で使用できます。
Ente社のサーバーを介して、マルチデバイスで同期をすることができます。
その際にエンドツーエンドで暗号化(E2EE)されるので、サーバー管理者であっても内容を見ることができません。
Ente社は元々、エンドツーエンドで暗号化された画像ストレージサービスを提供していましたが、その際に、エンドツーエンドで暗号化された認証アプリが存在しないことに気が付き、一緒に公開することにしたとのことです。
二段階認証アプリ(TOTP)の仕組み
二段階認証(二要素認証)アプリは、ほとんどの場合、TOTP(Time based One Time Password)プロトコルに基づいた番号生成アプリのことを指します。
TOTPは、秘密鍵(シークレットキー)と現在時刻を使って、6桁の数字を30秒間隔で生成するプロトコルです。
シークレットキーが同じであれば、同じ番号が生成されます。
まず最初に、サイト側とユーザー側で、シークレットキーを共有します。
この際にQRコードを使用して、画面越しにシークレットキーを受け渡すことで、ネットワークを経由しないことが多いです。
その後は、それぞれのローカルで番号を生成し、一致するかどうかで認証をおこないます。
一度シークレットキーを共有してしまえば、その後はキーのやり取りをする必要がないので安全、というのが強みです。
反面、シークレットキーが漏洩してしまえば、誰でも番号を生成することができ、検知することも不可能という弱点があります。
Ente Authは安全か
一番よく使われている二段階認証アプリは、おそらく「Google認証システム(Google Authenticator)」です。
ここで問題となるのが、Googleにシークレットキーを預けても大丈夫かということです。
現在のところ、何か問題が発生したという話は聞きませんが、Googleに依存したくないという方も多いでしょう。
Ente Authは、Googleからの有力な移行先となります。
Ente Authは、1台のデバイスであれば、完全にローカル環境で動作するので、シークレットキーがどこかに漏洩するということはありません。
しかしそれでは不便ですし、何よりそのデバイスにアクセスできなくなった場合に、シークレットキーが失われ、他のサイトにもログインできなくなるという恐れがあります。
そのため、Enteサーバーを利用して、シークレットキーの同期を取るのが基本となります。
では、EnteはGoogleよりも安全と言えるでしょうか?
絶対に確実ということではありませんが、概ね安全とみなされています。
Enteが安全である理由として、以下のようなことが挙げられます。
- オープンソースであること
- エンドツーエンド暗号化をしていること
- 利用規約やプライバシーポリシーが明確であること
- 第三者機関の監査を受けていること
- 暗号ストレージサービスEnteの運用実績があること
セルフホストも可能だが難易度が高い
Enteも信用できないという場合は、セルフホストをすることも可能です。
しかし、若干ハードルが高いです。
実際に少し試してみたのですが、Ente Authだけでなく、メールサーバーやリバースプロキシサーバー(またはVPN)の運用が必要となります。
また、Enteサーバーにアクセスできなくなると、様々なサイトへのログインに支障をきたす恐れもあるため、サーバー管理に慣れている方のみにおすすめします。
Ente Authの使い方
Ente Authのインストール、アカウント作成、インポート・エクスポート、接続サーバーの変更方法について解説します。
インストール
Ente Authをスマホで使う場合は、ストアからインストールするだけです。
- App Store(iOS)
- Google Play(Android)
ここでは、Windows版の流れをご紹介します。
公式サイトにアクセスし、画面を下にスクロールし、「Windows」をクリックします。
ダウンロードしたファイルをダブルクリックして実行します。
Windows Defenderの警告が表示された場合は「詳細情報」をクリックします。
「実行」をクリックします。
全ユーザーで使えるようにするか、自分だけで使用するかを決めます。
インストール先を確認し、「Next」をクリックします。
ショートカットの作成と、自動起動のオプションを確認し、「Next」をクリックします。
「Install」をクリックします。
「Finish」をクリックします。
ローカルでの実行
1台のデバイスで利用するのであれば、アカウント登録は必要ありません。
「バックアップなしで使用する」をクリックします。
「OK」をクリックします。
インポート
Ente Authは、他の二段階認証アプリからコードをインポートすることができます。
エクスポート側のアプリにより、テキスト形式やJSON形式など、方式が異なります。
しかしGoogle Authenticatorは、QRコードでしかエクスポートされないので、カメラがないとインポートできないことになります。
また、同じスマホ内で移行しようとする場合にも、QRコードを読み取ることができないということになります。
仮想カメラデバイスを作成するなど、方法がないわけではないと思いますが、かなりの手間となります。
基本的には、カメラ付きの別デバイスでインポートし、同期をするという作業が必要となります。
アカウント登録
ということで、アカウント登録はほぼ必須になるかと思います。
「Enteを初めて使用」をクリックします。
メールアドレスとパスワードを入力し、規約の同意にチェックを入れ、「アカウント作成」をクリックします。
登録したメールアドレスに認証コードが届くので入力し、「認証」をクリックします。
「回復キー」が表示されるので、忘れずに保存します。
この回復キーがなくなると、アカウント復旧ができなくなります。
しかし、「後で行う」がちょうどいい場所にあって、思わず画面を閉じてしまうことがあります。(実際にやりました)
その場合でも、アプリ内から再度確認ができるので、ご安心ください。
アカウント登録が完了したら、あらためてコードをインポートしましょう。
Google Authenticatorと異なり、次のコードが表示されているのが地味に便利です。
同期が完了すれば、ブラウザから表示することも可能です。
キーの編集
Ente Authでは、登録アカウントを直接編集することもできます。
シークレットキーを編集することも可能ですが、当然ながら、シークレットキーが異なればログインできなくなりますので、十分にご注意ください。
エクスポート
Ente Authではテキストや暗号化ファイル(JSON)でエクスポートすることもできます。
サーバーにアクセスできなくなった時に備えて、バックアップを取得しておくとよいでしょう。
暗号化を選択すると、エクスポート時にパスワードを決め、インポート時にその入力が必要となります。
接続サーバーの変更
Ente Authサーバーをセルフホストした場合は、接続サーバーを変更する必要があります。
ログイン前の画面で、画面を7回連続タップし、「開発者向け設定」を有効にします。
「サーバーヘンドポイント」を変更します。
まとめ Ente Authとは
Ente Authは、エンドツーエンドで暗号化される二段階認証アプリ(TOTP)です。
完全に無料で使用でき、広告が表示されることもありません。
Enteサーバーを経由して、デバイス間で同期をすることもできます。
エンドツーエンドで暗号化されるので、サーバー管理者であっても、シークレットキーを見ることはできません。
難易度は高いですが、セルフホストをすることも可能です。
Google Authenticatorから移行を検討しているのであれば、有力な候補となるでしょう。
