2단계 인증
2단계 인증(2FA)은 비밀번호에 더해 휴대폰 인증 앱 코드처럼 '나만 가진 것'으로 한 번 더 확인하는 로그인 방식이에요. 비밀번호가 새도 코드가 없으면 들어올 수 없어요.
목차 보기
2단계 인증(2FA, Two-Factor Authentication)은 비밀번호에 더해 "나만 가진 것"으로 한 번 더 확인하는 로그인 방식이에요. 현관문 열쇠(비밀번호)에 도어락 번호(휴대폰 코드)를 하나 더 다는 것과 같아요. 열쇠를 잃어버려도 번호를 모르면 못 들어와요.
한눈에 보기
- 아는 것(비밀번호), 가진 것(휴대폰·보안키), 몸(지문·얼굴) 중 두 가지를 같이 확인해요.
- 인증 앱의 6자리 코드는 인터넷 없이도 맞아요. 휴대폰과 서버가 같은 비밀값과 같은 시각으로 계산하기 때문이에요. 직접 계산해 봤어요.
- 켤 때 백업 코드를 꼭 따로 보관하세요. 폰을 잃어버렸을 때 유일한 열쇠가 돼요.
2단계 인증은 왜 켜야 해요?
다른 사이트에서 새어 나간 비밀번호를 여기저기 대입해 보는 공격이 흔해요. 같은 비밀번호를 여러 곳에 쓰면 한 곳이 털릴 때 다 같이 열려요. 2단계 인증을 켜 두면 비밀번호가 맞아도 내 휴대폰 코드가 없으니 거기서 막혀요.
어떤 방법이 있어요?
| 방법 | 어떻게 | 안전도·주의 |
|---|---|---|
| 문자(SMS)·음성 코드 | 휴대폰 번호로 코드를 받아요 | 편하지만 유심 복제·가로채기 위험이 있어요. 미국 NIST 지침도 전화망 인증을 '제한적'으로 분류해요 |
| 인증 앱(OTP 앱) | 구글 OTP 같은 앱이 30초마다 6자리 코드를 만들어요 | 널리 권해요. 폰을 바꿀 때 옮기기를 꼭 챙겨야 해요 |
| 푸시 승인 | 앱에 뜬 알림에서 '승인'을 눌러요 | 편해요. 내가 로그인하지 않았는데 뜬 알림은 절대 누르지 마세요 |
| 보안키·패스키 | USB 열쇠나 기기의 지문·얼굴로 확인해요 | 가짜 사이트에 속아도 넘겨줄 코드가 없어 피싱에 강해요 |
| 이메일 코드 | 메일로 코드를 받아요 | 메일이 털리면 같이 털려요. NIST 는 이 용도로 쓰지 말라고 해요 |
인증 앱 코드는 어떻게 맞아요? 직접 계산해 봤어요
인증 앱은 TOTP(시간 기반 일회용 비밀번호)라는 표준을 따라요. 처음 QR 코드를 찍을 때 휴대폰과 서버가 같은 비밀값을 나눠 가져요. 그다음부터는 둘 다 "비밀값 + 지금 시각(30초 단위)"을 같은 공식에 넣어 6자리를 만들어요. 그래서 인터넷이 없어도 같은 숫자가 나와요.
2026년 10월 29일, 표준 문서(RFC 6238)에 실린 시험용 비밀값으로 파이썬 기본 기능만 써서 계산해 봤어요.
import hmac, hashlib, struct
def totp(secret, t, digits=6, step=30):
counter = t // step # 30초마다 1씩 늘어나는 숫자
h = hmac.new(secret, struct.pack(">Q", counter), hashlib.sha1).digest()
o = h[-1] & 0x0F
code = (struct.unpack(">I", h[o:o+4])[0] & 0x7FFFFFFF) % (10 ** digits)
return str(code).zfill(digits)
secret = b"12345678901234567890" # RFC 6238 시험용 값(실제 계정 아님)
시각(초) 8자리 6자리 59 94287082 287082 1111111109 07081804 081804 1234567890 89005924 005924 60초와 89초(같은 30초 칸): 359152 · 359152 → 90초가 되면 969429
8자리 결과는 RFC 6238 의 시험값 표와 똑같았어요. 같은 30초 칸 안에서는 같은 코드, 칸이 바뀌면 전혀 다른 코드가 나와요. 코드가 30초마다 바뀌는 이유예요. 계산 안에는 해시(HMAC-SHA1)가 들어 있어요.
켜는 순서
- 휴대폰에 인증 앱을 깔아요.
- 사이트의 보안 설정에서 2단계 인증을 켜고, 화면의 QR 코드를 앱으로 찍어요.
- 앱에 뜬 6자리를 사이트에 넣어 연결을 확인해요.
- 백업 코드를 받아 종이나 안전한 곳에 따로 보관해요. 사진으로 찍어 클라우드에 두는 건 피하세요.
막힐 때 해결 순서
| 증상 | 원인 | 해결 |
|---|---|---|
| 코드가 계속 틀렸다고 나와요 | 휴대폰 시각이 몇십 초 어긋남 | 휴대폰 날짜·시간을 '자동'으로 맞춰요 |
| 폰을 바꿨어요 | 비밀값이 옛 폰에만 있음 | 바꾸기 전에 앱의 내보내기·계정 옮기기를 해요. 이미 바꿨다면 백업 코드로 로그인 뒤 다시 연결해요 |
| 폰을 잃어버렸어요 | 가진 것이 사라짐 | 백업 코드로 로그인해서 2단계 인증을 새 폰으로 다시 걸어요 |
| 백업 코드도 없어요 | 되찾을 열쇠가 없음 | 사이트 고객센터의 본인 확인 절차를 밟아야 해요(시간이 걸려요) |
자주 하는 오해
- 2단계 인증이 있으면 비밀번호는 아무거나 써도 된다. 아니에요. 두 겹 다 튼튼해야 해요. 사이트마다 다른 비밀번호를 쓰세요.
- 코드를 물어보는 전화·문자는 회사에서 온 것이다. 어떤 회사도 인증 코드를 말해 달라고 하지 않아요. 코드를 알려 주는 순간 2단계 인증이 무너져요.
- OTP 와 2단계 인증은 같은 말이다. OTP 는 2단계 인증에 쓰는 수단 중 하나예요.
퓨쳐인프라에서는
퓨쳐인프라 콘솔 로그인은 이메일·비밀번호 다음에 인증 앱에 표시된 코드를 넣는 2단계 인증을 쓸 수 있어요. 휴대폰이 없을 때는 백업 코드로도 들어올 수 있어요. 서버·결제가 걸린 계정이니 켜 두는 걸 권해요.
AI 에이전트(Claude Code 등)를 연결할 때도 사람이 브라우저에서 직접 로그인하고 '허용'을 눌러요. 비밀번호·인증 코드는 AI 에게 맡기지 않는 게 원칙이에요(OAuth 참고).
자주 묻는 질문
2단계 인증과 2차 인증, 다중 인증은 같은 말이에요?
거의 같은 뜻으로 써요. 두 가지 이상으로 확인하면 다중 인증(MFA), 그중 딱 두 가지면 2단계 인증(2FA)이라고 불러요.
인증 앱 코드는 왜 6자리예요?
외우기 쉽고 30초 안에 맞히기는 어려운 길이라서 많이 써요. 표준은 6자리 이상을 쓰게 하고, 8자리를 쓰는 곳도 있어요.
문자 인증만 있어도 켜는 게 낫나요?
네. 아무것도 없는 것보다 훨씬 나아요. 고를 수 있다면 인증 앱이나 패스키를 쓰세요.
패스키는 2단계 인증과 뭐가 달라요?
패스키는 비밀번호 대신 기기와 지문·얼굴로 로그인하는 방식이에요. 기기(가진 것)와 몸(생체)을 한 번에 확인해서 그 자체로 두 겹 효과가 있어요.
관련 용어
이 글의 숫자 출처
- 계산 우리 PC(Python 3.12.8, 표준 라이브러리만), 2026-10-29. 시험 비밀값은 RFC 6238 부록의 값이에요.
- TOTP 표준 RFC 6238
- 인증 방법 지침 NIST SP 800-63B-4
- 글쓴이는 서순명(솔리드그루 이사)이에요. 솔리드그루는 국내 IDC 에서 클라우드 서버·앱 호스팅·AI API 서비스 퓨쳐인프라를 운영해요. 2026-10-29에 썼어요.
- 운영사는 솔리드그루예요. 사업자등록번호 875-44-00335 · 서울특별시 구로구 디지털로29길 38, 7층 707호 · 전화 02-6933-6229 · support@futureinfra.ai · 고객센터 · 이용약관
- 한계도 있어요. 코드 계산 예시는 RFC 6238 에 실린 시험용 비밀값으로 돌린 거예요. 실제 계정의 비밀값은 절대 남에게 보여 주면 안 돼요.
- 이해관계를 밝혀 둬요. 퓨쳐인프라 콘솔 로그인 방식을 안내했어요(자사 서비스).
연관 서비스
많이 본 글
-
블로그
도메인 구매 사이트 추천 2026 — 가비아·후이즈 등 15곳 갱신·이전비 비교
같은 .co.kr 도 등록업체 15곳의 3년 값이 3.8만~8.6만 원이에요(11월 3일 KRNIC 표). 갱신가·이전비·해외 업체 조건, 11월 인상 뒤 가비아 실제 화면, 구매처 확인과 기관이전까지 정리했어요. -
블로그
무료 도메인 사이트 추천 2026 — 내도메인.한국·DuckDNS 발급 방법
내도메인.한국·DuckDNS 처럼 계속 무료인 주소 10곳을 11월 3일 서울에서 다시 재고(6곳 6ms 안), 발급 순서·구글·네이버 무료 주소·'첫해 무료'의 2년째 값까지 정리했어요. -
블로그
클로드 MCP·Gemini MCP 연동 방법 2026, MCP 서버 9곳
클로드 MCP(데스크톱·Claude Code)와 Gemini MCP 연동(Gemini CLI·안티그래비티·Gemini 앱·API) 등 9곳의 MCP 서버 연결법을 공식 문서로 정리했어요. 원격 57ms 실측과 오류 해결까지. -
블로그
Gemini 3.9 Flash 나왔나요? 지금 최신은 3.8 Flash — 3.7과 직접 잰 속도·비용
2026년 9월 22일 기준 Gemini 3.9 Flash는 미출시입니다. 최신 3.8 Flash의 사양·가격(2027년 2배 인상)과, 3.7 Flash와 같은 과제로 직접 잰 속도·비용·JSON 형식 준수 차이를 정리했습니다. -
블로그
서버비 한 달 얼마? 방문자 10만 명도 월 3만 2천 원(2026 계산)
월 방문자 1천·1만 명은 1만 4천 원, 10만 명은 3만 2천 원이에요. 요금제별 트래픽 기본 제공량까지 넣어 다시 계산하고 AWS·카페24·가비아·네이버클라우드 값과 숨은 비용을 비교했어요(2026-10-26 확인).
댓글
로그인하면 댓글을 남길 수 있습니다.