저는 지금 중국에서 장기 출장 중입니다. 현재 묵고 있는 숙소는 출입구 공동현관과 엘레베이터에서 근거리 비접촉시 IC 카드를 이용해야하는 구조로 되어있습니다. 일단, 카드 복제는 성공했으나 결론적으로 사용에는 실패했습니다. 그 과정을 공유해서 유사한 시도를 하실 분들께 도움을 드리고자 합니다.
1. 카드 복제기 구매
- 타오바오에서 찾으면 정말 다양한 가격대의 각기 다른 종류의 카드 리더기를 볼 수 있습니다. 알리익스프레스에서도 유사한 제품을 구하실 수 있을겁니다.
- 제품별로 복사가능한 카드의 종류와 지원하는 프로그램(PC, 모바일앱, 핸드핼드에 내장)의 차이가 있는데, 그걸 반드시 확인하고 구매하시기 바랍니다.
- 저는 50위안(1만원)이내에서 IC 카드를 읽고, UID, CUID, FUID, UFUID 까지 사용가능하고, PC용 프로그램을 제공하는 제품을 선택했습니다. 제가 산 것은 30위안(6천원)이었습니다. 택배비 포함해서....

* 참고 : IC 카드 ? ID 카드 ?
- 사용하는 주파수 대역이 다릅니다. IC, ID카드를 모두 지원하거나 한종류만 지원하는 제품으로 나눠집니다.
- IC 카드 : 13.56 MHz
- ID 카드 : 125 KHz
- 원본 카드의 종류에 맞는 리더기와 복제 카드를 준비하셔야 합니다.
* 참고 : UID, CUID, FUID, UFUID 차이 (오류 수정)
- 모두 IC 카드 종류이며, 모든 섹터를 쓰고, 읽기가 가능한 복제카드입니다. 모양(카드형, 열쇠고리형, 스티커형)과는 상관이 없고 기능적으로 차이가 있습니다.
- 원본 IC카드는 M1(Mifare Classic 1K) 카드라고 하며, uid가 위치한 0번 섹터를 수정할 수 없습니다. 나머지 섹터 수정 가능.
- UID는 1세대 복제 카드, 암호를 회피해서 읽고 쓰는 백도어가 존재. UID의 백도어 탐지 기능이 있는 시설측 리더기에서 사용할 수 없습니다. (추신: 암호키 기능 여부와는 관련이 없네요.)
- CUID는 2세대 복제 카드. 백도어가 없음. 차폐 방지 카드이며 UID 카드 복사가 유효하지 않을 때 사용하며 시설측 리더기의 UID 백도어 탐지 기능을 우회할 수 있습니다.
- FUID는 섹터 0를 한번만 쓰기를 할 수 있는 카드. 한번 값을 쓰면 섹터 0 쓰기가 방지되어 M1 카드와 동일해 지는 복제 카드입니다. 시설 측의 리더기가 원본 카드와 복제 카드를 구분하는 방법으로 섹터 0에 쓰기 시도를 해보고 쓰기 가능하면 복제카드로 인식할 수 있는 것을 회피하려고 사용할 수 있습니다.
- UFUID는 Lock 시키기 전까지 UID와 동일하게 섹터 0를 계속 수정 가능. Lock 이후는 M1카드와 동일해 짐.
- 복제카드 선택 : 시설 측 리더기에 백도어 탐지 기능 있으면 CUID 사용, 섹터0까지 수정 시도를 하면 FUID, UFUID 사용.
2. 복제 카드 구매
- 먼저 UID로 시도해 보시고 실패하면, CUID, FUID/UFUID 순으로 시도해 보시기 바랍니다.
- 중국에서는 토큰형 UID는 1위안(200원), CUID는 2위안(400원) 정도 합니다.

3. 카드 복제
- 리더기 업체에서 제공하는 프로그램으로 원본 카드를 읽고 해당 값을 저장해 두고, 복제 카드에 해당 값을 써주면 됩니다.
- 일부 값을 편집해서 저장하는 것도 가능합니다.
- 제가 산 제품은 제품에 딸려온 특정 시리얼 번호를 넣고 네트워크로 로그인을 해야 모든 기능이 사용 가능해지도록 S/W 만들어 두었더군요.

4. 테스트 & 적용 결과
제가 있는 곳은 CUID를 사용해야하는 곳이었습니다. 혹시나 해서 UID, CUID에 모두 복제를 해주고 엘리베이터에 사용해 봤습니다. UID는 안되고, CUID는 잘 인식하고 층수 버튼도 잘 눌러집니다.
그런데, 2번째 사용하려니 안됩니다. 복제카드의 특정 부분의 값도 바뀌어져 있습니다. 즉, 엘레베이터의 리더기가 값만 읽는 것이 아니고 복제카드 여부를 알아보기 위해 값을 쓰기도 한다는 거라고 예상되었습니다.
맙소사... 이제 원본카드 조차 거부됩니다.
이게 뭔일인가 싶어서 원본카드를 읽어보니 복제카드의 경우처럼 특정 영역의 값이 변경되어 있습니다. 원본카드도 쓰기도 가능한 CUID란 말인가? 보통은 read only 인 것으로 아는데... -_-;; (<--- 수정: 요건 제가 잘못 알고 있었네요. 원본 M1카드도 uid가 저장된 섹터0를 제외하고는 수정이 가능하군요.)
아직 복제하지 않은 여분의 다른 원본카드를 이용해서 사용할 때마다 일어나는 데이터의 변화를 추적해 봤습니다. 특정 위치가 카운터처럼 계속 값이 증가되네요. 음, 복제카드 사용을 막기위해서 카운터값을 계속 변화시키고 있는 것 같습니다.
문제가 된 원본카드와 복제카드 사용횟수 등을 가늠해서 최초 복제시점에서 카운터 값을 증가시킨 다음, 해당 값을 복제카드에 쓰고 테스트를 해 봅니다. 그래도 계속 거부됩니다.
한번 이상감지된 카드는 카운터값을 복원해도 원본이든 복제든간에 사용이 불가하네요. (어떤 원리일까 당시 어리둥절??? 엘레베이터가 일일이 카드값을 저장할 리는 없는데...)
즉, 출입구 현관과 엘리베이터의 카드 리더기는 단독 실행형이 아니고 어딘가에 있는 관리서버와 네트워크로 연결되어 있고, 각 카드 ID와 카운터값을 기록하고 대조하는 것으로 예상되었습니다. (하긴 수많은 세대의 카드마다 층수를 다르게 제한해야 하는데 그걸 카드 새로 등록할때마다 해당 엘레베이터의 롬을 일일이 수작업으로 바꿀 수는 없겠지요. 네트워크로 연결되고 중앙에서 통제하는 것이 확실한 것 같습니다.)
요약하면, 카운터 증가 알고리즘을 파악했다 하더라도 같은 ID의 카드들(원본, 복제 모두)은 카운터값 동기화 문제로 애초부터 같이 사용할 수 없는 것이였습니다. 복제카드를 막고 원본 출입카드도 팔아야 하는 보안시스템 개발업자의 개선 노력이으로 여기까지 왔나 봅니다.
어쨌든 원본카드는 살려야해서 관리실에 가서 자초지종을 얘기하고 살렸습니다. 이런 경우가 또다시 생기면 절대로 처리 안해준다고 혼내도 할말이 없었네요. ㅠㅠ
결론은 카드 복제는 가능했지만, 제가 있는 곳은 시설 출입 관리 시스템의 네트워크화와 중앙 통제 관리로 복제 카드 사용이 원천적으로 불가했습니다.
조만간 귀국하면 한국의 아파트에서도 한번 시도해 봐야 겠습니다.
추신) 도어록 카드는 잘 복제되고 사용가능하네요.
-----------------------------------------------------------------------------------------------------------
추가결론)
댓글을 종합해 봤을때, 한국의 아파트 카드키를 복제하기 위해서 중국산 복제기를 굳이 구매하실 필요는 없을 것 같습니다. 스마트폰의 MIFARE Classic Tool 만으로 동일한 기능이 가능합니다.
중국산 복제기는 MIFARE 앱보다 사전 암호키를 더 많이 DB에 가지고 있다는 것이 차이점인데, 그 DB에는 중국산 카드 암호키가 대다수일테고 한국산 카드 암호키가 있을 확율은 낮으므로, 한국산 카드의 암호키 해독은 실패할 가능성이 높을 것 같습니다.
널리 알려진 암호키라면 스마트폰과 MIFARE Classic Tool 앱로도 충분히 복제가 가능합니다.
더이상 알리에서 이런 카드 복제기로 돈 낭비하지 마시길...
추신) 만약, MFOC, MFUCK 기능까지 활용하려면 복제기 구매 검토.
와 복제카드 대책 신박하네요
복제카드 사용시 : 기존 카드 0001 복제 카드 0002
기존카드 사용시 : 기존 카드 가 0002가 아니므로 에러, 카드 정지
이런 알고리즘 이었을까요? 복제 카드만 계속 썼다면 기존 카드 처럼 쓸 수는 있었던 걸까요..
기타 카드 태그 해야하는 곳(쓰레기 투입기, 커뮤니티 출입) 등은 되더라구요..
암호화 문제인것으로 생각은 하고 있습니다..
혹시나 내가 가지고 있던 키를 분실했을때, 누군가는 언제든지 복제할 수 있다고 생각한다면.
이건 키가 키 역활을 못하게 되는것 같네요.
아, 누군가 나의 카드를 막을 목적으로 내카드를 몰래 복제해서 써버리면 카운터 불일치로 내 카드도 못 쓰게 되는 것 아니냐는 의미셨군요. (사실 막혀도 관리실가서 바로 살릴 순 있습니다. 카드 ID 조차 바꿀 수도 있구요.) 시설마다 카드 관리 방식이 다를 수 있으니 복제해서 쓴다고 내카드까지 무조건 막힌다고 볼 수는 없겠죠. 제가 있는 여기 아파트 보안만의 특징일 수도 있으니까요? 중국내 다른 지역에 계신 분 중에 복제카드 아무문제없이 잘 쓰시는 분도 있고 해서 너무 일반화하실 필요는 없을 것 같습니다. 하물며 한국이면 보안 생태계가 전혀 다른 방식일 수도 있을 것 같습니다.
그런데 오늘 이 사용기를 보면서 '아, 이거 다른 사람 손에 들어가면 난리날 수도 있겠구나' 하는 생각을 했습니다.
정성스런 사용기 잘 봤습니다.
근데 관리 콘솔이 어디있는지에 따라서 조금 위험성이 있긴하겠네요. 해당 서버 죽으면 엘베를 쓸수가 없을테니까요.
폰이랑 차키에 붙이고 사용하는데.. 편하기는 합니다..
나중에 하나라도 잃어 버리면.. 원본 키도 사용을 중지해야 겠네요..
우리나라에선 보안에 엄청 신경을 쓴 공공기관을 제외한 곳에서는 SAM카드를 사용하는 경우를 못봤습니다.
근데 보통 SAM카드 탑재 안 된 카드는 읽히는 것 조차 안될텐데 희한한 방식이긴 하네요
아마도 이와 같은 문제 때문일거라 예상해봅니다.
---
카드를 읽을 때 특정 필드에 바로 특정값을 기록해버리고
다음 읽기했을 때 값만 비교하면 복제되어 두벌이 된 카드는 적발이 가능하겠네요.
굉장히 간단한 알고리즘으로 바로 적용이 가능하겠습니다.
휴대폰으로도 가능할것 같네요.
복제기 만들어주는 회사는 DB가 많은 거고,
NFC tool은 그게 적은 거죠.
근데, 중국 업체의 복제기로 중국 카드가 복제되는 것은 생태계 특성상 이해가 되는데 한국 카드가 복제된다는 것은 무엇을 의미하는 걸까요? 원본 카드 제조사가 중국이라서 ? 뭔가 불법적인 방법으로 한국에서 수집되고 중국으로 넘어가서 ? 중국에서 한국카드 암호키 입수해서 어디에 써 먹을려고 ? 아니면 이미 널리 알려진 암호키를 쓰는 한국 카드 업체의 문제인지?
결국, 복제기 업체도 저 오픈소스를 이용하고 중국에서 수집된 암호키를 더한 것이군요.
카드형, 키고리형도 모두 2가지의 주파수 대역 제품이 각각 있긴 합니다. 제가 쓰는 원본카드도 신용카드 형태이고 13.56을 사용합니다. 정확한 것은 리더기로 읽어보면 바로 알 수 있지 않을까요?
그런데, 혼종으로 125, 13.56을 동시에 지원하는 안테나와 칩이 각각 2개씩 들어있는 카드도 있긴 하더군요. 그 경우는 시설측 리더기가 동시에 2가지 주파수 대역을 쓰면 복제해서 사용하는 것이 불가능하겠지만, 각기 다른 장소에 리더기가 설치되어있고 카드만 하나로 통합되어 있는 거라면 125 카드와 13.56 카드로 각기 나눠서 2개로 복제해서 사용할 수는 있을 것 같습니다.
아파트 전산관리 시스템은 입주 할 때 그 상태로 제대로 업데이트 되지 않습니다.
코콤 쓰는데 관리사무소는 관리 능력 안되서 외주 주는데 이마저도 제대로 안되서 고장나있고 고치는데 6개월 넘게 걸리고 기능 미비도 처음에 설치된 후로 개선 어렵다고 하더군요.
한국 아파트 대부분 복제 키 사용 가능할겁니다.
웃긴건 필요 없는데는 이상하게 잘 복사됨....ㅠㅠ
키 내용중 한두개 블록은 복사가 안되고,
결국 현관은 열리는데, 공동문은 안열리네요.
사실 복제기 업체의 프로그램으로 카드를 풀었다는 것은 이미 복제기 업체 DB에 해당 카드키가 사전에 있었다는 의미죠. 암호를 푸는 방식이 무작위 대입으로는 수만년이 걸려서, 결국 사전에 키를 많이 확보해 두고 그걸로 대입해서 푸는 식입니다.
또다른 문제는 복제기 없이 스마트폰에 있는 앱으로 그냥 복제되는 카드는 해당 암호키가 이미 전세계에 널리 퍼져있는 셈이죠. 앱에 포함되어 배포되는 키라서... 암호화 자체가 없는 카드도 많고 말이죠.
사실상 암호키가 중요한 것이 아니라 복제가 되더라도 그걸 감지해서 막는 중앙통제시스템이 훌륭해야 한다는 거죠.
네트워크 연결하는 이유는 프로그램 복제 사용을 막고(ㅎㅎ 복제기 업체도 이게 고민이죠), 프로그램이나 사전키 DB를 업데이트해서 내려주는 착한 짖이 목적이지만 의심은 항상 들고 가끔 패킷 캡춰해서 까봐야 할 듯 합니다.
추신) 알아보니 MFOC, MFUCK 라는 오픈소스로 구현된 M1카드 암호키 찾는 로직에 복제기 프로그램에 들어가 있긴 하네요.
공동현관문 원패스키라 무선으로 자동으로 열리는 구조입니다 원패스키 배터리 없으면 수동으로 접속하면 열리구요
근데 원패스키 복사하니깐 정보란에 ISO 14443A 13.560MHZ 이렇게 뜨는데 CUID 키를 구입해야죠?
UID키를 구입했는데 저희집 현관문만 잘작동되고 공동현관문은 아예인식을 못하는것 같더군요
알리에서 CUDI 키를 구입할지 타오바오에서 구입할지 고민중입니다 스티커형하고 고리형 구입할까합니다
저희집은 18년도에완공 회사직원 아파트는 21년도에 완공 회사직원 키복사해서 UID키 줬는데 공동현관문+현관문 잘작동된다고하더군요
리더기로 원패스키 읽기 복사는 잘되는것 같은데 CUID키가 아니라 그런지 구입해봐야알것같아요
공동현관은 cuid 로 가능할 수도 있을 것 같습니다만, uid로 아예 인식이 안되었다면 다른 주파수 125khz 쓰는 ID 카드일 수도 있을 것 같습니다. 앏은 카드라면 핸드폰 플래쉬로 뒤면에 대고 보면 안테나가 보일 수도 있습니다. 안테나가 2개면 서로 다른 주파수 쓰는 것이 맞을 것 같습니다.
그런데, 배터리까지 쓰는 카드라면 아예 다른 무선 보안 기술을 사용했을 수도 있겠네요.
추신) UID, CUID를 구분해서 사용해야하는 이유는 UID에는 암호를 몰라도 값을 바로 읽고 쓸 수 있는 백도어가 존재하는데 시설 측 리더기가 이 백도어 여부를 체크해서 복제카드 여부를 판단하는 기능을 넣어 두었다면 CUID로 복제카드를 만들어야 한다고 하네요. CUID는 백도어가 없는 복제카드입니다.
링크좀 부탁드릴게요