中华锁艺人
标题:
NFC模拟加密卡
[打印本页]
作者:
天际线0907
时间:
2021-1-18 00:52
标题:
NFC模拟加密卡
记录小米手机NFC模拟加密门禁卡,以及Proxmark3的使用。
8 c$ @9 c0 n3 b, g7 \" `/ N% R
6 x3 A2 c. j( I+ ^
0. 缘起
( T* r) ~, @- ^- d
9 H1 r) g, m. y( s$ i- ~7 E E4 N
之前,小区用的门禁卡为非加密的门禁卡,使用小米手机系统自带的门卡模拟功能复制即可。
0 a4 s7 f1 K# ?
后来,小区门禁系统换了一家供应商,再使用之前的方法复制门禁卡,手机提示为加密卡,无法复制。
4 W. X9 Q2 H( p& ^" d4 I0 D
# O; a$ E; k: X3 C+ `) h
新的门禁系统,更安全了,也支持APP远程控制开门了,直到有一天门禁卡丢了,开始使用APP开门,发现这APP写得烂透了,十次有五次点击开门按钮无反应,需要反复退出、打开APP多次才能点击开门按钮成功,还有两次直接没了开门按钮,提示到物业管理处处理……
& m+ p1 B+ t: W6 h& r
那个时候,我又开始怀念用手机刷门禁的快感了。。
. _# M2 a: S( N4 v7 _6 U5 w# y$ p
, E! J' x" S! G" L# O" v. V
1. 基础知识
" M1 @$ ~0 ?- {$ J$ k; ]
& w9 N- D3 v6 v: ~
于是,我开始查阅资料,基本确定了小米手机是还是可以通过其它方式模拟加密门禁卡的。
0 a/ ^# S1 p: h/ w, h! U5 a
然后,资料查多了,记不到,又怕以后用到需要重新找,干脆水一篇博客记录下来。
: z& s7 K% K, v$ E' J; ?& V5 a
如果熟悉NFC和IC卡,或者只想模拟加密门禁卡,并不关心原理,这章可以跳过,直接看下一章。
3 F7 R0 w( C7 J& z4 V5 u
3 a1 u4 ~! X7 o: c# m0 a. v5 O
1.1 ID卡和IC卡
! z1 w2 m4 n9 m
; x% h2 [" F; T5 {" f0 Y# Z. y
ID卡:全称身份识别卡(Identification Card),多为低频(125Khz),是一种不可写入的感应卡,含固定的编号,主要有台湾SYRIS的EM格式,美国HID、TI、MOTOROLA等各类ID卡。
3 O$ [- [7 c, ^
/ s" k( E6 m5 |5 p% i
IC卡:全称集成电路卡(Integrated Circuit Card),又称智能卡(Smart Card)。多为高频(13.56Mhz),可读写数据、容量大、有加密功能、数据记录可靠、使用更方便,如一卡通系统、消费系统等,目前主要有PHILIPS的Mifare系列卡。
, `3 a$ t' L* F" A( b
; l0 Q' r X6 k( c- S6 l
主要区别:
- ]0 S& H" D: W4 Z1 X. J
ID卡,低频,不可写入数据,其记录内容(卡号)只可由芯片生产厂一次性写入,开发商只可读出卡号加以利用,无法根据系统的实际需要制订新的号码管理制度;
, w4 o$ C8 U2 L7 g1 u2 K
IC卡,高频,不仅可由授权用户读出大量数据,而且亦可由授权用户写入大量数据(如新的卡用户的权限、用户资料等),IC卡所记录内容可反复擦写;
! W n! D4 V, w% \
/ c* x% L/ U" ^7 l
IC卡由于其固有的信息安全、便于携带、比较完善的标准化等优点,在身份认证、银行、电信、公共交通、车场管理等领域正得到越来越多的应用,例如二代身份证、银行的电子钱包,电信的手机SIM卡、公共交通的公交卡、地铁卡、用于收取停车费的停车卡、小区门禁卡等;
% I4 C9 ~6 b5 [; ^. M I1 ~
7 B& m& a6 [, v, F- H& k; q. W

0 M9 q, }. B' n6 _, k1 ^
( Z4 ?% w& @7 }

L* L8 o$ Q+ V9 @# p
6 o$ l& H3 z m; A
以上图片来自淘宝商家,网上找了半天相关资料,发现淘宝商家解释得最清楚。
: c8 \! B, U0 x! B
3 h( e6 w$ E O( z8 x9 ?( B
总结:
$ `! Q) m3 u& \% l7 y7 O3 `
1.ID卡多为低频,IC多为高频;
0 s7 r& Z0 H8 C6 i
2.IC卡整体上看比ID卡更有优势,市面上使用的大多数也是IC卡;
: Y7 A# K( R7 I; V' E+ J
3.对于矩形白卡,里面为矩形线圈、表面没有编号的多为IC卡,里面为圆形线圈、表面有编号的多为ID卡;
3 H1 \" }7 M0 q9 Q
4.对于异形卡,有编号的多为ID卡,最好使用带NFC的手机进行测试(目前手机NFC只能读高频13.56Mhz),IC卡会有反应;
" h3 r+ ~( H) E5 k0 ~
$ l8 c: I: O5 s) r y: x
1.2 接触式和非接触式IC卡
8 | ?$ B8 x- w9 ~; i
5 y5 _1 T' p5 R$ N
IC卡又可以分为接触式IC卡和非接触式IC卡。
s4 D, s p! \' p" x
: r9 A- [. a! j7 Z
接触式IC卡:该类卡是通过IC卡读写设备的触点与IC卡的触点接触后进行数据的读写;
! c W* x. q: K/ z# a& N3 H: }
3 s/ G. ] ^! Q
非接触式IC卡:又称射频卡、感应式IC卡,该类卡与卡设备无电路接触,而是通过非接触式的读写技术进行读写(例如RFID、NFC),其内嵌芯片除了CPU、逻辑单元、存储单元外,增加了射频收发电路。该类卡一般用在使用频繁、信息量相对较少、可靠性要求较高的场合。
u% L# z4 d, d4 r i! X* i% D5 N+ I- ]) @
, I" ^# E5 U' J- w
两者比较好区分,直接看卡上有无金属触点即可。
+ Y7 b: W' j" N6 x3 r @3 ~
1 ?, i# G& g j: i, w

$ q m, K/ z5 m
4 n; c+ ?0 @# v. }+ D) G# s- G; m
1.3 RFID和NFC
6 b) B2 \3 @9 W4 @8 s
; h d/ @7 I2 |: ]2 w
非接触式的读写技术常见的有两种:RFID技术和NFC技术。
9 ]0 p1 g. l3 e& m' O0 H$ L
0 u7 A) s- L; J, ?0 J d
RFID技术:
* R% c/ c h% D! q
1.通常应用在生产,物流,跟踪和资产管理上;
' J7 ]4 _' w1 Q6 r0 a3 ~. }
2.根据频率划分包含低频、高频(13.56MHz)、超高频、微波等;
8 o0 b) L" r/ [1 q
3.作用距离取决于频率、读写器功率、读写器天线增益值、标签天线尺寸等,工作距离在几厘米到几十米不等;
- T# C. a# c" R+ e" [3 K6 [8 G2 p5 D
4.读写器和非接触卡可以是一对多关系,也可以说一对一关系;且读写器和非接触卡是两个实体,不能切换;
7 L- p( Q8 d T
6 P( j; g6 w! g$ f
NFC技术:
1 l6 n) V5 Z4 j# ^8 L: Y
1.通常应用在门禁,公交卡,手机支付等领域;
) u) g7 o" w4 A% F$ V* O9 B/ Q2 ~' Q
2.频率也是13.56MHz,且兼容大部分RFID高频相关标准(有些是不兼容);
% P1 d" t2 P# |& K v: R
3.NFC作用距离较短,一般都是0~10厘米;
" O- Z8 O K; f Q8 C
4.读写器和标签几乎都是一对一关系;且支持读写模式和卡模式,可以作为读写器也可变为非接触卡;
7 z7 o/ j1 i2 q- x( `
7 u# v8 r$ Z7 g( a5 y5 f
总体来说,NFC是RFID的子集,但NFC有些新特性又是RFID所不具备的。
; |: _7 Q: c. M( w0 p$ A
- Y; M, x0 |6 b$ i! k' J: [4 i/ f
1.4 ID卡类型
1 t( B7 W7 ^+ J' Y, n( }: Y
' H. ]4 @. d6 I! U/ c9 `
ID卡,工作在低频(125Khz),根据卡内使用芯片的不同,有如下分类:
- I6 z. q- I5 E' f% {1 t# e
; \' A$ Y/ o) r5 Z7 |
ID卡
% e2 b6 @; a( ~9 @4 H9 A
EM4XX系列,多为EM4100/EM4102卡,常用的固化ID卡,出厂固化ID,只能读不能写;常用于低成本门禁卡,小区门禁卡,停车场门禁卡;
' m8 u0 d7 O6 Z
9 k! R& r7 I- |
ID白卡
8 R( L' o4 p9 {1 l! Z) R# r; ^
EM4305或T5577,可用来克隆ID卡,出厂为白卡,内部EEPROM可读可写,修改卡内EEPROM的内容即可修改卡片对外的ID号,达到复制普通ID卡的目的;
' S$ r! C; \. L9 n6 d; `8 ^ D
T5577写入ID号可以变身成为ID卡,写入HID号可以变身HID卡,写入Indala卡号,可以变身Indala卡
3 C" p1 z! Z% E/ g9 j
% ]+ }' p# ~" {3 }2 r
HID卡
* P* N$ {" _* J# U' p/ |* E0 f
全称HID ProxⅡ,美国常用的低频卡,可擦写,不与其他卡通用;
! \6 d8 F1 i. L+ ~4 ]5 C- d% P
4 U* B7 \0 Z) `$ o3 M3 x, I' ~
1.5 IC卡类型
" ]5 k4 v# R( ?( f1 K
1 z3 ^% `$ _1 E( q# W J3 T
IC卡中最常见的是NXP Mifare系列卡,工作在高频(13.56Mhz),根据卡内使用芯片的不同,有如下分类:
- U( N+ z! `: V
" d; M* g. z% t T. j9 T
M1卡
6 u/ w/ y- L" K: l h( C- q
全称Mifare S50,是最常见的卡,出厂固化UID(UID即指卡号,全球唯一),可存储修改数据;常用于学生卡,饭卡,公交卡,门禁卡;
# F! m. \3 h% m/ i0 O7 I9 M
' G/ M, Z5 ]$ d
M0卡
) b# N. u7 E& |7 I! S3 U1 w! C' ~6 ~
全称Mifare UltraLight,相当于M1卡的精简版,容量更小、功能更少,但价格更低,出厂固化UID,可存储修改数据;常用于地铁卡,公交卡;
; R/ D& w" q3 J1 K* K1 c
& m, J. p# c, ~! x
以上两种固化了UID,为正规卡,接下来就是一些没有固化UID,即不正规的卡:
R1 u$ @/ E8 R* Q3 ?) ]& J# t [: s
$ O( P C5 O8 t: p' @* G4 I
UID卡
; x' t8 p" U; {8 V* S% s$ {$ C
全称Mifare UID Chinese magic card,国外叫做中国魔术卡,M1卡的变异版本,使用后门指令(magic指令),可修改UID(UID在block0分区),可以用来完整克隆M1卡的数据;
, @, c& ]* n, k. {3 t5 _
但是现在新的读卡系统通过检测卡片对后门指令的回应,可以检测出UID卡,因此可以来拒绝UID卡的访问,来达到屏蔽复制卡的功能(即UID防火墙系统);
% y2 ^8 ~2 u2 q4 u
+ U6 g2 P$ j) V4 c( G" d
CUID卡
/ B" K, H9 T( {
为了避开UID防火墙系统,CUID卡应运而生,取消响应后门指令(magic指令),可修改UID,是目前市场上最常用的复制卡;
! b. H6 C* Y7 ?3 W
近两年,智能卡系统制造公司,根据CUID卡的特性研发出CUID卡防火墙,虽然现在(2019年)还不是很普及,但是总有一天CUID卡会和UID卡一样面临着淘汰;
, f- j1 g O# \( X* L" v# |
. F8 i$ n7 i5 a2 \
FUID卡
+ Y5 S2 y! K8 U5 a* ?+ j
FUID卡只能写一次UID,写完之后自动固化UID所在分区,就等同M1卡,目前任何防火墙系统都无法屏蔽,复制的卡几乎和原卡一模一样;
/ Z: R7 h7 p) R6 g6 L
但缺点也相对明显,价格高、写坏卡率高,写错就废卡。
7 m7 J: s# s; j
7 w2 D4 Y3 {2 K7 _! ~
UFUID卡
. k4 u. Z, f; k6 Q) o/ h% F0 K
集UID卡和FUID卡的优点于一身,使用后门指令,可修改UID,再手动锁卡,变成M1卡。
$ X h. t0 E o5 a4 ]
可先反复读写UID,确认数据无误,手动锁卡变成M1,解决了UID卡的UID防火墙屏蔽,也解决FUID的一次性写入容易写错的问题,且价格比FUID卡还便宜;
, Y/ I2 s1 v' o; I a }
/ ?' V+ r- b0 n9 K% d9 u# ~ I
判断是M0卡(Mifare UltraLight),还是M1卡(Mifare Classic 1k),可以通过SAK值判断。
, }& [/ b8 _5 y$ U
K5 G$ V, Y+ s
产品ATQASAKUID长度Mifare Mini00 04094 bytesMifare Classic 1k00 04084 bytesMifare Classic 4k00 02184 bytesMifare Ultraligh00 44007 bytesMifare Plus00 44207 bytes
2 }0 {4 f' X8 W5 K& g' y5 d' W
7 B6 Q5 s, |1 K4 X4 e6 _7 C2 E+ t
1.6 IC卡详细分析
( l- Q4 b% y4 t
: t$ N0 ~( ^' V i, }8 m
1.6.1 IC卡存储器结构
( K. d/ z3 v3 \" T( A
4 N# _0 A3 L, a ?
以M1卡为例,介绍IC卡数据结构。
8 N: |! E# m: [5 P' K$ y
M1卡有从0到15共16个扇区,每个扇区配备了从0到3共4个数据段,每个数据段可以保存16字节的内容;
3 _; B) q$ O0 G& R7 V, r% ]: n
每个扇区中的段按照0~3编号,第4个段中包含KEYA(密钥A 6字节)、控制位(4字节)、KEYB(密钥B 6字节),每个扇区可以通过它包含的密钥A或者密钥B单独加密;
8 Q( B( x0 j9 v! M8 Z
T7 P f$ E# ^& s

4 Q' H8 U4 g6 L6 `" M
: Y6 N8 u3 W6 O6 m2 _# C) y7 p
厂商段
7 K+ c L- ?( }3 W' P& V
每张M1卡都有一个全球唯一的UID号,这个UID号保存在卡的第一个扇区(0 扇区)的第一段(0 编号数据段),也称为厂商段。
1 X! l# w- q' x: E6 K
其中前4个字节是卡的UID,第5个字节是卡 UID 的校验位,剩下的是厂商数据。
$ U; p& E9 @- F9 W" @" ]. }
并且这个段在出厂之前就会被设置了写入保护,只能读取不能修改,前面各种能修改UID的卡,UID是没有设置保护的,也就是厂家不按规范生产的卡。
5 V6 [: B+ s7 I
: R3 B# b% n) ^8 \0 W8 }& A

0 J* O8 ?+ R+ `4 M$ |3 O' H6 g
4 h n1 f& Z( \1 y2 q3 c* O' ^2 M8 \
数据段
* K$ a6 P8 c7 s8 _- B. Y
除了第0扇区外,其它每个扇区都把段0、段1、段2作为了数据段,用于保存数据。
) ^4 P: Q3 f) m+ t
数据段的数据类型可以被区尾的控制位(Access Bits)配置为读/写段(用于譬如无线访问控制)或者值段(用于譬如电子钱包)。
5 t6 d, i5 @9 i# E1 }5 F
值段有固定的存储格式,只能在值段格式的写操作时产生,值段可以进行错误检测和纠正并备份管理,其有效命令包括读、写、加、减、传送、恢复,值段格式如下:
! D( J' z* m. S7 ~2 {& K0 z
8 }/ J: [$ Q. a

. Y6 C& C6 h6 Q2 T3 S' a' v" _
' c# `% ?/ r- s& L; X+ I: L
Value表示一个带符号4字节值,为了保证数据的正确性和保密性,值被保存了3次,两次直接保存,一次取反保存。该值先保存在0字节-3字节中,然后将取反的字节保存在4字节-7字节中,还保存了一次在8字节-11字节中。
; {, {( b5 Y7 ~" J6 N- i- \ {
Adr表示一个字节的地址,当执行备份管理时用于保存存储段的地址。地址字节保存了4次,取反和不取反各保存了2次。在执行加值、减值、恢复和传送等操作时,地址保持不变,它只能通过写命令改变。
, K. _4 Y& a; m/ Y" w* x
; R; }9 q" z! o/ W8 h- H
控制段
, _- j' H$ k; ]; m* R; P6 ]( s
每个扇区都有一个区尾控制段,它包括密钥A和密钥B(可选),以及本扇区四个段的访问控制位 (Access bits);访问控制位也可用于指出数据段的类型(为读/写段还是值段);控制段的存储格式如下:
$ a* j$ J" s+ |6 l7 \
( g" {% S1 F/ D6 K" p

4 i- h+ v7 q7 E& x& b/ o, M
! J1 U4 y0 x* H& o8 P
如果不需要密钥B,那么区尾的最后6个字节可以作为数据字节,用户数据可以存储在区尾的第9个字节,这个字节具有和字节6、7、8一样的访问权限。
/ R q( H% b, }2 S, Q& H
" [! K7 ^/ ~0 h6 _
1.6.2 IC卡访问存储器
# i! j; b& d ]4 A
4 f1 v( U* l# u# y1 p
数据段支持的操作
0 w K6 ?$ D! r( \' [0 v8 h! q
根据使用的密钥和相应区尾访问条件的不同,数据段所支持的存储器操作也不同,存储器的操作类型如下:
+ }5 a4 q; U9 ]$ B2 U
: E) u0 l- _9 v9 ~! i0 U

+ d! A+ K+ v1 e" a7 F5 P
9 x5 O- `, |5 |& C
可以看到只有作为值段时,才能加、减、传送、恢复。
. \7 y" Q/ T0 T& K
* G* e* d( a5 p/ g4 H! o- Y
各区的访问位定义
, M( K0 v: n; E. Q" s
每个数据段和区尾的访问条件由3个位来定义,它们以取反和不取反的形式保存在区尾指定字节中。
" H: G+ g- d1 s8 b2 f
访问位控制了使用密钥A和B操作存储器的权限,当知道相关的密钥和当前的访问控制条件时,可以修改访问条件,各区的访问位定义如下:
6 ]+ B4 Y/ w7 e/ n6 s
) V/ _' t! c; F( q9 ~4 l+ X

9 A( u+ }( m5 f$ P$ ^2 q$ X
( ~& Z. E* `0 R$ P5 c- p9 O& W
访问位在区尾的存储形式
+ G8 c; v% ^3 L3 X8 N2 Z3 `9 Y
- f1 ?3 x8 i: S

8 U, s9 J+ ~& @- h8 d, k
9 K t$ |7 l4 V) ?7 x. c U5 q: q
区尾的访问条件
* H8 h4 m( a5 q0 q& C
根据区尾(段 3)访问位的不同,访问条件可分为 “从不”、“密钥A”、“密钥B” 或“密钥A|B”(密钥A或密钥B),区尾的访问条件如下:
$ P8 R" `7 ?" c4 g9 v) w
& N; ^9 _( S! `- D

$ b. z2 |" z; [/ n0 N
: { G' r# _* D; N+ T& M) i
用灰色标明的行是密钥B可被读的访问条件,此时密钥B可以存放数据。
+ x- V/ F: p% P% @0 j+ q: I+ t: y0 R
例如:当段3的访问条件C13C23C33=100时,表示:密钥 不可读(隐藏),验证密钥B正确后,可写(或更改);访问控制位在验证密钥A或密钥B正确后,可读不可写(写保护);密钥B不可读,在验证密钥 B 正确后可写;
" L4 v' o1 j- ^; h+ }9 U0 s7 {1 e
又如:当段3的访问条件C13C23C33=110或者111时,除访问控制位需要在验证密钥A或密钥B正确后可读外,其他如访问控制位的改写,密钥 A,密钥 B 的读写权限均被锁死而无法访问;
6 ?1 b" B& H u6 a: S8 z
% Q7 f, V# m" Z) f7 I* z
数据段的访问条件
" o7 }. M6 i) b& X9 e5 C4 W$ a( D- ]
根据数据段(段 0-2 访问位的不同,访问条件可分为 “从不”、“密钥A ”、“密钥B ” 或“密钥A|B”(密钥A或密钥B)。
4 J9 v2 ?' ^8 U' U A
相关访问位的设置定义了该段的应用(或者说数据段类型)以及所支持的应用命令,不同的数据段类型可以进行不同的访问操作。 读/写段可以进行读操作和写操作。值段可以进行加、减、传送和恢复的值操作。
( _. B$ f# ~7 q) @
其中一种情况中(001)只能对不可再充电的卡进行读操作和减操作,另一种情况中(110)使用密钥B可以再充电。 厂商段无论设置任何的访问位都只是只读的, 数据段的访问条件如下:
. q4 q# k2 @/ D8 V
- ~5 r* ~/ ~( ~

- ?- P8 ]" ~9 [ U3 j
# ~) E" x, G( d
如果密钥B可以在相应的区尾被读出,它就不能用于确认(在前面所有表中的灰色行)。如果读卡器要用这些(带灰色标记的)访问条件的密钥B确认任何段,卡会在确认后拒绝任何存储器访问操作。
- j7 P: j9 ]4 a) b5 h
5 |' R; `8 N( {( x
1.6.3 举例说明
* E- G1 q1 Q( ~, J
) S6 x5 I) t8 D, {/ B# J
Mifare S50出厂时,访问控制字节(字节6-字节9)被初始化为“FF 07 80 69”,KEY A和KEY B的默认值为“FF FF FF FF FF FF” ;
9 [% y, h9 `3 P+ m7 m
字节6为FF,二进制为1111111;字节7为07,二进制为00000111;字节8为80,二进制为10000000,如下:
) c+ z- W# Y9 Q3 i9 k4 E" ^
$ C4 H+ w6 j Q# M( \5 z1 R

" s6 o B0 Q5 s, E& |
! V f0 A' a7 W8 L+ ^0 y( I) l
对照前面的访问位在区尾的存储形式图,可得知访问控制位为:
, |9 B3 E+ d7 d- W; q! D( W- |
C10C20C30=000;C11C21C31=000;C12C22C32=000;C13C23C33=001。
9 l- A# ]5 a2 S3 j$ o8 I
3 t) ?, g' F. B0 W: `, V
C10C20C30、C11C21C31、C12C22C32对应数据段0、1、2,参考数据段的访问条件图即可得知该段三个数据区的访问权限;
( }5 y, Q. S( v' K8 f: {# W3 P
C13C23C33对应区尾(段 3),参考区尾的访问条件图即可得知该段的访问权限;
, S& \5 j& ]2 i/ ?
: S0 G( ]5 L+ V# ]; w3 {1 y* e X V
块0控制位为:0 0 0 权限为:通过A或者B密码认证后可读,可写,可进行加值和减值操作;
+ V2 M8 G9 W; B; N
块1控制位为:0 0 0 权限为:通过A或者B密码认证后可读,可写,可进行加值和减值操作;
6 C( g- `) T/ p- P
块2控制位为:0 0 0 权限为:通过A或者B密码认证后可读,可写,可进行加值和减值操作;
2 g* K* ?+ L" H. ^% I
块3控制位为:0 0 1 权限为:A密码不可读,验证A或者B密码后可改写A密码;验证A或者B密码后,可读可改写存取控制;验证A密码或者B密码后,可读可改写B密码;
+ Z9 Q5 Y0 o4 T
; U3 V. q8 X, m' V# l9 [7 e8 {
这样每次换算还是有点麻烦,可以使用M1 S50卡控制字节生成工具快速换算:
1 B/ r2 K; H1 `
3 {' p7 ~: J: E: F

/ G6 x! Z* k/ Q6 U
4 G6 I6 G6 R8 |( F3 m' c
最下面一行可以输入想解释的控制字,也可以根据上面的设置生成控制字;
" V: Q7 B5 R9 e8 ^' K
最上面一行,左边是数据段0、1、2的访问控制位,右边是对应权限所需要的秘钥;
) ~: ]) j* y& b$ I( E
中间的一行,左边是区尾的访问控制位,右边是对应权限所需要的秘钥;
( ^1 L1 r2 A- l2 D4 M% q C
* q$ y% I9 F1 R( l+ d" o, G
1.7 非加密IC卡和加密IC卡
/ Z' l" U' B* [* q) I
G* ?4 d% A! U d
非加密IC卡和加密IC卡的区别就是,非加密IC卡中所有扇区的KEYA和KEYB数值都是默认值FFFFFFFFFFFF;
: b4 Z/ q0 U* u* K) y, n
而加密IC卡中,其中有扇区的KEYA和KEYB不等于FFFFFFFFFFFF,部分扇区加密的卡称半加密IC卡,所有扇区都加密的卡称全加密IC卡。
, P T) y* P( _ ^
U8 s6 L% n S+ F+ Q4 N
一般的读卡器,像手机的NFC,是读不到IC卡的加密数据的,需要用专门的工具,比如Proxmark3读取。
% D3 Q3 E* H/ [/ x! m! N8 z
+ }9 {! M* X) _$ ?/ b
对于IC卡,除了对卡上数据加密,还有滚动码加密、服务器数据验证等技术。
9 t1 n8 l8 I* h
因此,对IC卡的解密,更多的是门禁卡、签到卡、车库卡等的讨论,像公交卡、饭卡等涉及到资金问题的,基本都有服务器定期校验,得先搞定服务器再说,难度高还违法。
3 m0 [. }2 O l4 `) A. L" D% b
6 c! H4 S2 d$ Y
参考资料:
8 G2 Z$ }" E% J
码农生活 篇二:IC卡门卡模拟探秘
7 l1 _1 `, s1 Q" U& r( P
IC卡简介【M1/S50,UID,CUID,FUID,UFUID复制卡介绍】
8 v+ I9 G8 L& g$ K5 | R1 n
谈谈 Mifare Classic 破解
! _1 o0 R& s: r$ r
rfid-practice
4 G. Y7 e, t# n* d) P
Type A 卡存储结构与通信
, I: s- x/ S# p1 [& l
Proxmark3 Easy破解门禁卡学习过程
) |9 ?( D* X5 e7 }+ r
: r* M% p* g y% T; ]
2. 手机NFC模拟加密门禁卡
# n) m/ F- V$ D9 j, Z
6 I. O6 J2 T% |6 E+ ?# `1 |3 J
有了前面的知识,再来看现在我的加密门禁卡情况,手机能识别为加密卡,肯定是IC卡。
$ ?) K$ a; o+ T$ ~& r7 E! N
2 {/ E" {; J0 W" a* T* Q3 q
首先,加密卡在目前这个情况下是无法解密的,如果按照下面的操作失败,请参考下一章。
$ j% {2 u: @' r5 c, G
部分门禁系统只认证IC卡的UID,利用这一情况,可以试试复制门禁卡的UID,看运气能否打开门。
$ l1 i9 C1 C& c& W8 j; O! x, y
; ?1 e$ f7 Z' c3 t% X4 j
在已root的情况下,直接使用APP NFC卡模拟 便可读取加密卡的UID和非加密数据、并写UID到手机NFC里。
( Z* g' B' y# }' X u
在未root的情况下,使用小米系统自带的门卡模拟功能,出于安全考虑,是不能对加密卡进行任何操作。手机的NFC,理论上可以读加密IC卡的UID,因此可以使用第三方软件MifareClassicTool读取UID,因为没有root,不能写手机NFC,但可以写IC卡,因此还需要一张CUID卡(不能使用UID卡),某宝上一块多一张,思路就是先读取加密卡的UID,再读取CUID卡的数据,然后将CUID卡的UID改为加密卡一样的UID,再将修改后的数据写回到CUID卡,最后用小米系统自带的门卡模拟功能,复制未加密的CUID卡即可。
, {$ S' g. R9 ], P( m' G
8 {( d5 y+ Y: i# o
1.读取加密卡的UID
/ j$ F4 O& ? W3 ~# g# R
打开软件Mifare Classic Tool,将加密门禁卡放到手机的NFC感应区域,识别到IC卡后,点击“工具”->“显示标签信息”,可以看到加密门禁卡的8个数字,4字节的UID。
- W! m( _9 K! c( h G7 c
注意,在16进制里,每个数字为4位(2^4=16),8位(bits)为一字节(bytes),即两个数字组成一字节,这里8个数字,即为4字节(Bytes)。
# ^6 T. \; I8 a- y3 |
前8个数字,每个数字代表4位,8位为一字节,8个数字就是32位,即4字节
1 I- Y3 ^5 z0 E6 @& m8 o8 p+ o
接着打开“工具”->“BCC计算器”,输入UID,得到1位BBC(两个数字)校验数据。
2 W; g8 B! h. M6 k4 \
9 }; `/ B4 W9 Q5 i

: B0 w$ f# j* x. p! [4 y6 O
( e- H* N0 }8 V$ x+ w3 H$ X _
2.读取CUID卡数据
* w- R6 U: \. ~. R4 C6 q+ j b
将CUID卡放到手机的NFC感应区域,识别到IC卡后,点击“读标签”->“启动映射并读取标签”,即可得到CUID白卡的所有信息。
- U# n$ W3 P+ `$ X7 s
接着修改第一行的前10个数字,改为加密门禁卡的UID(8个数字)和BCC(2个数字),一共10个数字,并点右上角保存图标保存。
2 l* ^2 P5 ]$ S* G
: E L% [# N3 [5 V1 p

) w, p; D9 L* I$ [
a6 N- F3 |, E/ V, y( k
3.写数据到CUID卡
+ ~) E# b: M2 c3 g, C2 `
再将CUID卡放到手机的NFC感应区域,识别到IC卡后,点击“写标签”,勾选“写转储(克隆)”->“显示选项”->“高级:使能厂商块写入”。
9 |3 m' W( k6 e
再点击“选择转储”,选择刚才保存的数据,点击“选择转储”。
6 K: [* {4 }- }. q
8 s1 R3 n) t6 I6 e

9 c9 X! M3 k& Y( D
3 ?% g, [: C, ~/ k5 Z
在弹出的选择写扇区界面,默认即可,点击“好的”,最后点击“启动映射并写转储数据”。
1 c/ D; m+ f5 n9 X* Y) `
, D: O8 R. O2 J

& u3 ?6 F2 H, t
1 Z2 F0 w) C. _ T
4.NFC手机复制CUID卡
: `& W- T: L, G7 l9 I. _" i; ~
最后,使用小米手机系统自带的门卡模拟功能,复制刚才写入新UID的CUID卡即可。
3 J$ r7 \; g% m
0 M5 K$ ^8 {# ]4 [2 |7 Y: a
接着,就看运气吧,我小区的门禁系统就只认UID,搞定。
3 p; T4 d5 ]. y6 B
k9 v! X, R) _* }
; w; [4 z# d, Z! H2 Q/ H
作者:
BI3NRS
时间:
2021-1-18 13:25
学习一下,感谢分享
作者:
15314375698
时间:
2021-1-19 07:46
学习了师傅厉害
作者:
彩虹之约
时间:
2021-1-19 15:42
谢谢师傅,好详细的文章。
作者:
畅游天下
时间:
2021-4-8 13:45
- o% o R3 D$ C B5 y: \- S
谢谢师傅,好详细的文章。现在多用于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://www.suoyiren.com/)
Powered by Discuz! X3.5