본문 바로가기

IT관련

미밴드6 NFC에 암호화된 출입 카드 등록 및 사용 방법

반응형

암호화된 출입카드 등록된 미밴드6

중국 내수용 미밴드 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로 바꾸면 미밴드에 등록이 가능해 지고 이후 미밴드에 등록된 카드의 키를 원복시키면 되지 않을까?

결론은 "가능하다"이고 실제로 미밴드에 복제를 해봤다. 

 

준비물

ACS ACR122 reader

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, 이건 보안 사항이라 공개 불가능하고 각자 알아서 구해야 한다.

 

절차

Dumped Mifare Data

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를 찾아내는 방법이 소개된다.

HiP19_Cracking_Mifare_Classic_on_the_cheap_workshop.pdf
3.91MB

반응형
  • 이승훈 2021.05.24 15:58

    안녕하세요.
    작성해주신 글 보고 정상적으로 미밴드에 등록이 되었는데..
    1. ACS ACR122 reader 카드 정보 리딩, 0번 섹터, 7번 섹터에 정보 중 7번섹터의 3번째 블럭의 A KEY에 FFFF로 변경 후 카드를 복제 후 미밴드에 등록 완료
    2. 리더기에 미밴드 UID 리드 시 8번째까지 로딩 완료 후 Select Card Failed. 라고 뜨면서 정보가 전체가 조회가 되지 않고 있는데.. 혹시 왜그런지 알아볼수 있는 방법이 있을까요?
    - 원본카드의 정보를 변조 (7번섹터 A KEY FFFF로 변경)하여 등록한 복제카드의 경우는 정상적으로 UID 리드가 되고 있습니다.

    • 싸이형아 2021.05.24 16:19 신고

      미밴드에 등록된 카드를 다시 ACR122 reader + MFOC로 read가 안된다는 건가요? 원본 카드는 MFOC로 password cracking이 되었지만 미밴드는 안된다는게 좀 이상하네요.
      다만 Select Card Failed라는 메시지는 의미상 리더기가 미밴드에 등록된 카드와 통신이 끊어졌다는 것으로 생각됩니다. 아마도 미밴드가 password cracking에 대응하고자 보안코드가 있어서 이렇게 동작할 수 있습니다.
      사용하고 계시는 MFOC가 어떤건지 모르겠지만, 원본카드를 cracking하셨으니 키는 이미 다 알고 있는 것이니 해당키로 MFOC를 setting 하시고 읽어보시는건 해 보셨나요? MFOC가 잘 동작하지 않는다면 안드로이드 Mifare Classic Tool로 키 설정 후 테스트 해보시는 것도 방법입니다.

  • soyear 2021.06.09 00:14

    안녕하세요. 먼저 양질의 글 감사합니다. (_ _)
    미밴드6 NFC로 암호화된 공용현관키를 복사하려고 해서,
    암호화된 공용현관키를 알리NFC 복사기로 읽었더니, 한 sector만 FF가 아니라서 FF로 변경 후, 공 13.56Mhz스티커에 복사한 후, 미밴드6에서 복사 완료했습니다.
    문제는 공용현관에서 이게 될때도 있고 안될때도 있네요..
    혹시 왜 그런지 추측가는게 있으실까요

    • 싸이형아 2021.06.09 22:25 신고

      굳이 디폴트로 FF...FF였던 키를 특정 sector만 다른 값으로 바꿨다면 분명 그 sector의 데이터를 이용해서 도어락 인증에 사용한다는 것으로 생각됩니다. 가끔식 된다는 것은 그 데이터 외 0 Sector의 UID도 사용하는 것이 아닐까요?
      해당 sector의 키 값을 알고 계신다면 원래키값으로 바꿔 보시면 잘 동작할 것 같습니다.

  • 익명 2021.06.16 05:37

    비밀댓글입니다

    • 싸이형아 2021.06.16 10:42 신고

      1. 신용카드는 Mifare가 아니라서 불가능 합니다.
      2. 티머니, 캐시비는 Mifare가 아니라서 제외됩니다. 국내에선 PayOn 후불교통카드만 mifare classic 입니다. 그런데 PayOn은 하나의 sector만 쓰는게 아니고 다수의 sector를 사용합니다. 그만큼 해킹에 시간이 오래 소요됩니다. 해킹을 못하는 것은 아닐겁니다.

  • Jay 2021.07.06 22:49

    안녕하세요. 싸이형아님의 글을 대충 보고 저도 미밴드6 NFC를 주문했는데, 여러가지 다른 준비물이 필요하군요.
    혹시 게이트맨 도어락키는 암호화되어 있는지 아니면 그냥 복사가 되는지 아시면 답변 부탁드리겠습니다.

    • 싸이형아 2021.07.07 06:14 신고

      해당 브랜드는 테스트 해보지는 않았습니다. 인터넷 찾아보니 예전 모델은 쉽게 되고 최신모델은 안되는 것 같습니다.

  • 익명 2021.07.09 20:18

    비밀댓글입니다

    • 싸이형아 2021.07.13 20:36 신고

      대중적인 출입용 카드는 UID만 맞으면 열리도록 동작하는 것 같습니다. 그 UID를 읽는 키가 A key일 것 같구요.
      결론적으로 문만 잘 열린다면... 상관없지 않을까요? :)

  • 미밴드6nfc골칫덩이 2021.08.19 15:39

    미밴드6nfc 도어락 다들 잘해서 따라구매했는대 ㅠㅠ
    기존에도 nfc리더기로 스티커랑 열쇠고리류 복사해서 잘사용하는대 공카드에도 물론 복사해도 잘사용되네요 근대
    유독 미밴드6에 복사하면 암호화된카드라면서 복사가안되는대 뭐가문제일까요?

    • 싸이형아 2021.08.19 22:00 신고

      미밴드는 키가 초기키(FF...FF)일 경우에만 복사가 됩니다. 다른 NFC 리더기는 초기키 외에도 추가로 몇가지 키를 지원하기 때문에 가능한 것 같습니다.

  • 미밴드6nfc골칫덩이 2021.08.20 14:17

    그럼 포스팅하신 같은 기기로 구매해서 복사하면 될까요?

    • 싸이형아 2021.08.23 06:00 신고

      아니요. S/W도 필요한데 그건 제공하지 않으니 스스로 구하셔야 하고 사용방법도 익히셔야 하니 추천드리지 않습니다.

  • 익명 2021.08.23 11:12

    비밀댓글입니다

  • 미밴드 2021.09.12 10:21

    안녕하세요 글 잘보았습니다.
    궁금한게 있는데요
    원본카드(암호화)를 1번카드에 복사하면
    0번 섹터가 다르게 나오는데요 이걸 어떻게하면 원본카드랑 같이 만드나요???
    원본카드를 덤프하여 0번섹터 수정후에 복사하여도 안되네요

    • 싸이형아 2021.09.12 18:06 신고

      일반 mifare 카드는 0번 섹터 수정이 불가능 합니다. Magic 카드는 0번 섹터 수정이 가능합니다. 혹시 사용하신 카드가 magic 카드가 아닌거 아닐까요?

  • 미밴드 2021.09.13 21:22

    매직카드를 새로 구해서
    매직카드의 암호화 되어있는 섹터의 "A""B" key 전부 FF로 변경을 해서 미밴드에 복사하면 0번섹터의 uid는 복사가 되는데manufacturer data만 미밴드에서 자체적으로 똑같은 데이터로 생성되는데요
    다른 카드를 구해서 같은 방법으로 미밴드에 복사하면 0번섹터의 uid는 복사가 되는데 manufacturer data 값은 모두 같아지네요
    이건 어떻게 방법이 없나요???

  • 궁금해요살려주세요 2021.11.04 20:03

    원본카드(A)에서 공카드(B)로 암호화된 섹터를 제외하고 복제까지 하였습니다
    B카드에서 sector 0 manufacturer data는 A와 동일함을 확인하였습니다
    B카드를 미밴드에 등록하는 것까진 성공하였으나, 미밴드를 mfoc로 읽어보면 manufacturer sector 0에서 최초 앞자리는 8자리까지는 동일하나 이후가 변경되서 입력되는것이 확인되는데..이런경우에는 어떻게 해야할까요?

  • 익명 2021.12.15 11:07

    비밀댓글입니다

  • 최진우 2022.06.30 22:03

    안녕하세요 ㅎ 후불교통카드(13.56)을 반드시 실물카드로만 찍어야 할인혜택을 주는 정책으로 인해 불편함을 느껴서 검색하다가, 스티커 공카드로 복사해서 핸드폰뒷면에 부착하고 다니려고 검색하다 여기까지 오게되었는데요, 지식이 해박하신듯하여 한번 여쭤봅니다 ㅜ 글에 경제사범?이 될수있다는 내용이 이해가안되서.....ㅜㅜ

    • 싸이형아 2022.07.02 10:37 신고

      복제 한다는 것은 동일한 UID를 가지는 카드가 하나 더 생긴다는 것을 의미하는데, 복제한 카드가 분실되었을 경우나, 원본 카드와 복제 카드가 동시에 사용이 될 경우등 여러가지 케이스에서 추후 사용내역이 정산될때 문제가 될 수 있습니다는 의미입니다.

  • 낙마 2022.07.03 16:47

    전문적인 글이지만 끝까지 읽어보았습니다.
    카드복사기로 공동현관,음쓰,까지 복사해 사용해봤는대 잘 됩니다. 최초 목표인 사원증이 안되네요;;; 회사서 화물용엘베에
    사원증을 태깅해야 이용하게 하는 같잖은 짓을 해서 주 사용자들인 외부업체직원들이 너무 힘들어 해서 업체 대표자에게 하나 복사해서 주고 서로 편하게 일하자는 생각으로 기기도 산건대.. 결론이 음쓰나 복사해서 쓰고 있네요;;; 사원증 복사도 되고 쓰기도 되는대, 실제론 인식을 못합니다. 혹시나 해서 스마트폰 NFC툴로 인식을 해봤는대 역시 인식을 못합니다. 물론
    공동현관 복사카드는 인식도 되고 사용도 됩니다.
    복사기기만 인식을 하는대, 조언좀 부탁드립니다. 물론 사원증이나 공동현관도 미파레1k입니다

    • 싸이형아 2022.07.25 23:34 신고

      Mifare가 아닐 확률이 있습니다. RF 카드들은 통신 방식에 따라 Type A, Type B, Felica, ... 등등이 있는데, 제가 알기로 mifare는 type a입니다. 복사기기에서 사원증을 인식하지만 NFC 툴로는 인식 못한다면 통신 방식이 달라서 그럴 수도 있을 것 같습니다.

  • 캠린 2022.07.24 14:27

    정말 유익했습니다. 암호화된 사원증도 미밴드에 등록해서 잘쓰고 있습니다. 문제는 집에서 사용하는 보안카드인데요. 사원증과 같은 모델인거 같은데 키값을 리딩하면 사원증은 바로 디코딩값을 보여주는 반면 집의 보안카드는 보안이 걸려있는 한섹터만은 읽지 못해서 디코딩 실패로 뜨는데 원인을 몰라서 해결할수가 없습니다. 리더기 성능문제인데 아니면 소프트웨어 성능문제인지 리더기로 암호화된 섹터 읽기를 못하는 글들은 찾아 볼수가 없어서요. proxmark3 같은 제품은 암호 해독 필요없이 통째로 복사를 한다는데 그걸 구입하는게 나을지

    • 싸이형아 2022.07.25 23:31 신고

      리더기 문제는 아날겁니다. 일반적인 MIFARE reading tool은 pre-defined된 key를 가지고 흔히 알려진 파생키를 만드는 방법들로 순차적으로 access를 합니다. 아마도 암호화된 사원증은 이 방법 도중에 키를 찾았을 겁니다.
      반면 집에서 쓰시는 카드는 이 방법으로도 특정 섹터의 키를 찾을 수 없었을 겁니다. 보안에 안전한 집 카드를 쓰시네요. ;)