2단계 인증(2FA) 가이드 — 계정을 지키는 가장 확실한 방법
2단계 인증의 종류, 설정 방법, 앱 추천까지. 비밀번호만으로는 부족한 시대의 계정 보안 가이드.
비밀번호가 털리는 건 생각보다 흔한 일이다. 피싱 사이트에 입력했거나, 다른 서비스에서 유출된 비밀번호를 여러 곳에 돌려 쓰거나, 키로거에 걸리거나. 경로는 다양한데 결과는 같다 — 누군가 내 계정에 들어온다.
2단계 인증(2FA)은 비밀번호가 유출돼도 계정을 지키는 추가 방어선이다. 비밀번호(내가 아는 것) + 추가 수단(내가 가진 것)을 함께 요구하니까, 비밀번호만 탈취한 공격자는 로그인할 수 없다.
2FA의 종류
SMS 인증
전화번호로 문자가 온다. 가장 익숙한 방식이지만 보안 측면에서는 가장 약하다.
SIM 스와핑이라는 공격이 있다. 공격자가 통신사를 속여서 피해자의 전화번호를 자기 SIM 카드로 옮기는 거다. 그러면 인증 문자가 공격자에게 간다. 미국에서 실제로 암호화폐 관련 피해 사례가 꽤 보고됐다. 한국에서는 상대적으로 덜하지만, 근본적인 취약점이 있는 방식이다.
그래도 SMS 인증이 아예 없는 것보다는 낫다. 옵션이 이것뿐이라면 반드시 설정하자.
TOTP 앱 (인증기 앱)
Google Authenticator, Microsoft Authenticator, Authy 같은 앱이 여기에 해당한다. 30초마다 바뀌는 6자리 숫자를 생성한다.
TOTP(Time-based One-Time Password)는 서버와 앱이 같은 비밀 키를 공유하고, 현재 시각을 기반으로 동일한 코드를 생성하는 방식이다. 네트워크가 필요 없고, SIM 스와핑 공격에도 안전하다.
설정할 때 QR 코드를 스캔하는데, 이 QR 코드에 비밀 키가 들어있다. 이 키를 따로 백업해두는 게 중요하다. 폰을 잃어버리면 인증기 앱에 접근할 수 없게 되니까.
하드웨어 보안 키
YubiKey 같은 물리적 장치를 USB나 NFC로 연결해서 인증한다. FIDO2/WebAuthn 표준을 쓰는데, 현존하는 2FA 중에 가장 안전하다.
피싱에 면역이라는 게 가장 큰 장점이다. 보안 키는 현재 접속한 사이트의 도메인을 확인하기 때문에, 가짜 사이트에서는 인증이 아예 작동하지 않는다. 사용자가 아무리 속아서 비밀번호를 입력해도, 보안 키 단계에서 차단된다.
단점은 가격(개당 5~7만원)과 분실 위험. 보통 백업용 키를 하나 더 사서 안전한 곳에 보관한다.
패스키 (Passkey)
비교적 최신 방식으로, 비밀번호 자체를 대체하는 걸 목표로 한다. 기기의 생체인증(지문, 얼굴)이나 화면 잠금으로 인증한다. Apple, Google, Microsoft 모두 지원하고 있고, 점점 확산 중이다.
기술적으로는 공개 키 암호화를 쓰는데, 사용자 입장에서는 그냥 "지문 찍으면 로그인"이다. 비밀번호를 기억할 필요도 없고, 피싱에도 안전하다.
어떤 서비스에 먼저 설정해야 할까
모든 계정에 2FA를 거는 게 이상적이지만, 현실적으로 우선순위를 매기자면:
- 이메일 계정 — 다른 모든 계정의 비밀번호 재설정 링크가 여기로 온다. 이메일이 뚫리면 연쇄적으로 다른 계정도 위험해진다.
- 금융 서비스 — 은행, 증권, 페이 앱
- 클라우드 서비스 — Google, Apple, Microsoft 계정. 사진, 문서, 연락처가 들어있다.
- 개발자 계정 — GitHub, AWS, 서버 SSH. 코드 유출이나 인프라 탈취는 큰 사고로 이어진다.
- 소셜 미디어 — 해킹된 계정으로 피싱 메시지가 지인에게 전파될 수 있다.
인증기 앱 추천
Authy
클라우드 백업이 된다. 폰을 바꿔도 계정만 로그인하면 복원된다. 편리한 반면, 클라우드에 키가 저장된다는 건 공격 포인트가 하나 더 생긴다는 뜻이기도 하다. 참고로 데스크톱 앱은 2024년에 중단됐으니 모바일에서만 사용 가능하다.
Google Authenticator
단순하다. Google 계정으로 동기화하는 기능이 추가됐는데, 이전에는 백업이 안 돼서 폰 분실 시 대참사가 벌어지곤 했다. 이제는 괜찮아졌지만, 별도 백업도 해두는 게 안전하다.
Microsoft Authenticator
Microsoft 365나 Azure를 쓴다면 자연스러운 선택. 비밀번호 관리자 기능도 내장돼 있다.
1Password / Bitwarden
비밀번호 관리자에 TOTP 기능이 내장된 경우. 비밀번호와 2FA 코드가 한 곳에 있으니 편리하지만, 한 곳이 뚫리면 둘 다 노출된다는 위험이 있다. 보안 전문가들 사이에서 의견이 갈리는 부분이다.
설정할 때 꼭 해야 할 것
복구 코드를 저장하자. 2FA 설정할 때 대부분의 서비스가 복구 코드(recovery code)를 준다. 이걸 안전한 곳에 저장해야 한다. 인증기 앱에 접근 못할 때 쓰는 비상 열쇠다. 비밀번호 관리자에 넣거나, 종이에 적어서 금고에 보관하거나.
백업 수단을 두 개 이상 등록하자. TOTP 앱 + SMS, 또는 TOTP 앱 + 보안 키. 하나가 안 되면 다른 걸로 들어갈 수 있어야 한다.
비밀번호 관리자도 같이 쓰자. 2FA를 설정한다고 약한 비밀번호를 써도 되는 건 아니다. 서비스마다 고유한 강력한 비밀번호 + 2FA 조합이 가장 안전하다.
2FA의 한계
2FA가 만능은 아니다. 실시간 피싱(공격자가 사용자와 서비스 사이에서 중계하면서 2FA 코드까지 탈취하는 방식)에는 TOTP가 취약하다. 이런 공격을 방어하려면 FIDO2 보안 키나 패스키를 써야 한다.
세션 쿠키가 탈취되면 2FA를 우회할 수 있다. 인포스틸러(정보 탈취 악성코드)가 브라우저에서 세션을 훔쳐가면 2FA를 통과한 이후의 세션을 그대로 사용할 수 있다.
그래도 2FA는 "안 하면 확실히 위험하고, 하면 대부분의 공격을 막아주는" 보안 조치다. 완벽하지 않더라도 설정하는 게 훨씬 낫다.