[논문 리뷰] A Practical Attack on the MIFARE Classic
이 논문은 MIFARE Classic 스마트 카드에 대한 실용적이고 저비용의 공격을 제시하며, CRYPTO1 스트림 암호와 의사난수 생성기의 결함을 악용하여 비밀 키를 알지 못한 채 키스트림을 복구한다. 도청된 거래를 분석함으로써, 어떤 섹터의 모든 메모리 블록에 대해 완전한 읽기 및 쓰기 액세스를 가능하게 하여, 널리 사용되는 비접촉식 시스템에서 데이터 기밀성과 무결성을 침해한다.
The MIFARE Classic is the most widely used contactless smart card in the market. Its design and implementation details are kept secret by its manufacturer. This paper studies the architecture of the card and the communication protocol between card and reader. Then it gives a practical, low-cost, attack that recovers secret information from the memory of the card. Due to a weakness in the pseudo-random generator, we are able to recover the keystream generated by the CRYPTO1 stream cipher. We exploit the malleability of the stream cipher to read all memory blocks of the first sector of the card. Moreover, we are able to read any sector of the memory of the card, provided that we know one memory block within this sector. Finally, and perhaps more damaging, the same holds for modifying memory blocks.
연구 동기 및 목표
- MIFARE Classic의 통신 프로토콜과 암호 설계를 분석하여 악용 가능한 결함을 규명한다.
- 도청된 거래에서 비밀 키를 알지 못한 채 키스트림을 복구하는 실용적 공격을 시연한다.
- 도청된 한 블록의 데이터가 있는 경우, 어떤 섹터의 모든 메모리 블록에 대해 완전한 읽기 및 쓰기 액세스를 가능하게 한다.
- MIFARE Classic와 같은 전용 암호 시스템에서 보안의 오해(보안 by obscurity)에 의존하는 것이 얼마나 불안정한지 폭 드러낸다.
- 기존 시스템의 위험을 완화하기 위한 실질적인 권고 사항을 제시하고, 더 안전한 대안으로의 이행을 안내한다.
제안 방법
- Proxmark III에 ISO 14443-A 프로토콜 스택을 구현하여 리더-카드 통신을 완전히 제어할 수 있도록 한다.
- CRYPTO1 의사난수 생성기의 비상태성과 낮은 엔트로피의 난수(16비트, 32비트가 아님)를 악용하여 키스트림을 복구한다.
- 도청된 명령어(예: 읽기, 쓰기, 증가)에서 알려진 평문을 사용하여 키스트림을 재구성하고 데이터를 복호화하거나 수정한다.
- 스트림 암호의 변형 가능성(malleability)을 활용하여, 한 블록의 데이터가 알려진 경우, 어떤 섹터의 블록에서나 첫 6바이트와 대부분의 경우 마지막 6바이트를 복구할 수 있다.
- 단일 유효한 거래에서 키스트림을 복구하여 후속 위조 및 데이터 조작을 가능하게 한다.
- 이전 연구(Nohl & Plötz)의 결과를 결합하여 효율적인 브루트 포스 키 복구를 가능하게 하며, 현재 개발 중이다.
실험 결과
연구 질문
- RQ1MIFARE Classic의 CRYPTO1 스트림 암호에서 비밀 키를 알지 못한 채 키스트림을 복구할 수 있는가?
- RQ2스트림 암호의 변형 가능성은 메모리 블록의 데이터를 읽거나 수정하는 데 얼마나 활용될 수 있는가?
- RQ3의사난수 생성기의 낮은 엔트로피 난수는 상호 인증 보안에 어떤 영향을 미치는가?
- RQ4키스트림 복구의 실용적 영향은 실제 응용 프로그램에서 데이터 기밀성과 무결성에 어떤 영향을 미치는가?
- RQ5기존 시스템에서 이러한 공격의 위험을 완화하기 위해 어떤 대응 조치를 시행할 수 있는가?
주요 결과
- 공격은 단일 도청된 거래에서 키스트림을 성공적으로 복구하여, 비밀 키 없이도 어떤 섹터의 모든 데이터에 완전한 액세스를 가능하게 한다.
- 비밀 키를 사전에 알지 못하더라도, 섹터 0의 모든 메모리 블록을 몇 분 내로 읽을 수 있다.
- 한 블록의 데이터가 알려진 경우, 어떤 섹터의 블록에서나 첫 6바이트와 대부분의 경우 마지막 6바이트를 복구할 수 있다.
- 공격는 어떤 섹터의 데이터 블록도 수정할 수 있으며, 전자 지갑과 같은 응용 프로그램에서 무결성 침해와 사기를 가능하게 한다.
- 키스트림 복구는 향후 브루트 포스 키 복구 공격에 필수적인 평문을 제공하며, 현재 최적화 중이다.
- 공격는 MIFARE Classic와 같은 전용 시스템에서 보안의 오해에 의존하는 것이 본질적으로 결함이 있으며, 부적절하다는 것을 입증한다.
더 나은 연구,지금 바로 시작하세요
논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.
카드 등록 없음 · 무료 플랜 제공
이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.