Android モバイル オペレーティング システムで実行されている Google Authenticator ソフトウェア パッケージのスクリーンショット | |||||
| 開発者 | グーグル | ||||
|---|---|---|---|---|---|
| 初回リリース | 2010年9月20日[1] | ||||
| 安定リリース [±] | |||||
| |||||
| リポジトリ | github.com/google/google-authenticator | ||||
| 書かれた |
| ||||
| オペレーティング·システム | Android、iOS、BlackBerry OS、Wear OS | ||||
| プラットフォーム | 携帯 | ||||
| ライセンス | プロプライエタリな フリーウェア(一部のバージョンはApache License 2.0 に基づいていました) | ||||
Google Authenticatorは、 Googleが提供するソフトウェアベースの認証システムです。ソフトウェアアプリケーションのユーザーを認証するために、時間ベースのワンタイムパスワード(TOTP、RFC 6238で規定)とHMACベースのワンタイムパスワード(HOTP、RFC 4226で規定)を使用した多要素認証サービスを実装しています。[5]
Authenticator をサポートするサイト (Google サービスを含む) にログインする場合、またはパスワード マネージャーやファイル ホスティング サービスなどの Authenticator をサポートするサードパーティ アプリケーションを使用する場合、Authenticator は 6 ~ 8 桁のワンタイム パスワードを生成します。ユーザーは、通常のログイン詳細に加えて、このパスワードを入力する必要があります。
GoogleはAndroid、[6]、 Wear OS、[7]、 BlackBerry、iOS [8]バージョンのAuthenticatorを提供しています。
Androidアプリの公式オープンソースフォークはGitHubで入手できます。[9]ただし、このフォークは2021年4月6日にアーカイブされており、現在は読み取り専用になっています。[10]
現在リリースされているソフトウェアはプロプライエタリなフリーウェアです。[11]
典型的な使用例

Authenticator を使用するには、まずスマートフォンにアプリをインストールします。Authenticator を使用するサイトごとに設定する必要があります。サイトは、安全なチャネルを介してユーザーに共有秘密鍵を提供し、Authenticator アプリに保存します。この秘密鍵は、今後サイトにログインするときにすべて使用されます。
2 要素認証を使用し、Authenticator をサポートするサイトまたはサービスにログインするには、ユーザーはユーザー名とパスワードをサイトに提供します。すると、サイトは必要な 6 桁のワンタイム パスワードを計算し (表示はしません) 、ユーザーに入力を求めます。ユーザーは Authenticator アプリを実行し、アプリは独立して同じパスワードを計算して表示します。ユーザーはそのパスワードを入力して、ユーザーの ID を認証します。[引用が必要]
このような2要素認証では、ユーザー名とパスワードを知っているだけではユーザーのアカウントに侵入するには不十分です。攻撃者は共有秘密鍵を知っているか、認証アプリを実行しているデバイスに物理的にアクセスする必要があります。別の攻撃ルートは中間者攻撃です。ログインプロセスに使用されるデバイスがマルウェアに侵害された場合、資格情報とワンタイムパスワードがマルウェアに傍受され、サイトへのログインセッションを開始したり、ユーザーとサイト間の通信を監視および変更したりできます。[12]
技術的な説明
セットアップ時に、サービスプロバイダーは各ユーザーに対して80ビットの秘密鍵を生成します(RFC 4226 §4では128ビットが必要とされており、160ビットが推奨されています)。[13]これは、16、26、または32文字のbase32文字列、またはQRコードとして認証アプリに転送されます。
その後、ユーザーが認証アプリを開くと、この秘密鍵を使用してHMAC - SHA1ハッシュ値が計算されます。メッセージは次のようになります。
- Unixエポック(TOTP )からの30秒間隔の数を64ビットビッグエンディアン整数として表す。または
- 新しいコード ( HOTP )ごとに増加するカウンター。
HMAC の一部が抽出され、6 桁のコードとしてユーザーに表示されます。結果の最後のニブル (4 ビット) は、結果のバイト配列内の 32 ビット整数へのポインターとして使用され、31 番目のビットがマスクされます。
ライセンス
Android用のGoogle Authenticatorアプリは元々オープンソースでしたが、後に独自のものになりました。[11] Googleは、Authenticatorアプリの以前のソースをGitHubリポジトリで公開しており、関連する開発ページには次のように記載されています。
「このオープンソースプロジェクトでは、アプリケーションのバージョン2.21を動かすコードをダウンロードできます。それ以降のバージョンには、プロジェクトの一部ではないGoogle固有のワークフローが含まれています。」[14]
最新のオープンソースリリースは2020年でした。[9]
参照
参考文献
- ^ 「Google が 2 段階認証でアカウントのセキュリティを大幅に強化 - TechCrunch」。TechCrunch。2010年9 月 20 日。2016年 3 月 12 日閲覧。
- ^ 「Google Authenticator」。Google Play 。 2024年8月30日閲覧。
- ^ 「Google Authenticator 7.0」。APKMirror。2024年8月28日。 2024年8月30日閲覧。
- ^ 「Google Authenticator」。App Store 。 2024年8月30日閲覧。
- ^ 「GitHub - google/google-authenticator: Google Authenticator のオープンソース版(Android アプリを除く)」。GitHub。2022年 5 月 18 日。
これらの実装は、RFC 4226 で規定されている HMAC ベースのワンタイム パスワード (HOTP) アルゴリズムと、RFC 6238 で規定されている時間ベースのワンタイム パスワード (TOTP) アルゴリズムをサポートしています。
- ^ 「Google Authenticator - Google Play のアプリ」。
- ^ Fingas, Jon (2019年7月19日). 「Google Authenticatorがスマートウォッチからセキュリティコードを取得」. Engadget . 2020年10月20日時点のオリジナルよりアーカイブ。2023年11月6日閲覧。
- ^ 「Google Authenticator」。App Store。
- ^ ab "google/google-authenticator-android: Google Authenticator Android アプリのオープンソースフォーク". GitHub . 2022年5月16日.
- ^ 「google-authenticator/mobile at master · google/google-authenticator」。GitHub。
- ^ ab Willis, Nathan (2014 年 1 月 22 日)。「FreeOTP 多要素認証」。LWN.net。2015年 8 月 10 日閲覧。
- ^ Umawing, Jovi (2022年1月6日). 「2FAの傍受:1200以上の中間者フィッシングツールキットを検出」www.malwarebytes.com . 2023年4月27日閲覧。
- Papez, Neko (2023年4月25日). 「MFAバイパスの技術:攻撃者が2要素認証を定期的に破る方法」. menlosecurity.com . 2023年4月27日閲覧。
- ^ m'Raihi、D.;ベラーレ、M.ホルナールト、F.ナッチェ、D.ラネン、O. (2005-02-15)。 「RFC 4226 - HOTP: HMAC ベースのワンタイム パスワード アルゴリズム」。 Tools.ietf.org。ドイ:10.17487/RFC4226 。2019年3月25日に取得。
{{cite journal}}:ジャーナルを引用するには|journal=(ヘルプ)が必要です - ^ 「google-authenticator - 2段階認証 - Google プロジェクトホスティング」。2022年5月18日。
外部リンク
- Google ヘルプの Google 認証システム
- Google Authenticator (Android) および Google Authenticator (その他) の旧ソースコードがGitHubに公開されています
- GitHub上の Google Authenticator PAM モジュールのソースコード
- Stack Overflowの Python での Google Authenticator 実装
- Google Authenticator を使用した Django-MFA の実装 - Django-MFA は、Django Web アプリケーションにセキュリティの層を追加するためのシンプルなパッケージです。追加の保護として、Web アプリケーションにランダムに変化するパスワードを提供します。
- GitHub上のバージョン 1.02 のソースコード
