구글 OTP는 사용자와 서버가 공유한 비밀 키와 현재 시간을 기반으로 매 30초마다 새로운 6자리 인증 코드를 생성하여 2단계 인증을 수행하는 방식이다.
OTP는 One Time Password의 약자로 일회성 암호를 뜻하며, 구글 OTP는 TOTP(Time-based One Time Password) 알고리즘을 사용한다.
🔐 Shared Secret (비밀 키):
otpauth://totp/{issuer}:{account}?secret={secret}&issuer={issuer}&algorithm=SHA1&digits=6&period=30
✅ QR코드 URI 각 구성 요소 설명
항목 | 설명 |
---|---|
otpauth://totp/ | TOTP 알고리즘 사용 명시 |
{issuer}:{account} | 앱에 표시될 서비스 이름(issuer)과 계정 식별자(account) |
secret | 핵심! Base32 인코딩된 공유 비밀 키 |
issuer | 서비스 이름 (예: Google, Github 등) |
algorithm | HMAC 알고리즘 (기본: SHA1, 옵션: SHA256, SHA512) |
digits | OTP 자리수 (보통 6자리) |
period | OTP 갱신 주기 (기본 30초) |
⏱ 시간(Time):
🔁 TOTP 알고리즘:
app(instagram)은 Google Authenticator에 처음 등록할 때 공유한 시크릿 키를 가지고 현재 시간을 기준으로 6자리 인증 코드를 가지게 된다.