Como faço backup do Google Authenticator?

131

Estou começando a usar o Google Authenticator para mais e mais coisas agora, mas acabei de perceber que, se eu perder meu telefone, ou se precisar limpá-lo e restaurá-lo para instalar um novo firmware, perderei todos os meus códigos.

Existe alguma maneira de apoiá-los, por favor? Ou algum tipo de fallback que significa que posso restaurá-lo para um novo dispositivo?

obrigado

usuario
fonte
2
Eu não entendo ... Um código deve ser usado apenas uma vez, eles não são armazenados em nenhum lugar do seu telefone; se você precisar inserir um código em um site, precisará usar um novo código, mesmo que já coloque um neste site há algum tempo.
Matthieu Harlé 11/02
11
Obrigado, mas pelo que entendi, se eu perder meu telefone agora, nem poderei fazer login no site, muito menos configurar um novo código do Google Authenticator
Nick
5
Se você precisar de um código para fazer login enquanto o telefone estiver perdido, poderá usar um dos métodos de backup (SMS, Chamada, códigos impressos ...). É altamente recomendável configurar pelo menos um destes método alternativo para superar este tipo de situação :)
Matthieu harle
3
Eu sempre quis bifurcar o Google Authenticator para adicionar esse recurso. Espero que alguém faça isso antes que eu tenha tempo.
Michael Kropat
5
@Shywim O Google Authenticator não é apenas para contas do Google. Há muitos outros serviços que não têm códigos de backup e SMS etc.
Chris Harrison

Respostas:

85

O método a seguir funcionará apenas em dispositivos Android com raiz.

Linux:

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

Janelas:

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

Observe que a pasta no PC já deve existir.

Isso copiará os arquivos do banco de dados do autenticador com as chaves principais, das quais as senhas únicas são geradas, para o PC. O arquivo pode ser restaurado no mesmo local, em dispositivos Android, ou lido com um visualizador de banco de dados sqlite para extrair as chaves.

Anon
fonte
10
Ao copiar para um novo dispositivo, verifique se a databasespasta e o databasesarquivo têm 755 permissões. Eu tentei 700 e o GA continuou travando. Tipo de preocupação que requer permissões totais. Talvez seja esse o requisito da NSA.
eduncan911
12
Você precisa adb rootantes de fazer isso, ou você poderá obterremote object '/data/data/com.google.android.apps.authenticator2/databases' does not exist
Simon Woodside
3
Observe que, se você tiver o SELinux ativado, mesmo com os bits de permissão corretos, o aplicativo Authenticator poderá falhar. Para corrigir isso, execute restorecon -F /data/data/com.google.android.apps.authenticator2/databases/databasesdepois de colocar novamente o arquivo do banco de dados. ( fonte )
Hai Zhang
@ eduncan911 660 obras para mim
deed02392
Enraizar seu dispositivo o torna menos seguro . Se você estiver usando o 2FA, provavelmente você quer mais segurança. Para os riscos: owasp.org/index.php/Projects/…
Simon Woodside
26

Você não precisa fazer backup dos aplicativos / dados do Google Authenticator, pois pode criar uma lista de 'Códigos de backup' que podem ser usados ​​para fazer login sem exigir um código de autenticação na mesma página em que você configura a autenticação em duas etapas.

Por que imprimir ou baixar códigos de backup?

Os códigos de backup são especialmente úteis para pessoas que viajam, têm problemas para receber SMS ou chamadas de voz ou não podem usar o aplicativo móvel Google Authenticator.

Recomendação: você deve imprimir ou baixar códigos de backup

Armazene-os em um local seguro (ou imprima-os) e, se você perder o telefone, poderá usar um desses códigos para fazer login na sua conta e configurar um novo dispositivo com o aplicativo Authenticator.

Embora isso se aplique à autenticação em duas etapas do Google, quaisquer outros sites que você configurou para usar o aplicativo Google Authenticator devem oferecer uma opção semelhante ou outra maneira de receber códigos (por exemplo, o Facebook suporta o Google Authenticator, seu próprio aplicativo e sms como métodos para receber códigos).

bmdixon
fonte
3
Para os sites que não oferecem, eu diria que sua única opção é usar uma senha exclusiva forte sem autenticação em duas etapas. Por interesse, quais sites não oferecem uma opção de backup? Dropbox, Facebook, LastPass, Wordpress, todos (esses são os outros sites com os quais eu uso autenticação em duas etapas).
bmdixon
18
@ Nick: Salvando o código QR que o Google ou outros sites oferecem e adicioná-los de volta para Authenticator em outro dispositivo faz o trabalho. Eu já fiz isso algumas vezes. No entanto, verifique se a hora está correta e atualizada constantemente nos dois dispositivos (se você pretende continuar usando os dois), caso contrário, a autenticação poderá falhar.
Andris
7
A senha de autenticação única de dois fatores é gerada com duas coisas: a hora atual e um segredo compartilhado entre o servidor e o aplicativo durante a inicialização. No seu caso, o segredo é o código QR. Desde que outra instância do aplicativo autenticador compartilhe o mesmo segredo e o mesmo tempo (o mesmo quadro dos 30 anos), os dois aplicativos gerarão as mesmas senhas.
Marc Plano-Lesay
2
Você ainda pode fazer o backup quando redefinir o telefone, para não precisar gastar uma hora em todos os sites para os quais usa o autenticador, inserindo um código de backup e redefinindo a configuração do autenticador.
pupeno
4
Isso é válido apenas para a autenticação em duas etapas do Google. O autenticador do Google funciona com muitos outros sites e alguns não têm como criar uma lista de códigos de backup. Alguns usam SMS, outros fornecem um único código de backup de uso único e outros não têm nenhuma opção de backup. Mesmo quando todo site tem uma opção de backup, ter que restaurar todas as muitas chaves ao adquirir um novo telefone é um grande aborrecimento.
Laurence Gonsalves
21

O Titanium Backup (link para a Google Play Store) fará backup de qualquer aplicativo Android, incluindo o Google Authenticator. No entanto, você deve fazer o root no telefone para que isso seja uma opção viável.

Também recomendo imprimir os códigos de backup do Google. Isso não faz o backup do aplicativo Google Authenticator, mas eles permitem que você redefina o autenticador, se necessário. Isso só ajudaria a recuperar o acesso à sua conta do Google.

Fazer o backup do aplicativo com o Titanium Backup é a opção mais completa, na minha opinião. Isso me salvou em várias ocasiões.

Josh
fonte
Tive que me contentar com isso, porque eu não conseguia puxar o diretório de bancos de dados, não podia copiar para / sdcard e aceitá-lo - o chmod 777 não fez nada.
Lauri Elias
"Importar do Google Authenticator" - Vendido! Recurso de migração muito importante.
Adambean 31/08/17
Vale ressaltar, a fim de não re-root do novo telefone. Após o backup, clique na backup/restoreguia -> escolha Authenticatoraplicativo -> deslize para a direita na special featuresguia -> escolha Explore-> escolha accountsabaixo [DATABASE]. você receberá toda a conta do seu aplicativo em um arquivo .csv. use a secretcoluna para restaurar as contas para o novo telefone.
Yan
19

Eu tive o mesmo problema.

Acontece que os tokens originais (geralmente representados pelo usuário como qrcodes) são armazenados no banco de dados sqlite dentro da pasta /data/data/com.google.android.apps.authenticator2/databases e podem ser extraídos do dispositivo.

Automatizei e expliquei o processo de recuperação aqui: https://github.com/dchapkine/extract-google-authenticator-credentials

Este projeto extrai tokens originais e gera uma página da web com qrcodes que você pode verificar novamente em um novo dispositivo.

Sinta-se livre para contribuir.

dchapkine
fonte
11
Isso me salvou ao fazer login em todas as minhas contas 2FA e trocar o telefone manualmente. Muito Obrigado!
Kovah
Era exatamente isso que eu estava procurando. Uma maneira rápida e fácil de digitalizar novamente todos os códigos QR.
Harvey
Obrigado por isso, mas meu dispositivo não está enraizado. Entendo corretamente que tenho uma situação "Catch 22" na mão em que fazer o enraizamento do meu dispositivo?
urig
Simplesmente brilhante. Porém, não funcionou no Windows 10 Bash.
TranslucentCloud
@urig, não, o enraizamento de alguns telefones não limpa necessariamente os dados dos aplicativos.
TranslucentCloud
16

A maneira mais fácil de lidar com isso é fazer uma captura de tela do código QR sempre que você configurar um novo autenticador para um site e salvá-lo em um local criptografado.

Se você precisar reinstalar ou adicionar o autenticador desse site a outro telefone, basta adicionar a conta no Authenticator, digitalizando o código QR na captura de tela, como se estivesse configurando um novo site.

Antes que os negativos digam que isso não funcionará, sim, sim, e você PODE ter o mesmo autenticador em vários dispositivos.

Thoralor
fonte
2
Gostaria de explicar por que isso funciona, tanto o site quanto o seu dispositivo compartilharão uma sequência simples de caracteres, "o código", definido no código QR, e eles o usarão sem parar para criar novos códigos de 6 dígitos, com base em a data e hora atuais. Portanto, você só precisa ter esse código para gerar novos códigos. O site não tem como verificar quem ou o que criou o código de 6 dígitos, apenas precisa estar correto.
Arie3
15

Experimente o Authenticator Plus , ele suporta a funcionalidade de backup / restauração com sincronização entre dispositivos. Se você possui um telefone / tablet, este aplicativo sincroniza todas as contas entre eles na perfeição, além de suportar o desgaste do Android.

Tem suporte para logotipos também Screenshot do Authenticator Plus

Riyaz Mohammed Ibrahim
fonte
13
Ou você pode usar o Authy ( authy.com ), que é gratuito.
tampa
6
Authy parece incrível ! Muito melhor que o google, exceto que não é de código aberto . Eu posso viver com isso.
cregox
17
Isso não soa como uma má ideia? O ponto principal do protocolo One-time pad baseado em tempo (TOTP aka rfc6238, que é o que authy / google authenticator, et al. Implementam) é que você e somente você tem a capacidade de gerar os códigos. Se você deixar que terceiros armazenem esses códigos, eles se tornarão um grande alvo de ataques, não importando que todos confiem em todos que trabalham para esse serviço e em como o implementaram.
Antiduh 28/04
11
@antiduh, é claro, sua questão de segurança x usabilidade, se você está mais preocupado com segurança, isso não é ideal para você e você deve realmente se afastar das soluções de software e usar soluções de hardware como o yubikey
Riyaz Mohammed Ibrahim
7

Você pode salvar os códigos QR ao configurar ou renovar seu 2FA. Você pode salvar o QR fazendo uma captura de tela. Ou usando o menu de contexto 'salvar imagem como', mas isso nem sempre está disponível. (Certifique-se de fornecer um nome correspondente às imagens com a conta e faça o backup em um local seguro). Para restauração, basta redigitalizar os códigos QR no Google Authenticator.

AJW
fonte
4

Como prefácio, essa é uma abordagem para configurar o MFA antecipadamente, para que seja sempre feito backup, não recuperando ou fazendo backup dos códigos existentes.

Acabei de passar por esse processo depois que meu Nexus 6P parou de se conectar aos dados e tive que configurar todo o meu MFA novamente em um pixel. Percebi que, se eu perdesse meu telefone ou os dados de fábrica fossem redefinidos, eu estaria totalmente chateado.

A solução mais simples que encontrei é ignorar a configuração baseada em código QR e usar a própria configuração baseada em token (é a opção "manual" na maioria dos aplicativos autenticadores). Todos os serviços que usei até agora permitem que você opte pela configuração baseada em token em vez do QR.

Em vez de enfrentar o problema de capturar capturas de tela dos códigos QR, rotulá-los adequadamente e depois criptografá-los pelo GPG e armazená-los com segurança em algum lugar, apenas guardo os tokens em um cofre criptografado e configuro meu MFA manualmente.

Eu verifiquei que você pode configurar clones do autenticador usando a mesma chave em dispositivos independentes executando simultaneamente. Portanto, desde que você controle com segurança os tokens, poderá configurar o MFA em qualquer dispositivo.

Estou satisfeito com esse resultado, pois não precisei fazer nada além de reconfigurar o MFA (eu precisava fazer isso de qualquer maneira nas minhas circunstâncias) e simplesmente adicionar todos os tokens ao lastpass. Agora estou coberto no caso de perda de telefone e posso configurar outros dispositivos, se necessário.

user236774
fonte
2

Existem muitos conselhos para telefones com root. Mas não é recomendável fazer root no seu dispositivo se você não quiser torná-lo vulnerável. A autenticação de dois fatores fornece uma camada adicional de proteção e, ao fazer o enraizamento, você acaba com isso, pois vírus diferentes podem obter acesso a áreas de memória protegidas.

Apenas uma pequena quantidade de serviços oferece códigos de backup (principalmente o Google). Para esses serviços, você deve salvar códigos de backup.

A melhor solução é salvar os códigos QR (ou as chaves secretas) no momento da inscrição do token e mantê-los em algum lugar seguro. Se você perder o telefone, poderá restaurar os tokens no Google Authenticator no seu novo dispositivo.

Além disso, você pode usar tokens de hardware. Eles podem estar na forma de chaveiro ou cartão de crédito. Dê uma olhada neste artigo no blog da Protectimus (a empresa onde trabalho) para obter mais informações sobre como fazer backup do Google Authenticator: Como fazer backup do Google Authenticator ou transferi-lo para um novo telefone .

* Divulgação : Eu trabalho para o site link acima.

cristão
fonte
2
Bem-vindo aos entusiastas do Android . Percebemos que você é afiliado ao link mencionado. Mesmo que você tenha declarado sua afiliação em seu perfil, divulgue-a também em sua resposta. Leitura adicional: Como não ser um spammer .
Andrew T.
@AndrewT. Feito.
iBug 25/01
1

O método a seguir funcionará apenas em dispositivos Android com raiz. Esse método é mais útil para pessoas que não são tão conhecedoras de tecnologia ou pessoas como eu> que não querem perder tempo instalando o Android SDK + JDK do zero apenas para executar o comando adb.

Então aqui está:

  1. Faça o download e instale qualquer aplicativo "Root Explorer" na loja Google Play. Eu uso o popular e gratuito explorador de arquivos FX, com seu addon de acesso root gratuito. Você pode usar outras pessoas também. Este aplicativo possibilita o acesso ao sistema Android como usuário root.

  2. Depois de abrir o gerenciador de arquivos na raiz do sistema> clique na pasta "data"> clique na pasta "data" (dentro da outra pasta de dados)> copie a pasta denominada com.google.android.apps.authenticator2> sair da pasta raiz do sistema> abra o espaço de armazenamento principal / armazenamento SD normal e cole o Pasta aqui.

  3. Conecte seu dispositivo Android a um PC e faça backup da pasta em um disco rígido USB / externo seguro.

É isso aí. Agora, sempre que precisar reinstalar o firmware / comprar um novo telefone, siga as etapas acima e copie essa pasta para o mesmo diretório depois de instalar o aplicativo Google Authenticator.

OU você pode usar um editor GUI SQLite de código aberto gratuito como "SQLite Database Browser Portable" para abrir o arquivo "bancos de dados" dentro da pasta "com.google.android.apps.authenticator2". Na guia "Procurar dados", você pode ver a chave e o nome correspondentes à chave, para poder inseri-la manualmente no aplicativo Google Authenticator.

Pavin Joseph
fonte
@Izzy Editamos a parte subjetiva e obrigado pela ajuda :) O método parece grande, mas economiza mais tempo para pessoas normais que não seriam desenvolvedores do Android. Na verdade, eu olhei para este tópico antes de descobrir uma solução por conta própria. Códigos de backup - não disponíveis para a maioria dos serviços (funciona apenas no google). Authenticator Plus é um aplicativo pago. O backup de titânio pode ter problemas de compatibilidade. O comando pull do ADB precisa que você instale o Android SDK + JDK. Meu método é tão "fácil" quanto copiar e colar uma pasta.
Pavin Joseph
Obrigado pela edição, Pavin! No seu comentário, tenho que discordar parcialmente: nunca instalei o SDK + JDK, mas ainda uso vários recursos do ADB (especialmente com minha própria ferramenta " Adebar " para documentação do dispositivo, scripts de backup / restauração e muito mais) ) No Linux, eu só preciso do adbexecutável para isso (no Windows, .dllsão necessários dois arquivos adicionalmente). Para detalhes, consulte Existe uma instalação mínima do ADB?
Izzy
PS: Alguma vez houve algum problema de permissão? Copiar o diretório de dados de um aplicativo manualmente para outro dispositivo pode trazer isso à tona. Lembre-se de que, para acessar corretamente os arquivos, as permissões e a propriedade devem corresponder. Na instalação, cada aplicativo recebe um par UID / GID exclusivo. As permissões de arquivo têm sinalizadores para proprietário / grupo / outros. Geralmente, os dados do aplicativo têm no máximo -rw-rw--(leitura / gravação do proprietário e do grupo, outros nada). Portanto, se houver uma incompatibilidade na propriedade, você pode estar com problemas (e o aplicativo pode se comportar mal).
Izzy
Sim, funciona na maioria das vezes. Mas se não, você pode usar qualquer editor SQLite para abrir e visualizar a chave secreta do arquivo de bancos de dados; depois, adicione a conta no Google Authenticator usando a chave
Pavin Joseph
Ah Melhor solução: se não funcionar, verifique e ajuste as permissões. Antes de substituir /data/data/com.google.android.apps.authenticator2, faça uma ls -lverificação e verifique a propriedade / permissões. Após a cópia, use chowne chmodpara corrigi-lo.
Izzy
1

Em um telefone com root, você pode usar o gerenciador de arquivos "Amaze" ( https://play.google.com/store/apps/details?id=com.amaze.filemanager&hl=pt_BR ). Vá para o diretório /data/data/com.google.android.apps.authenticator2/database raiz. Abra o arquivo de banco de dados como um banco de dados. Selecione contas. Você terá três colunas _id, email e segredo. Copie o valor "secreto". Quando você precisar restaurar apenas adicionar, selecione "Digite uma chave fornecida", atribua um nome e cole o valor.

Josh
fonte
0

Como já experimentei o mesmo há pouco tempo. Quando você entra na sua conta, você receberá uma página para a chave para colocar um código de 6 dígitos. Nesse local, você pode alterar a segunda tecla e inserir o número de telefone, se já tiver um número verificado. E para obter mais backup, você pode escolher outros computadores como confiáveis. Portanto, eles não pedirão o código do segundo passo nesses computadores.

Vivek Ji
fonte
0

Aqui está um link para um simples script Python no meu site: http://usefree.com.ua/google-authenticator-backup/

Você acabou de colar seu código e executá-lo no ambiente Python.

Como funciona:

Durante a instalação ea configuração de autenticação de dois fatores com Google Authenticator, é possível não só para fazer a varredura QR-code, mas obter o código, por exemplo, para o Google Mail temos: csnji4rfndisoh323fdsioah3u2iodso. Para gerar o TOTP no seu computador com o Python IDLE, você pode definir esta função:

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

Inserir na linha

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

seu código em vez de "csnji4rfndisoh323fdsioah3u2iodso"

linha de comentário e chame IDLE

totpgen ()

Você receberá seu TOTP!) Para o serviço btc-e, tente usar a linha

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

Para outros serviços - como descrito acima.

sem uso
fonte
2
Você poderia incluir o código relevante e explicar como usá-lo? (por exemplo, o que esse código faz? Cole o código "what" e de onde? Nem todo mundo entende russo). A resposta somente ao link é desencorajada, pois se o link apodrecer, não resta mais nada útil. (Além disso, a divulgação é necessária se você pretende promover seu blog. Caso contrário, pode ser assumido como puramente promocional, também conhecido como spam).
Andrew T.
11
Por favor , não seja um spammer e inclua uma menção clara e óbvia de que é o seu site, ao lado do próprio link.
Nic Hartley