Teshi's Think Log

MiBand6 NFC, 암호화된 NFC 카드 사용하기

posted by teshi at 2021-05-31 08:28
categories : 컴퓨터, IoT

 

아래 내용은 어쨌든 문제의 소지가 있는 행위이므로 해당 행위에 대한 책임은 해당 작업을 하는 본인에게 있다는 것을 고지한다.
즉, 성공이든 실패든 해당 작업을 수행하는 작업자에게 책임이 있으므로 심사숙고 한 이후 작업하기를 추천드린다.
반드시, Magic Card 여분을 구입하여 원본에 바로 작업하는 일이 없도록 하는 것이 좋다.

 

미밴드에 암호가 걸려있으면 잘 안되는 것을 확인하였다. (잠김이 원인으로 보인다)

 

최근 몸이 좀 안 좋았던 것도 있고 해서 뭔가 건강 모니터링이 필요하다라는 생각을 가지게 되었다.

특히 심장 쪽은 갑작스럽게 안 좋아지는 경우도 많다고 해서, 심박수를 지속적으로 측정가능하면서도 "저렴한" 장비를 고민하다보니 미밴드를 구입하게 되었다.

구입하게 된 것은

MiBand6 중국버전 NFC

였다. 사실 병원에서 아무 이상이 없다는 것을 확인했지만 이건 순전히 건강을 위해서 구입하는 거라고 스스로를 속이면서 구입하였다.

아무튼, NFC 기능을 동작시키기 위해서 중국 계정을 만들어서 가입했고 다행스럽게도 집 출입카드까지는 아무런 문제 없이 등록하였다. 하지만 사람의 욕심은 끝이 없는 것! 회사 출입 태그 역시 NFC로 동작했기 때문에 이것 역시 복사할 수 있지 않을까 생각이 들었다.

그런데.... 복사가 안된다. 암호화되어 있는 카드라서 그렇다는데 그렇다면... 구글에서 해결 방법을 찾아보았다.

싸이형아님 블로그

위의 블로그를 구글링을 통해 찾을 수 있었고, 필요한 장비를 찾아보니

1. ACR122U NFC 리더기 
2. NFC Magic Card 

두 가지가 필요하다는 것을 확인할 수 있었다. 여기서 1번을 구입하면 Magic Card를 준다는 이야기가 있어서 알리익스프레스 구매 링크에서 하나를 구입하였다.

거기에 MFOC라는 Mifare 프로그램이 필요했는데 Mifare Windows Tool을 다운로드 받아서 사용하였다.

작업 순서는 아래와 같았다.

1. MWT(Mifare Windows Tool) 설치
2. USB 드라이버 libusbk로 업데이트
3. 원본 카드 읽어서 덤프로 만들기
4. 해당 덤프에서 섹터의 마지막이 "FF FF FF FF FF FF"으로 끝나지 않는 섹터 찾기
   참고로 3번에서 카드를 읽을 때, 어떤 부분이 암호화 되어 있는지 알 수 있었다.
5. 해당 섹터 마지막의 KEY A, KEY B가 "FF FF FF FF FF FF"가 아닌 부분 찾기
   ex) "8C DD 0C AA 76 2D" + "77 78 00 89" + "8C DD 0C AA 76 2D"
       여기서 KEY A,B 는 "8C DD 0C AA 76 2D" 이다.
6. 해당 부분을 "FF FF FF FF FF FF"로 수정하기
   ex) 8C DD 0C AA 76 2D 77 78 00 89 8C DD 0C AA 76 2D ->
       FF FF FF FF FF FF 77 78 00 89 FF FF FF FF FF FF
7. 수정된 파일을 새로운 덤프 파일로 저장하기
8. 저장된 덤프 파일을 Magic 카드에 쓰기(여기서 1번 섹터가 모두 복제되도록 UID 복제도 체크한다.)
9. Magic 카드를 사용하여 MiFit 앱에서 등록하기
10. Miband6에 등록을 확인하고 해당 카드를 선택한 후 NFC 리더기에 올리기
11. 3번에서 만든 원본 덤프 파일로 덮어 씌우기

위의 과정을 따라하면 생각보다 쉽게 동작하는 것을 확인할 수 있다.

단 주의해야 할 사항이 있다.

1. MWT에서는 빠른 읽기를 지원하기 위하여 DUMP 파일을 캐쉬로 자동 생성한다.
   해당 캐쉬로 인하여 UID가 같은 카드를 올렸을 때,
   변경된 값을 출력하지 않고 기존 저장된 덤프 파일을 출력한다.
   그로 인하여, 가끔은 변경되었는데 안 된 것 처럼 읽히는 경우가 있으니...
   확인할 때는 반드시 캐쉬 파일을 옮겨두고 확인한다.
2. 가끔 쓰기 실패하는 경우가 있는데 이 경우도 MWT 오류인지 확인을 하지 못했다.
   실패하였음에도 테스트 해보면 정상작동 하거나
   캐시를 지우고 다시 테스트하면 값이 바뀐 것을 확인 할 수 있었다.

그리고 알 수 없는 이유지만... ACR122U 장비를 구입하면서 딸려온 Magic Card가 이상하게 몇번 반복 작업 이후 디코딩 조차  할 수 없는 상태가 되어 버리게 되었고, 추가로 알리익스프레스 구매 링크에서 20장을 추가로 구매하여 성공하였다.

조금 넉넉하게 카드를 준비한 상태에서 하는 것이 마음이 편할 것이다.

그래서 현재는 집 출입 카드, 회사 카드까지 복제 성공하였고... 조만간... 현대 자동차 NFC 디지털 카드에 도전해볼 예정이다.

아이폰에서 현대 디지털 카드가 된다면 도전하지 않을 생각이지만... 언제해줄지 모르니까 시도 해볼 예정이다.