2段階認証用のワンタイムコード生成アプリは、Google認証システム(Google Authenticator)だけではありません。Googleがこのアプリを10年ほど前に開発して以来、これよりも利便性と機能性が上回る認証アプリが多数登場しています。
3年ほど前までは、利用可能な認証アプリの数は片手で数えられるほどでしたが、今では数十種類に増え、どれがいいのか簡単には決められません。そこで、最も注目に値する認証アプリを10個、ご紹介します。
※Android版の認証アプリは、スクリーンショットを撮影できないようになっています。したがって、記事中に掲載されているのは基本的にiOS版アプリのスクリーンショットです。
※アプリによっては日本語版もありますが、記事中のスクリーンショットは英語版のものです。
- Android向け:andOTP、Twilio Authy、Google認証システム/Google Authenticator、Microsoft Authenticator、Cisco Duo Mobile、FreeOTP
- iOS 15向け:OTP auth、Step Two、Twilio Authy、Google認証システム/Google Authenticator、Microsoft Authenticator、Cisco Duo Mobile、FreeOTP、iOSの組み込み認証機能
- Windows向け:WinAuth、Twilio Authy
- macOS向け:Step Two、OTP auth(有料版のみ)、Twilio Authy
1. Google認証システム/Google Authenticator
圧倒的人気のGoogle認証システム(Google Authenticator)については、よくご存じの方が多いと思います。しかし、認証アプリを語る上で、このアプリに触れないわけにはいきません。それに、ほかのアプリを評価するときの基準にもなります。
Google認証システム/Google Authenticatorは、クラウド経由でのトークン同期をあまり使いたくない人に向いています。トークンを同期する代わりに、内部で作成したトークンをすべてエクスポートしてQRコードを1つ生成し、これを使って新しいデバイスにインポートできるようになっています。iOS版では先日、トークンを検索したり、Touch IDまたはFace IDを使ってアプリへのアクセスを保護したりできるようになりました。これはAndroid版にはない機能です。Google認証システム/Google Authenticatorでは、生成されたコードが画面に表示されないようにすることはできないため、公の場で使用するときには問題かもしれません。
長所:
- アカウントを作る必要がない
- アプリへのアクセスはFace ID/Touch IDで保護される(iOS版のみ)
- 設定を最小限に抑えたシンプルなインターフェイス
- すべてのトークンを一度にエクスポート/インポートできる
- トークン名での検索が可能(iOS版のみ)
短所:
- ログイン保護がない(Android版)
- コードを非表示にできない
- クラウドでのバックアップ/同期ができない
- トークンを簡単にエクスポートできるため、万が一、ロックされていないアプリが悪意ある人の手に渡った場合の潜在的リスクが大きい
まとめ
Google認証システム/Google Authenticatorには便利な機能がいくつか不足していますが、クラウドにトークンを保存したくない場合には、適切な選択肢です。
2. Microsoft Authenticator
Google認証システム/Google Authenticatorに代わるものを探す人の多くは、開発元の知名度だけでMicrosoft Authenticatorに目を向けます。その判断は、部分的には理にかなっています。Microsoft Authenticator には、基本的な機能のほか、便利な機能がいくつかあります。例えば、画面上のコードを非表示にすることや、クラウドにトークンを保存することができます。さらに、iOS版もAndroid版も、アプリへのログインが保護されています。また、Microsoftアカウントを日常的に使用している場合は、コードを入力しなくてもMicrosoft Authenticatorアプリのボタンをタップするだけでログインを確認できるので便利です。
しかし、このアプリにも欠点があります。まず、Android版とiOS版のアプリは、まったく互換性のないクラウドバックアップシステムを使用しており、トークンを転送する手段もありません。異なるOSのデバイスを使用している人にとっては、見逃せないマイナスポイントです。また、Microsoft Authenticatorの保存に必要な容量は150MB~200MBで、必要容量が15MB~20MBであるGoogle認証システム/Google Authenticatorの約10倍です。
長所:
- アプリへのアクセスがPIN、指紋、またはFace IDで保護される
- クラウドでのバックアップ/同期ができる
- コードを非表示にできる
- (クラウドバックアップを無効化している限り)アカウントが必要ない
- Microsoftアカウントへのログインが非常に簡単
- Apple Watchに対応している(iOS版)
短所:
- バックアップ/同期にはMicrosoftアカウントへのログインが必要(Android版のみ)
- iOS版とAndroid版のバックアップ/同期システムに互換性がない
- トークンをエクスポート/インポートできない
- サイズが大きい(150MB~200MB必要)
まとめ
Microsoftアカウントへのログインはとても簡単になりますが、サイズが非常に大きいのは許容しづらく、また、iOS版とAndroid版のクラウドバックアップに互換性がありません。
3. Twilio Authy
OS:Android、iOS、Windows、macOS、Linux
Twilio Authyの最大の利点は、クロスプラットフォームであることです。Authyは、よく使われる各OSに対応するバージョンがあるだけではなく、バージョン間の同期が簡単です。しかし、このアクセス性のよさには欠点が一つあります。アプリが機能するには、電話番号とひも付いたアカウントが必須なのです。また、現時点では日本語版がありません。
このアプリのインターフェイスは、ほかの認証アプリとはまったく異なります。リスト表示ではなくタブ表示になっていて、表示されるのは選択したトークンのみ、残りは小さなアイコンとして画面の下部に表示されます。トークンを切り替えるときは、これらのアイコンを使います。トークンが大量にある場合には不便かもしれません。デスクトップ版ではトークンをリスト表示できますが、モバイル版ではできません。
長所:
- アクセスがPIN、指紋、またはFace IDで保護される
- クラウドバックアップ/同期ができる
- 一般的なOSで利用可能
- Apple Watchに対応している(iOS版)
- トークンによる検索が可能
短所:
- 電話番号にリンクされたアカウントが必要
- 一度に表示できるトークンは1つだけ
- トークンを探しにくい
- アクティブなトークンのコードを非表示にできない
- トークンをエクスポート/インポートできない
まとめ
Twilio Authyは、アカウントを設定しないと使用できず、モバイル版インターフェイスの使いやすさは今ひとつです。しかし、すべてのOSでアプリを完璧に同期できるので、検討の価値はあるかもしれません。
4. Cisco Duo Mobile
Duo Mobileは最も古い認証アプリの一つで、2018年にCiscoによって買収されました。最大の長所は、整然として使いやすいインターフェイスです。また、コードは他人から見えないように非表示にできますし、アカウントを作る必要もありません。しかし、このアプリには重要な機能がいくつか不足しています。何よりも、アクセス保護機能がiOS版にもAndroid版にもありません。
Duo Mobileは、Androidの場合はGoogle Cloud、iOSの場合はiCloudをクラウドバックアップ用に使用します。既存のGoogleアカウントやAppleアカウントを使うので、アプリ用に新しいアカウントを作る必要はありません。しかし、Android版とiOS版の間でデータを同期することはできず、ファイルのエクスポートもサポートされていません。また、保存済みトークンのシークレットキーまたはQRコードを表示するオプションもありません(手作業で同期をする必要がある場合、これができれば便利なのですが)。
長所:
- インターフェイスが整然として使いやすい
- コードを非表示にできる
- アカウントを作る必要がない
- クラウドバックアップ/同期ができる
- Apple Watchに対応している(iOS版)
短所:
- アクセス保護機能がない
- トークンをエクスポート/インポートできない
- iOS版とAndroid版でバックアップ/同期システムに互換性がない
まとめ
使用しているモバイルOSが1種類だけで、それしか使わない場合には、Cisco Duo Mobileがニーズに合っているかもしれません。
5. FreeOTP
このオープンソースの認証アプリは、GoogleがGoogle Authenticatorのソースコードをクローズした後に作成されました。FreeOTPのインターフェイスは極めて簡潔で、余計なものは何もありません。このミニマリスト的アプローチは特にiOS版に顕著で、シークレットキーに基づいてトークンを作成するオプションすらなく、QRコードスキャンのオプションのみです。Android版にはどちらのオプションもあります。また、手作業によるトークンの作成は柔軟性が高く、生成のタイプ(TOTPまたはHOTP)、コードの文字数、アルゴリズム、コードのリフレッシュ間隔を選択することができます。なお、現時点では日本語版がありません。
このアプリは、クラウドによる同期、またはファイル形式でのトークンのエクスポート/インポートをサポートしないので、このアプリを使い始めたら他のアプリに乗り換えづらくなります。さらにFreeOTPでは、PINその他の方法でアプリへのアクセスを保護することもできません(iOS版では、Touch IDまたはFace IDでトークンを個別に保護することができます)。とはいえ、このアプリでは、コード表示が既定で非表示になっており、何も操作しないでいると30秒後には自動的に非表示になります。また、ストレージ容量が約2MB~3 MBと、必要最小限に抑えられています(Google認証システム/Google Authenticatorは15MB~20MB、Microsoft Authenticatorは150MB~200MB)。
長所:
- アカウントが必要ない
- インターフェイスがシンプル
- コードはデフォルトで非表示
- 何も操作しないでいると30秒後にコードが自動的に非表示になる
- 保管容量が必要最小限に抑えられている
- トークンをTouch IDまたはFace IDで保護できる(iOS版のみ)
- トークン名で検索できる(iOS版)
短所:
- シークレットキーでトークンを生成できない(iOS版。QRコードのスキャンが必要)
- トークンをエクスポート/インポートできない
- バックアップ/同期ができない
- アクセス保護機能がない
まとめ
オープンソースアプリにありがちなように、FreeOTPも多少変わったところがありますが、インターフェイスがシンプルでストレージ容量も軽量なので、その辺は大目に見ましょう。
6. andOTP
OS:Android
andOTPは、トークンを便利で安全に保存するための機能を思いつくかぎり備えており、それ以上の機能もあります。例えば、タグをサポートしていますし、トークンを名前で検索できます。また、緊急時にアプリからすべてのトークンを消去してリセットできる「Punic button(非常ボタン)」機能も利用可能です。
このアプリでは、シークレットキーまたはQRコードをトークンごとに表示できます。また、すべてのトークンを、暗号化されたファイルの形式でひとまとめにしてGoogleドライブへ保存することもできます。つまり、クラウドへのバックアップやファイルへのエクスポートが、タップ1回でできます。アプリへのアクセスは、パスワードで保護するか、Androidデバイスへのログインに使用する指紋で保護できます。さらなる安全のために、andOTP専用のPINまたは長いパスワードを別途設定することや、指定した一定の期間内に何も操作が行われないとアプリがロックされるようにすることも可能です。設定項目はまだまだあり、ITマニアにとってはたまらないアプリです。なお、現時点では日本語版がありません。
長所:
- アプリで設定したPINまたはパスワード、もしくはOSへのログインPINまたは指紋でアクセスを保護できる
- トークンのシークレットキーまたはQRコードを表示できる
- すべてのトークンを暗号化されたファイルの形でひとまとめにして、Googleドライブにエクスポートできる
- コードを非表示にできる
- 一定期間(5~60秒の範囲で設定可能)操作されない状態が続いた場合、自動的にコードを非表示にすることができる
- 一定期間(10~360秒の範囲で設定可能)操作されない状態が続いた場合、自動的にアプリをロックできる
- 名前やカスタマイズ可能なタグを使用して、トークンを柔軟に検索できる
- すべてのトークンを消去するPanic button(英語)を使用するオプションがある
- 設定が柔軟かつ豊富
短所:
- Androidでしか使えない
- キーの取得が簡単なので、ロックされていないアプリが悪意を持つ人の手に渡った場合のリスクが大きい
まとめ
andOTPは、最も機能豊富なAndroid対応の認証アプリです。認証アプリマニアを満足させることでしょう。
7. OTP auth
andOTPの説明を読んでAndroid使いがうらやましくなったiPhone使いの皆さんに朗報です。iOSに対応した最先端の認証アプリもあります。OTP authの開発元は2段階認証/2要素認証を使用する人たちの悩みをよく理解していて、トークンストレージを整理するためのフォルダーシステムをアプリに搭載しました。
さらに、トークンのシークレットキーやQRコードをいつでも表示できるほか、これらを一度にスマートフォン上のファイルへエクスポートすることもできます。また、iCloud同期にも対応しています。アプリへのログインは、Touch IDまたはFace ID、もしくはOTP auth用に用意した別のパスワードを使って保護できます。このアプリではトークンのエクスポートがとても簡単なことを考えると、お勧めは後者です。不足なのは、コードを非表示にする機能だけです。なお、現時点では日本語版がありません。
長所:
- あらゆるトークンのシークレットキーまたはQRコードを表示できる
- すべてのトークンを一度にファイルへエクスポートできる
- iCloudへのバックアップ/同期ができる
- トークンを整理して保管するためのフォルダーシステムがある
- Apple Watchに対応している
- コードの表示形式を設定できる
- パスワード、またはTouch ID/Face IDを使ってアクセスを保護できる
短所:
- iOS版とmacOS版しかない(macOSは有償版のみ)
- コードを非表示にできない
- アイコンのカスタマイズができるのは有償版のみ
- キーを簡単に取得できるため、万が一、ロックされていないアプリが悪意を持つ人の手に渡った場合のリスクが大きい
まとめ
OTP authはiOS版としては最も機能豊富な認証アプリで、簡単で便利なトークンエクスポート機能が自慢です。
8. Step Two
andOTPは機能が多すぎる、Twilio Authyは登録が必須なので気が進まない、でもiOSとmacOSの両方に対応した認証アプリが必要、そんな場合はStep Twoを検討してはいかがでしょうか。インターフェイスは必要最小限で、iOS版もmacOS版もAppleのカレンダーアプリをほうふつとさせます。
そのミニマリスト的インターフェイスと同様に、Step Twoの設定と機能も必要最小限に抑えられていますが、iCloud同期機能は備わっています。また、Step TwoではQRコードのスキャンにも対応していますが、スクリーンキャプチャを通じて行われます(アプリに権限を付与する必要があるため、多少のリスクを伴います。権限を持つことで、理論的には、利用者のしていることすべてがアプリから丸見えになります)。
長所:
- 余計な機能がない
- アカウントを作る必要がない
- iCloudへのバックアップ/同期ができる
- QRコードをスキャンできる(macOS版)
- Apple Watchがサポートされている
- トークン名で検索できる
短所:
- アクセス保護機能がない
- コードを非表示にできない
- トークンをエクスポート/インポートできない
- 無料版で使えるのは最大10トークン
- QRコードのスキャンにはスクリーンキャプチャの権限が必要(macOS版)
まとめ
Step Twoは、MacとiPhoneを使っていて、余計な機能は必要ない人向けの、ミニマリスト的認証アプリです。
9. WinAuth
OS:Windows
WinAuthは主にゲーマーを対象にしています。このアプリは、SteamやBattle.net、Trion/Gamigoの認証で使用される標準外のトークンに対応しています。Steam Guard、Battle.net Authenticator、またはGlyph Authenticator/RIFT Mobile Authenticatorに代わるものを探しているのなら、WinAuthかもしれません。
このアプリはもちろん、標準的なトークンにも対応しています。例えば『Guild Wars 2』などのNCSoftのゲームや、Google、Facebook、Instagram、Twitterなどです。WinAuthは、ログイン用と個々のトークン用にパスワードを一つ使用します。既定の設定では、自動表示を含め、コードは表示されません。また、アプリが保存およびエクスポートするデータを暗号化することもできます。
長所:
- ゲーミングサービスで使用される標準外のトークンに対応している。つまり、Steam Guard、Battle.net Authenticator、Glyph Authenticator、RIFT Mobile Authenticatorの代わりになる
- 暗号化されていないテキストファイル、または暗号化されたアーカイブの形式でのトークンエクスポートに対応している
- コードは表示されない
- 操作をしない状態が10秒を超えたところで自動的にコードが非表示になる
- パスワードまたはYubiKey(つまりU2F)によりアクセスが保護される
- トークンそれぞれに対してパスワードによる保護を追加できる
- USBメモリやクラウドストレージを使用して移動できる
- 保存したデータを暗号化できる
- (ローカルまたはインターネット上にある)ファイルからQRコードをスキャンできる
短所:
- Steamのトークンを作成するには、WinAuthにSteamでのユーザー名とパスワードを知らせる必要がある
- 一般に、PC上での2段階認証アプリの使用は望ましくない
- 他のOSで使用できるバージョンがない
- 鍵を簡単に取得できるため、万が一、ロックされていないアプリが悪意を持つ人の手に渡った場合のリスクが大きい
まとめ
ゲーム開発元が好んで使う非標準のトークンを作成できるので、ゲーマーに向いています。
10. iOSとmacOSの組み込み認証機能
OS: iOS(システムに組み込み)、macOS(Safariブラウザーに組み込み)
iOS 15以降、iPhoneのOSの全バージョンに確認コードジェネレーターが組み込まれています。これを見つけるには、[設定]-[パスワード]の順に移動し、保存されているアカウントを選択(または、新しいアカウントを作成)し、[アカウントオプション]の[確認コードを設定…]をタップします。あとはいつものとおり、QRコードをスキャンするか、シークレットキーを手入力します。カメラアプリを使って認証アプリのQRコードを直接スキャンし、[パスワード]の既存アカウントにトークンを追加することも可能です。不便なことに、3つめの方法では、新しいアカウントを作成するためのプロンプトが表示されません。
組み込み認証機能はmacOS(正確にはSafariのバージョン15以降)でも使用できるようになりました。この機能を見つけるには、Safariを開き、画面上部のメニューで[Safari]-[環境設定]-[パスワード]の順に移動します。アカウントを選択(新しいアカウントを作成する場合は[+]をタップ)し、[編集]をタップするとウィンドウが開きます。ここで[設定キーを入力…]をタップします(ここにはQRコードオプションはありません)。トークンはiCloudを使って自動的に同期されるので、iPhoneでトークンを作成済みの場合には、Macで改めてアクティベートする必要はありません。
iOS/macOSの組み込み認証アプリは、理論的には自動入力に対応していますが、実際にはまだそれほどスムーズには動作しません。私たちは受け取ったコードを使い、Twitterアカウントと2段階認証でちょっとした実験をしてみましたが、結果はさまざまでした。Twitterアプリにログインしたとき、認証コードはシステムによって正常に入力されましたが、SafariでTwitterのWebサイトにログインしようとしたときには、iOSとmacOSのどちらで試しても、コードは表示されませんでした。
長所:
- すべてのiPhone(iOS 15以降)と、すべてのMac(OSには関係なくSafari 15以降)で使用できる
- 別のアカウントを作る必要がない
- カメラアプリから直接トークンを追加できる(ただし、既存のアカウントのみ。新しいアカウントを作成することはできない)
- ワンタイムコードが自動入力される
- Touch IDまたはFace IDを使ってアクセスを保護できる
- iCloudへのバックアップ/同期ができる
短所:
- iOSやSafariの設定で機能にたどり着くまでの道のりが長い
- 表示できるのは一度に1トークンのみ
- コードを非表示にできない
- コードの隣にアカウントのパスワードが表示される(iOS版)
- トークンとパスワードを一緒に保管することは、2段階認証の原則に反している
- トークンをエクスポート/インポートできない
まとめ
OSに認証アプリを組み込むというのは、優れたアイデアに思われます。しかし今回の場合は、自動入力の動作に一貫性がなく、機能を見つけるのがとても困難です。
バックアップコピーの作成をお忘れなく
最後に、少しばかりのアドバイスで締めたいと思います。まず、認証アプリは1つしか使えないわけではありません。ある目的に合うアプリもあれば、別の目的に適したアプリもあります。ニーズに合わせてアプリを組み合わせることができますし、そうすべきです。
第2に、セキュリティに注意を払うことをお勧めします。信頼できるデバイスロックをインストールし、アプリへのアクセス保護を常に有効にしましょう。これは特にトークンを簡単にエクスポートできる認証アプリ(Google認証システム/Google Authenticator、andOTP、OTP auth、またはWinAuth)を使用する計画がある場合に重要です。アクセスしやすさを重視したこれらアプリの場合、潜在的攻撃者は30秒間有効のワンタイムコードを窃取できるだけでなく、トークン全部のクローンをすぐに作成することも可能です。
第3に、トークンのバックアップは必ず作成しましょう。特にシークレットキーやQRコードを表示できないアプリや、ファイルにトークンをエクスポートできないアプリを選択した場合には(つまり、ほとんどの認証アプリでは)、バックアップが重要です。バックアップは、スマートフォンをなくした場合や、定期アップデートの後に認証アプリが正しく動作しなくなった場合などに役立ちます。ほとんどの場合、バックアップなしに認証アプリを元の状態に戻すのは至難の業です。