모듈 5: 이중 인증(2FA): SMS가 위험하고 Google Authenticator가 안전한 이유
서론: 비밀번호만으로는 절반의 보안에 불과한 이유
이런 상황을 상상해 보세요: 모든 가능한 조합을 포함한 20자리 초강력 비밀번호를 만들었습니다. 안전하다고 느끼시나요? 그렇게 생각하면 안 됩니다. 2023년 한 해커가 SIM 스와핑(SIM 카드 교체)을 통해 15분 만에 Coinbase 사용자 계정에 접근하여 $240,000을 인출했습니다. 비밀번호는 완벽했지만, 보안은 그렇지 않았습니다.
통계는 냉정합니다: 해킹의 81%가 취약하거나 도난당한 비밀번호로 인해 발생합니다. 하지만 완벽한 비밀번호조차 피싱, 키로거 또는 데이터베이스 유출을 통해 도난당할 수 있습니다. 유일한 진정한 보호는 이중 인증(2FA)입니다.
그러나 모든 2FA가 동등하게 만들어진 것은 아닙니다. 수백만 명이 사용하는 SMS 코드는 실제로 보안의 환상을 제공하면서 매우 취약한 상태로 남아 있습니다. 이 강의에서는 SMS 2FA가 왜 위험한지, Google Authenticator를 올바르게 설정하는 방법, 그리고 어떤 방법이 최대한의 보호를 제공하는지 배우게 됩니다.
핵심 사실: Google에 따르면, 이중 인증은 자동화된 공격의 100%, 대량 피싱 공격의 99%, 표적 공격의 66%를 차단합니다. 이것은 선택이 아닌 필수입니다.

이중 인증이란 무엇이며 어떻게 작동하는가
이중 인증(2FA, Two-Factor Authentication)은 하나가 아닌 두 가지 독립적인 신원 확인 방법을 요구하는 계정 보호 방법입니다.
인증의 세 가지 요소
사이버 보안에는 세 가지 유형의 요소가 있습니다:
- 알고 있는 것 (Knowledge Factor) — 비밀번호, PIN 코드, 보안 질문 답변
- 가지고 있는 것 (Possession Factor) — 전화기, 하드웨어 키, 스마트 카드
- 본인인 것 (Inherence Factor) — 지문, 얼굴 인식, 망막
2FA는 이러한 요소 중 최소 두 가지를 결합합니다. 일반적으로:
- 비밀번호 (알고 있는 것)
- + 앱/SMS 코드 (가지고 있는 것)
2FA를 사용한 로그인 프로세스 작동 방식
- 로그인과 비밀번호 입력 — 첫 번째 요소
- 시스템이 두 번째 요소 요청 — 확인 코드
- 코드 생성/수신 — 앱, SMS 또는 하드웨어 키를 통해
- 제한된 시간 내에 코드 입력 — 보통 30-60초
- 접근 허용 — 두 요소가 모두 올바른 경우에만
이것이 효과적인 이유:
해커가 피싱이나 데이터베이스 유출을 통해 비밀번호를 훔쳤더라도, 두 번째 요소인 전화기나 물리적 장치에 접근하지 않으면 로그인할 수 없습니다.
실제 보호 사례
2019년 해커들이 7억 7,300만 개의 이메일 주소와 비밀번호가 포함된 데이터베이스(Collection #1)를 훔쳤습니다. 2FA가 없는 사용자들은 즉시 피해를 입었습니다. 2FA가 활성화된 사용자들은 보호받았습니다 — 훔친 비밀번호는 두 번째 요소 없이는 쓸모가 없었습니다.

이중 인증 유형: 최악에서 최고까지
유형 1: SMS 코드 (⚠️ 권장하지 않음)
가장 일반적이면서 가장 취약한 방법입니다. 코드가 전화번호로 문자 메시지로 전송됩니다.
작동 방식:
- 로그인과 비밀번호 입력
- 시스템이 6자리 코드를 번호로 전송
- SMS 수신 후 코드 입력
- 접근 허용
SMS 2FA가 위험한 이유:
1. SIM 스와핑 (SIM 카드 교체)
해커가 이동통신사에 전화하여 본인인 척하고(소셜 엔지니어링) 자신의 번호로 SIM 카드 재발급을 요청합니다. 통신사가 번호를 새 SIM으로 이전합니다. 이제 모든 SMS 코드가 해커에게 전송됩니다.
실제 사례 — Michael Terpin vs AT&T:
2018년 암호화폐 투자자가 SIM 스와핑으로 2,400만 달러를 잃었습니다. 해커들이 AT&T 직원 계정을 해킹하고 Terpin의 번호를 자신의 SIM으로 이전했습니다. SMS 2FA로 보호된 모든 계정에 접근했습니다. Terpin은 AT&T를 상대로 2억 달러 소송을 제기했습니다.
2. SS7 취약점 (SMS 가로채기)
통신사가 통화와 SMS 라우팅에 사용하는 SS7 프로토콜에는 심각한 취약점이 있습니다. SS7 네트워크에 접근할 수 있는 해커는 전화기에 물리적으로 접근하지 않고도 SMS를 가로챌 수 있습니다.
3. SMS 코드 피싱
고급 피싱 사이트는 실시간으로 작동합니다: 가짜 사이트에 로그인/비밀번호 입력 → 사기꾼이 즉시 실제 사이트에 입력 → SMS 코드 수신 → 가짜 사이트에 입력 → 사기꾼이 실제 사이트에서 사용 → 계정 손상.
4. 전화기의 악성 소프트웨어
트로이 목마가 SMS 메시지를 가로채 실시간으로 공격자에게 전송할 수 있습니다.
5. 통신사 직원에 대한 소셜 엔지니어링
부패하거나 속은 통신사 직원들이 해커의 요청에 따라 돈을 받고 SIM 스왑을 수행합니다.
| 취약점 | 공격 난이도 | 해커 비용 | 사용 빈도 |
|---|---|---|---|
| SIM 스와핑 | 중간 | $0-100 | 매우 높음 |
| SS7 가로채기 | 높음 | $1,000-10,000 | 중간 (표적 공격) |
| 실시간 피싱 | 중간 | $500 (인프라) | 높음 |
| 악성 소프트웨어 | 낮음 | $0-50 | 높음 |
결론: SMS 2FA는 아무것도 없는 것보다 낫지만, 최소 수준의 보호입니다. 암호화폐 계정에는 SMS 2FA가 절대적으로 불충분합니다. 대안이 없을 때만 사용하세요.
유형 2: 이메일 코드 (⚠️ 역시 권장하지 않음)
SMS 대신 이메일로 코드가 전송됩니다.
이것이 나쁜 이유:
- 이메일이 손상되면 — 모든 것에 접근 가능
- 이메일은 보통 주요 서비스와 같은 비밀번호로 보호됨
- SMS보다 느림 (전달에 몇 분 소요될 수 있음)
- 이메일 계정 피싱에 취약
허용되는 경우: 이메일이 강력한 2FA(TOTP 또는 하드웨어 키)로 보호된 경우에만.
유형 3: TOTP 앱 (✅ 권장)
Time-based One-Time Password — 코드가 30초마다 기기의 앱에서 생성됩니다.
인기 있는 TOTP 앱:
- Google Authenticator — 가장 인기 있고 간단함
- Microsoft Authenticator — 클라우드 백업 포함
- Authy — 기기 간 동기화
- 2FAS — 오픈 소스, 많은 기능
- Aegis Authenticator — Android, 오픈 소스
- Raivo OTP — iOS, iCloud 백업 포함
TOTP 작동 방식:
- 설정 시 서비스가 비밀 키 생성
- QR 코드를 스캔하거나 앱에 키 입력
- 앱이 TOTP 알고리즘 + 현재 시간을 사용하여 6자리 코드 생성
- 코드가 30초마다 변경
- 서버가 비밀 키를 알고 있어 코드의 정확성 확인 가능
장점:
- 오프라인 작동 — 인터넷이나 SMS 불필요
- SIM 스와핑 위험 없음 — 전화번호에 연결되지 않음
- 가로채기 불가능 — 코드가 로컬에서 생성
- 피싱에 강함 — 가짜 사이트를 제때 발견하면
- 빠른 생성 — 코드가 항상 가까이에
단점:
- 전화기 분실 = 접근 권한 상실 (백업이 없으면)
- 새 기기로 수동 이전 필요
- 전화기의 악성 소프트웨어에 취약
- 일부 앱은 클라우드 백업이 없음

유형 4: 푸시 알림 (✅ 좋음)
코드를 입력하는 대신 앱에서 버튼을 눌러 로그인을 확인합니다.
예시:
- Duo Mobile
- Microsoft Authenticator (푸시 모드)
- Binance Verify
작동 방식:
- 로그인과 비밀번호 입력
- 전화기에 푸시 알림 도착
- 요청 세부 정보 확인 (기기, 위치, IP)
- "확인" 또는 "거부" 누르기
장점:
- 코드 입력보다 편리
- 컨텍스트 표시 (어디서 로그인하는지)
- 피싱하기 더 어려움 (피해자가 세부 정보를 봄)
단점:
- 인터넷 필요
- 고급 MitM 공격에 취약
- 푸시 피로 공격 (공격자가 요청을 스팸하여 우연한 확인을 기대)
유형 5: 하드웨어 보안 키 (🏆 최고)
최대 보호를 제공하는 물리적 USB/NFC 장치입니다.
인기 브랜드:
- YubiKey — 업계 표준 ($25-70)
- Google Titan Security Key — Google 개발 ($30-50)
- Thetis FIDO U2F — 저렴한 옵션 ($15-20)
- SoloKeys — 오픈 소스 하드웨어 ($20-50)
작동 방식:
- 로그인과 비밀번호 입력
- 시스템이 키 삽입 요청
- YubiKey를 USB에 연결
- 키의 센서 터치
- 암호화 서명이 진위 확인
장점:
- 피싱 불가능 — 키가 사이트 도메인을 암호화적으로 확인
- 가로채기 위험 없음 — 네트워크를 통해 정보 전송하지 않음
- 악성 소프트웨어로부터 보호 — 물리적 확인
- 배터리 없이 작동 — USB에서 전원 공급
- 내구성 — 수년간 사용
- 다중 프로토콜 — FIDO U2F, FIDO2, WebAuthn
단점:
- 비용 (개당 $25-70)
- 휴대해야 함
- 분실 = 접근 권한 상실 (백업 키 필요)
- 모든 서비스가 지원하지 않음
- 모바일 기기에서 불편 (NFC 버전이 있긴 함)
전문가 권장: 큰 금액(>$50,000)의 경우 하드웨어 키를 사용하세요. YubiKey 2개 구매: 기본 키는 항상 휴대하고, 백업 키는 안전한 장소에 보관하세요. 이것은 수만 또는 수십만 달러를 보호할 $100-140 투자입니다.
| 2FA 방법 | 보안 | 편의성 | 비용 | 권장 |
|---|---|---|---|---|
| SMS | ⭐⭐ 낮음 | ⭐⭐⭐⭐ 높음 | 무료 | ❌ 피하기 |
| 이메일 | ⭐⭐ 낮음 | ⭐⭐⭐ 중간 | 무료 | ❌ 피하기 |
| TOTP 앱 | ⭐⭐⭐⭐ 높음 | ⭐⭐⭐⭐ 높음 | 무료 | ✅ 최소 |
| 푸시 알림 | ⭐⭐⭐⭐ 높음 | ⭐⭐⭐⭐⭐ 매우 높음 | 무료 | ✅ 좋음 |
| 하드웨어 키 | ⭐⭐⭐⭐⭐ 최대 | ⭐⭐⭐ 중간 | $25-70 | 🏆 최고 |
Google Authenticator 단계별 설정
가장 인기 있는 TOTP 앱인 Google Authenticator를 예로 들어 2FA를 올바르게 설정해 봅시다.
1단계: 앱 설치
- iOS: App Store → "Google Authenticator" 검색 → 설치
- Android: Google Play → "Google Authenticator" 검색 → 설치
고려할 대안:
- Authy — 기기 간 동기화가 필요한 경우
- 2FAS — 프라이버시가 중요한 경우 (오픈 소스, 추적 없음)
- Aegis (Android) — 암호화된 백업, 완전 오프라인
2단계: 첫 번째 계정 추가
Binance를 예로 살펴봅시다:
- Binance에 로그인 → Security Settings로 이동
- "Google Authenticator" 찾기 → "Enable" 클릭
- Binance가 QR 코드와 텍스트 키 표시
- 중요: 텍스트 키를 종이에 기록 (이것이 백업입니다!)
- Google Authenticator 열기 → "+" 누르기 → "Scan QR code"
- 카메라를 컴퓨터 화면의 QR 코드에 맞추기
- 계정 추가됨 — 30초마다 변경되는 6자리 코드가 보임
- 현재 코드를 Binance에 입력하여 확인
- 2FA 활성화됨 ✅
3단계: 백업 코드 저장
많은 서비스가 2FA 설정 시 백업 코드를 제공합니다 — 접근 복구를 위한 일회용 코드입니다.
백업 코드 저장 방법:
- 종이에 기록 — 지갑 시드 문구와 함께 보관
- 인쇄하여 금고에 보관
- 암호화되지 않은 상태로 클라우드에 저장하지 않기
- 비밀번호 관리자에 저장하는 경우 — 마스터 비밀번호 + 관리자 자체의 2FA와 함께만
4단계: 모든 중요 서비스에 설정
먼저 2FA를 활성화할 곳:
- ✅ 모든 암호화폐 거래소 (Binance, Coinbase, Kraken, Bybit)
- ✅ 이메일 (Gmail, Outlook — 모든 보안의 기초)
- ✅ 클라우드 스토리지 (Google Drive, iCloud)
- ✅ 비밀번호 관리자 (1Password, Bitwarden)
- ✅ 소셜 미디어 (Twitter, Telegram — 손상으로부터 보호)
- ✅ 뱅킹 앱

5단계: 2FA 테스트
모든 것이 작동하는지 확인:
- 계정에서 로그아웃
- 다시 로그인 시도
- 비밀번호 입력 → 시스템이 2FA 코드 요청
- Google Authenticator 열기 → 코드 입력
- 로그인되면 — 설정 성공 ✅
코드가 작동하지 않는 경우:
- 전화기 시간 확인 (동기화되어야 함)
- 30초 만료 전에 코드를 입력하는지 확인
- Google Authenticator에서: Settings → Time correction for codes → Sync now
2FA 백업: 접근 권한을 잃지 않는 방법
백업 없이 Google Authenticator가 있는 전화기를 잃으면 = 모든 계정에 대한 접근 권한 상실. 이것은 재앙입니다. 예방합시다.
방법 1: 비밀 키 기록 (가장 신뢰할 수 있음)
각 계정 설정 시 해야 할 일:
- 서비스가 QR 코드를 표시할 때, 텍스트 키도 표시합니다 ("JBSWY3DPEHPK3PXP"와 같은 문자열)
- 이 키를 서비스 이름과 함께 종이에 기록
- 종이를 안전한 장소에 보관 (지갑 시드 문구와 함께)
- 전화기를 잃으면 새 앱에 키를 수동으로 입력
기록 형식:
Binance: JBSWY3DPEHPK3PXP Gmail: ABCDEF1234567890 Coinbase: XYZ789ABC123DEF
방법 2: QR 코드 스크린샷 (덜 안전함)
QR 코드의 스크린샷을 찍어 암호화하여 저장할 수 있습니다.
안전하게 하는 방법:
- 설정 시 QR 코드 스크린샷 찍기
- 즉시 암호화된 저장소로 이동 (VeraCrypt 컨테이너)
- 갤러리에서 원본 스크린샷 삭제
- 암호화되지 않은 상태로 클라우드에 업로드하지 않기
⚠️ 위험: 스크린샷이 유출되면 2FA가 손상됩니다.
방법 3: Authy 사용 (주의해서)
Authy는 클라우드를 통해 기기 간 코드 동기화를 허용합니다.
장점:
- 자동 백업
- 여러 기기에서 접근
- 전화기 분실 시 복구
단점:
- 코드가 Authy 클라우드에 저장됨 (암호화되어 있지만 여전히)
- Authy 계정 해킹에 취약
- 전화번호 필요 (SIM 스와핑 위험)
Authy 사용 시:
- 복잡한 마스터 비밀번호 설정
- 초기 설정 후 다중 기기 비활성화
- 가장 중요한 계정에는 사용하지 않기
방법 4: 같은 코드가 있는 두 번째 기기
각 서비스에서 2FA 설정 시 두 기기에서 동시에 QR 코드를 스캔합니다.
방법:
- 컴퓨터 화면에서 QR 코드 열기
- 기본 전화기로 스캔
- 같은 QR 코드로 이전 전화기/태블릿 스캔
- 이제 두 기기가 동일한 코드 생성
- 두 번째 기기를 백업으로 안전한 장소에 보관
방법 5: 서비스 백업 코드
대부분의 서비스는 2FA 설정 시 10-20개의 일회용 백업 코드를 제공합니다.
해야 할 일:
- 첫 설정 시 백업 코드 저장
- 비밀번호 관리자나 종이에 보관
- 긴급 상황에서만 사용
- 사용 후 새 코드 생성
백업의 황금률: 최소 두 가지 접근 복구 방법. 이상적: 종이에 비밀 키 + 백업 기기 + 서비스 백업 코드. 보안에서 중복성은 좋은 것입니다.

YubiKey 하드웨어 키 설정
대규모 자본의 최대 보호를 위해 하드웨어 보안 키를 고려하세요.
올바른 YubiKey 모델 선택
- YubiKey 5 NFC ($45-55) — 범용 모델, USB-A + 전화기용 NFC
- YubiKey 5C NFC ($55-70) — USB-C + NFC, 새 기기용
- YubiKey 5C Nano ($65) — 소형 USB-C, 노트북에 상시 연결
- YubiKey Bio ($85-95) — 생체 인식 (지문)
권장: YubiKey 5 NFC — 가격/기능의 최고 균형.
Coinbase에서 YubiKey 설정 (예시)
- YubiKey 2개 구매 — 기본 및 백업
- Coinbase에 로그인 → Settings → Security
- "Security Keys" 찾기 → Add Security Key
- YubiKey를 USB 포트에 삽입
- 브라우저가 권한 요청 → Allow
- YubiKey의 센서 터치
- 이름 지정 (예: "YubiKey Primary")
- 두 번째 키로 반복 (백업)
- 테스트 — 로그아웃하고 YubiKey로 로그인
YubiKey 보관 장소
- 기본 — 열쇠고리에, 항상 휴대
- 백업 — 집 금고나 은행 금고에
- 절대 함께 보관하지 않기 — 두 키가 든 가방을 잃으면 문제
하드웨어 키를 지원하는 서비스
- ✅ Coinbase, Kraken, Gemini
- ✅ Google, Microsoft, Facebook
- ✅ GitHub, GitLab
- ✅ Dropbox, AWS
- ❌ Binance — 아직 지원하지 않음 (Google Auth 사용)
- ❌ 대부분의 DeFi 플랫폼 — 지원하지 않음
흔한 실수와 피하는 방법
실수 #1: 암호화폐 계정에 SMS 2FA 사용
왜 나쁜가: SIM 스와핑 공격이 너무 흔합니다. 돈이 있는 계정에는 이것은 허용할 수 없는 위험입니다.
해결책: 최소 Google Authenticator로, 최대 YubiKey로 전환하세요.
실수 #2: 백업 없음
상황: 전화기를 도난/분실/파손당함. Google Authenticator가 그 전화기에만 있었음. 백업 코드 없음.
결과: 기술 지원과 몇 주간 서신 교환, 문서 제출, 때로는 완전한 접근 권한 상실.
해결책: 설정 시 비밀 키를 기록하세요. 항상.
실수 #3: 백업 없이 하드웨어 키 하나만
상황: YubiKey 하나 구매, 모든 서비스에 설정. 키 분실.
결과: 새 키를 받고 긴 복구 과정을 거칠 때까지 모든 계정에서 차단됨.
해결책: 항상 2개의 키를 구매하고, 각 서비스에 둘 다 등록하세요.
실수 #4: 클라우드에 백업 코드 저장
왜 나쁜가: 클라우드가 해킹되면 (Google Drive, Dropbox), 2FA 백업 코드에 접근하게 됩니다.
해결책: 백업 코드를 오프라인이나 별도 비밀번호가 있는 암호화된 컨테이너에 저장하세요.
실수 #5: 복구 테스트 안 함
문제: 2FA 설정, 코드 기록, 하지만 복구가 작동하는지 확인한 적 없음.
해결책: 6개월마다 확인:
- 백업 코드가 작동하는가?
- 기록된 키에서 2FA를 복구할 수 있는가?
- 백업 YubiKey가 작동하는가?
실수 #6: "도우미"에게 2FA 코드 제공
상황: "기술 지원"이 "보안 확인"을 위해 2FA 코드를 요청.
현실: 이것은 피싱입니다. 진짜 기술 지원은 절대 2FA 코드를 요청하지 않습니다.
규칙: 2FA 코드는 자신의 계정 로그인에만. 누구에게도 절대 알려주지 마세요.
실수 #7: 강력한 비밀번호 없이 2FA 사용
오해: "2FA가 있으니 비밀번호는 간단해도 돼".
현실: 2FA는 두 번째 레이어이지, 첫 번째를 대체하는 것이 아닙니다. 약한 비밀번호 + 2FA < 강한 비밀번호 + 2FA.
해결책: 비밀번호 관리자를 통해 16자 이상의 무작위 비밀번호를 생성하세요.
최종 2FA 보안 체크리스트
- Google Authenticator 설치 및 최소 3개의 중요 서비스에 설정
- 모든 암호화폐 거래소가 TOTP 2FA로 보호됨 (SMS 아님)
- 이메일이 2FA로 보호됨 — 이것이 모든 보안의 기초
- 비밀 키가 종이에 기록됨 각 계정에 대해
- 서비스 백업 코드가 저장됨 안전한 장소에
- 백업 기기 설정 또는 마스터 비밀번호가 있는 Authy
- SMS 2FA 비활성화 TOTP가 가능한 모든 곳에서
- $50K 이상 자본에는 YubiKey 구매 (2개)
- 백업 코드/키에서 복구 테스트
- 모든 계정에 강력한 비밀번호 (2FA에만 의존하지 않기)
- 기술 지원은 절대 2FA 코드를 요청하지 않는다는 것을 앎
- Google Authenticator가 있는 기기의 시간 동기화
결론: 2FA는 선택이 아닌 필수
데이터베이스 유출이 매주 발생하고 피싱 사이트가 원본과 구별할 수 없게 되는 세상에서, 비밀번호 하나만으로는 충분하지 않습니다. 이중 인증은 디지털 자산을 다루는 모든 사람을 위한 최소 보안 표준입니다.
보안 계층을 기억하세요:
비밀번호만 < SMS 2FA < TOTP 2FA < Push 2FA < 하드웨어 키
암호화폐 계정의 최소 기준은 TOTP(Google Authenticator)입니다. 큰 금액에는 하드웨어 키입니다.
지금 2FA를 올바르게 설정하는 데 한 시간을 투자하세요 — 이것이 잃어버린 자금에 대한 수년간의 후회를 절약할 수 있습니다.
다음 강의에서는 그래도 해킹당했을 때 어떻게 해야 하는지 다룹니다: 계정 손상 시 행동 프로토콜과 도난당한 암호화폐를 복구할 수 있는지 여부.