지금은 점점 더 많은 일에 Google OTP를 사용하기 시작했지만 휴대 전화를 잃어 버리거나 새 펌웨어를 설치하기 위해 휴대 전화를 지우고 복원해야하는 경우 모든 코드가 손실된다는 것을 알게되었습니다.
어쨌든 그들을 백업 할 수 있습니까? 아니면 어떤 종류의 폴백으로 인해 새로운 장치로 복원 할 수 있습니까?
감사
지금은 점점 더 많은 일에 Google OTP를 사용하기 시작했지만 휴대 전화를 잃어 버리거나 새 펌웨어를 설치하기 위해 휴대 전화를 지우고 복원해야하는 경우 모든 코드가 손실된다는 것을 알게되었습니다.
어쨌든 그들을 백업 할 수 있습니까? 아니면 어떤 종류의 폴백으로 인해 새로운 장치로 복원 할 수 있습니까?
감사
답변:
다음 방법은 루팅 된 Android 기기에서만 작동합니다.
리눅스 :
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
PC의 폴더는 이미 존재해야합니다.
그러면 일회용 암호가 생성 된 기본 키가있는 인증 자 데이터베이스 파일이 PC로 복사됩니다. 그런 다음 파일을 Android 디바이스에서 동일한 위치로 복원하거나 sqlite 데이터베이스 뷰어로 읽고 키를 추출 할 수 있습니다.
databases
폴더와 databases
파일에 모두 755 권한이 있는지 확인하십시오 . 700을 시도했는데 GA가 계속 충돌했습니다. 전체 권한이 필요하다는 것에 관한 종류. 아마도 그것은 NSA의 요구 사항 일 것입니다.
adb root
전에해야합니다. 그렇지 않으면remote object '/data/data/com.google.android.apps.authenticator2/databases' does not exist
2 단계 인증을 구성 하는 동일한 페이지 에서 인증 코드를 요구하지 않고 로그인하는 데 사용할 수있는 '백업 코드'목록을 만들 수 있으므로 Google OTP 앱 / 데이터를 백업 할 필요가 없습니다 .
백업 코드를 인쇄 또는 다운로드해야하는 이유는 무엇입니까?
백업 코드는 여행 중이거나 SMS 또는 음성 전화 수신에 문제가 있거나 Google OTP 모바일 앱을 사용할 수없는 사용자에게 특히 유용합니다.
권장 사항 : 백업 코드를 인쇄하거나 다운로드해야합니다
안전한 곳에 보관하거나 인쇄하십시오. 휴대 전화를 분실 한 경우이 코드 중 하나를 사용하여 계정에 로그인하고 Authenticator 앱으로 새 장치를 설정할 수 있습니다.
이것은 Google의 2 단계 인증에 적용되지만 Google OTP 앱을 사용하도록 구성한 다른 사이트는 유사한 옵션 또는 코드를 수신하는 다른 방법을 제공해야합니다 (예 : Facebook은 Google OTP를 지원하는 방법, 자체 앱 및 SMS를 코드 수신).
티타늄 백업 (Google Play 스토어 링크) 은 Google OTP를 포함한 모든 Android 앱을 백업합니다. 그러나 이것이 가능한 옵션이 되려면 전화기를 루팅해야합니다.
Google 백업 코드도 인쇄하는 것이 좋습니다. 이것은 Google OTP 앱을 백업하지는 않지만 필요한 경우 인증자를 재설정 할 수 있습니다. 그래도 Google 계정에 다시 액세스하는 데 도움이됩니다.
Titanium Backup으로 앱을 백업하는 것이 가장 완벽한 옵션이라고 생각합니다. 그것은 여러 번 나를 구해주었습니다.
backup/restore
탭을 클릭 -> Authenticator
앱 special features
선택 Explore
-> 탭 오른쪽으로 이동 -> 선택 -> accounts
아래에서 선택하십시오 [DATABASE]
. 그런 다음 앱의 모든 계정을 .csv 파일로 가져옵니다. secret
열을 사용하여 계정을 새 전화로 복원하십시오.
나는 똑같은 문제가 있었다.
원래 토큰 (보통 qrcodes로 사용자에게 표시됨)은 /data/data/com.google.android.apps.authenticator2/databases 폴더 내의 sqlite 데이터베이스에 저장되며 장치에서 추출 할 수 있습니다.
https://github.com/dchapkine/extract-google-authenticator-credentials 에서 복구 프로세스를 자동화하고 설명했습니다.
이 프로젝트는 원본 토큰을 추출한 다음 새 장치에서 다시 스캔 할 수있는 qrcodes가 포함 된 웹 페이지를 생성합니다.
부담없이 참여하십시오.
이를 처리하는 가장 쉬운 방법은 사이트에 새 인증기를 설정할 때마다 QR 코드의 스크린 샷을 찍어 암호화 된 위치에 저장하는 것입니다.
해당 사이트의 OTP를 다시 설치하거나 다른 전화기에 추가해야하는 경우 새 사이트를 설정하는 것처럼 스크린 샷의 QR 코드를 스캔하여 OTP에서 계정을 추가하면됩니다.
부정 행위자들이 이것이 효과가 없다고 말하기 전에는 그렇습니다. 여러 장치에서 동일한 인증자를 가질 수 있습니다.
보십시오 인증 자 플러스 기기에서 동기화와 기능을 복원 /이 백업을 지원합니다, 당신은 전화 / 태블릿이있는 경우,이 응용 프로그램은 심지어 안드로이드 마모를 지원, 완벽하게 그 사이의 모든 계정을 동기화합니다.
로고도 지원합니다
서문으로서 이것은 기존 코드를 복구하거나 백업하지 않고 항상 백업되도록 MFA를 미리 구성하는 방법입니다.
Nexus 6P가 데이터 연결을 중단 한 후이 과정을 밟아 픽셀에서 모든 MFA를 다시 설정해야했습니다. 전화를 잃어 버리거나 공장 초기화를하면 완전히 질식했다는 것을 깨달았습니다.
내가 찾은 가장 간단한 해결책은 QR 코드 기반 설정을 무시하고 토큰 기반 설정 자체를 사용하는 것입니다 (대부분의 인증 자 앱에서 "수동"옵션 임). 지금까지 사용한 모든 서비스를 통해 QR 대신 토큰 기반 설정을 선택할 수 있습니다.
QR 코드의 스크린 샷을 찍는 데 어려움을 겪지 말고 적절하게 레이블을 붙인 다음 GPG를 암호화하고 어딘가에 안전하게 저장하십시오. 토큰을 암호화 된 볼트에 저장하고 수동으로 MFA를 설정합니다.
동시에 실행되는 독립 장치에서 동일한 키를 사용하여 인증 자의 복제본을 설정할 수 있음을 확인했습니다. 따라서 토큰을 안전하게 제어하는 한 모든 장치에서 MFA를 구성 할 수 있습니다.
MFA를 재구성하는 것 (어쨌든이 상황 에서이 작업을 수행해야 함) 이상을 수행 할 필요가 없으며 모든 토큰을 lastpass에 추가하기 만하면이 결과에 만족합니다. 이제 전화가 손실되는 경우를 다루고 필요한 경우 다른 장치를 구성 할 수 있습니다.
루팅 된 전화에는 많은 조언이 있습니다. 그러나 장치를 취약하게 만들지 않으려면 장치를 루팅하지 않는 것이 좋습니다. 2 단계 인증은 추가 보호 계층을 제공하며, 다른 바이러스가 보호 된 메모리 영역에 액세스 할 수 있기 때문에 루팅하면이를 보호 할 수 있습니다.
소량의 서비스 만 백업 코드 (특히 Google)를 제공합니다. 이러한 서비스의 경우 백업 코드를 저장해야합니다.
가장 좋은 해결책은 토큰 등록시 QR 코드 (또는 비밀 키)를 저장하고 안전한 장소에 보관하는 것입니다. 그런 다음 휴대 전화를 분실하면 새 기기의 Google OTP에서 토큰을 복원 할 수 있습니다.
또한 하드웨어 토큰을 사용할 수 있습니다. 열쇠 고리 또는 신용 카드 형태 일 수 있습니다. Google OTP 를 백업하는 방법 : Google OTP 를 백업하거나 새 전화로 전송 하는 방법에 대한 자세한 내용은 Protectimus (내 회사)의 블로그에서이 기사를 참조하십시오 .
* 공개 : 위에 링크 된 웹 사이트에서 일합니다.
다음 방법은 루팅 된 Android 기기에서만 작동합니다. 이 방법은 adb 명령을 실행하기 위해 처음부터 Android SDK + JDK를 설치하는 데 시간을 낭비하고 싶지 않은 기술에 정통하지 않은 사람이나 나와 같은 사람들에게 더 유용합니다.
그래서 여기 있습니다 :
Google Play 스토어에서 "루트 탐색기"앱을 다운로드하여 설치하십시오. 무료 FX 루트 액세스 애드온과 함께 인기 있고 무료 FX 파일 탐색기를 사용합니다. 다른 사람도 사용할 수 있습니다. 이 앱을 사용하면 루트 사용자로 Android 시스템에 액세스 할 수 있습니다.
시스템 루트에서 파일 탐색기를 열고> "데이터"폴더 클릭> "데이터"폴더 클릭 (다른 데이터 폴더 내부)> 이름이 지정된 폴더 복사 com.google.android.apps.authenticator2
> 시스템 루트 폴더 종료> 일반 주 저장 장치 / SD 저장 공간 열기 및 붙여 넣기 여기 폴더
안드로이드 장치를 PC에 연결하고 폴더를 안전한 USB / 외장 HDD에 백업하십시오.
그게 다야. 이제 펌웨어를 다시 설치하거나 새 휴대 전화를 구입해야 할 때마다 위 단계를 따라 Google Authenticator 앱을 설치 한 후 해당 폴더를 정확히 동일한 디렉토리에 복사하십시오.
또는 "SQLite Database Browser Portable"과 같은 무료 오픈 소스 SQLite GUI 편집기를 사용하여 "com.google.android.apps.authenticator2"폴더에서 "databases"파일을 열 수 있습니다. '데이터 찾아보기'탭에서 키에 해당하는 키와 이름을 볼 수 있으므로 Google OTP 앱에 키를 수동으로 입력 할 수 있습니다.
adb
실행 .dll
파일이 필요 합니다 (Windows에서는 두 개의 파일이 추가로 필요합니다). 자세한 내용 은 ADB의 최소 설치가 있습니까?를
-rw-rw--
(소유자 및 그룹 읽기 / 쓰기, 기타는 없음)을 갖습니다 . 따라서 소유권이 일치하지 않으면 문제가있을 수 있습니다 (앱 이 잘못 작동 할 수 있음 ).
/data/data/com.google.android.apps.authenticator2
,을 ls -l
그것과 소유권 / 권한을 확인하십시오. 복사 한 후, 사용 chown
하고 chmod
다시 그것을 해결하기 위해.
루팅 된 휴대 전화에서는 'Amaze'파일 관리자 ( https://play.google.com/store/apps/details?id=com.amaze.filemanager&hl=ko )를 사용할 수 있습니다 . 루트 /data/data/com.google.android.apps.authenticator2/database 디렉토리로 이동하십시오. 데이터베이스 파일을 데이터베이스로여십시오. 계정을 선택하십시오. _id, email 및 secret 3 개의 열이 있습니다. "비밀"값을 복사하십시오. 추가로 복원해야 할 경우 "제공된 키 입력"을 선택하고 이름을 지정한 후 값을 붙여 넣으십시오.
내 웹 사이트의 간단한 Python 스크립트에 대한 링크는 다음과 같습니다. http://usefree.com.ua/google-authenticator-backup/
코드를 붙여넣고 Python 환경에서 실행하면됩니다.
작동 방식 :
Google OTP를 사용하여 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"
주석을 해제하고 유휴 상태에서 전화
totpgen ()
당신은 당신의 TOTP를 얻을 것이다!) 서비스 btc-e 라인을 사용하려고
secret = base64.b32decode("DHSJHDW89E8DFUS98RIO23J390EFU234IR90WEUIF903DMSKAKDS====")
다른 서비스의 경우-위에서 설명한 것과 같습니다.