Comment sauvegarder Google Authenticator?

131

Je commence à utiliser Google Authenticator pour de plus en plus de choses, mais je viens de me rendre compte que si je perds mon téléphone ou si je dois l'effacer et le restaurer pour installer un nouveau firmware, je perdrai tous mes codes.

Est-il possible de les sauvegarder, s'il vous plaît? Ou une sorte de solution de repli qui signifie que je peux le restaurer sur un nouvel appareil?

Merci

pseudo
la source
2
Je ne comprends pas ... Un code ne doit être utilisé qu'une seule fois. Ils ne sont stockés nulle part sur votre téléphone. Si vous devez saisir un code sur un site, vous devez utiliser un nouveau code, même si vous l'avez déjà. mettez-en un sur ce site il y a quelque temps.
Matthieu Harlé
1
Merci, mais si je comprends bien, si je perds mon téléphone maintenant, je ne pourrai même pas me connecter au site, encore moins de configurer un nouveau code Google Authenticator
Nick
5
Si vous avez besoin d’un code pour vous connecter en cas de perte de votre téléphone, vous pouvez utiliser l’une des méthodes de sauvegarde (SMS, Appel, codes imprimés, etc.). Il est fortement recommandé d'installer au moins une de ces méthodes alternatives pour surmonter ce genre de situation :)
Matthieu Harlé
3
J'ai toujours voulu bifurquer Google Authenticator pour ajouter cette fonctionnalité. J'espère que quelqu'un le fera avant d'avoir le temps.
Michael Kropat
5
@ Shywim Google Authenticator n'est pas uniquement destiné aux comptes Google. Il existe de nombreux autres services qui ne disposent pas de codes de sauvegarde, SMS, etc.
Chris Harrison

Réponses:

85

La méthode suivante ne fonctionnera que sur les appareils Android rootés.

Linux:

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

Les fenêtres:

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

Notez que le dossier sur le PC doit déjà exister.

Cela copiera les fichiers de base de données d'authentification avec les clés principales, à partir desquelles les mots de passe à usage unique sont générés, vers le PC. Le fichier peut ensuite être restauré au même emplacement, sur des appareils Android, ou lu avec un visualiseur de base de données SQLite pour extraire les clés.

Anon
la source
10
Lors de la copie sur un nouveau périphérique, assurez-vous que le databasesdossier et le databasesfichier disposent des autorisations 755. J'ai essayé 700 et GA a continué à planter. En quelque sorte, cela nécessite des autorisations complètes. Peut-être que c'est l'exigence de la NSA.
eduncan911
12
Vous devez le faire adb rootavant de faire ceci ou vous obtiendrezremote object '/data/data/com.google.android.apps.authenticator2/databases' does not exist
Simon Woodside
3
Notez que si SELinux est activé, l'application Authenticator peut se bloquer même avec les bits d'autorisation appropriés. Pour résoudre ce problème, exécutez-le restorecon -F /data/data/com.google.android.apps.authenticator2/databases/databasesaprès avoir restauré le fichier de base de données. ( source )
Hai Zhang
@ eduncan911 660 travaille pour moi
deed02392
Enraciner votre appareil le rend moins sécurisé . Si vous utilisez 2FA, alors vous voulez probablement plus de sécurité. Pour les risques: owasp.org/index.php/Projects/…
Simon Woodside
26

Vous n'avez pas besoin de sauvegarder l'application / les données Google Authenticator, car vous pouvez créer une liste de «codes de sauvegarde» que vous pouvez utiliser pour vous connecter sans nécessiter de code d'authentification sur la même page que celle que vous avez configurée pour l'authentification en deux étapes.

Pourquoi imprimer ou télécharger des codes de sauvegarde?

Les codes de sauvegarde sont particulièrement utiles pour les personnes qui voyagent, rencontrent des problèmes pour recevoir des SMS ou des appels vocaux ou ne peuvent pas utiliser l'application mobile Google Authenticator.

Recommandation: Vous devez imprimer ou télécharger les codes de sauvegarde

Stockez-les dans un endroit sûr (ou imprimez-les). Si vous perdez votre téléphone, vous pouvez utiliser l'un de ces codes pour vous connecter à votre compte et configurer un nouveau périphérique avec l'application Authenticator.

Bien que cela s’applique à l’authentification en deux étapes de Google, tous les autres sites que vous avez configurés pour utiliser l’application Google Authenticator doivent offrir une option similaire, ou un autre moyen de recevoir des codes (par exemple, Facebook prend en charge Google Authenticator, leur propre application et SMS. recevoir des codes).

bmdixon
la source
3
Pour les sites qui ne l'offrent pas, je dirais que votre seule option est d'utiliser un mot de passe unique fort sans authentification en 2 étapes. Par intérêt, quels sites n'offrent pas d'option de sauvegarde? Dropbox, Facebook, LastPass, Wordpress le sont tous (ce sont les autres sites que j'utilise avec l'authentification en 2 étapes).
bmdixon
18
@ Nick: Sauver le code QR que Google ou d' autres sites fournissent et de les ajouter de nouveau dans Authenticator sur un autre appareil ne travail. Je l'ai fait plusieurs fois moi-même. Cependant, vous devez vous assurer que l'heure est correcte et constamment mise à jour sur les deux appareils (si vous souhaitez continuer à les utiliser tous les deux), sinon l'authentification pourrait échouer.
Andris
7
Le mot de passe "unique" d'authentification à deux facteurs est généré avec deux choses: l'heure actuelle et un secret partagé entre le serveur et l'application pendant l'initialisation. Dans votre cas, le secret est le code QR. Tant qu'une autre instance de l'application authentificateur partage le même secret et la même heure (la même trame 30s), les deux applications généreront les mêmes mots de passe.
Marc Plano-Lesay
2
Vous voudrez peut-être quand même sauvegarder lorsque vous réinitialiserez votre téléphone. Ainsi, vous ne passerez pas une heure sur chaque site pour lequel vous utilisez l'authentificateur, saisissez un code de sauvegarde et réinitialisez la configuration de l'authentificateur.
pupeno
4
Ceci n'est vrai que pour l'authentification en deux étapes de Google. L'authentificateur de Google fonctionne avec de nombreux autres sites et certains n'ont pas le moyen de créer une liste de codes de sauvegarde. Certains utilisent SMS, d'autres vous donnent un code de sauvegarde à usage unique et d'autres n'ont aucune option de sauvegarde. Même lorsque chaque site dispose d'une option de sauvegarde, il est très fastidieux de restaurer toutes les nombreuses clés lors de l'achat d'un nouveau téléphone.
Laurence Gonsalves
21

Titanium Backup (lien vers Google Play Store) sauvegarde toutes les applications Android, y compris Google Authenticator. Cependant, vous devez installer votre téléphone sur votre téléphone pour que cette option soit viable.

Je vous recommande également d’imprimer les codes de sauvegarde de Google. Ce n'est pas tout à fait une sauvegarde de l'application Google Authenticator, mais cela vous permettrait de réinitialiser l'authentificateur si nécessaire. Cela ne ferait que faciliter la reprise de l'accès à votre compte Google.

Sauvegarde de l'application avec Titanium Backup est l'option la plus complète, à mon avis. Cela m'a sauvé à plusieurs reprises.

Josh
la source
J'ai dû me contenter de cela parce que je ne pouvais pas extraire le répertoire des bases de données, je ne pouvais pas copier dans / sdcard et le prendre - chmod 777 ne faisait rien.
Lauri Elias
"Importer à partir de Google Authenticator" - Vendu! Fonction de migration très importante.
Adambean
Il convient de mentionner, afin de ne pas ré-root le nouveau téléphone. Après la sauvegarde, cliquez sur l' backup/restoreonglet -> choisissez l' Authenticatorapplication -> faites glisser vers la droite pour l' special featuresonglet -> choisissez Explore-> choisissez accountssous [DATABASE]. vous obtiendrez alors tous les comptes de votre application dans un fichier .csv. utilisez la secretcolonne pour restaurer les comptes sur le nouveau téléphone.
Yan
19

J'ai eu exactement le même problème.

Il s'avère que les jetons d'origine (habituellement représentés par l'utilisateur sous la forme de qrcodes) sont stockés dans la base de données sqlite dans le dossier /data/data/com.google.android.apps.authenticator2/databases et peuvent être extraits du périphérique.

J'ai automatisé et expliqué le processus de récupération ici: https://github.com/dchapkine/extract-google-authenticator-credentials

Ce projet extrait les jetons d'origine, puis génère une page Web avec qrcodes que vous pouvez réanalyser sur un nouveau périphérique.

N'hésitez pas à contribuer.

Dchapkine
la source
1
Cela m'a juste évité de me connecter à tous mes comptes 2FA et de changer de téléphone manuellement. Merci beaucoup!
Kovah
Ceci est exactement ce que je cherchais. Un moyen rapide et facile de ré-analyser tous les codes QR.
Harvey
Merci pour cela, mais mon appareil n'est pas enraciné. Dois-je bien comprendre que j'ai dans la main une situation "Catch 22" dans laquelle l'enracinement de mon appareil l'efface?
urig
Tout simplement génial. Ne fonctionne pas sur Windows 10 Bash cependant.
TranslucentCloud
@urig, non, l'enracinement de certains téléphones ne supprimera pas nécessairement les données des applications.
TranslucentCloud
16

Le moyen le plus simple consiste à prendre une capture d'écran du code QR chaque fois que vous configurez un nouvel authentificateur pour un site et que vous l'enregistrez dans un emplacement chiffré.

Si vous devez réinstaller ou ajouter Authenticator pour ce site sur un autre téléphone, ajoutez simplement le compte dans Authenticator en scannant le code QR dans la capture d'écran, comme si vous configuriez un nouveau site.

Avant que les négativoids ne disent que cela ne fonctionnera pas, oui, et vous POUVEZ avoir le même Authenticator sur plusieurs appareils.

Thoralor
la source
2
Je voudrais expliquer pourquoi cela fonctionne. Le site Web et votre appareil partagent une simple chaîne de caractères, "le code", défini dans le code QR, et ils l'utiliseront à l'infini pour créer de nouveaux codes à 6 chiffres à partir de, la date et l'heure actuelles. Par conséquent, vous n'avez besoin que de ce code pour générer de nouveaux codes. Le site Web n'a aucun moyen de vérifier qui ou quoi a créé le code à 6 chiffres, il doit seulement être correct.
Arie
15

Essayez Authenticator Plus , il prend en charge la fonctionnalité de sauvegarde / restauration avec synchronisation sur tous les appareils. Si vous avez un téléphone / une tablette, cette application synchronise parfaitement tous les comptes entre eux, elle prend même en charge l'usure Android.

Il supporte aussi les logos Capture d'écran de Authenticator Plus

Riyaz Mohammed Ibrahim
la source
13
Ou vous pouvez utiliser Authy ( authy.com ), qui est gratuit.
couvercle
6
Authy a l'air génial ! Beaucoup mieux que Google, sauf que ce n'est pas opensource . Je peux vivre avec ça.
cregox
17
Cela ne semble-t-il pas être une mauvaise idée? L’intérêt du protocole de pad ponctuel basé sur le temps (TOTP, également appelé rfc6238, qui est ce que authy / authentificateur google, et autres implémentent) est que vous et seulement vous avez la possibilité de générer les codes. Si vous laissez une tierce partie stocker ces codes, ils deviennent une cible énorme pour les attaques, ne jamais avoir à faire confiance à tous ceux qui travaillent pour ce service et à la manière dont ils l'ont implémenté.
jeudi
1
@antiduh bien sûr, c'est un problème de sécurité ou de facilité d'utilisation, si vous êtes plus préoccupé par la sécurité, ce n'est pas idéal pour vous et vous devriez réellement vous écarter des solutions logicielles et utiliser des solutions matérielles comme yubikey
Riyaz Mohammed Ibrahim
7

Vous pouvez enregistrer les codes QR lorsque vous configurez ou renouvelez votre 2FA. Vous pouvez enregistrer le QR en faisant une capture d'écran. Ou utilisez le menu contextuel "enregistrer l'image sous", mais cela n'est pas toujours disponible. (Assurez-vous de donner aux images un nom correspondant au compte et de les sauvegarder dans un emplacement sécurisé). Pour la restauration, il suffit de réanalyser les codes QR dans Google Authenticator.

AJW
la source
4

En guise de préface, il s'agit d'une approche permettant de configurer MFA à l'avance de manière à ce qu'il soit toujours sauvegardé, et non à récupérer ou à sauvegarder les codes existants.

Je viens de suivre ce processus après que mon Nexus 6P ait cessé de se connecter aux données et que je devais configurer à nouveau tout mon MFA sur un pixel. Je me suis rendu compte que si j'avais perdu mon téléphone ou réinitialisé les données d'usine, je serais totalement bouleversé.

La solution la plus simple que j'ai proposée consiste à ignorer la configuration basée sur le code QR et à simplement utiliser la configuration à base de jetons elle-même (c'est l'option "manuelle" dans la plupart des applications d'authentification). Chaque service que j'ai utilisé jusqu'à présent vous permet d'opter pour la configuration à base de jetons plutôt que QR.

Plutôt que de prendre la peine de prendre des captures d'écran des codes QR, de les étiqueter correctement, de les coder avec GPG et de les stocker en toute sécurité quelque part, je ne stocke que les jetons dans un coffre-fort chiffré et configure manuellement mon MFA.

J'ai vérifié que vous pouvez configurer des clones de l'authentificateur à l'aide de la même clé sur des périphériques indépendants s'exécutant simultanément. Ainsi, tant que vous contrôlez les jetons en toute sécurité, vous pouvez configurer MFA sur n’importe quel appareil.

Je suis satisfait de ce résultat car je n'avais rien à faire de plus que de reconfigurer MFA (je devais le faire quand même dans mes circonstances) et d'ajouter simplement tous les jetons à lastpass. Maintenant, je suis couvert en cas de perte de téléphone et je peux configurer d'autres appareils si besoin est.

utilisateur236774
la source
2

Il y a beaucoup de conseils pour les téléphones enracinés. Mais il n'est pas recommandé de rooter votre appareil si vous ne voulez pas le rendre vulnérable. L'authentification à deux facteurs fournit une couche de protection supplémentaire. En vous enracinant, vous la réduisez à néant, car différents virus pourraient accéder aux zones de mémoire protégées.

Seuls quelques services proposent des codes de sauvegarde (notamment Google). Pour ces services, vous devez enregistrer les codes de sauvegarde.

La meilleure solution consiste à enregistrer les codes QR (ou les clés secrètes) au moment de l’enregistrement des jetons et à les conserver dans un endroit sûr. Ensuite, si vous perdez votre téléphone, vous pouvez restaurer les jetons dans Google Authenticator sur votre nouvel appareil.

Vous pouvez également utiliser des jetons matériels. Ils peuvent être sous forme de porte-clés ou de carte de crédit. Consultez cet article sur le blog de Protectimus (la société où je travaille) pour obtenir plus d'informations sur la sauvegarde de Google Authenticator: Comment sauvegarder Google Authenticator ou le transférer sur un nouveau téléphone .

* Divulgation : Je travaille pour le site Web lié ci-dessus.

Christian
la source
2
Bienvenue aux amateurs d'Android . Nous avons remarqué que vous êtes affilié au lien mentionné. Même si vous avez indiqué votre affiliation sur votre profil, veuillez également l' indiquer dans votre réponse. Lectures supplémentaires: Comment ne pas être un spammeur .
Andrew T.
@AndrewT. Terminé.
iBug
1

La méthode suivante ne fonctionnera que sur les appareils Android rootés. Cette méthode est plus utile pour les personnes peu férues de technologie ou les personnes comme moi> qui ne veulent pas perdre de temps à installer Android SDK + JDK à partir de rien juste pour exécuter la commande adb.

Alors la voici:

  1. Téléchargez et installez une application "Root Explorer" à partir du Google Play Store. J'utilise l' explorateur de fichiers FX populaire et gratuit avec son addon d'accès à la racine FX gratuit. Vous pouvez aussi utiliser les autres. Cette application nous permet d'accéder au système Android en tant qu'utilisateur root.

  2. Une fois que vous avez ouvert l’explorateur de fichiers dans la racine système> Cliquez sur le dossier "Données"> Cliquez sur le dossier "Données" (dans l’autre dossier de données)> Copiez le dossier nommé com.google.android.apps.authenticator2> Quitter le dossier racine du système> Ouvrez un espace de stockage principal / SD normal et collez-le. Dossier ici.

  3. Connectez votre appareil Android à un PC et sauvegardez le dossier sur un disque dur USB / externe sécurisé.

C'est ça. Maintenant, chaque fois que vous devez réinstaller votre micrologiciel / acheter un nouveau téléphone, suivez simplement la procédure ci-dessus et copiez ce dossier dans le même répertoire une fois que vous avez installé l'application Google Authenticator.

OU vous pouvez utiliser un éditeur d’interface graphique SQLite Open Source gratuit tel que «SQLite Database Browser Portable» pour ouvrir le fichier «bases de données» situé dans le dossier «com.google.android.apps.authenticator2». Dans l'onglet "Parcourir les données", vous pouvez voir la clé et le nom correspondant à la clé afin de pouvoir saisir manuellement la clé dans l'application Google Authenticator.

Pavin Joseph
la source
@ Izzy a édité la partie subjective et merci pour l'aide :) La méthode a l'air géniale, mais est le gain de temps le plus rapide pour les personnes normales qui ne seraient pas des développeurs Android. En fait, j'ai regardé ce fil avant de trouver moi-même une solution. Codes de sauvegarde - non disponibles pour la plupart des services (ne fonctionne que sur Google). Authenticator Plus est une application payante. La sauvegarde Titanium peut avoir des problèmes de compatibilité. La commande ADB pull nécessite l’installation d’Android SDK + JDK. Ma méthode est aussi "facile" que copier-coller un dossier.
Pavin Joseph
Merci pour le montage, Pavin! En ce qui concerne votre commentaire, je suis en partie en désaccord: je n’ai jamais installé le SDK + JDK, mais j’utilise tout un tas de fonctionnalités ADB (en particulier avec mon propre outil " Adebar " pour la documentation de l’appareil, les scripts de sauvegarde / restauration, etc. ) Sous Linux, j’ai juste besoin du adbfichier exécutable pour cela (sous Windows, deux .dllfichiers sont requis en plus). Pour plus de détails, voir Existe
Izzy
PS: Y a-t-il déjà eu des problèmes de permission? Copier manuellement le répertoire de données d'une application sur un autre appareil peut en provoquer une. N'oubliez pas que pour accéder correctement aux fichiers, les autorisations et la propriété doivent correspondre. Lors de l'installation, chaque application se voit attribuer une paire unique d'UID / GID. Les autorisations de fichiers ont des indicateurs pour propriétaire / groupe / autres. Habituellement, les données de l'application ont au maximum -rw-rw--(propriétaire et groupe en lecture / écriture, les autres rien). Donc, s'il y a une discordance dans la propriété, vous pourriez être en difficulté (et l'application pourrait mal se comporter).
Izzy
Oui, ça marche la plupart du temps. Sinon, vous pouvez utiliser n'importe quel éditeur SQLite pour ouvrir et afficher la clé secrète à partir du fichier de bases de données. Ajoutez ensuite le compte dans Google Authenticator à l'aide de la clé.
Pavin Joseph
Ah Meilleure solution: Si cela ne fonctionne pas, vérifiez et ajustez les autorisations. Avant d’écraser /data/data/com.google.android.apps.authenticator2, faites-en un ls -let vérifiez la propriété / les permissions. Après la copie, utilisez chownet chmodcorrigez-le.
Izzy
1

Sur un téléphone rooté, vous pouvez utiliser le gestionnaire de fichiers "Amaze" ( https://play.google.com/store/apps/details?id=com.amaze.filemanager&hl=fr ). Accédez au répertoire racine /data/data/com.google.android.apps.authenticator2/database. Ouvrez le fichier de base de données en tant que base de données. Sélectionnez des comptes. Vous aurez 3 colonnes _id, email et secret. Copiez la valeur "secrète". Lorsque vous devez simplement restaurer, sélectionnez "Entrer une clé fournie", nommez-la et collez la valeur.

Josh
la source
0

Comme je l’ai expérimenté il y a quelques temps. Lorsque vous vous connectez à votre compte, vous obtenez une page permettant à la clé de saisir un code à 6 chiffres. À cet endroit, vous pouvez changer de seconde clé et entrer un numéro de téléphone si vous avez déjà vérifié un numéro. Et pour plus de sauvegarde, vous pouvez choisir un autre ordinateur en tant que confiance. Donc, ils ne demanderont pas de code de deuxième étape sur ces ordinateurs.

Vivek Ji
la source
0

Voici un lien vers un simple script Python sur mon site Web: http://usefree.com.ua/google-authenticator-backup/

Vous collez simplement votre code et vous l'exécutez dans un environnement Python.

Comment ça fonctionne:

Lors de la mise en place et la configuration de l' authentification à deux facteurs avec Google Authenticator, il est possible non seulement de scanner QR-code, mais obtenir le code, par exemple, pour Google Mail nous obtenons: csnji4rfndisoh323fdsioah3u2iodso. Pour générer TOTP sur votre ordinateur avec Python IDLE, vous pouvez définir cette fonction:

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:]

Insérer en ligne

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

votre code au lieu de "csnji4rfndisoh323fdsioah3u2iodso"

décommenter la ligne et appeler IDLE

totpgen ()

Vous obtiendrez votre TOTP!) Pour le service btc-e, essayez d’utiliser la ligne

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

Pour d'autres services - comme décrit ci-dessus.

inutile
la source
2
Pourriez-vous inclure le code pertinent et expliquer comment l'utiliser? (par exemple, que fait ce code? Coller "quel" code et d'où? Tous ne comprennent pas le russe). La réponse par lien seul est déconseillée, car si le lien pourrit, il ne reste alors plus rien d’utile. (En outre, la divulgation est nécessaire si vous avez l'intention de promouvoir votre blog. Sinon, il pourrait être supposé être du spam purement promotionnel).
Andrew T.
1
S'il vous plaît ne soyez pas un spammeur , et incluez une mention claire et évidente que c'est votre site, à côté du lien lui-même.
Nic Hartley