[하루한줄] CVE-2021-33881: RFID tear off attack, bypass monotonic counter
URL
RFID: Monotoic Counter Anti-Tearing Defeated
Target
MIFARE Ultralight EV1, MF0UL
MIFARE Ultralight C, MF0ICU
MIFARE Ultralight NANO, MF0UN
NT2L1, NT2H10, NT2H12
N2H13, NT2H15, NT2H16
Explain
NXP MIFARE Ultralight와 NTAG 카드는 replay 공격을 방지하기 위한 Monotonic Counter 기능을 사용하는데 해당 기능을 tear off 공격을 통해 무력화할 수 있는 취약점이 발견되었습니다. Tear off 공격이란 RFID 태그와 리더 사이 데이터 통신이 이루어지는 도중에 통신을 끊어버리는 공격 방식으로 EEPROM이 쓰기 작업을 하는 동안 RFID 태그의 데이터가 일관되지 않은 상태로 유지되어 버그가 발생하도록 유도합니다.
MIFARE Ultralight EV1은 24-bit Monotonic Counter를 사용하고 이와 관련된 커멘드를 사용합니다.
INCR_CNT
: Counter를 증가시킨다.READ_CNT
: 현태 Counter의 값을 읽는다.CHECK_TEARING_EVENT
: anti-tearing 8-bit flag를 검증한다.
INCR_CNT
를 통해 유효한 Counter의 값을 증가 시킴과 동시에 tear off 공격을 수행하면 Counter에 대한 쓰기 작업에 인터럽트를 걸 수 있고, READ_CNT
가 이전 Counter의 값을 리턴하면서 CHECK_TEARING_EVENT
가 정상적인 검증 flag를 리턴하는 상황을 만들 수 있습니다.
본 글은 CC BY-SA 4.0 라이선스로 배포됩니다. 공유 또는 변경 시 반드시 출처를 남겨주시기 바랍니다.