¿Cómo hago una copia de seguridad de Google Authenticator?

131

Estoy empezando a usar Google Authenticator para más y más cosas ahora, pero me acabo de dar cuenta de que si pierdo mi teléfono, o si necesito borrarlo y restaurarlo para instalar el nuevo firmware, perderé todos mis códigos.

¿Hay alguna forma de respaldarlos por favor? ¿O algún tipo de respaldo que significa que puedo restaurarlo a un nuevo dispositivo?

Gracias

Mella
fuente
2
No entiendo ... Un código se debe usar solo una vez, no se almacenan en ningún lugar de su teléfono, si necesita ingresar un código en un sitio, debe usar un código nuevo, incluso si ya poner uno en este sitio hace algún tiempo.
Matthieu Harlé
1
Gracias, pero según tengo entendido, si pierdo mi teléfono ahora, ni siquiera podré iniciar sesión en el sitio, y mucho menos configurar un nuevo código de Autenticador de Google
Nick
55
Si necesita un código para iniciar sesión mientras su teléfono está perdido, puede usar uno de los métodos de respaldo (SMS, llamadas, códigos impresos ...). Se recomienda encarecidamente configurar al menos uno de estos métodos alternativos para superar este tipo de situación :)
Matthieu Harlé
3
Siempre he querido bifurcar Google Authenticator para agregar esta función. Espero que alguien lo haga antes de que tenga tiempo.
Michael Kropat
55
@Shywim Google Authenticator no es solo para cuentas de Google. Hay muchos otros servicios que no tienen códigos de respaldo y SMS, etc.
Chris Harrison

Respuestas:

85

El siguiente método solo funcionará en dispositivos Android rooteados.

Linux:

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

Ventanas:

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

Tenga en cuenta que la carpeta en la PC ya debe existir.

Esto copiará los archivos de la base de datos del autenticador con las claves principales, desde las cuales se generan las contraseñas de un solo uso, a la PC. El archivo se puede restaurar en la misma ubicación, en dispositivos Android, o leer con un visor de base de datos sqlite para extraer las claves.

Luego
fuente
10
Al copiar a un nuevo dispositivo, asegúrese de que la databasescarpeta y el databasesarchivo tengan permisos 755. Intenté 700, y GA siguió fallando. Un poco preocupante que requiere permisos completos. Quizás ese sea el requisito de la NSA.
eduncan911
12
Debe hacerlo adb rootantes de hacer esto, o obtendráremote object '/data/data/com.google.android.apps.authenticator2/databases' does not exist
Simon Woodside
3
Tenga en cuenta que si tiene SELinux habilitado, incluso con los bits de permiso correctos, la aplicación Authenticator puede bloquearse. Para solucionar esto, ejecute restorecon -F /data/data/com.google.android.apps.authenticator2/databases/databasesdespués de volver a colocar el archivo de base de datos. ( fuente )
Hai Zhang
@ eduncan911 660 funciona para mí
deed02392
Rootear su dispositivo lo hace menos seguro . Si está utilizando 2FA, entonces presumiblemente quiere más seguridad. Para los riesgos: owasp.org/index.php/Projects/…
Simon Woodside
26

No necesita hacer una copia de seguridad de la aplicación / datos de Google Authenticator, ya que puede crear una lista de 'Códigos de copia de seguridad' que puede usar para iniciar sesión sin requerir un código de autenticación en la misma página que configura la autenticación de 2 pasos.

¿Por qué imprimir o descargar códigos de respaldo?

Los códigos de respaldo son especialmente útiles para las personas que viajan, tienen problemas para recibir SMS o llamadas de voz, o no pueden usar la aplicación móvil Google Authenticator.

Recomendación: debe imprimir o descargar códigos de respaldo

Almacénelos en un lugar seguro (o imprímalos) y si pierde su teléfono, puede usar uno de estos códigos para iniciar sesión en su cuenta y configurar un nuevo dispositivo con la aplicación Authenticator.

Si bien esto se aplica a la autenticación de 2 pasos de Google, cualquier otro sitio que haya configurado para usar la aplicación Google Authenticator debería ofrecer una opción similar u otra forma de recibir códigos (por ejemplo, Facebook admite Google Authenticator, su propia aplicación y sms como métodos para recibir códigos).

bmdixon
fuente
3
Para los sitios que no lo ofrecen, diría que su única opción es usar una contraseña única y segura sin autenticación de 2 pasos. Por interés, ¿qué sitios no ofrecen una opción de respaldo? Dropbox, Facebook, LastPass, Wordpress lo hacen (esos son los otros sitios con los que uso la autenticación de 2 pasos).
bmdixon
18
@ Nick: Guardar el código QR que Google u otros sitios proporcionan y añadiendo de nuevo en autenticador en otro dispositivo que hace el trabajo. Lo he hecho algunas veces yo mismo. Sin embargo, debe asegurarse de que la hora sea correcta y esté actualizada constantemente en ambos dispositivos (si tiene la intención de seguir usándolos), de lo contrario, la autenticación podría fallar.
Andris
77
La contraseña de "una sola vez" de autenticación de dos factores se genera con dos cosas: la hora actual y un secreto compartido entre el servidor y la aplicación durante la inicialización. En su caso, el secreto es el código QR. Siempre que otra instancia de la aplicación de autenticación comparta el mismo secreto y el mismo tiempo (el mismo marco de 30), ambas aplicaciones generarán las mismas contraseñas.
Marc Plano-Lesay
2
Es posible que aún desee hacer una copia de seguridad cuando va a restablecer su teléfono, por lo que no tiene que pasar una hora yendo a cada sitio para el que usa el autenticador, ingresando un código de respaldo y restableciendo la configuración del autenticador.
pupeno
44
Esto solo es cierto para la autenticación de 2 pasos de Google. El autenticador de Google funciona con muchos otros sitios, y algunos no tienen una forma de crear una lista de códigos de respaldo. Algunos usan SMS, algunos le dan un único código de respaldo de un solo uso, y algunos no tienen ninguna opción de respaldo. Incluso cuando cada sitio tiene una opción de respaldo, tener que restaurar todas las claves al obtener un nuevo teléfono es una gran molestia.
Laurence Gonsalves
21

Titanium Backup (enlace a Google Play Store) hará una copia de seguridad de cualquier aplicación de Android, incluido Google Authenticator. Sin embargo, debe rootear su teléfono para que esta sea una opción viable.

También recomendaría imprimir los códigos de respaldo de Google también. Esto no es una copia de seguridad de la aplicación Google Authenticator, pero le permitirían restablecer el autenticador si es necesario. Sin embargo, esto solo ayudaría a recuperar el acceso a su cuenta de Google.

Hacer una copia de seguridad de la aplicación con Titanium Backup es la opción más completa, en mi opinión. Me ha salvado en varias ocasiones.

Josh
fuente
Tuve que conformarme con esto porque no podía adb extraer el directorio de bases de datos, no podía copiar a / sdcard y tomarlo: chmod 777 no hizo nada.
Lauri Elias
"Importar desde el Autenticador de Google" - ¡Vendido! Característica de migración muy importante.
Adambean
Vale la pena mencionar, para no volver a rootear el nuevo teléfono. Después de la copia de seguridad, haga clic en la backup/restorepestaña -> elija la Authenticatoraplicación -> deslice hacia la derecha para la special featurespestaña -> elija Explore-> elija accountsdebajo [DATABASE]. entonces obtendrá toda la cuenta en su aplicación en un archivo .csv. use la secretcolumna para restaurar las cuentas al nuevo teléfono.
Yan
19

Tuve exactamente el mismo problema.

Resulta que los tokens originales (normalmente representados por el usuario como qrcodes) se almacenan en la base de datos sqlite dentro de la carpeta /data/data/com.google.android.apps.authenticator2/databases y se pueden extraer del dispositivo.

Automaticé y expliqué el proceso de recuperación aquí: https://github.com/dchapkine/extract-google-authenticator-credentials

Este proyecto extrae tokens originales, luego genera una página web con códigos qr que puede volver a escanear en un nuevo dispositivo.

Siéntase libre de contribuir.

dchapkine
fuente
1
Esto simplemente me salvó de iniciar sesión en todas mis cuentas de 2FA y cambiar el teléfono manualmente. ¡Muchas gracias!
Kovah
Esto es exactamente lo que estaba buscando. Una forma rápida y fácil de volver a escanear todos los códigos QR.
Harvey
Gracias por esto, pero mi dispositivo no está rooteado. ¿Entiendo correctamente que tengo una situación de "Catch 22" en mi mano donde rootear mi dispositivo lo limpiará?
urig
Simplemente brillante Sin embargo, no funcionó en Windows 10 Bash.
TranslucentCloud
@urig, no, el rooteo de algunos teléfonos no necesariamente borrará los datos de las aplicaciones.
TranslucentCloud
16

La forma más fácil de manejar esto es tomar una captura de pantalla del código QR cada vez que configura un nuevo Autenticador para un sitio y lo guarda en una ubicación encriptada.

Si necesita reinstalar o agregar el Autenticador para ese sitio a otro teléfono, simplemente agregue la cuenta en el Autenticador escaneando el código QR en la captura de pantalla como si estuviera configurando un nuevo sitio.

Antes de que los negativoides digan que esto no funcionará, sí, y PUEDES tener el mismo autenticador en varios dispositivos.

Thoralor
fuente
2
Me gustaría explicar por qué esto funciona, tanto el sitio web como su dispositivo compartirán una cadena simple de caracteres, "el código", establecido en el código QR, y lo usarán sin fin para crear nuevos códigos de 6 dígitos a partir de La fecha y hora actuales. Por lo tanto, solo necesita tener este código para generar nuevos códigos. El sitio web no tiene forma de verificar quién o qué creó el código de 6 dígitos, solo necesita ser correcto.
Arie
15

Pruebe Authenticator Plus , admite la funcionalidad de copia de seguridad / restauración con sincronización entre dispositivos, si tiene un teléfono / tableta, esta aplicación sincroniza todas las cuentas entre ellos sin problemas, incluso es compatible con el uso de Android.

También tiene soporte de logotipos Captura de pantalla de Authenticator Plus

Riyaz Mohammed Ibrahim
fuente
13
O puede usar Authy ( authy.com ), que es gratis.
tapa
66
¡Authy se ve increíble ! Mucho mejor que el de google, excepto que no es de código abierto . Puedo vivir con eso.
cregox
17
¿No suena esto como una mala idea? El punto principal del protocolo de almohadilla de un solo uso basado en el tiempo (TOTP, también conocido como rfc6238, que es lo que Authy / Google Authentor, et al implementan) es que usted y solo usted tienen la capacidad de generar los códigos. Si dejas que algunos terceros almacenen esos códigos, se convierten en un gran objetivo para los ataques, no importa tener que confiar en todos los que trabajan para este servicio y cómo lo han implicado.
antiduh
1
@antiduh, por supuesto, es cuestión de seguridad frente a usabilidad, si está más preocupado por la seguridad, no es ideal para usted y debería alejarse de las soluciones de software y usar soluciones de hardware como yubikey
Riyaz Mohammed Ibrahim
7

Puede guardar los códigos QR cuando configure o renueve su 2FA. Puede guardar el QR haciendo una captura de pantalla. O usando el menú contextual 'guardar imagen como' pero esto no siempre está disponible. (Asegúrese de dar a las imágenes un nombre correspondiente con la cuenta y copia de seguridad en una ubicación segura). Para la restauración, simplemente vuelva a escanear los códigos QR en Google Authenticator.

AJW
fuente
4

Como prefacio, este es un enfoque para configurar MFA con anticipación para que siempre se realice una copia de seguridad, no para recuperar o realizar una copia de seguridad de los códigos existentes.

Acabo de pasar por este proceso después de que mi Nexus 6P dejó de conectarse a los datos y tuve que configurar todo mi MFA nuevamente en un Pixel. Me di cuenta de que si perdía mi teléfono o si restablecía los datos de fábrica, habría estado totalmente molesto.

La solución más simple que se me ocurrió es ignorar la configuración basada en código QR y simplemente usar la configuración basada en token (es la opción "manual" en la mayoría de las aplicaciones de autenticación). Todos los servicios que he usado hasta ahora le permiten optar por la configuración basada en tokens en lugar de QR.

En lugar de pasar por la molestia de tomar capturas de pantalla de los códigos QR, etiquetarlos adecuadamente y luego GPG encriptarlos y almacenarlos de forma segura en algún lugar, solo almaceno los tokens en una bóveda encriptada y configuro mi MFA manualmente.

Verifiqué que puedes configurar clones del autenticador usando la misma clave en dispositivos independientes que se ejecutan simultáneamente. Por lo tanto, siempre que controle de forma segura los tokens, puede configurar MFA en cualquier dispositivo.

Estoy satisfecho con este resultado, ya que no tuve que hacer nada más que reconfigurar MFA (tuve que hacer esto de todos modos en mis circunstancias) y simplemente agregar todos los tokens a lastpass. Ahora estoy cubierto en caso de pérdida de teléfono y puedo configurar otros dispositivos si es necesario.

usuario236774
fuente
2

Hay muchos consejos para teléfonos rooteados. Pero no se recomienda rootear su dispositivo si no desea hacerlo vulnerable. La autenticación de dos factores proporciona una capa adicional de protección y, al enraizarla, la deja en nada, ya que diferentes virus podrían obtener acceso a áreas de memoria protegidas.

Solo una pequeña cantidad de servicios ofrece códigos de respaldo (particularmente Google). Para estos servicios, debe guardar los códigos de respaldo.

La mejor solución es guardar los códigos QR (o las claves secretas) en el momento de la inscripción del token y guardarlos en un lugar seguro. Luego, si pierde su teléfono, podría restaurar los tokens en Google Authenticator en su nuevo dispositivo.

Además, puede usar tokens de hardware. Pueden ser en forma de llavero o tarjeta de crédito. Eche un vistazo a este artículo en el blog de Protectimus (la compañía donde trabajo) para obtener más información sobre cómo hacer una copia de seguridad del Autenticador de Google: Cómo hacer una copia de seguridad del Autenticador de Google o transferirlo a un nuevo teléfono .

* Divulgación : trabajo para el sitio web vinculado anteriormente.

cristiano
fuente
2
Bienvenido a los entusiastas de Android . Notamos que está afiliado al enlace mencionado. A pesar de que ha declarado su afiliación en su perfil, también indíquelo en su respuesta. Lectura adicional: cómo no ser un spammer .
Andrew T.
@AndrewT. Hecho.
iBug
1

El siguiente método solo funcionará en dispositivos Android rooteados. Este método es más útil para las personas no tan expertas en tecnología o las personas como yo> que no quieren perder el tiempo instalando Android SDK + JDK desde cero solo para ejecutar el comando adb.

Asi que aqui esta:

  1. Descargue e instale cualquier aplicación "Root explorer" de la tienda Google Play. Utilizo el popular y gratuito explorador de archivos FX con su complemento de acceso raíz FX gratuito. Puedes usar otros también. Esta aplicación nos permite acceder al sistema Android como usuario root.

  2. Una vez que abra el explorador de archivos en la raíz del sistema> Haga clic en la carpeta "datos"> Haga clic en la carpeta "datos" (dentro de la otra carpeta de datos)> Copie la carpeta llamada com.google.android.apps.authenticator2> Salga de la carpeta raíz del sistema> Abra el almacenamiento principal normal / espacio de almacenamiento SD y pegue el Carpeta aquí

  3. Conecte su dispositivo Android a una PC y haga una copia de seguridad de la carpeta en un USB / HDD externo seguro.

Eso es. Ahora, cada vez que necesite reinstalar su firmware / comprar un nuevo teléfono, simplemente siga los pasos anteriores y copie esa carpeta en el mismo directorio una vez que haya instalado la aplicación Google Authenticator.

O bien, puede utilizar un editor de GUI SQLite de código abierto como "SQLite Database Browser Portable" para abrir el archivo "bases de datos" dentro de la carpeta "com.google.android.apps.authenticator2". En la pestaña "Examinar datos", puede ver la clave y el nombre correspondientes a la clave para que pueda ingresar manualmente la clave en la aplicación Google Authenticator.

Pavin Joseph
fuente
@Izzy Editó la parte subjetiva y gracias por la ayuda :) El método simplemente parece grande pero es el que más tiempo ahorra para las personas normales que no serían desarrolladores de Android. De hecho, miré este hilo antes de encontrar una solución por mi cuenta. Códigos de respaldo: no está disponible para la mayoría de los servicios (solo funciona en Google). Authenticator Plus es una aplicación paga. La copia de seguridad de titanio puede tener problemas de compatibilidad. El comando de extracción ADB necesita que instales Android SDK + JDK. Mi método es tan "fácil" como copiar y pegar una carpeta.
Pavin Joseph
Gracias por la edición, Pavin! En su comentario, tengo que estar en desacuerdo en parte: nunca he instalado el SDK + JDK, pero todavía uso un montón de características ADB (especialmente con mi propia herramienta " Adebar " para la documentación del dispositivo, scripts de copia de seguridad / restauración y más ) En Linux, solo necesito el adbejecutable para eso (en Windows, .dllse requieren dos archivos adicionales). Para obtener más información, consulte ¿Hay una instalación mínima de ADB?
Izzy
PD: ¿Alguna vez ha habido problemas de permisos? Copiar el directorio de datos de una aplicación de forma manual a otro dispositivo podría mostrarlo. Recuerde, para acceder correctamente a los archivos, los permisos y la propiedad deben coincidir. En la instalación, a cada aplicación se le asigna un par UID / GID único. Los permisos de archivo tienen banderas para el propietario / grupo / otros. Por lo general, los datos de la aplicación tienen un máximo -rw-rw--(lectura / escritura de propietario y grupo, otros nada). Entonces, si hay una falta de coincidencia en la propiedad, puede estar en problemas (y la aplicación puede comportarse mal).
Izzy
Sí, funciona la mayor parte del tiempo. Pero si no es así, puede usar cualquier editor de SQLite para abrir y ver la clave secreta del archivo de bases de datos; luego proceda a agregar la cuenta en Google Authenticator usando la clave.
Pavin Joseph
Ah Mejor solución: si no funciona, verifique y ajuste los permisos. Antes de sobrescribir /data/data/com.google.android.apps.authenticator2, haga un ls -lsobre y verifique la propiedad / permisos. Después de copiar, use chowny chmodpara repararlo.
Izzy
1

En un teléfono rooteado, puede usar el administrador de archivos "Amaze" ( https://play.google.com/store/apps/details?id=com.amaze.filemanager&hl=en ). Vaya al directorio raíz /data/data/com.google.android.apps.authenticator2/database. Abra el archivo de la base de datos como una base de datos. Seleccionar cuentas. Tendrá 3 columnas _id, correo electrónico y secreto. Copie el valor "secreto". Cuando necesite restaurar simplemente agregue, seleccione "Ingresar una clave provista", asígnele un nombre y pegue el valor.

Josh
fuente
0

Como he experimentado lo mismo hace un tiempo. Cuando inicie sesión en su cuenta, obtendrá la página de clave para poner un código de 6 dígitos. En este lugar, puede cambiar la segunda clave y obtener el número de teléfono si ya tiene un número verificado. Y para obtener más copias de seguridad, puede elegir otras computadoras como confiables. Por lo tanto, no pedirán el código de segundo paso en esas computadoras.

Vivek Ji
fuente
0

Aquí hay un enlace a un script simple de Python en mi sitio web: http://usefree.com.ua/google-authenticator-backup/

Simplemente pegue su código y ejecútelos en el entorno Python.

Cómo funciona:

Durante la instalación y configuración de autenticación de dos factores con Google Authenticator, es posible no sólo para escanear código QR, pero obtener el código, por ejemplo, para el correo de Google, obtenemos: csnji4rfndisoh323fdsioah3u2iodso. Para generar TOTP en su computadora con Python IDLE, puede definir esta función:

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

Insertar en línea

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

su código en lugar de "csnji4rfndisoh323fdsioah3u2iodso"

descomentar línea y llamar en IDLE

totpgen ()

Obtendrá su TOTP!) Para el servicio btc-e intente utilizar la línea

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

Para otros servicios, como los descritos anteriormente.

libre de uso
fuente
2
¿Podría incluir el código relevante y explicar cómo usarlo? (por ejemplo, ¿qué hace este código? Pegue el código "qué" y de dónde? No todo el mundo entiende ruso). Se desaconseja la respuesta de solo enlace, ya que si el enlace se pudre, entonces no queda nada útil. (Además, la divulgación es necesaria si tiene la intención de promocionar su blog. De lo contrario, podría suponerse como puramente promocional, también conocido como spam).
Andrew T.
1
Por favor, no seas un spammer , e incluir una mención clara, obvio que es su sitio, junto al propio enlace.
Nic Hartley