中华锁艺人

标题: NFC模拟加密卡 [打印本页]

作者: 天际线0907    时间: 2021-1-18 00:52
标题: NFC模拟加密卡
记录小米手机NFC模拟加密门禁卡,以及Proxmark3的使用。
/ i# G6 K% I4 M6 N" E+ G* k0 I# F5 W6 ]& W" o4 V
0. 缘起
4 M7 C: t3 `' x
! l  W$ k! c- x$ y' Q4 N之前,小区用的门禁卡为非加密的门禁卡,使用小米手机系统自带的门卡模拟功能复制即可。
% _; H* d3 M; C后来,小区门禁系统换了一家供应商,再使用之前的方法复制门禁卡,手机提示为加密卡,无法复制。
3 W4 X0 G7 O8 Z5 T; Z+ s) z% V$ F% p$ ^% A+ o+ C9 V" ?
新的门禁系统,更安全了,也支持APP远程控制开门了,直到有一天门禁卡丢了,开始使用APP开门,发现这APP写得烂透了,十次有五次点击开门按钮无反应,需要反复退出、打开APP多次才能点击开门按钮成功,还有两次直接没了开门按钮,提示到物业管理处处理……! |- h  b) ^  I+ o7 v2 }
那个时候,我又开始怀念用手机刷门禁的快感了。。; C- g4 K" o3 `
8 c9 P6 w; B, x( r7 X6 k  [
1. 基础知识% X+ O: K. O5 i2 z: ^: G

+ I- @$ s3 J; G5 d! S于是,我开始查阅资料,基本确定了小米手机是还是可以通过其它方式模拟加密门禁卡的。
0 ^: H3 h2 g/ L& V6 n* K5 b8 ^& n2 l然后,资料查多了,记不到,又怕以后用到需要重新找,干脆水一篇博客记录下来。
8 x6 ^  M; R* d# o如果熟悉NFC和IC卡,或者只想模拟加密门禁卡,并不关心原理,这章可以跳过,直接看下一章。
& f% p* \4 s7 D% r, r" u
9 x! X* s; T. S0 e6 S1.1 ID卡和IC卡
9 V: N, y. j" [: x
1 A, I, ^. W% D6 u- R5 L1 F. j" FID卡:全称身份识别卡(Identification Card),多为低频(125Khz),是一种不可写入的感应卡,含固定的编号,主要有台湾SYRIS的EM格式,美国HID、TI、MOTOROLA等各类ID卡。' s" h, y: a. J" z7 ]2 d$ O. F

) t- A$ Y  b: |( w# C+ }IC卡:全称集成电路卡(Integrated Circuit Card),又称智能卡(Smart Card)。多为高频(13.56Mhz),可读写数据、容量大、有加密功能、数据记录可靠、使用更方便,如一卡通系统、消费系统等,目前主要有PHILIPS的Mifare系列卡。
  ?. j/ @! s: z/ n4 a# Q+ ^% G
& k, p* J0 q5 z3 b9 F6 a2 m1 a' v  y主要区别:7 W8 D2 A1 `/ U) r  @( c
ID卡,低频,不可写入数据,其记录内容(卡号)只可由芯片生产厂一次性写入,开发商只可读出卡号加以利用,无法根据系统的实际需要制订新的号码管理制度;. z& u/ K- Z' E$ F6 X
IC卡,高频,不仅可由授权用户读出大量数据,而且亦可由授权用户写入大量数据(如新的卡用户的权限、用户资料等),IC卡所记录内容可反复擦写;, o2 w! S/ W: W
9 G9 N& |, L1 S
IC卡由于其固有的信息安全、便于携带、比较完善的标准化等优点,在身份认证、银行、电信、公共交通、车场管理等领域正得到越来越多的应用,例如二代身份证、银行的电子钱包,电信的手机SIM卡、公共交通的公交卡、地铁卡、用于收取停车费的停车卡、小区门禁卡等;/ s7 p1 s5 z) e' z3 Q9 }5 a! K
0 B, H* C, f$ t# ?6 [/ f
# A1 n6 ]) O  C! m% Y% z

  q; d( J: ?- R$ f) P9 v
! e, J; F9 |5 D
! S1 l! h( r" i/ C以上图片来自淘宝商家,网上找了半天相关资料,发现淘宝商家解释得最清楚。+ Z9 f' C5 n, ?  L; n

5 e9 e, ?7 U  ~5 v0 c9 m总结:
( i8 U' V% V! M2 V1.ID卡多为低频,IC多为高频;0 T9 g% `. i  Z$ k
2.IC卡整体上看比ID卡更有优势,市面上使用的大多数也是IC卡;
9 k  j0 I7 t$ R1 r& n' r3.对于矩形白卡,里面为矩形线圈、表面没有编号的多为IC卡,里面为圆形线圈、表面有编号的多为ID卡;( x! n, O% k% @0 C, z; C' h- `
4.对于异形卡,有编号的多为ID卡,最好使用带NFC的手机进行测试(目前手机NFC只能读高频13.56Mhz),IC卡会有反应;+ O2 l1 c* V3 c1 M; Q) m
7 r( M) C& W9 i1 c3 e5 C8 n
1.2 接触式和非接触式IC卡/ ]: C; s* q) b! L) h8 `

- w3 G7 P& w. \2 T$ l0 XIC卡又可以分为接触式IC卡和非接触式IC卡。! g) S/ y4 e# C- _7 s1 Q
# R1 R" f; l$ I0 U) N& p
接触式IC卡:该类卡是通过IC卡读写设备的触点与IC卡的触点接触后进行数据的读写;
6 V4 Z& \7 H) `) f- J0 x+ G  F$ }. _. B/ e7 v0 K
非接触式IC卡:又称射频卡、感应式IC卡,该类卡与卡设备无电路接触,而是通过非接触式的读写技术进行读写(例如RFID、NFC),其内嵌芯片除了CPU、逻辑单元、存储单元外,增加了射频收发电路。该类卡一般用在使用频繁、信息量相对较少、可靠性要求较高的场合。
& w) G+ l* S: X/ H4 s$ A$ n- k! h- i
两者比较好区分,直接看卡上有无金属触点即可。
& \: c. G9 u  s+ Y; P' H7 r
1 M) o* T; K/ q+ R% k% ]8 K, B, i3 _% H
- j8 o* t7 L* ]/ @  [+ l% b( x+ G
1.3 RFID和NFC+ U) K. B( @! q& P! T

- m: J+ I* p& ?' |& D非接触式的读写技术常见的有两种:RFID技术和NFC技术。% r9 A. M' p, [+ Q# J

( v; q$ A0 z- ERFID技术:+ ?: s2 a+ o& S- ^" F
1.通常应用在生产,物流,跟踪和资产管理上;' X* C( a( G9 o) n
2.根据频率划分包含低频、高频(13.56MHz)、超高频、微波等;# D& U$ T9 A# V2 k* [
3.作用距离取决于频率、读写器功率、读写器天线增益值、标签天线尺寸等,工作距离在几厘米到几十米不等;
1 h7 f4 ~: R( x' y( C7 E4.读写器和非接触卡可以是一对多关系,也可以说一对一关系;且读写器和非接触卡是两个实体,不能切换;
0 h' |8 h' r) |$ c: B1 \
: \* g- x% L) c, bNFC技术:
, D! p7 a8 b5 k) D1.通常应用在门禁,公交卡,手机支付等领域;
* Q$ Z7 Z2 ^* g* v1 r1 O: j8 |2.频率也是13.56MHz,且兼容大部分RFID高频相关标准(有些是不兼容);
. H+ h1 g0 N, U! R3.NFC作用距离较短,一般都是0~10厘米;7 Z9 s- Z# L" U, {8 y: Q
4.读写器和标签几乎都是一对一关系;且支持读写模式和卡模式,可以作为读写器也可变为非接触卡;
, _) j, p# o, l: k7 H$ V) B
- l! ?/ K/ P, U9 i+ Y: V总体来说,NFC是RFID的子集,但NFC有些新特性又是RFID所不具备的。# l- `5 F9 t8 q; j' P1 i
3 x2 v; [7 R& j5 i
1.4 ID卡类型0 U* m- `" u8 ^: I& H/ `' {/ o
8 P1 X' @* K9 V
ID卡,工作在低频(125Khz),根据卡内使用芯片的不同,有如下分类:) y5 A' b5 [8 P) ]# u6 {$ s( S
, s3 a2 ]2 A+ G2 Q
ID卡; v- o* {2 ?& f6 ~
EM4XX系列,多为EM4100/EM4102卡,常用的固化ID卡,出厂固化ID,只能读不能写;常用于低成本门禁卡,小区门禁卡,停车场门禁卡;
7 P& B$ f6 K) F& A4 K" _: i5 N/ A) E% {4 e: t6 s0 d
ID白卡
1 d" K) r  \5 w: BEM4305或T5577,可用来克隆ID卡,出厂为白卡,内部EEPROM可读可写,修改卡内EEPROM的内容即可修改卡片对外的ID号,达到复制普通ID卡的目的;0 w3 K0 h" Z9 i4 C  s, g. Y- b  J! q: n
T5577写入ID号可以变身成为ID卡,写入HID号可以变身HID卡,写入Indala卡号,可以变身Indala卡
9 t. k! }& ?5 K% O4 R* |+ r1 D) ^4 B# h  V- z6 j6 a/ @6 B% i/ |
HID卡$ T' i* Q: D5 y* `5 U3 M
全称HID ProxⅡ,美国常用的低频卡,可擦写,不与其他卡通用;
% u6 U0 D) ]/ _3 h
' T4 u' g% x( o% ?1.5 IC卡类型/ ~% ?/ c5 u$ v9 U$ q9 }& f

+ ]) w7 t$ i1 x( T6 kIC卡中最常见的是NXP Mifare系列卡,工作在高频(13.56Mhz),根据卡内使用芯片的不同,有如下分类:: H+ w  c/ B- B+ q$ h& \. |( B9 G
; w, O( i0 {& {# F: K
M1卡1 O3 W8 S8 ~/ h
全称Mifare S50,是最常见的卡,出厂固化UID(UID即指卡号,全球唯一),可存储修改数据;常用于学生卡,饭卡,公交卡,门禁卡;
5 H) k# R2 n7 z' |7 y# c, K% L. L9 k0 c0 r% k
M0卡* s1 I! Q( P) C$ I7 s4 Y
全称Mifare UltraLight,相当于M1卡的精简版,容量更小、功能更少,但价格更低,出厂固化UID,可存储修改数据;常用于地铁卡,公交卡;
  H' _! Z$ K- o
" {6 b  d* T; J5 A以上两种固化了UID,为正规卡,接下来就是一些没有固化UID,即不正规的卡:$ }5 R" c7 X- y# V7 b  i4 q
, |/ q4 U1 [/ E3 V; M, `
UID卡
# g4 A( Z1 H$ n: h+ E8 X全称Mifare UID Chinese magic card,国外叫做中国魔术卡,M1卡的变异版本,使用后门指令(magic指令),可修改UID(UID在block0分区),可以用来完整克隆M1卡的数据;
! m5 R) U3 a& M" ~" O* m但是现在新的读卡系统通过检测卡片对后门指令的回应,可以检测出UID卡,因此可以来拒绝UID卡的访问,来达到屏蔽复制卡的功能(即UID防火墙系统);
3 }6 r. V2 Q* A3 d+ W' p
5 R* Z2 Z/ k7 S, ?' B& V( kCUID卡* x0 ^( G# b# o. O; R8 f
为了避开UID防火墙系统,CUID卡应运而生,取消响应后门指令(magic指令),可修改UID,是目前市场上最常用的复制卡;/ O/ r; X* ^, b0 F/ Z+ \4 S
近两年,智能卡系统制造公司,根据CUID卡的特性研发出CUID卡防火墙,虽然现在(2019年)还不是很普及,但是总有一天CUID卡会和UID卡一样面临着淘汰;; I9 e3 e8 r$ n/ b3 }- G
2 ^1 Z' }$ S- t& e# K/ e5 Y$ ^) p
FUID卡
( \+ X. d+ Q5 W$ B! D0 }FUID卡只能写一次UID,写完之后自动固化UID所在分区,就等同M1卡,目前任何防火墙系统都无法屏蔽,复制的卡几乎和原卡一模一样;, x9 c0 C5 n& M& F
但缺点也相对明显,价格高、写坏卡率高,写错就废卡。1 f% p- _3 }3 ~, ^$ @7 k
9 }! F4 i* N: a
UFUID卡
3 K( F8 D2 j, \: g1 t& z1 q' j/ W集UID卡和FUID卡的优点于一身,使用后门指令,可修改UID,再手动锁卡,变成M1卡。
3 O2 ~" |" V# v+ M可先反复读写UID,确认数据无误,手动锁卡变成M1,解决了UID卡的UID防火墙屏蔽,也解决FUID的一次性写入容易写错的问题,且价格比FUID卡还便宜;- }* P- S- u2 L: [5 I& L
# r/ N5 S: I( \( G; q
判断是M0卡(Mifare UltraLight),还是M1卡(Mifare Classic 1k),可以通过SAK值判断。
( X* n: N( e2 ~7 v% [5 r7 Q& J- E/ }$ J' {0 O: @) e% j
产品ATQASAKUID长度Mifare Mini00 04094 bytesMifare Classic 1k00 04084 bytesMifare Classic 4k00 02184 bytesMifare Ultraligh00 44007 bytesMifare Plus00 44207 bytes& v; F7 v1 @( d) p( @

- P& k. h" T! K/ I9 g: m5 V1.6 IC卡详细分析
1 V0 x: T1 U; ~; }$ R# ^# t2 N- S( l
1.6.1 IC卡存储器结构# D" K3 F; l, I

1 }/ i1 q* j1 _6 G* s8 m以M1卡为例,介绍IC卡数据结构。
2 g5 O' z' g+ k1 ~; x* mM1卡有从0到15共16个扇区,每个扇区配备了从0到3共4个数据段,每个数据段可以保存16字节的内容;
: t" y. I1 o8 b每个扇区中的段按照0~3编号,第4个段中包含KEYA(密钥A 6字节)、控制位(4字节)、KEYB(密钥B 6字节),每个扇区可以通过它包含的密钥A或者密钥B单独加密;$ x+ ^9 u# P" H. O6 a) }

+ p1 A, K9 E1 z2 l9 r3 H- M& L& S' M( k- Z8 P# K
; g. z: ?5 p3 y8 o0 i" B1 \/ U
厂商段
2 q1 i& C/ \8 m每张M1卡都有一个全球唯一的UID号,这个UID号保存在卡的第一个扇区(0 扇区)的第一段(0 编号数据段),也称为厂商段。
$ L2 [% X* {: a0 k其中前4个字节是卡的UID,第5个字节是卡 UID 的校验位,剩下的是厂商数据。" M% ?1 W- ^8 [7 \: I
并且这个段在出厂之前就会被设置了写入保护,只能读取不能修改,前面各种能修改UID的卡,UID是没有设置保护的,也就是厂家不按规范生产的卡。! |% T# \/ H+ U  R
3 v# M* t- P0 g1 v  H+ p

# R3 `& {' _* E
; y# d; `: F3 z数据段" y. ^% T0 c0 X/ m1 `
除了第0扇区外,其它每个扇区都把段0、段1、段2作为了数据段,用于保存数据。
" y" t+ `3 S2 D/ _数据段的数据类型可以被区尾的控制位(Access Bits)配置为读/写段(用于譬如无线访问控制)或者值段(用于譬如电子钱包)。
* {* ?8 L6 M. s) b值段有固定的存储格式,只能在值段格式的写操作时产生,值段可以进行错误检测和纠正并备份管理,其有效命令包括读、写、加、减、传送、恢复,值段格式如下:+ N9 C# [1 i" i
1 e+ I$ K6 u' t! M, V

& ^/ H9 _5 v  @  d- @
- W" ^& x, M7 V* Z  XValue表示一个带符号4字节值,为了保证数据的正确性和保密性,值被保存了3次,两次直接保存,一次取反保存。该值先保存在0字节-3字节中,然后将取反的字节保存在4字节-7字节中,还保存了一次在8字节-11字节中。6 }) \. i, |9 k' V+ a- F) D
Adr表示一个字节的地址,当执行备份管理时用于保存存储段的地址。地址字节保存了4次,取反和不取反各保存了2次。在执行加值、减值、恢复和传送等操作时,地址保持不变,它只能通过写命令改变。
% C: t* d9 k1 W2 m) C- m
3 o0 m3 s) ~% x  C8 f* v+ X控制段
/ @; _6 \( j# H4 u) ?: Z/ J% @每个扇区都有一个区尾控制段,它包括密钥A和密钥B(可选),以及本扇区四个段的访问控制位 (Access bits);访问控制位也可用于指出数据段的类型(为读/写段还是值段);控制段的存储格式如下:
" I; m6 P. g& A  i7 \8 a- u  M* a- Y: x0 Y" s% v8 _( a+ Z8 a9 l

$ a1 f# a% @/ T: y
( f& v; V) Q* `7 N1 R$ D  K/ X& y  k如果不需要密钥B,那么区尾的最后6个字节可以作为数据字节,用户数据可以存储在区尾的第9个字节,这个字节具有和字节6、7、8一样的访问权限。' g1 @; F9 h5 I* S, F

- f% ~, D1 a* Q% E1 }4 d- A1.6.2 IC卡访问存储器
! X2 V# S+ s8 d. F  n7 }
( r; A5 N/ [( c, o7 l数据段支持的操作# b% M+ n1 y+ P; k1 Z- f, b3 `
根据使用的密钥和相应区尾访问条件的不同,数据段所支持的存储器操作也不同,存储器的操作类型如下:
( q3 Q& E0 _  \
6 s$ ~6 u, \7 R/ H- X5 Q) w' j" h3 s+ [, e& a) c

9 w, J& D0 i2 G9 W: j: ]* k5 X# X& |可以看到只有作为值段时,才能加、减、传送、恢复。
6 D# ?' K$ k5 Y, |: |6 m
0 W" K: p( E4 h各区的访问位定义
  `7 B$ T* B% E/ h每个数据段和区尾的访问条件由3个位来定义,它们以取反和不取反的形式保存在区尾指定字节中。' V- S* E5 f& }! G$ n! S
访问位控制了使用密钥A和B操作存储器的权限,当知道相关的密钥和当前的访问控制条件时,可以修改访问条件,各区的访问位定义如下:
" ^: y* O' q8 L/ o' J
! Z: L2 P% Y9 p1 s) d2 |, Z  K. d$ Q8 y- ~) i( j# b
# \0 C8 @8 ]8 F% ?
访问位在区尾的存储形式4 v0 z) `6 x. P0 A, M3 [- ^6 r

% M  p; G& n# I& q" ^: ~2 i; M. P8 _: {9 T! V

* K  Y  U6 C8 z9 I& M1 e0 v, n' H区尾的访问条件, l. L( P1 v& G6 `; D0 r3 m
根据区尾(段 3)访问位的不同,访问条件可分为 “从不”、“密钥A”、“密钥B” 或“密钥A|B”(密钥A或密钥B),区尾的访问条件如下:; I/ l; J) }" R$ W( [
7 X- \! T, M! v

' V: Y8 F$ w) _9 S3 q
6 M) L7 t/ V* j* N* g用灰色标明的行是密钥B可被读的访问条件,此时密钥B可以存放数据。" W- }& f1 z6 x3 r# q+ B  w
例如:当段3的访问条件C13C23C33=100时,表示:密钥 不可读(隐藏),验证密钥B正确后,可写(或更改);访问控制位在验证密钥A或密钥B正确后,可读不可写(写保护);密钥B不可读,在验证密钥 B 正确后可写;
& O6 G* W  ~8 u" e又如:当段3的访问条件C13C23C33=110或者111时,除访问控制位需要在验证密钥A或密钥B正确后可读外,其他如访问控制位的改写,密钥 A,密钥 B 的读写权限均被锁死而无法访问;
( g. t& n& O  Z( {* `; X8 P0 a/ P
8 A% k$ f. T( r3 c6 n* o数据段的访问条件# s' z  ?: ~" L0 Q1 r
根据数据段(段 0-2 访问位的不同,访问条件可分为 “从不”、“密钥A ”、“密钥B ” 或“密钥A|B”(密钥A或密钥B)。
6 i: b8 o% W$ Y+ ?# _' r相关访问位的设置定义了该段的应用(或者说数据段类型)以及所支持的应用命令,不同的数据段类型可以进行不同的访问操作。 读/写段可以进行读操作和写操作。值段可以进行加、减、传送和恢复的值操作。" w3 I. n2 B+ _/ _0 ]" p: u0 B$ C% B
其中一种情况中(001)只能对不可再充电的卡进行读操作和减操作,另一种情况中(110)使用密钥B可以再充电。 厂商段无论设置任何的访问位都只是只读的, 数据段的访问条件如下:' K3 x7 \8 `/ T# I' c/ L- M

  b3 I/ u  L. f4 [) ]
& n4 j+ B- K7 H9 q( n& Z& r
7 h! U8 L& H& L4 H% [如果密钥B可以在相应的区尾被读出,它就不能用于确认(在前面所有表中的灰色行)。如果读卡器要用这些(带灰色标记的)访问条件的密钥B确认任何段,卡会在确认后拒绝任何存储器访问操作。
; C( w  Y: c! Y; d* U+ j
3 o0 X9 q" A' \' r' b* N+ p1.6.3 举例说明
0 w6 m7 Y5 {) ?7 W" `) v% a2 L  d5 A% C1 O: H4 S: h8 M) r
Mifare S50出厂时,访问控制字节(字节6-字节9)被初始化为“FF 07 80 69”,KEY A和KEY B的默认值为“FF FF FF FF FF FF” ;' }( C, G: t. Y& S5 i& a4 P) _
字节6为FF,二进制为1111111;字节7为07,二进制为00000111;字节8为80,二进制为10000000,如下:
8 j2 E- t" n4 {8 l  i
- H. Q$ }1 Z! f) T; i9 ?: ~' T
( _- C8 K) h. e
, [: P0 r6 {* s3 N" w对照前面的访问位在区尾的存储形式图,可得知访问控制位为:- _$ T, i  E  L: Z4 r0 E
C10C20C30=000;C11C21C31=000;C12C22C32=000;C13C23C33=001。
0 b  s: q- c$ N, N3 `0 ^+ Y* O. _2 d% A
C10C20C30、C11C21C31、C12C22C32对应数据段0、1、2,参考数据段的访问条件图即可得知该段三个数据区的访问权限;
2 e7 j& T% r) t$ K- [; X  e; wC13C23C33对应区尾(段 3),参考区尾的访问条件图即可得知该段的访问权限;
5 @% Q. f* ~' \: g  v) r( \: M9 j- `9 x+ \; ^  N
块0控制位为:0 0 0 权限为:通过A或者B密码认证后可读,可写,可进行加值和减值操作;
' ~+ Z# f4 `/ [! o, U' O; }块1控制位为:0 0 0 权限为:通过A或者B密码认证后可读,可写,可进行加值和减值操作;
9 h4 z* ?% P4 W块2控制位为:0 0 0 权限为:通过A或者B密码认证后可读,可写,可进行加值和减值操作;" z4 m) a: j- I4 I9 G
块3控制位为:0 0 1 权限为:A密码不可读,验证A或者B密码后可改写A密码;验证A或者B密码后,可读可改写存取控制;验证A密码或者B密码后,可读可改写B密码;
% B( d8 Q  k5 p, {" F! c  M$ D2 J+ u9 [& y$ b- V' R* k5 b
这样每次换算还是有点麻烦,可以使用M1 S50卡控制字节生成工具快速换算:4 C" m- ^# X6 Q# r" T

# h1 D) ?" ?& H5 G8 C+ r9 |9 \; f% ~' j1 K* r7 `; T7 J' j
( X" f9 N# E* P* g
最下面一行可以输入想解释的控制字,也可以根据上面的设置生成控制字;
) |  {4 Q( v7 A5 T6 @. i最上面一行,左边是数据段0、1、2的访问控制位,右边是对应权限所需要的秘钥;
' J8 ]( K; C2 Z  }中间的一行,左边是区尾的访问控制位,右边是对应权限所需要的秘钥;
3 L  S% z% T/ c6 y2 I/ y. a
; a. v& n3 @$ t; k. ^1.7 非加密IC卡和加密IC卡3 }; g( L5 B0 h, c( `

+ e9 h) E) ?0 M# L7 G6 G, |非加密IC卡和加密IC卡的区别就是,非加密IC卡中所有扇区的KEYA和KEYB数值都是默认值FFFFFFFFFFFF;5 u3 u4 z8 ]7 }" I$ L  [7 o/ [
而加密IC卡中,其中有扇区的KEYA和KEYB不等于FFFFFFFFFFFF,部分扇区加密的卡称半加密IC卡,所有扇区都加密的卡称全加密IC卡。
# {5 r# Q# X( D: O5 h" \4 s
+ p9 w1 l- S3 R: Y. g5 O5 d一般的读卡器,像手机的NFC,是读不到IC卡的加密数据的,需要用专门的工具,比如Proxmark3读取。
  H& a6 {- q% ^& i( _' @; {- ]0 e0 v3 D$ |; r$ [, a- z% f
对于IC卡,除了对卡上数据加密,还有滚动码加密、服务器数据验证等技术。4 k/ b: g2 |0 H/ d( y
因此,对IC卡的解密,更多的是门禁卡、签到卡、车库卡等的讨论,像公交卡、饭卡等涉及到资金问题的,基本都有服务器定期校验,得先搞定服务器再说,难度高还违法。
, f$ B& r/ o! G( A+ W* Z  Z' E  [3 f+ v7 {- J
参考资料:; m* c, H) C7 r4 L7 r- s
码农生活 篇二:IC卡门卡模拟探秘
/ l7 W/ `% @- x) c* x+ UIC卡简介【M1/S50,UID,CUID,FUID,UFUID复制卡介绍】
2 }. G/ z  ]% Q; b! Q1 M8 p7 D: H谈谈 Mifare Classic 破解" U& Z8 e" c- ]7 _7 _
rfid-practice
2 s6 `; i, g8 S( q5 p/ YType A 卡存储结构与通信8 S& Z/ T8 x3 ]1 Y3 O1 N* i. H
Proxmark3 Easy破解门禁卡学习过程, D! f. R1 Y1 Z
. a9 y. Z- f: a3 z
2. 手机NFC模拟加密门禁卡
( t! f; b8 f: e7 P; _" V; x! C" E! F" K" v  a; q6 w5 u0 v
有了前面的知识,再来看现在我的加密门禁卡情况,手机能识别为加密卡,肯定是IC卡。3 D0 T: A0 W3 G% K3 M
. B9 {* ]8 ^% r! [
首先,加密卡在目前这个情况下是无法解密的,如果按照下面的操作失败,请参考下一章。5 _+ h, c' `! v! _" q' V+ r
部分门禁系统只认证IC卡的UID,利用这一情况,可以试试复制门禁卡的UID,看运气能否打开门。1 o2 h" F) d* A& r2 L7 Z$ t: L) F% W* i
5 }& {8 T  t% q$ n5 i4 e' k
在已root的情况下,直接使用APP NFC卡模拟 便可读取加密卡的UID和非加密数据、并写UID到手机NFC里。* U0 H; O/ E  }" V# R
在未root的情况下,使用小米系统自带的门卡模拟功能,出于安全考虑,是不能对加密卡进行任何操作。手机的NFC,理论上可以读加密IC卡的UID,因此可以使用第三方软件MifareClassicTool读取UID,因为没有root,不能写手机NFC,但可以写IC卡,因此还需要一张CUID卡(不能使用UID卡),某宝上一块多一张,思路就是先读取加密卡的UID,再读取CUID卡的数据,然后将CUID卡的UID改为加密卡一样的UID,再将修改后的数据写回到CUID卡,最后用小米系统自带的门卡模拟功能,复制未加密的CUID卡即可。
$ A, B. M# @6 o
! D- T. i: w' v9 ^0 v9 f3 I1.读取加密卡的UID7 V- \3 Q- f* Z
打开软件Mifare Classic Tool,将加密门禁卡放到手机的NFC感应区域,识别到IC卡后,点击“工具”->“显示标签信息”,可以看到加密门禁卡的8个数字,4字节的UID。7 h# k8 s4 O. r6 a
注意,在16进制里,每个数字为4位(2^4=16),8位(bits)为一字节(bytes),即两个数字组成一字节,这里8个数字,即为4字节(Bytes)。
* a; S: G: m' i' @5 r; x5 B前8个数字,每个数字代表4位,8位为一字节,8个数字就是32位,即4字节
/ L6 {2 r/ b) C  ~: j接着打开“工具”->“BCC计算器”,输入UID,得到1位BBC(两个数字)校验数据。4 w, i" E6 i+ X
3 K' f" T5 a& o

2 z( V7 ]" e0 W3 B& E! ~% Q: ]0 `1 c8 a4 j2 z( V
2.读取CUID卡数据6 t/ ~0 X( h2 V1 H' E
将CUID卡放到手机的NFC感应区域,识别到IC卡后,点击“读标签”->“启动映射并读取标签”,即可得到CUID白卡的所有信息。2 i, N. ^# }7 {7 U: s0 c
接着修改第一行的前10个数字,改为加密门禁卡的UID(8个数字)和BCC(2个数字),一共10个数字,并点右上角保存图标保存。2 B! p6 W2 Q3 K5 m7 S* t; R

1 N* @6 E& o* `4 }7 a7 S, ?& Y( A" y" b& i. H! o

. g5 S  ]) i2 h% X; E: V3.写数据到CUID卡( }5 I% h9 A/ G
再将CUID卡放到手机的NFC感应区域,识别到IC卡后,点击“写标签”,勾选“写转储(克隆)”->“显示选项”->“高级:使能厂商块写入”。, Y+ J2 v% W2 K% g. j
再点击“选择转储”,选择刚才保存的数据,点击“选择转储”。5 o4 s" w9 Y6 z  O

- |, r5 x" o" w  H$ N
! G3 \1 `0 e" t! \. {* f, @+ N  e. @. n- X( ]) s
在弹出的选择写扇区界面,默认即可,点击“好的”,最后点击“启动映射并写转储数据”。
6 q, ]! _  f$ {4 L
0 o3 ^9 ]% l. y- o. v- Q, I- d) _6 @
' U, Z5 f& l/ ?. R6 J2 S* {
7 s8 n+ c, u0 b& U4.NFC手机复制CUID卡
: p7 ^( V/ H9 Z$ o最后,使用小米手机系统自带的门卡模拟功能,复制刚才写入新UID的CUID卡即可。: l" V! d  |4 D  X

1 B9 h1 m. m; C: v9 n+ }6 N5 `$ K接着,就看运气吧,我小区的门禁系统就只认UID,搞定。+ e6 {+ k6 s! t
$ a6 S4 h( k/ C9 M3 e5 f* U* ]! b$ f+ @

5 e# Z. }; m1 U, l( A' M
作者: BI3NRS    时间: 2021-1-18 13:25
学习一下,感谢分享
作者: 15314375698    时间: 2021-1-19 07:46
学习了师傅厉害
作者: 彩虹之约    时间: 2021-1-19 15:42
谢谢师傅,好详细的文章。
作者: 畅游天下    时间: 2021-4-8 13:45

! B  s$ D" w3 g( o6 u谢谢师傅,好详细的文章。现在多用于UID和CUID以及IC
作者: 灵活的胖子    时间: 2021-5-16 08:00
每天学习一点点,每天进步一点点
作者: 苍蓝    时间: 2022-7-1 09:21
学习一下,谢谢分享。
作者: A锁作锁为,为你    时间: 2022-7-1 21:08
谢谢师傅,好详细的文章
作者: 向世伟    时间: 2022-7-14 06:41
不错不错不错不错,谢谢分享!辛苦了




欢迎光临 中华锁艺人 (https://suoyiren.com/) Powered by Discuz! X3.5