Google認証システムをバックアップするにはどうすればよいですか?


130

Google Authenticatorを使用するようになりましたが、スマートフォンを紛失した場合、または新しいファームウェアをインストールするためにワイプして復元する必要がある場合、すべてのコードが失われることに気付きました。

とにかくそれらをバックアップする方法はありますか?または、何らかのフォールバックにより、新しいデバイスに復元できることを意味しますか?

ありがとう


2
わからない...コードは1回しか使用できず、携帯電話のどこにも保存されません。サイトにコードを入力する必要がある場合は、すでにコードを使用している場合でも、新しいコードを使用する必要がありますしばらく前にこのサイトに1つ置いてください。
マシューハーレ14

1
新しいGoogle認証コードをありがとう、私はそれを理解して、私は今、自分の携帯電話を紛失した場合、私もサイトにログインすることができなくなり、ましてやセットアップ
ニック・

5
電話を紛失したときにログインするコードが必要な場合は、バックアップ方法(SMS、通話、印刷コード...)のいずれかを使用できます。それは非常に:)セットアップこのような状況を克服するために、これらの代替の方法のうちの少なくとも一つに推奨されます
マチューHarlé

3
この機能を追加するには、Google認証システムフォークしたかったのです。時間がある前に誰かがやってくれることを望んでいます。
マイケルクロパット14

5
@Shywim Google Authenticatorは、Googleアカウント専用ではありません。バックアップコードやSMSなどを持っていない他の多くのサービスがあります
クリス・ハリソンは、

回答:


84

次の方法は、ルート化されたAndroidデバイスでのみ機能します。

Linux:

adb pull /data/data/com.google.android.apps.authenticator2/databases/databases /AFolderOnPC

Windows:

adb pull /data/data/com.google.android.apps.authenticator2/databases/databases C:\AFolderOnPC

PC上のフォルダはすでに存在している必要があることに注意してください。

これにより、オーセンティケーターデータベースファイルが、ワンタイムパスワードの生成元であるメインキーとともにPCにコピーされます。その後、ファイルをAndroidデバイスの同じ場所に復元するか、sqliteデータベースビューアーで読み取ってキーを抽出できます。


10
新しいデバイスにコピーするときは、databasesフォルダーとdatabasesファイルの両方に755のアクセス許可があることを確認してください。700を試しましたが、GAはクラッシュし続けました。それが完全な許可を必要とすることに関する懸念。たぶんそれがNSAの要件です。
eduncan911

12
あなたはする必要がありadb rootますが、これを実行する前に、またはあなたが取得しますremote object '/data/data/com.google.android.apps.authenticator2/databases' does not exist
サイモン・ウッドサイド

3
SELinuxを有効にしている場合、正しい許可ビットを使用していても、Authenticatorアプリがクラッシュする可能性があることに注意してください。これを修正するにrestorecon -F /data/data/com.google.android.apps.authenticator2/databases/databasesは、データベースファイルを戻した後に実行します。(ソース
ハイ張

@ eduncan911私のために660点の作品
deed02392

デバイスをルート化すると、デバイスのセキュリティが低下します。2FAを使用している場合、おそらくより多くのセキュリティが必要です。:リスクについてowasp.org/index.php/Projects/...
サイモン・ウッドサイド

26

Google認証システムアプリ/データをバックアップする必要はありません。2段階認証を設定したのと同じページで認証コードを必要とせずにログインに使用できる「バックアップコード」のリストを作成できます。

バックアップコードを印刷またはダウンロードする理由

バックアップコードは、旅行する人、SMSまたは音声通話の受信に問題がある人、またはGoogle認証システムモバイルアプリを使用できない人に特に役立ちます。

推奨事項:バックアップコードを印刷またはダウンロードする必要があります

これらを安全な場所に保管(または印刷)し、携帯電話を紛失した場合は、これらのコードのいずれかを使用してアカウントにログインし、Authenticatorアプリで新しいデバイスをセットアップできます。

これはGoogleの2段階認証に適用されますが、Google Authenticatorアプリを使用するように設定した他のサイトは、同様のオプション、またはコードを受信する別の方法を提供する必要があります(たとえば、FacebookはGoogle Authenticator、独自のアプリ、およびSMSをコードを受信します)。


3
それを提供していないサイトの場合、あなたの唯一の選択肢は、2段階認証なしで強力な一意のパスワードを使用することです。興味深いことに、バックアップオプションを提供していないサイトは何ですか?Dropbox、Facebook、LastPass、Wordpressはすべて機能します(これらは私が2段階認証を使用する他のサイトです)。
bmdixon 14

18
@Nick:Googleまたは他のサイトが提供するQRコードを保存し、それらを別のデバイスの認証システムに再び追加すること機能します。私はこれを自分自身で数回行いました。ただし、両方のデバイスで時刻が正しく、常に最新であることを確認する必要があります(両方を使用し続ける場合)。そうしないと、認証が失敗する可能性があります。
アンドリス14

7
2要素認証の「ワンタイム」パスワードは、2つのことで生成されます。現在の時間と、初期化中にサーバーとアプリの間で共有されるシークレットです。あなたの場合、秘密はQRコードです。オーセンティケーターアプリの別のインスタンスが同じシークレットと同じ時間(同じ30秒フレーム)を共有している限り、両方のアプリは同じパスワードを生成ます。
マークプラノレザイ14

2
携帯電話をリセットするときにバックアップを取りたい場合があります。そのため、オーセンティケーターを使用するすべてのサイトにアクセスして、バックアップコードを入力し、オーセンティケーターのセットアップをリセットする必要はありません。
プペノ14

4
これは、Googleの2段階認証にのみ該当します。Google認証システムは他の多くのサイトで機能しますが、一部のサイトにはバックアップコードのリストを作成する方法がありません。SMSを使用するものや、1回限りの単一のバックアップコードを提供するもの、バックアップオプションをまったく持たないものがあります。すべてのサイトにバックアップオプションがある場合でも、新しい電話を入手するときに多くのキーをすべて復元しなければならないのは非常に面倒です。
ローレンスゴンサルベス

21

Titanium Backup(Google Playストアへのリンク)は、Google Authenticatorを含むすべてのAndroidアプリをバックアップします。ただし、これを実行可能なオプションにするには、電話をルート化する必要があります。

Googleバックアップコードも印刷することをお勧めします。これは、Google認証システムアプリをバックアップするものではありませんが、必要に応じて認証システムをリセットできます。ただし、これはGoogleアカウントへのアクセスを回復するのに役立ちます。

私の意見では、Titanium Backupでアプリをバックアップすることが最も完全なオプションです。何度か助けてくれました。


私はadbがデータベースディレクトリをプルできず、/ sdcardにコピーしてそれを取得できなかったため、これに落ち着かなければなりませんでした-chmod 777は何もしませんでした。
ラウリエリアス

「Google認証システムからインポート」-販売!非常に重要な移行機能。
アダムビーン

新しい電話のルートを変更しないために言及する価値があります。上のバックアップをクリックした後、backup/restoreタブ- >を選択Authenticatorするために>スライド右-アプリをspecial featuresタブ- >を選択しますExplore- >を選択しますaccounts[DATABASE]。その後、アプリのすべてのアカウントを.csvファイルで取得します。secret列を使用してアカウントを新しい電話に復元します。
ヤン

19

私はまったく同じ問題を抱えていました。

元のトークン(通常はユーザーに対してqrcodesとして表される)は、/ data / data / com.google.android.apps.authenticator2 / databasesフォルダー内のsqliteデータベースに保存され、デバイスから抽出できることがわかりました。

ここでhttps://github.com/dchapkine/extract-google-authenticator-credentialsの復旧プロセスを自動化して説明しました

このプロジェクトは、元のトークンを抽出してから、新しいデバイスで再スキャンできるqrcodesを含むWebページを生成します。

気軽に貢献してください。


1
これにより、すべての2FAアカウントにログインして、電話を手動で切り替えることができました。どうもありがとう!
コヴァ

これはまさに私が探していたものです。すべてのQRコードをすばやく簡単に再スキャンできます。
ハーベイ

これに感謝しますが、私のデバイスは根づいていません。デバイスをルート化するとデバイスが完全に消去される「Catch 22」状況があることを正しく理解できますか?
urig

単に素晴らしい。ただし、Windows 10 Bashでは動作しませんでした。
TranslucentCloud

@urig、いいえ、一部の電話のルート化は、必ずしもアプリのデータを消去しません。
TranslucentCloud

16

これを処理する最も簡単な方法は、サイトに新しいオーセンティケーターをセットアップするたびにQRコードのスクリーンショットを撮り、暗号化された場所に保存することです。

そのサイトのオーセンティケーターを別の電話に再インストールまたは追加する必要がある場合は、新しいサイトをセットアップするかのようにスクリーンショットのQRコードをスキャンしてオーセンティケーターにアカウントを追加するだけです。

否定する前に、これは機能しない、そうです、そして、あなたは複数のデバイスで同じオーセンティケーターを持つことができます。


2
これが機能する理由を説明したいと思います。ウェブサイトとデバイスの両方が、QRコードで設定された単純な文字列「コード」を共有し、それらを使用して無限に新しい6桁のコードを作成します。現在の日付と時刻。したがって、新しいコードを生成するには、このコードのみが必要です。このWebサイトには、6桁のコードを作成した人物または作成者を確認する方法はありません。正しいことのみが必要です。
アリー

15

Authenticator Plusをお試しください。デバイス間で同期するバックアップ/復元機能をサポートしています。電話/タブレットをお持ちの場合、このアプリはすべてのアカウントを完全に同期し、Androidウェアもサポートします。

ロゴもサポートしています Authenticator Plusスクリーンショット


13
または、Authy(authy.com)を使用できますが、これは無料です。
ふた14

6
Authyは素晴らしいです!googleよりもはるかに優れていますが、オープンソースではありません。私はそれで生きることができます。
クレゴックス14年

17
これは悪い考えのように聞こえませんか?時間ベースのワンタイムパッドプロトコル(TOTP別名rfc6238、これはauthy / googleオーセンティケーターなどの実装)の全体的なポイントは、コードを生成できるのはあなたとあなただけだということです。サードパーティにこれらのコードを保存させると、攻撃の大きな標的になり、このサービスで働くすべての人とその実装方法を信頼する必要がなくなります。
-antiduh

1
コース@antiduhユーザビリティ対セキュリティのその問題、あなたはより多くのセキュリティを懸念あなたのための理想的なものではなく、あなたが実際にソフトウェアソリューションから離れるとyubikeyのようなハードウェアソリューションを使用する必要がある場合
Riyazモハメド・イブラヒム

7

2FAをセットアップまたは更新するときにQRコードを保存できます。スクリーンショットを作成してQRを保存できます。または、コンテキストメニューの[名前を付けて画像を保存]を使用しますが、常に使用できるとは限りません。(アカウントに対応する名前を画像に付け、安全な場所にバックアップしてください)。復元するには、Google認証システムでQRコードを再スキャンするだけです。


4

序文として、これは、MFAを事前に設定して、既存のコードを回復またはバックアップするのではなく、常にバックアップされるようにするためのアプローチです。

Nexus 6Pがデータへの接続を停止し、ピクセルですべてのMFAを再度セットアップする必要があった後、このプロセスを実行しました。携帯電話を紛失したり、工場出荷時のデータをリセットした場合、完全に中断されることに気付きました。

私が思いついた最も簡単な解決策は、QRコードベースのセットアップを無視し、トークンベースのセットアップ自体を使用することです(ほとんどの認証アプリでは「手動」オプションです)。これまでに使用したすべてのサービスで、QRではなくトークンベースのセットアップを選択できます。

QRコードのスクリーンショットを撮影して適切にラベル付けし、GPGで暗号化してどこかに安全に保存するという手間をかける代わりに、暗号化されたボールトにトークンを保存し、MFAを手動でセットアップします。

同時に実行している独立したデバイスで同じキーを使用して、オーセンティケーターのクローンをセットアップできることを確認しました。したがって、トークンを安全に制御する限り、任意のデバイスでMFAを構成できます。

MFAを再構成するだけで(この状況でこれを行う必要があります)、単にすべてのトークンをlastpassに追加するだけなので、この結果に満足しています。今、私は電話が紛失した場合に対応し、必要に応じて他のデバイスを設定できます。


2

根ざした携帯電話には多くのアドバイスがあります。ただし、脆弱な状態にしたくない場合は、デバイスをルート化することはお勧めしません。2要素認証は保護の追加レイヤーを提供します。さまざまなウイルスが保護されたメモリ領域にアクセスする可能性があるため、ルート化することでそれを無効にします。

バックアップコードを提供するサービスはごくわずかです(特にGoogle)。これらのサービスでは、バックアップコードを保存する必要があります。

最善の解決策は、トークンの登録時にQRコード(または秘密鍵)を保存し、安全な場所に保管することです。その後、携帯電話を紛失した場合、新しいデバイスのGoogle認証システムでトークンを復元できます。

また、ハードウェアトークンを使用できます。キーフォブまたはクレジットカードの形をとることができます。Google Authenticatorをバックアップする方法:Google Authenticatorをバックアップする方法または新しい電話に転送する方法の詳細については、Protectimus(私が勤務している会社)のブログでこの記事をご覧ください。

* 開示:上記のリンク先のWebサイトで働いています。


2
Android愛好家へようこそ。記載されているリンクと提携していることがわかりました。プロフィールに自分の所属を述べているにもかかわらず、してくださいまた、あなたの答えでそれを開示します。さらに読む:スパマーにならない方法
アンドリューT.

@AndrewT。できた
iBug

1

次の方法は、ルート化されたAndroidデバイスでのみ機能します。この方法は、adbコマンドを実行するためだけにAndroid SDK + JDKをゼロからインストールする時間を無駄にしたくない、あまり技術に詳しくない人や私のような人にとってより便利です。

だからここにある:

  1. Google Playストアから「ルートエクスプローラー」アプリをダウンロードしてインストールします。人気のある無料のFXファイルエクスプローラーとその無料のFXルートアクセスアドオンを使用します。他の人も使用できます。このアプリは、rootユーザーとしてAndroidシステムにアクセスすることを可能にします。

  2. あなたは、システムのルートにあるファイルエクスプローラを開くと>「データ」フォルダをクリックしてください>(他のデータフォルダ内)「データ」フォルダをクリックしてください>という名前のフォルダにコピーcom.google.android.apps.authenticator2]> [終了]システムのルートフォルダ>を開き、通常のメインストレージ/ SD収納スペースをと貼り付けここにフォルダ。

  3. AndroidデバイスをPCに接続し、フォルダーを安全なUSB /外部HDDにバックアップします。

それでおしまい。これで、ファームウェアの再インストール/新しい携帯電話の購入が必要な場合は、上記の手順に従って、Google Authenticatorアプリをインストールした後、そのフォルダーをまったく同じディレクトリにコピーしてください。

または、「SQLite Database Browser Portable」などの無料のオープンソースSQLite GUIエディターを使用して、「com.google.android.apps.authenticator2」フォルダー内の「databases」ファイルを開くことができます。[データの参照]タブで、キーとキーに対応する名前を確認できるため、Google認証システムアプリにキーを手動で入力できます。


@Izzyは主観的な部分を編集し、助けてくれてありがとう:)この方法は大きく見えますが、Android開発者ではない普通の人にとっては最も時間を節約できます。自分で解決策を見つける前に、実際にこのスレッドを調べました。バックアップコード-ほとんどのサービスでは使用できません(Googleでのみ機能します)。Authenticator Plusは有料アプリです。チタンのバックアップには互換性の問題があります。ADB pullコマンドを使用するには、Android SDK + JDKをインストールする必要があります。私の方法は、フォルダをコピーして貼り付けるのと同じくらい簡単です。
パビンジョセフ14

編集してくれてありがとう、Pavin!私が今までSDK + JDKをインストールしたことがありませんが、それでも特に私の独自のツール「で(ADB機能の束を使用します。あなたのコメントで、私は、部分的に同意するんだAdebar、バックアップは/スクリプトなどを復元するデバイスのマニュアルについて」 )。Linuxでは、そのためのadb実行可能.dllファイルが必要なだけです(Windowsでは、2つのファイルが追加で必要です)。詳細については、「ADBの最小インストールはありますか?
イジー

PS:許可の問題はありましたか?アプリのデータディレクトリを別のデバイスに手動でコピーすると、そのようなデバイスが表示される場合があります。ファイルに正しくアクセスするには、許可と所有権が一致している必要があります。インストール時に、各アプリには一意のUID / GIDペアが割り当てられます。ファイル許可には、所有者/グループ/その他のフラグがあります。通常、アプリデータには最大値-rw-rw--(所有者とグループの読み取り/書き込み、その他は何もない)があります。そのため、所有権に不一致がある場合、問題が発生している可能性があります(そして、アプリ誤動作する可能性があります)。
イジー

ええ、ほとんどの場合うまくいきます。しかし、そうでない場合は、SQLiteエディターを使用して、データベースファイルから秘密キーを開いて表示できます。次に、キーを使用してGoogle認証システムにアカウントを追加します。
パビンジョセフ14

あ。より良い解決策:機能しない場合は、許可を確認して調整します。上書きする前に/data/data/com.google.android.apps.authenticator2、それを実行し、ls -l所有権/許可を確認します。コピー後、chownchmodを使用して修正します。
イジー

1

根ざした携帯電話では、「Amaze」ファイルマネージャー(https://play.google.com/store/apps/details?id=com.amaze.filemanager&hl=en)を使用できます。ルートの/data/data/com.google.android.apps.authenticator2/databaseディレクトリに移動します。データベースファイルをデータベースとして開きます。アカウントを選択します。_id、email、およびsecretの3つの列があります。「秘密」の値をコピーします。追加するだけで復元する必要がある場合は、「提供されたキーを入力」を選択し、名前を付けて値を貼り付けます。


0

少し前に同じことを経験したことがあります。アカウントにサインインすると、6桁のコードを入力するキーのページが表示されます。この場所で、確認済みの番号がある場合は、2番目のキーを変更して電話番号を取得できます。また、より多くのバックアップのために、信頼できる他のコンピューターを選択できます。そのため、それらのコンピューターで2番目のステップコードを要求することはありません。


0

私のウェブサイトにあるシンプルなPythonスクリプトへのリンクは次のとおりです:http : //usefree.com.ua/google-authenticator-backup/

コードを貼り付けて、Python環境で実行するだけです。

使い方:

Google Authenticatorを使用した2要素認証のセットアップと構成中に、QRコードをスキャンするだけでなく、たとえば、Google Mailのコードを取得できますcsnji4rfndisoh323fdsioah3u2iodso。Python IDLEを使用してコンピューターでTOTPを生成するには、次の関数を定義できます。

def totpgen ():
    import time
    import hmac
    import hashlib
    import base64

    ### TOTP-key for Google
    #secret = base64.b32decode("csnji4rfndisoh323fdsioah3u2iodso", True)
    #totp for btc-e
    #secret = base64.b32decode("DHSJHDW89E8DFUS98RIO23J390EFU234IR90WEUIF903DMSKAKDS====")
    ### Calc counter from UNIX time (see RFC6238) 
    counter = long(time.time() / 30)

    ### Use counter as 8 byte array
    bytes=bytearray()
    for i in reversed(range(0, 8)):
      bytes.insert(0, counter & 0xff)
      counter >>= 8

    ### Calculate HMAC-SHA1(secret, counter)
    hs = bytearray(hmac.new(secret, bytes, hashlib.sha1).digest())

    ### Truncate result (see RFC4226)
    n = hs[-1] & 0xF
    result = (hs[n] << 24 | hs[n+1] << 16 | hs[n+2] << 8 | hs[n+3]) & 0x7fffffff

    ### Print last 6 digits
    return str(result)[-6:]

行に挿入

secret = base64.b32decode("csnji4rfndisoh323fdsioah3u2iodso", True)

あなたのコードの代わりに "csnji4rfndisoh323fdsioah3u2iodso"

行のコメントを解除し、IDLEで呼び出します

totpgen ()

TOTPを取得します!)サービスbtc-eの場合は、ラインを使用してください

secret = base64.b32decode("DHSJHDW89E8DFUS98RIO23J390EFU234IR90WEUIF903DMSKAKDS====")

他のサービスの場合-上記のように。


2
関連するコードを含めて、その使用方法を説明してもらえますか?(たとえば、このコードは何をするのでしょうか?「何」のコードをどこから貼り付けますか?誰もがロシア語を理解できるわけではありません)。リンクが腐敗した場合、有用なものは何もないため、リンクのみの回答は推奨されません。(また、ブログを宣伝する場合は開示が必要です。それ以外の場合は、純粋に宣伝、別名スパムと見なされる可能性があります)。
アンドリューT.は

1
スパマーにはならないでください。リンク自体の横に、あなたのサイトであるという明確で明白な言及を含めてください。
ニックハートリー
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.