2021. 5. 6. 18:05ㆍIT관련
중국 내수용 미밴드 NFC는 국내에서도 도어락 카드를 추가해서 사용할 수 있다는 것을 확인했다.
스마트 카드 업계에 일하는 입장이라 테스트를 해보고 싶었다.
확인해 보니 mifare classic 1K 카드만 등록이 가능한 것으로 확인 되었고 카드 등록도 상당히 쉬운 편이었다.
미밴드가 다수의 카드 복제를 지원한다는 것은 mifare를 에뮬레이션 한다고 볼 수 있다.
카드를 몇 개 등록해 보니 mifare A, B key가 전부 'FF...FF'인 카드는 바로 읽어서 미밴드에 복제를 해 버린다.
그리고 당연히 하나의 sector에라도 A, B key가 'FF...FF'가 아닌 카드는 "the original card has been encrypted."라고 표시되면서 복제를 하지 못한다. 즉, 미밴드는 A, B key가 'FF...FF'일 거라는 가정하에 mifare를 읽고 복제 하는 것이다.
Mifare 스팩을 간단히 설명하자면 구성은 총 16개의 sector로 되어 있고, 각각의 sector는 4개의 block으로 구성된다.
제일 첫 번째(0번) sector의 첫 번째(0번) block은 manufacturer block으로 4 bytes의 UID(unique ID) + 7 bytes manufacturer data로 구성되어 있으며 이 block은 제조시 부여되고 이후 변경이 불가능 하다.
각 sector별 마지막 block(3번)은 trailer로 A key + access bits + B key로 구성된다.
실제로 테스트한 출입카드들은 전부 0번 sector의 0번 block(manufacturer block)에만 값이 있고 나머지 block에는 전부 0x00으로 되어 있었다. 또한 모든 trailer의 키 값은 FF...FF 였다. 분명히 manufacturer data만 가지고 출입 여부가 가능한 것이다. 실제 이렇게 허술하게 사용하고 있으니 mifare 카드는 위험하다고 쓰지 말라는 이유인것 같다.
다만 자사에서 사용하고 있는 사원증만 미밴드에 등록이 되지 않았다. 당연히 사원증의 특정 trailer A, B key가 FF...FF가 아니기 때문에 데이터를 읽을 수 없어 불가능 한 것이다.
그렇다면 내가 사원증의 A, B key를 알면 복제가 가능하지 않을까? A, B key를 FF...FF로 바꾸면 미밴드에 등록이 가능해 지고 이후 미밴드에 등록된 카드의 키를 원복시키면 되지 않을까?
결론은 "가능하다"이고 실제로 미밴드에 복제를 해봤다.
준비물
1. ACS ACR122 reader --> 이 리더기가 Mifare password cracking 용으로 많이 사용된다. 방법으로 nested attack과 dark side attack이 있는데 이 리더기가 기능을 제공하는 것으로 알고 있다.
2. Magic card --> UID를 변경할 수 있는 mifare카드. 테스트 도중에 원본 카드가 망가지면 곤란하기 때문에 우선 이 카드에 복제 한 후 테스트 해 보았다. 이 카드는 중국에서 만들어서 파는데 누구나 쉽게 알리에서 구매 가능하다.
3. Mifare Offline Cracker(MFOC) --> mifare해킹 s/w, 이건 보안 사항이라 공개 불가능하고 각자 알아서 구해야 한다.
절차
1. 리더기에 원본 카드를 올려놓고 MFOC를 이용하여 키 해킹 후 mifare data를 dump 파일로 기록한다.
2. Dump 파일에서 A, B 키가 FF...FF가 아닌 sector를 기록해 두고 해당 sector의 키를 전부 FF...FF로 변경해 둔다.
3. FF...FF로 바꾼 dump 파일과 리더기 그리고 MFOC를 이용해 magic card에 복제한다.
4. 복제된 magic card를 미밴드에 등록한다. 키가 전부 FF...FF라서 등록이 가능하다.
5. 리더기에 미밴드를 두고 등록된 카드를 읽어서 UID 및 기타 데이터들이 제대로 복제되었는지 확인한다.
5. 리더기에 미밴드를 두고 아까 바꿨던 sector의 키만 원래 키로 변경한다.
추가 내용 - 1
국내에서는 mifare classic(티머니, 캐쉬비 X)을 교통카드로도 사용 한다. 이것은 마찬가지로 키를 알수 있다면 mifare 교통카드도 미밴드에 등록이 가능하다는 뜻이 된다.
그런데 복제를 해도 국내 mifare 교통카드는 충전하는 방식(선불)이 아닌 후불형태라서 부정하게 사용하는건 불가능 하다. 아니 복제하고 나만 사용하면 되는데, 이걸 다른 사람이 사용하게 된다면 문제가 되고 나중에 서버 정산시 들통날 수 밖에 없다. 결국 경제사범이 될 수 있으니 하지 말아야 한다.
시도해 봤는데 키 찾는데 시간이 너무 오래 걸려서 그냥 포기함.
추가 내용 - 2
Cracking Mifare Classic on the cheap workshop
위 내용을 보면 아주 자세히 mifare key를 찾아내는 방법이 소개된다.
'IT관련' 카테고리의 다른 글
pyenv로 python 설치시 fatal error: ffi.h: No such file or directory (0) | 2021.12.01 |
---|---|
라즈베리파이 한글 키보드 설정 (2) | 2021.05.25 |
레트로파이 구동기 - 라즈베리파이4 + PS4/Xbox360 컨트롤러 (0) | 2021.04.19 |
AiMesh node 등록 오류 해결 (0) | 2021.01.29 |
PyInstaller로 만든 실행파일을 Trojan 바이러스로 인식하는 문제 해결 (17) | 2021.01.04 |