EMV 카드 복제와 프리플레이 공격: 예측 불가 번호의 함정
초록
EMV 시스템에서 POS·ATM이 생성해야 하는 ‘예측 불가 번호(UN)’가 실제로는 카운터·타임스탬프·자체 알고리즘으로 구현된 경우가 발견되었다. 이로 인해 공격자는 트랜잭션 전에 UN을 미리 예측해 카드 복제와 동일한 효과를 내는 프리플레이 공격을 수행할 수 있다. 논문은 취약점 탐지 방법, 현장 실험, 주요 제조사의 ATM 취약 사례, 그리고 설계·인증·테스트 단계의 문제점을 분석하고, 대응 방안을 제시한다.
상세 분석
EMV(Chip‑and‑PIN) 프로토콜은 매 거래마다 단말이 생성하는 ‘Unpredictable Number(UN)’가 카드와 단말 간 인증의 신선성을 보장하도록 설계되었다. UN이 진정으로 무작위여야 함에도 불구하고, 일부 구현체는 단순 카운터, 시스템 시계, 혹은 자체 개발한 난수 생성 알고리즘을 사용한다. 이러한 구현 결함은 두 가지 핵심 위험을 만든다. 첫째, UN이 사전에 예측 가능하면 공격자는 ‘프리플레이(pre‑play)’ 공격을 수행할 수 있다. 공격자는 미리 UN 값을 알아낸 뒤, 해당 값이 사용될 시점에 카드와 동일한 응답을 생성해 거래를 승인받는다. 이는 물리적으로 카드 복제(키 추출·복제)를 하지 않아도 카드가 복제된 것처럼 동작하게 만든다. 둘째, UN이 예측 가능하다는 사실은 로그 상에서는 정상적인 거래처럼 보이기 때문에 은행이 사기 여부를 판단하기 어렵다. 논문은 이 문제를 발견한 과정—실제 ATM·POS에서 UN이 순차적·시간 기반으로 증가하는 것을 관찰하고, 이를 기반으로 공격 시나리오를 설계—을 상세히 기술한다.
취약점 탐지를 위한 설문 조사 방법론도 제시한다. 연구팀은 전 세계 30여 개 국가의 ATM·POS 제조사와 은행을 대상으로 UN 생성 방식에 대한 질문지를 배포하고, 실제 단말에서 캡처한 트랜잭션 로그를 분석했다. 결과는 주요 제조사의 ATM(예: NCR, Diebold, Wincor Nixdorf)에서 UN이 32‑bit 카운터 혹은 타임스탬프 형태로 구현된 사례가 다수 발견되었다. 특히, UN이 4바이트 이하로 제한된 경우, 공격자는 2⁴⁰ 정도의 시도만으로도 충분히 맞출 수 있어 실용적인 공격이 가능하다.
프리플레이 공격 구현은 크게 두 단계로 나뉜다. ① 사전 단계에서 공격자는 목표 단말의 UN 생성 패턴을 학습한다. 이는 악성 ATM 소프트웨어, POS 단말에 삽입된 스니퍼, 혹은 네트워크 중간자(MITM) 장치를 통해 가능하다. ② 학습된 UN 값을 이용해 공격자는 카드와 동일한 응답(ARQC 등)을 미리 계산하고, 실제 거래 시점에 해당 응답을 전송한다. 논문은 실제 ATM에서 0.5% 이하의 성공률을 보였으며, 이는 기존 카드 복제 공격보다 훨씬 낮은 비용과 위험으로 동일한 사기 효과를 얻을 수 있음을 입증한다.
EMV 사양 자체도 이 문제를 완전히 방지하지 못한다. 사양은 UN이 ‘예측 불가’해야 한다고 명시하지만, 구체적인 난수 생성 요구사항이나 검증 절차를 제공하지 않는다. 또한, EMV 커널 인증 과정에서 UN 생성 로직에 대한 독립적인 검증이 이루어지지 않으며, 제조사는 자체 테스트에 의존한다. 이러한 구조적 허점은 설계 단계에서부터 보안 검증이 부족했음을 의미한다.
대응 방안으로는 (1) UN을 진정한 난수 생성기(CSPRNG)로 교체하고, 최소 64비트 길이로 확장한다. (2) 단말 펌웨어에 UN 생성 로직을 공개하고, 제3자 보안 인증을 받도록 규정한다. (3) 은행은 거래 로그에 UN 값과 그 변동성을 기록·분석해 비정상적인 패턴을 탐지한다. (4) EMV 사양에 ‘UN 검증 테스트’ 항목을 추가하고, 인증 기관이 이를 강제한다. 이러한 조치를 통해 프리플레이 공격을 근본적으로 차단하고, EMV가 목표로 한 카드 복제 방지를 실현할 수 있다.
댓글 및 학술 토론
Loading comments...
의견 남기기