🎮 게임 및 가상 경제 보안 🛡️ 도난 방지 프로토콜

Steam 가드 모바일 인증기 설정, 거래 보류 해제 및 계정 복구 가이드

Steam의 독점 5자리 영숫자 TOTP 메커니즘, 15일 거래 보류(에스크로) 회피, API 키 가로채기 피싱 사기 무력화, R-코드 비상 보관 및 거래 지연 없는 새 폰 이전 가이드.

2FA 2FA-Tool 보안 연구소
업데이트: 2026년 10월 · 14분 소요
📌 핵심 요약 및 Valve 보안 매트릭스

Valve의 Steam 플랫폼은 세계 최대의 PC 디지털 게임 유통 플랫폼일 뿐만 아니라, Counter-Strike 2(CS2), Dota 2, Team Fortress 2의 스킨 거래를 통해 수십억 달러 규모의 가상 경제 생태계를 형성하고 있습니다. 게임 내 가상 인벤토리는 현금화가 용이한 고유 자산이기 때문에 해커들의 자동화된 자격 증명 스터핑 및 정교한 피싱 공격의 주요 표적이 됩니다. Steam 가드 모바일 인증기는 계정을 지키는 핵심 생체 금고이자, 거래 지연 없는 즉각적인 P2P 아이템 거래를 위한 필수 전제 조건입니다.

독점 암호학 설계 5자리 영숫자 TOTP

모음 및 시각적 혼동 문자를 배제한 커스텀 Base32 매핑을 사용하며 Valve 서버와 실시간 동기화됩니다.

경제적 필수 조건 7일 연속 유지 요건

모바일 인증기가 7일(168시간) 이상 중단 없이 활성화되어 있어야 15일 거래 보류(에스크로)가 면제됩니다.

궁극의 안전장치 R-코드 긴급 해제 키

최초 등록 시 딱 한 번 표시되는 마스터 코드로, 스마트폰을 분실했을 때 인증기를 즉시 강제 해제합니다.

1

Steam 가드 아키텍처: 왜 5자리 영숫자인가?

Google Authenticator나 은행 OTP의 6자리 숫자에 익숙한 사용자는 Steam의 코드 형식을 보고 의아해하곤 합니다. Steam 가드는 K8MN2 또는 R7WXY와 같은 5자리 영문+숫자 조합을 출력하기 때문입니다. Valve 엔지니어들은 왜 표준 RFC 6238 10진수 출력을 벗어났을까요?

1. 독점 26자 문자 배열 매핑 및 혼동 문자 배제

표준 RFC 6238은 HMAC-SHA1 해시 다이제스트에서 31비트 정수를 추출한 뒤 mod 10^6 연산을 수행하여 6자리 숫자를 만듭니다. 반면 Valve 엔지니어들은 엄선된 26자 배열을 인덱싱하는 대체 변환 로직을 설계했습니다:

// Valve 독점 문자 치환 배열 (모음 및 시각적 혼동 문자 배제)
const STEAM_CHARS = "23456789BCDFGHJKMNPQRTVWXY";

이 설계에는 인간공학적 보안 고려가 숨어 있습니다. 시각적으로 혼동하기 쉬운 문자(숫자 0과 알파벳 O, 숫자 1과 알파벳 I 및 L)를 완전히 배제하여 오타율을 획기적으로 낮췄습니다. 더욱 중요한 점은 영어의 모든 모음(A, E, I, O, U)을 제외함으로써 5자리 코드가 화면에 우연히 영문 비속어나 불쾌한 단어로 조합되는 사고를 원천 방지했다는 것입니다.

2. ITwoFactorService를 통한 실시간 서버 시계 동기화

일반 TOTP 앱은 스마트폰 OS의 자체 시계에 전적으로 의존하므로 기기 시간이 30초 이상 틀어지면 인증 코드가 거부됩니다. Valve는 Steam 모바일 앱이 실행될 때마다 Valve 클러스터의 원자 타임스탬프 엔드포인트(api.steampowered.com/ITwoFactorService/QueryTime/v0001)를 조회하도록 설계했습니다. 앱이 서버와의 오차를 실시간으로 보정하므로, 사용자가 스마트폰 시계를 수동으로 변경하더라도 정상적인 인증 코드가 생성됩니다.

인증 메커니즘 코드 형식 유효 윈도우 타사 TOTP 앱 호환성 거래 보류(에스크로) 면제
Steam 가드 모바일 인증기 5자리 영숫자 (예: M78KQ) 30초 독점 형식 (shared_secret 추출 필요) ✅ 즉시 거래 가능 (7일 경과 후)
Steam 가드 이메일 인증 5자리 영숫자 (이메일 수신) 일회용 임의 유효 호환 불가 ❌ 의무 15일 거래 보류 적용
표준 RFC 6238 (예: 2FA-Tool) 6자리 10진수 숫자 (123456) 30초 업계 글로벌 표준 Steam 거래 면제와 무관
2

15일 거래 보류(거래 에스크로 정책) 회피 조건

2015년 후반 이전에는 매일 수만 명의 사용자가 피싱 및 악성코드로 인해 스킨과 인벤토리를 털리는 사고가 발생했습니다. 당시에는 아이템 교환이 즉시 완료되었기 때문에 도난당한 아이템은 수 시간 내에 세탁망을 통해 현금화되었습니다. 이에 Valve는 도난의 금전적 유인을 차단하기 위해 거래 보류(Trade Holds / Escrow) 및 장터 보류 제도를 도입했습니다.

에스크로 보류 발동 조건 및 대기 기간:

  • 모바일 인증기 미사용 거래: 거래를 보내는 유저의 계정에 모바일 인증기가 등록되어 있지 않은 경우, 보낸 아이템은 Steam에 의해 최대 15일간 에스크로 보류됩니다.
  • 장기 친구 예외 조항: 거래 상대방과 1년 이상 연속으로 Steam 친구 관계를 유지해 온 경우, 보류 기간이 1일로 단축됩니다.
  • 커뮤니티 장터 판매 등록: 모바일 앱 확인 없이 장터에 올린 아이템 역시 최대 15일 동안 보류된 후에야 장터에 정상 등록됩니다.
💡 대기 시간 없는 즉시 P2P 거래를 위한 필수 공식:

1. 거래 당사자 양측 모두 계정에 Steam 가드 모바일 인증기를 최소 7일(168시간) 연속으로 활성화하고 있어야 합니다.
2. 아이템을 보내는 측이 스마트폰 Steam 앱의 "확인(Confirmations)" 메뉴에서 해당 거래를 승인해야 합니다.
3. 최근 7일 이내에 비밀번호 재설정이나 인증기 해제 이력이 없어야 합니다.

3

모바일 확인 및 API 키 피싱 사기(거래 가로채기) 방어

Steam 가드를 켜 두었음에도 불구하고 수많은 게이머들이 악명 높은 Steam API 키 피싱 사기(거래 가로채기 / Trade Interception)에 당합니다. 고가 스킨을 다루는 유저라면 이 공격 메커니즘을 반드시 이해해야 합니다.

공격 침해 진행 단계 분석:

  1. 자격 증명 수집: 피해자가 가짜 스킨 거래 사이트, 토너먼트 투표 사이트 또는 케이스 오픈 사이트에 접속하여 위조된 "Steam으로 로그인" 창에 계정과 인증 코드를 입력합니다.
  2. 조용한 Web API 키 생성: 획득한 세션 쿠키를 사용해 공격자 봇이 Steam 개발자 콘솔(steamcommunity.com/dev/apikey)에 접속하여 임의의 도메인 이름으로 API 키를 몰래 발급받습니다.
  3. 거래 제안 자동 감시: 며칠 후 피해자가 친구나 공식 거래 봇에게 1,000달러 상당의 CS2 칼 스킨을 전송하는 정상 거래 제안을 생성합니다.
  4. 초고속 취소 및 복제 봇 사칭: 공격자의 서버가 Steam Web API를 500ms 주기로 폴링하다가 대기 중인 거래를 감지합니다. 즉시 정상 거래를 강제 취소하고, 거래 상대방의 프로필 사진과 닉네임을 복제한 가짜 봇 프로필을 만든 뒤 동일한 칼 스킨을 요구하는 가짜 거래 제안을 피해자에게 전송합니다.
  5. 부주의한 모바일 승인: 피해자는 스마트폰 Steam 앱을 열어 익숙한 프로필 사진과 칼 스킨을 보고 무심코 "거래 확인"을 누릅니다. 그 순간 아이템은 상대방이 아닌 해커의 보관함으로 즉시 이전됩니다.
🛡️ 3대 불변의 방어 수칙:
  1. API 키 페이지 수시 점검: 브라우저에서 https://steamcommunity.com/dev/apikey에 접속하세요. 본인이 개발자가 아닌데 활성화된 키가 있다면 즉시 취소(Revoke)하고 비밀번호를 변경해야 합니다.
  2. 모바일 승인 시 계정 생성 연도 검증: Steam 모바일 앱에서 거래를 승인할 때 수신자 상세 정보를 꼼꼼히 확인하세요. Steam은 상대방의 가입 연도(예: "가입: 2017년")를 표시합니다. 오랜 친구와 거래하는데 "가입: 오늘"이라고 뜬다면 100% 사칭 사기입니다. 즉시 취소하세요.
  3. 거래 URL 재설정: 보관함 개인정보 설정에서 기존 거래 제안 URL을 재생성하여 유출된 엔드포인트를 무효화하세요.

암호학적 해부: shared_secret vs identity_secret 이중 키 구조

Valve의 모바일 인증 아키텍처 내부에서 Steam 가드는 최초 등록 시 생성되어 기기 로컬 샌드박스에 보관되는 두 개의 독립된 암호화 키에 의존합니다:

  • shared_secret: Base64로 인코딩된 비밀키로, PC 클라이언트나 웹 브라우저 로그인 시 화면에 표시되는 5자리 TOTP 코드를 계산하는 데에만 사용됩니다.
  • identity_secret: 완전히 독립된 별도의 암호화 키로, Valve의 모바일 확인 API 엔드포인트(/mobileconf/getlist 및 /mobileconf/ajaxop)에 전송되는 HMAC-SHA1 서명을 생성합니다. 이 키는 아이템 전송 및 장터 등록을 최종 승인하는 데 사용됩니다.
PC 데스크톱 인증기(SDA 및 .maFile)의 치명적인 결함:

많은 대량 거래 유저들이 승인 자동화를 위해 Steam Desktop Authenticator(SDA) 같은 서드파티 PC 프로그램을 사용합니다. SDA는 shared_secret과 identity_secret을 모두 추출하여 Windows 로컬 디스크에 평문 또는 취약하게 암호화된 JSON 메타데이터(.maFile)로 저장합니다.

이는 2단계 인증의 핵심인 물리적 대역 외(Out-of-Band) 하드웨어 격리 원칙을 완전히 파괴합니다. PC가 인포스틸러 트로이목마(RedLine, Lumma, Vidar 등)에 감염되면 해커는 디스크의 .maFile을 우선적으로 탈취합니다. 공격자는 스마트폰 없이도 유효한 로그인 토큰을 만들고 모바일 승인 서명을 위조하여 수 분 만에 피해자의 전체 보관함을 청산할 수 있습니다.

4

긴급 해제: R-코드(Revocation Code)의 절대적 권한

Steam 가드 모바일 인증기를 등록할 때 SMS 인증을 마치면 화면에 알파벳 R로 시작하고 뒤이어 5자리 숫자가 붙은 코드가 표시됩니다 (예: R12345). 이것이 바로 해제 코드(Revocation Code, R-코드)입니다.

R-코드의 기능과 작동 범위:

Google이나 Discord의 백업 코드가 1회성 로그인 권한을 부여하는 것과 달리, Steam의 R-코드는 로그인 용도가 아닙니다. R-코드의 유일한 목적은 계정에 등록된 모바일 인증기를 즉시 단독으로 분리 해제하는 것입니다.

휴대폰을 도난당했거나 침수되었을 때, 혹은 해외에서 유심 로밍이 불가능할 때도 임의의 PC 브라우저에서 "인증기에 접근할 수 없습니다"를 누르고 저장해 둔 R-코드를 입력하면 SMS 인증이나 모바일 승인 없이 인증기가 즉시 제거됩니다.

보관 절대 원칙: 절대로 스마트폰 갤러리에 스크린샷으로 보관하지 마세요!

R-코드를 스마트폰 사진첩에만 저장해 두면 휴대폰을 분실하거나 액정이 깨졌을 때 R-코드도 함께 유실됩니다. 반드시 종이에 물리적으로 메모해 두거나 암호화된 비밀번호 관리자(1Password, Bitwarden, KeePassXC 등)에 안전하게 별도 백업해 두어야 합니다.

5

스마트폰 교체: 거래 보류 없는 단계별 안전 이전 절차

새 휴대폰으로 변경할 때 많은 사용자가 기존 폰에서 인증기를 먼저 삭제해 버려 15일간의 가혹한 거래 제재를 받곤 합니다. Valve 공식 절차를 준수하면 거래 쿨다운을 최소화할 수 있습니다:

1

기존 스마트폰에서 인증기를 삭제하지 마세요

기존 기기는 그대로 둡니다. 수동으로 인증기를 해제하면 계정 보안이 이메일 인증으로 강등되어 즉시 장기 거래 보류가 걸립니다.

2

새 스마트폰에 Steam 앱 설치

새 기기에서 Google Play 또는 App Store를 통해 공식 Steam 앱을 내려받고 계정 아이디와 비밀번호를 입력합니다.

3

"인증기를 이 기기로 이동" 선택

Steam 가드 코드를 묻는 화면에서 하단의 "도움이 필요합니다. Steam Guard 모바일 인증기 코드에 더 이상 접근할 수 없습니다"를 탭한 후 "인증기를 이 기기로 이동"을 선택합니다.

4

SMS 인증 코드로 이전 승인

등록된 전화번호로 발송된 6자리 SMS 문자를 입력합니다. 새 기기로 암호화 키가 안전하게 이전되며 기존 기기의 권한은 자동으로 회수됩니다.

✅ 이 공식 이전 절차를 사용하면 15일 보류 대신 약 2일간의 최소 보호 쿨다운만 적용됩니다.

6

3단계 재해 복구 플레이북 & 침해 사고 대응

1단계: 휴대폰은 분실했으나 전화번호(유심)는 유지된 경우

통신사에서 유심을 재발급받은 후 PC 브라우저에서 Steam에 로그인하고 "인증기를 분실했습니다"를 선택하여 SMS 문자로 인증기를 해제하거나 새 폰으로 재등록하세요.

2단계: 휴대폰과 전화번호를 모두 잃었으나 R-코드가 있는 경우

help.steampowered.com에 접속하여 "로그인할 수 없습니다" -> "Steam Guard 모바일 인증기를 분실했습니다" -> "이 전화번호를 더 이상 사용할 수 없습니다"를 클릭합니다. 보관 중인 R##### 코드를 입력하면 즉시 인증기가 해제됩니다.

3단계: 완전 분실 (폰, 번호, R-코드 모두 없음) — 계정 소유권 증명

Valve 고객지원에 1:1 티켓을 접수해야 하며, 법적으로 유효한 계정 소유권 증빙 자료를 제출해야 합니다:

  • 패키지 게임 실물 CD-Key: 수기로 고객지원 티켓 번호를 적은 메모와 함께 CD-Key 스티커가 선명하게 보이는 패키지 사진.
  • 결제 신용카드 확인: 결제에 사용된 카드 소유주 이름, 청구지 주소, 카드사 명 및 마지막 4자리 번호.
  • 타사 결제 내역서: Steam 구매에 연동된 PayPal 영수증 인보이스 ID 또는 결제 승인 번호.
  • Steam 지갑 실물 카드: 등록했던 Steam 월렛 상품권 실물 카드 사진.

🛡️ 해킹 의심 시 사후 대응: 6단계 긴급 프로토콜

계정에서 의심스러운 거래나 비정상적인 로그인이 감지되면 골든타임 내에 다음 6단계를 즉시 실행하세요:

  1. 비밀번호 즉시 변경: 감염되지 않은 깨끗한 보조 PC나 스마트폰에서 Steam 마스터 비밀번호를 변경하여 모든 활성 브라우저 세션을 강제 무효화합니다.
  2. 모든 기기 인증 해제: 계정 세부정보 -> Steam Guard 관리 -> "다른 모든 기기의 인증 해제"를 클릭하여 모든 PC 및 모바일 앱의 세션 쿠키를 폐기합니다.
  3. 유출된 Web API 키 즉시 취소: steamcommunity.com/dev/apikey에 접속하여 등록된 키를 취소해 해커의 자동화 봇 연결을 끊습니다.
  4. 거래 제안 URL 재생성: 보관함 거래 제안 개인정보 설정에서 새 URL을 발급받아 기존 엔드포인트 추적을 차단합니다.
  5. Steam 가족 뷰(Family View) 활성화: 보관함 및 거래 기능에 4자리 비밀번호 PIN을 걸어 공격자가 세션을 다시 얻더라도 아이템을 건드리지 못하게 차단합니다.
  6. PC 악성코드 정밀 검사: 게이밍 PC에서 Windows Defender 또는 백신으로 인포스틸러 악성코드를 완전히 치료하기 전까지는 Steam을 실행하지 마세요.
7

자주 묻는 질문 (FAQ)

스마트폰 대신 PC 데스크톱 프로그램(SDA - Steam Desktop Authenticator)을 사용해도 되나요? ▼

SDA와 같은 오픈소스 도구를 사용하면 거래 승인이 편할 수 있지만, 게임과 웹서핑을 하는 동일한 PC에서 인증기를 구동하면 2단계 인증의 본질적인 '대역 외(Out-of-Band) 물리적 분리' 보안 원칙이 완전히 붕괴됩니다. PC가 인포스틸러 악성코드에 감염되면 .maFile 파일이 탈취되어 전체 인벤토리가 수 분 내에 털릴 수 있습니다. 별도의 모바일 기기를 사용하는 것이 가장 안전합니다.

Steam 비밀번호를 변경한 후 왜 거래가 제한되나요? ▼

비밀번호를 알아낸 공격자가 즉시 인벤토리의 고가 아이템을 탈취하는 것을 방지하기 위해 Valve는 비밀번호 재설정 후 자동으로 2일에서 7일간의 거래 쿨다운을 적용합니다. 이 제한은 쿨다운 기간이 지나면 자동으로 해제됩니다.

Steam 가족 뷰(Family View) 기능이 계정 탈취를 방지하는 데 도움이 되나요? ▼

가족 뷰는 훌륭한 심층 방어(Defense-in-Depth) 수단입니다! 인벤토리, 거래 제안, 상점 기능에 4자리 보조 PIN 번호를 요구하도록 설정하면, 공격자가 활성화된 웹 세션 쿠키를 획득하더라도 PIN 번호를 입력하지 못하면 거래를 시작하거나 아이템을 이동할 수 없습니다.

클라이언트 사이드 제로 트러스트 연산

안전한 범용 2FA 토큰 생성

다양한 게임, 클라우드 및 소셜 계정을 위한 표준 RFC 6238 TOTP 코드가 필요하신가요? 100% 오프라인 브라우저 로컬 연산을 지원하는 2FA-Tool을 이용해 보세요.