블로그 목록

TOTP otpauth URI 구조와 2단계 인증을 백업하는 방법

TOTP 백업은 화면의 6자리 코드를 저장하는 일이 아니라 서비스가 허용한 방식으로 등록용 otpauth URI의 공유 시크릿 또는 복구 코드를 보호하는 일입니다. QR이나 URI를 볼 수 있는 사람은 같은 코드를 만들 수 있으므로 암호화된 저장소에 두고 새 앱 등록을 검증한 뒤 노출됐다면 시크릿을 재발급하세요.

TOTP 앱은 서버에서 매번 코드를 받지 않습니다. 앱과 서비스가 같은 공유 시크릿과 시간을 입력으로 계산하므로 등록 QR은 비밀번호에 준하는 민감 정보입니다.

먼저 보는 핵심 요약

  • otpauth URI는 유형, 계정 라벨, Base32 시크릿과 issuer·algorithm·digits·period 같은 매개변수를 담을 수 있습니다.
  • 6자리 현재 코드는 짧은 시간 뒤 바뀌므로 백업 수단이 아니며 공유 시크릿과 서비스 복구 코드를 보호해야 합니다.
  • 새 기기에 추가한 뒤 실제 로그인으로 검증하고, 유출 가능성이 있으면 기존 등록을 해제해 새 시크릿으로 다시 설정합니다.

otpauth URI 안에는 어떤 정보가 들어 있나요?

일반적인 TOTP URI는 otpauth://totp/로 시작하고 라벨에 발급자와 계정을 표시합니다. query에는 Base32로 표현한 secret이 핵심으로 들어가며 issuer, algorithm, digits, period가 추가될 수 있습니다. 라벨은 화면 식별용이지만 secret은 코드 생성 키이므로 URI 전체를 민감 정보로 다뤄야 합니다.

왜 6자리 코드를 저장하면 백업이 되지 않나요?

RFC 6238의 TOTP는 공유 키와 현재 시간을 일정한 time-step으로 나눈 값을 사용해 짧게 유효한 코드를 만듭니다. 화면의 코드는 다음 구간에 바뀌므로 기기 이전에 쓸 수 없습니다. 복구에는 서비스가 발급한 복구 코드, 추가 보안 키 또는 허용된 시크릿 이전 방식이 필요합니다.

QR 이미지와 URI를 어디에 보관해야 하나요?

일반 사진첩, 메신저, 이메일 초안과 동기화 클립보드는 자동 업로드나 공유로 노출 범위가 커질 수 있습니다. 서비스가 시크릿 내보내기를 허용한다면 접근 통제와 암호화가 되는 비밀번호 관리 도구 등 별도 저장소를 사용하고, 복구 코드는 다른 안전한 위치에 보관하세요. 조직 계정은 보안 정책을 우선합니다.

새 인증 앱으로 옮긴 뒤 무엇을 확인하나요?

기기 시계를 자동 동기화하고 issuer·계정이 올바른지 확인한 뒤 새 앱의 코드로 실제 로그인합니다. 기존 앱을 삭제하기 전에 복구 코드도 확인하세요. 등록 QR을 화면 캡처하거나 온라인 도구에 노출했다면 복사본을 지우는 것으로 끝내지 말고 서비스에서 TOTP를 재등록해 새 시크릿을 발급받는 것이 안전합니다.

단계별로 확인하는 방법

  1. 서비스의 복구 수단 확인하기

    복구 코드, 추가 인증 수단과 공식 기기 이전 기능을 먼저 준비하고 조직 보안 정책을 확인합니다.

  2. otpauth 항목 점검하기

    허용된 등록 화면에서 issuer, 계정, secret, digits와 period를 확인하되 URI를 외부 서비스에 보내지 않습니다.

  3. 새 인증 앱에서 등록·검증하기

    새 기기에 직접 등록하고 시계를 동기화한 뒤 실제 로그인으로 코드가 받아들여지는지 확인합니다.

  4. 기존 등록과 노출 흔적 정리하기

    이전 기기를 해제하고 불필요한 QR 복사본을 지우며 노출 가능성이 있으면 TOTP를 재등록합니다.

판단 기준을 한눈에 비교하기

확인 항목판단 기준
secretTOTP를 생성하는 공유 키로 URI에서 가장 민감하며 노출되면 재발급해야 합니다.
issuer·account인증 앱에서 어느 서비스와 계정인지 구분하는 라벨 정보입니다.
digits·period출력 코드 자릿수와 시간 구간을 나타내며 서비스와 앱의 값이 같아야 합니다.
복구 코드TOTP 기기를 잃었을 때 쓰는 별도 비상 수단으로 시크릿과 다른 장소에 보관합니다.

실행 전 체크리스트

  • 서비스가 제공하는 공식 복구 코드와 이전 방법을 확인했나요?
  • QR 이미지나 otpauth URI를 메신저·사진첩에 남기지 않았나요?
  • 새 앱의 코드로 실제 로그인까지 검증했나요?
  • 시크릿이 노출됐을 가능성이 있다면 TOTP를 재등록했나요?

주의할 점

연결 도구는 Base32 시크릿을 입력받아 새 otpauth URI와 코드를 만들 뿐, 기존 QR 이미지를 읽거나 계정에서 시크릿을 추출하지 않습니다. 실제 계정의 URI나 시크릿을 공개 웹 도구에 붙여 넣지 말고 테스트 전용 키만 사용하세요. 실제 키가 노출되면 즉시 서비스에서 2단계 인증을 다시 등록해야 합니다.

함께 보면 좋은 글

자주 묻는 질문

otpauth URI의 secret은 비밀번호와 같은가요?

로그인 비밀번호와는 다른 공유 키지만 이를 가진 사람은 유효한 TOTP 코드를 생성할 수 있습니다. 비밀번호에 준하는 민감도로 보호해야 합니다.

현재 보이는 6자리 OTP를 메모하면 기기 분실 때 쓸 수 있나요?

아닙니다. TOTP 코드는 짧은 시간 구간에만 유효합니다. 서비스가 별도로 발급한 복구 코드나 등록된 다른 인증 수단을 준비하세요.

QR을 새 휴대폰으로 한 번 촬영하면 이전이 끝나나요?

등록 후 새 앱의 코드로 실제 로그인을 검증하고 복구 수단을 확인해야 합니다. 이전 기기를 없애기 전에 새 기기가 정상 동작하는지 확인하세요.

QR 스크린샷을 삭제하면 노출된 시크릿도 안전해지나요?

이미 다른 기기나 클라우드에 복사됐다면 삭제만으로 회수할 수 없습니다. 노출 가능성이 있으면 서비스에서 TOTP 등록을 해제하고 새 시크릿으로 다시 설정하세요.

근거와 출처

도구에서 직접 확인하기

설명한 기준을 실제 값에 적용하려면 TOTP 코드·URI 생성기에서 작은 샘플부터 확인하세요. 원본과 결과를 나란히 비교한 뒤 실제 사용 환경에 적용하는 순서가 가장 안전합니다.

이 글은 알파카랩스 Utils개발 도구 도구와 함께 보는 정보성 가이드입니다. 규격과 외부 서비스 정책은 바뀔 수 있으므로 중요한 결정 전에는 연결된 공식 출처의 최신 내용을 다시 확인하세요.

무료 도구 둘러보기