Как создать резервную копию Google Authenticator?


131

Я начинаю использовать Google Authenticator для все большего и большего количества вещей, но я только что понял, что, если я потеряю свой телефон или если мне понадобится стереть и восстановить его для установки новой прошивки, я потеряю все свои коды.

Есть ли способ их подкрепить, пожалуйста? Или какой-то запасной вариант, который означает, что я могу восстановить его на новом устройстве?

Спасибо


2
Я не понимаю ... Код должен использоваться только один раз, он не хранится где-либо на вашем телефоне, если вам нужно ввести код на сайте, вы должны использовать новый код, даже если вы уже положить один на этом сайте некоторое время назад.
Матье Харле

1
Спасибо, но, насколько я понимаю, если я потеряю свой телефон сейчас, я даже не смогу войти на сайт, не говоря уже о настройке нового кода Google Authenticator
Ник

5
Если вам нужен код для входа в систему, когда ваш телефон потерян, вы можете использовать один из методов резервного копирования (SMS, Call, напечатанные коды ...). Настоятельно рекомендуется настроить хотя бы один из этих альтернативных методов, чтобы преодолеть подобную ситуацию :)
Матье Харле,

3
Я всегда хотел раскрутить Google Authenticator, чтобы добавить эту функцию. Я надеюсь, что кто-то сделает это, прежде чем у меня будет время.
Майкл Кропат

5
@Shywim Google Authenticator не только для учетных записей Google. Есть много других служб, которые не имеют резервных кодов, SMS и т. Д.
Крис Харрисон

Ответы:


85

Следующий метод будет работать только с рутованными устройствами Android.

Linux:

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

Окна:

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

Обратите внимание, что папка на ПК уже должна существовать.

Это скопирует файлы базы данных аутентификатора с основными ключами, из которых генерируются одноразовые пароли, на ПК. Затем файл можно восстановить в том же месте на устройствах Android или прочитать с помощью средства просмотра базы данных sqlite для извлечения ключей.


10
При копировании на новое устройство убедитесь, что databasesпапка и databasesфайл имеют разрешения 755. Я попробовал 700, и GA продолжал падать. Вид относительно того, что это требует полных разрешений. Может быть, это требование АНБ.
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 Authenticator, поскольку вы можете создать список «резервных кодов», которые вы можете использовать для входа в систему, не запрашивая код аутентификации на той же странице, на которой вы настраиваете двухэтапную аутентификацию.

Зачем печатать или загружать резервные коды?

Резервные коды особенно полезны для людей, которые путешествуют, испытывают проблемы с получением SMS или голосовых вызовов или не могут использовать мобильное приложение Google Authenticator.

Рекомендация: вы должны распечатать или скачать резервные коды

Сохраните их в надежном месте (или распечатайте), и если вы потеряете свой телефон, вы можете использовать один из этих кодов, чтобы войти в свою учетную запись и настроить новое устройство с помощью приложения Authenticator.

Хотя это относится к двухэтапной аутентификации Google, любые другие сайты, которые вы настроили для использования приложения Google Authenticator, должны предлагать аналогичную опцию или другой способ получения кодов (например, Facebook поддерживает Google Authenticator, их собственное приложение и SMS-сообщения в качестве методов для получить коды).


3
Для сайтов, которые этого не предлагают, я бы сказал, что единственный вариант - использовать надежный уникальный пароль без двухэтапной аутентификации. Из интересов, какие сайты не предлагают вариант резервного копирования? Dropbox, Facebook, LastPass, Wordpress все делают (это другие сайты, с которыми я использую двухэтапную аутентификацию).
bmdixon

18
@Nick: Сохранение QR - кода , которые предоставляют Google или другие сайты и добавлять их обратно в Authenticator на другом устройстве делает работу. Я сделал это несколько раз сам. Однако вы должны убедиться, что время правильно и постоянно обновляется на обоих устройствах (если вы намерены продолжать использовать оба), иначе аутентификация может не пройти.
Андрис

7
«Одноразовый» пароль для двухфакторной аутентификации генерируется двумя способами: текущим временем и секретным ключом, разделяемым между сервером и приложением во время инициализации. В вашем случае секрет заключается в QR-коде. До тех пор, пока другой экземпляр приложения для проверки подлинности совместно использует один и тот же секрет и одно и то же время (один и тот же кадр 30-х годов), оба приложения будут генерировать одинаковые пароли.
Марк Плано-Лесай

2
Возможно, вы все равно захотите сделать резервную копию, когда собираетесь сбросить настройки своего телефона, поэтому вам не придется тратить час на посещение каждого сайта, для которого вы используете аутентификатор, ввода кода резервной копии и сброса настроек аутентификатора.
Пупено

4
Это верно только для двухэтапной аутентификации Google. Аутентификатор Google работает со многими другими сайтами, а на некоторых нет способа создать список резервных кодов. Некоторые используют SMS, некоторые дают вам единый одноразовый резервный код, а некоторые вообще не имеют никакой опции резервного копирования. Даже когда на каждом сайте есть опция резервного копирования, необходимость восстановления всех ключей при получении нового телефона - это огромная проблема.
Лоуренс Гонсалвес

21

Titanium Backup (ссылка на магазин Google Play) создаст резервную копию любого приложения для Android, включая Google Authenticator. Тем не менее, вы должны рутировать свой телефон, чтобы это было приемлемым вариантом.

Я также рекомендовал бы печатать резервные коды Google тоже. Это не совсем резервное копирование приложения Google Authenticator, но они позволят вам сбросить аутентификатор в случае необходимости. Это только поможет восстановить доступ к вашей учетной записи Google, хотя.

Резервное копирование приложения с помощью Titanium Backup, по моему мнению, является наиболее полным вариантом. Это спасло меня несколько раз.


Пришлось согласиться на это, потому что я не мог adb вытащить каталог баз данных, не мог скопировать в / sdcard и взять его - chmod 777 ничего не делал.
Лаури Элиас

«Импорт из Google Authenticator» - продано! Очень важная особенность миграции.
Adambean

Стоит упомянуть, чтобы не заново рутировать новый телефон. После резервного копирования нажмите на backup/restoreвкладку -> выберите Authenticatorприложение -> сдвиньте вправо для special featuresвкладки -> выберите Explore-> выберите accountsпод [DATABASE]. тогда вы получите всю учетную запись в вашем приложении в файле .csv. используйте secretстолбец, чтобы восстановить учетные записи на новый телефон.
Ян

19

У меня была точно такая же проблема.

Оказывается, что оригинальные токены (обычно представляемые пользователю в виде qrcodes) хранятся в базе данных sqlite в папке /data/data/com.google.android.apps.authenticator2/databases и могут быть извлечены из устройства.

Я автоматизировал и объяснил процесс восстановления здесь: https://github.com/dchapkine/extract-google-authenticator-credentials

Этот проект извлекает оригинальные токены, а затем создает веб-страницу с кодами qr, которые вы можете повторно сканировать на новом устройстве.

Не стесняйтесь вносить свой вклад.


1
Это только спасло меня от входа во все мои учетные записи 2FA и переключения телефона вручную. Большое спасибо!
Кова

Это именно то, что я искал. Быстрый и простой способ повторно отсканировать все QR-коды.
Харви

Спасибо за это, но мое устройство не рутировано. Правильно ли я понимаю, что у меня на руке ситуация «Поймай 22», когда рутирование моего устройства приведет к его очистке?
Urig

Просто гениально. Не работает на Windows 10 Bash, хотя.
TranslucentCloud

@urig, нет, рутирование некоторых телефонов не обязательно уничтожит данные приложений.
TranslucentCloud

16

Самый простой способ справиться с этим - сделать снимок экрана QR-кода всякий раз, когда вы устанавливаете новый Аутентификатор для сайта, и сохранять его в зашифрованном месте.

Если вам необходимо переустановить или добавить Authenticator для этого сайта на другой телефон, просто добавьте учетную запись в Authenticator, отсканировав QR-код на снимке экрана, как если бы вы настраивали новый сайт.

Прежде чем вы, негативисты, скажете, что это не сработает, да, это так, и вы МОЖЕТЕ иметь один и тот же Аутентификатор на нескольких устройствах.


2
Я хотел бы объяснить, почему это работает, и веб-сайт, и ваше устройство будут использовать простую строку символов, «код», установленную в QR-коде, и они будут бесконечно использовать ее для создания новых 6-значных кодов на основе текущая дата и время. Поэтому вам нужен только этот код для генерации новых кодов. Веб-сайт не имеет возможности проверить, кто или что создал 6-значный код, он должен быть только правильным.
Арье

15

Попробуйте Authenticator Plus , он поддерживает функцию резервного копирования / восстановления с синхронизацией между устройствами, если у вас есть телефон / планшет, это приложение синхронизирует все учетные записи между ними безупречно, оно даже поддерживает износ Android.

Также есть поддержка логотипов Скриншот Аутентификатор Плюс


13
Или вы можете использовать Authy ( authy.com ), который является бесплатным.
крышка

6
Authy выглядит потрясающе ! Гораздо лучше, чем у Google, за исключением того, что это не с открытым исходным кодом . Я могу жить с этим.
cregox

17
Разве это не похоже на плохую идею? Весь смысл протокола одноразовых планшетов на основе времени (TOTP aka rfc6238, который реализует authy / google authenticator и др.) Заключается в том, что вы и только у вас есть возможность генерировать коды. Если вы позволите какой-либо третьей стороне хранить эти коды, они станут огромной целью для атак, не говоря уже о необходимости доверять всем, кто работает с этой службой, и тому, как они ее реализовали.
antiduh

1
@antiduh, конечно, это вопрос безопасности против юзабилити, если вы больше озабочены безопасностью, это не идеально для вас, и вам действительно следует отказаться от программных решений и использовать аппаратные решения, такие как yubikey
Рияз Мохаммед Ибрагим

7

Вы можете сохранить QR-коды при настройке или обновлении 2FA. Вы можете сохранить QR, сделав скриншот. Или используя контекстное меню «сохранить изображение как», но это не всегда доступно. (Обязательно присвойте изображениям соответствующее имя с учетной записью и резервной копией в безопасном месте). Для восстановления просто отсканируйте QR-коды в Google Authenticator.


4

В качестве предисловия это подход к предварительной настройке MFA, чтобы всегда выполнять резервное копирование, а не восстановление или резервное копирование существующих кодов.

Я только что прошел этот процесс после того, как мой Nexus 6P перестал подключаться к данным, и мне пришлось заново настроить все свои MFA на Pixel. Я понял, что, если я потеряю свой телефон или сброслю заводские данные, меня бы полностью разорили.

Самое простое решение, которое я придумал, - это игнорировать настройку на основе QR-кода и просто использовать саму настройку на основе токена (это опция «вручную» в большинстве приложений аутентификатора). Каждый сервис, который я использовал до сих пор, позволяет вам выбирать настройку на основе токенов, а не QR.

Вместо того чтобы снимать скриншоты QR-кодов, маркировать их соответствующим образом, а затем шифровать их GPG и надежно их хранить где-то, я просто сохраняю токены в зашифрованном хранилище и настраиваю свой MFA вручную.

Я проверил, что вы можете настроить клоны аутентификатора, используя один и тот же ключ на независимых устройствах, работающих одновременно. Таким образом, пока вы надежно управляете токенами, вы можете настроить MFA на любом устройстве.

Я удовлетворен этим результатом, поскольку мне не нужно было ничего делать, кроме как перенастроить MFA (я должен был сделать это в любом случае в моих обстоятельствах) и просто добавить все токены в lastpass. Теперь я покрываю случай потери телефона и могу настроить другие устройства, если это будет необходимо.


2

Есть много советов для рутованных телефонов. Но не рекомендуется рутировать ваше устройство, если вы не хотите сделать его уязвимым. Двухфакторная аутентификация обеспечивает дополнительный уровень защиты, и с помощью рутинга вы сводите ее на нет, поскольку различные вирусы могут получить доступ к защищенным областям памяти.

Лишь небольшое количество сервисов предлагают резервные коды (особенно Google). Для этих сервисов вы должны сохранить резервные коды.

Лучшее решение - сохранить QR-коды (или секретные ключи) в момент регистрации токенов и хранить их в надежном месте. Затем, если вы потеряете свой телефон, вы можете восстановить токены в Google Authenticator на вашем новом устройстве.

Также вы можете использовать аппаратные токены. Они могут быть в форме брелока или кредитной карты. Посмотрите эту статью в блоге Protectimus (компании, в которой я работаю), чтобы получить больше информации о том, как сделать резервную копию Google Authenticator: как сделать резервную копию Google Authenticator или перенести его на новый телефон .

* Раскрытие информации : я работаю на сайте, указанном выше.


2
Добро пожаловать в Android энтузиастов . Мы заметили, что вы связаны с указанной ссылкой. Даже если вы указали свою принадлежность в своем профиле, также укажите это в своем ответе. Дальнейшее чтение: Как не быть спамером .
Андрей Т.

@AndrewT. Готово.
iBug

1

Следующий метод будет работать только на устройствах с root-доступом. Этот метод более полезен для не очень разбирающихся в технологиях людей или таких, как я, которые не хотят тратить время на установку Android SDK + JDK с нуля просто для запуска команды adb.

Итак, вот оно:

  1. Загрузите и установите любое приложение «Root explorer» из магазина Google Play. Я использую популярный и бесплатный файловый менеджер FX с его бесплатным аддоном корневого доступа FX. Вы также можете использовать другие. Это приложение позволяет нам получить доступ к системе Android от имени пользователя root.

  2. После того, как вы откроете проводник в системном корне> щелкните папку «data»> щелкните папку «data» (внутри другой папки данных)> скопируйте папку с именем com.google.android.apps.authenticator2> выход из корневой папки системы> откройте обычное место основного хранилища / хранилища SD и вставьте Папка здесь.

  3. Подключите устройство Android к ПК и сделайте резервную копию папки на защищенный USB / внешний жесткий диск.

Вот и все. Теперь, когда вам нужно переустановить прошивку / купить новый телефон, просто следуйте приведенным выше инструкциям и скопируйте эту папку в тот же каталог, как только вы установили приложение Google Authenticator.

ИЛИ вы можете использовать бесплатный графический редактор SQLite с открытым исходным кодом, например «SQLite Database Browser Portable», чтобы открыть файл «database» в папке «com.google.android.apps.authenticator2». На вкладке «Просмотр данных» вы можете увидеть ключ и имя, соответствующее ключу, чтобы вы могли вручную ввести ключ в приложение Google Authenticator.


@Izzy Отредактировал субъективную часть и спасибо за помощь :) Метод выглядит просто грандиозно, но экономит больше всего времени для обычных людей, которые не были бы разработчиками Android. Я на самом деле посмотрел на эту ветку, прежде чем найти решение самостоятельно. Резервные коды - недоступно для большинства сервисов (работает только в Google). Authenticator Plus - это платное приложение. Резервное копирование титана может иметь проблемы с совместимостью. Команда ADB pull требует, чтобы вы установили Android SDK + JDK. Мой метод так же прост, как копирование и вставка папки.
Павин Джозеф

Спасибо за редактирование, Павин! Что касается вашего комментария, я должен частично не согласиться: я никогда не устанавливал SDK + JDK, но все еще использую кучу функций ADB (особенно с моим собственным инструментом " Adebar " для документации по устройству, сценариями резервного копирования / восстановления и т. Д. ). В Linux мне просто нужен adbисполняемый файл для этого (в Windows два .dllфайла требуются дополнительно). Подробнее см. Есть ли минимальная установка ADB?
Иззи

PS: были ли когда-нибудь проблемы с разрешением? Копирование каталога данных приложения вручную на другое устройство может привести к такому. Помните, что для правильного доступа к файлам права доступа и владелец должны совпадать. При установке каждому приложению назначается уникальная пара UID / GID. Права доступа к файлам имеют флаги для владельца / группы / других. Обычно данные приложения имеют максимум -rw-rw--(владелец и группа читают / пишут, другие ничего). Так что, если есть несоответствие в праве собственности, у вас могут быть проблемы (и приложение может работать неправильно).
Иззи

Да, это работает большую часть времени. Но если этого не произойдет, вы можете использовать любой редактор SQLite, чтобы открыть и просмотреть секретный ключ из файла базы данных; затем добавьте учетную запись в Google Authenticator, используя ключ.
Павин Иосиф

Ах. Лучшее решение: если это не работает, проверьте и отрегулируйте разрешения. Перед перезаписью /data/data/com.google.android.apps.authenticator2сделайте ls -lна нем и проверьте владение / разрешения. После копирования используйте chownи chmodисправить это обратно.
Иззи

1

На рутированном телефоне вы можете использовать файловый менеджер «Amaze» ( https://play.google.com/store/apps/details?id=com.amaze.filemanager&hl=ru ). Перейдите в корневой каталог /data/data/com.google.android.apps.authenticator2/database. Откройте файл базы данных как базу данных. Выберите учетные записи. У вас будет 3 столбца: _id, email и secret. Скопируйте «секретное» значение. Когда вам нужно восстановить просто добавьте, выберите «Введите предоставленный ключ», дайте ему имя и вставьте значение.


0

Как я испытал то же самое только некоторое время назад. Когда вы будете входить в свою учетную запись, вы получите страницу для ключа, чтобы поставить 6-значный код. В этом месте вы можете изменить второй ключ и ввести номер телефона, если у вас уже есть какой-либо проверенный номер. А для большего резервного копирования вы можете выбрать другие компьютеры в качестве доверенных. Таким образом, они не будут спрашивать код второго шага на этих компьютерах.


0

Вот ссылка на простой скрипт Python на моем сайте: http://usefree.com.ua/google-authenticator-backup/

Вы просто вставляете свой код и запускаете его в среде Python.

Как это устроено:

При установке и настройке двухфакторной проверки подлинности с помощью Google Authenticator, можно не только сканировать QR-код, но получить код, например, для Google Mail мы получаем: csnji4rfndisoh323fdsioah3u2iodso. Для генерации TOTP на вашем компьютере с Python IDLE вы можете определить эту функцию:

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
Не могли бы вы включить соответствующий код и объяснить, как его использовать? (например, что делает этот код? Вставьте «какой» код и откуда? Не все понимают русский язык). Ответ только на ссылку не рекомендуется, так как если ссылка гниет, то ничего полезного не останется. (Кроме того, раскрытие необходимо, если вы намереваетесь продвигать свой блог. В противном случае его можно рассматривать как исключительно рекламный спам).
Андрей Т.

1
Пожалуйста , не будьте спамером и добавьте четкое и очевидное упоминание о том, что это ваш сайт, рядом с самой ссылкой.
Ник Хартли,
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.