中华锁艺人

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

作者: 天际线0907    时间: 2021-1-18 00:52
标题: NFC模拟加密卡
记录小米手机NFC模拟加密门禁卡,以及Proxmark3的使用。: u( a4 z: y4 X  S& [

6 C  B- U+ N- w8 n- c0. 缘起. m( S, `7 Z4 g' c

$ B% T, D/ T' a: r) t' j: t之前,小区用的门禁卡为非加密的门禁卡,使用小米手机系统自带的门卡模拟功能复制即可。2 F/ i3 v/ k$ }9 P. p! ~. H$ U
后来,小区门禁系统换了一家供应商,再使用之前的方法复制门禁卡,手机提示为加密卡,无法复制。
! k& b: V3 b# H5 _+ F5 U: u" d1 b# Z4 ]7 i+ p7 I
新的门禁系统,更安全了,也支持APP远程控制开门了,直到有一天门禁卡丢了,开始使用APP开门,发现这APP写得烂透了,十次有五次点击开门按钮无反应,需要反复退出、打开APP多次才能点击开门按钮成功,还有两次直接没了开门按钮,提示到物业管理处处理……
/ [3 j& u+ R% ~那个时候,我又开始怀念用手机刷门禁的快感了。。
; j2 I: q1 t8 Q0 f) [/ @: V7 K$ j: |& @
1. 基础知识( t& P4 [$ Y0 o6 ]) x$ [* t7 M
! W5 W% y  N3 M4 M9 x  |: w7 X
于是,我开始查阅资料,基本确定了小米手机是还是可以通过其它方式模拟加密门禁卡的。( h* j& l6 _. k! G* V4 k& X
然后,资料查多了,记不到,又怕以后用到需要重新找,干脆水一篇博客记录下来。
: @% \. i2 r- R8 C5 L# n如果熟悉NFC和IC卡,或者只想模拟加密门禁卡,并不关心原理,这章可以跳过,直接看下一章。
( |( t' y* S0 d6 N8 o" a  s* M7 d( m2 P
1.1 ID卡和IC卡- F, Z, A3 E6 c. a
& `" H- @0 e3 S
ID卡:全称身份识别卡(Identification Card),多为低频(125Khz),是一种不可写入的感应卡,含固定的编号,主要有台湾SYRIS的EM格式,美国HID、TI、MOTOROLA等各类ID卡。  |: Y! n+ W! e& H" c" M

3 @" {& E8 E7 Y( bIC卡:全称集成电路卡(Integrated Circuit Card),又称智能卡(Smart Card)。多为高频(13.56Mhz),可读写数据、容量大、有加密功能、数据记录可靠、使用更方便,如一卡通系统、消费系统等,目前主要有PHILIPS的Mifare系列卡。$ T8 v( R: P0 j

& w1 g* q: e6 n* X0 X主要区别:
8 v! D7 y3 n) d$ q$ F  g* n7 EID卡,低频,不可写入数据,其记录内容(卡号)只可由芯片生产厂一次性写入,开发商只可读出卡号加以利用,无法根据系统的实际需要制订新的号码管理制度;
. f) [4 Q; z* T* f7 LIC卡,高频,不仅可由授权用户读出大量数据,而且亦可由授权用户写入大量数据(如新的卡用户的权限、用户资料等),IC卡所记录内容可反复擦写;
& `1 U4 v& W3 W" H6 n6 z8 f$ F* |: ?5 P1 |/ p$ E
IC卡由于其固有的信息安全、便于携带、比较完善的标准化等优点,在身份认证、银行、电信、公共交通、车场管理等领域正得到越来越多的应用,例如二代身份证、银行的电子钱包,电信的手机SIM卡、公共交通的公交卡、地铁卡、用于收取停车费的停车卡、小区门禁卡等;$ n7 j: L5 H( c) b. R) K: \% j

- p! E; c; e# p; L
8 O: n2 V3 M4 i: f
% A6 M# P! K/ Z; n  `
2 J5 x7 q9 j* i7 @9 ^0 v0 e0 e( i! M' P4 r: |7 E
以上图片来自淘宝商家,网上找了半天相关资料,发现淘宝商家解释得最清楚。: j1 M! M: x/ u
" P: b* E* r" {3 n/ Y. C8 ]' A
总结:* v$ K2 e' O7 a" R5 Y) K. `
1.ID卡多为低频,IC多为高频;
( S* Y3 G/ e. Q! y2.IC卡整体上看比ID卡更有优势,市面上使用的大多数也是IC卡;
% K7 O; ~* J- D6 d0 W) w6 p6 `$ M3.对于矩形白卡,里面为矩形线圈、表面没有编号的多为IC卡,里面为圆形线圈、表面有编号的多为ID卡;
: |: H) u% W9 }% g: w4.对于异形卡,有编号的多为ID卡,最好使用带NFC的手机进行测试(目前手机NFC只能读高频13.56Mhz),IC卡会有反应;( e$ {  P2 m  s5 l2 O# y
( J  O# T7 t$ b4 b
1.2 接触式和非接触式IC卡
! M; x" K% J7 H1 A" }  i
5 i. |* V0 `/ @2 lIC卡又可以分为接触式IC卡和非接触式IC卡。- d3 I2 |% [1 W3 I
+ Y% P; J$ E1 L
接触式IC卡:该类卡是通过IC卡读写设备的触点与IC卡的触点接触后进行数据的读写;
- o- C/ c6 a  b" G/ E0 i
0 Z7 `. e2 g3 x# w7 Z2 }0 M非接触式IC卡:又称射频卡、感应式IC卡,该类卡与卡设备无电路接触,而是通过非接触式的读写技术进行读写(例如RFID、NFC),其内嵌芯片除了CPU、逻辑单元、存储单元外,增加了射频收发电路。该类卡一般用在使用频繁、信息量相对较少、可靠性要求较高的场合。
) C  E0 ~- E# @" _6 i5 `! `  Q! d" V& J3 ?$ w$ a
两者比较好区分,直接看卡上有无金属触点即可。
! F' I6 S5 k) p; k0 v8 h0 M8 D
1 @/ [& F4 E( p  F# N
+ q6 Y9 p& w3 {+ g  h0 f1 Q
6 \# S( g. `2 t* Y1.3 RFID和NFC; O5 E% \, |9 ]# |+ W. D) x; x

6 I) w. l  Q) ^) z( d+ j非接触式的读写技术常见的有两种:RFID技术和NFC技术。
; X5 E0 p& h) _& f& D! x6 ~
) G) [8 j3 w/ r8 t7 a" Q) rRFID技术:
8 i0 @8 A$ ~+ @2 M8 v5 f! a) n1.通常应用在生产,物流,跟踪和资产管理上;' w# ~& V3 t+ P6 e/ }* ~! {- M
2.根据频率划分包含低频、高频(13.56MHz)、超高频、微波等;; W" T& {8 E, O' |
3.作用距离取决于频率、读写器功率、读写器天线增益值、标签天线尺寸等,工作距离在几厘米到几十米不等;
& e# t# Y4 \, k$ s* h2 l6 u4.读写器和非接触卡可以是一对多关系,也可以说一对一关系;且读写器和非接触卡是两个实体,不能切换;
6 s: n. j& {! y% I6 N# b3 |$ t8 F! a+ D" h- ?, D4 z" _
NFC技术:
' g, u# L- J( R8 Y, k1.通常应用在门禁,公交卡,手机支付等领域;
# X% ~$ X4 O0 P" f" Q- c! R2.频率也是13.56MHz,且兼容大部分RFID高频相关标准(有些是不兼容);& G9 F: M1 g1 s  b2 _4 R  F- X2 p  g, m
3.NFC作用距离较短,一般都是0~10厘米;
6 }4 ?; K- A5 u, m: G4.读写器和标签几乎都是一对一关系;且支持读写模式和卡模式,可以作为读写器也可变为非接触卡;  E9 o8 A$ Z0 g) O
8 O) L, O" \3 h/ \
总体来说,NFC是RFID的子集,但NFC有些新特性又是RFID所不具备的。
% i* F3 J' i9 `0 S! ]
0 e3 S% o: s1 V/ r% q+ l1.4 ID卡类型3 g# d" @$ m- T0 o0 _0 _
" u+ f7 l0 s8 k% A5 c: _
ID卡,工作在低频(125Khz),根据卡内使用芯片的不同,有如下分类:
  M9 n3 A; z# c! T7 e1 \9 z1 j7 v+ s) z/ x& Y; x: a- t3 @8 l% x
ID卡
- y3 ]+ {. O5 ~, j. Y1 C* N8 [- i7 ZEM4XX系列,多为EM4100/EM4102卡,常用的固化ID卡,出厂固化ID,只能读不能写;常用于低成本门禁卡,小区门禁卡,停车场门禁卡;/ P9 |/ G9 h+ [6 C* k) c; @7 |% H1 ^

* g: @& d3 n& a4 T' f; q: s/ tID白卡
4 x; ~* \. a% AEM4305或T5577,可用来克隆ID卡,出厂为白卡,内部EEPROM可读可写,修改卡内EEPROM的内容即可修改卡片对外的ID号,达到复制普通ID卡的目的;
4 T* K$ @) K( C5 aT5577写入ID号可以变身成为ID卡,写入HID号可以变身HID卡,写入Indala卡号,可以变身Indala卡5 o; E! O  Z3 i  s
* u) n; h5 v! @4 A, s2 T; ~
HID卡* Y: q6 q$ Z( x  j3 h
全称HID ProxⅡ,美国常用的低频卡,可擦写,不与其他卡通用;
  q; x6 w3 }  @# {1 p: n5 y
  Q) S- r/ j6 w1.5 IC卡类型
- }4 g( D+ \8 O6 a$ Q. e7 N4 `% L5 d* H9 ?3 e
IC卡中最常见的是NXP Mifare系列卡,工作在高频(13.56Mhz),根据卡内使用芯片的不同,有如下分类:0 z+ l5 Y3 i' e( d! t% X  H
1 y5 k4 F4 A" D# y
M1卡
7 e; }4 O* W) _6 F全称Mifare S50,是最常见的卡,出厂固化UID(UID即指卡号,全球唯一),可存储修改数据;常用于学生卡,饭卡,公交卡,门禁卡;
- C3 F) \* F. j( g' y3 ]! W- l7 ~- @7 b) B+ d1 h
M0卡% c0 V5 {- }2 c8 l3 ]% A3 X
全称Mifare UltraLight,相当于M1卡的精简版,容量更小、功能更少,但价格更低,出厂固化UID,可存储修改数据;常用于地铁卡,公交卡;
2 L0 @6 ^+ B% W- J3 ]1 Y. H# m4 b+ V$ V
以上两种固化了UID,为正规卡,接下来就是一些没有固化UID,即不正规的卡:8 D& @. d; r; \3 L! o4 w
: _/ J6 q$ `. q9 d
UID卡$ F, U. B3 k! S) V4 b
全称Mifare UID Chinese magic card,国外叫做中国魔术卡,M1卡的变异版本,使用后门指令(magic指令),可修改UID(UID在block0分区),可以用来完整克隆M1卡的数据;
( a: r1 d6 \1 Z4 X但是现在新的读卡系统通过检测卡片对后门指令的回应,可以检测出UID卡,因此可以来拒绝UID卡的访问,来达到屏蔽复制卡的功能(即UID防火墙系统);5 g! K7 k& N' [2 S
/ A, |( y% O3 |" X: p, W- x) q
CUID卡% `/ c) X1 r5 n# H1 g3 R+ e( u
为了避开UID防火墙系统,CUID卡应运而生,取消响应后门指令(magic指令),可修改UID,是目前市场上最常用的复制卡;: z2 d  c. o# n. R6 O0 p( T9 B
近两年,智能卡系统制造公司,根据CUID卡的特性研发出CUID卡防火墙,虽然现在(2019年)还不是很普及,但是总有一天CUID卡会和UID卡一样面临着淘汰;% j4 H; n1 _  F/ h8 h# E

, m, A9 _0 e" S, ?- mFUID卡
, A& e% d5 B* ^1 c! v6 e" nFUID卡只能写一次UID,写完之后自动固化UID所在分区,就等同M1卡,目前任何防火墙系统都无法屏蔽,复制的卡几乎和原卡一模一样;
) t0 l6 }/ N9 e但缺点也相对明显,价格高、写坏卡率高,写错就废卡。
7 n" Z6 ]! g" o4 J4 z" x! n) Q" F
UFUID卡% E/ }& M* w7 r5 I# @
集UID卡和FUID卡的优点于一身,使用后门指令,可修改UID,再手动锁卡,变成M1卡。1 m3 J2 K3 J% k
可先反复读写UID,确认数据无误,手动锁卡变成M1,解决了UID卡的UID防火墙屏蔽,也解决FUID的一次性写入容易写错的问题,且价格比FUID卡还便宜;
, M% E6 _6 B" V( s2 A
  O& i8 I1 p+ r* C7 P* |判断是M0卡(Mifare UltraLight),还是M1卡(Mifare Classic 1k),可以通过SAK值判断。
  \7 m3 H6 G6 u; P8 e( J9 y: |
. ^+ a+ f+ W  V& _# E2 t产品ATQASAKUID长度Mifare Mini00 04094 bytesMifare Classic 1k00 04084 bytesMifare Classic 4k00 02184 bytesMifare Ultraligh00 44007 bytesMifare Plus00 44207 bytes
, @# N5 T( P8 _  i+ x; V7 Q) Z9 h' g  S' @! o
1.6 IC卡详细分析; e4 s% b$ x: ]! Q

4 `0 X* _8 R8 c/ j1.6.1 IC卡存储器结构4 }( j* Y$ T0 R8 q6 Z5 v4 D2 F% i
+ ]4 l, q, k* O- |
以M1卡为例,介绍IC卡数据结构。
0 v. I5 \. C5 _* z$ K& mM1卡有从0到15共16个扇区,每个扇区配备了从0到3共4个数据段,每个数据段可以保存16字节的内容;5 u: Y: Y; x" |8 h
每个扇区中的段按照0~3编号,第4个段中包含KEYA(密钥A 6字节)、控制位(4字节)、KEYB(密钥B 6字节),每个扇区可以通过它包含的密钥A或者密钥B单独加密;  z0 k# c5 p0 p

# K, j1 I: r6 y3 c1 Q: t, l$ b" x4 y+ h) c0 W1 B( f; c
: _5 e; n/ c0 W3 I
厂商段
  F# C0 E" {  P$ z* E6 l( }; t每张M1卡都有一个全球唯一的UID号,这个UID号保存在卡的第一个扇区(0 扇区)的第一段(0 编号数据段),也称为厂商段。$ Z# T& C& y' G# L0 `
其中前4个字节是卡的UID,第5个字节是卡 UID 的校验位,剩下的是厂商数据。$ y9 L. x7 v5 O* l/ ]9 A" x
并且这个段在出厂之前就会被设置了写入保护,只能读取不能修改,前面各种能修改UID的卡,UID是没有设置保护的,也就是厂家不按规范生产的卡。% J) j5 F2 C' H& J
8 ?& C. F  B( S' Z/ j

' C& i3 z. c, t
+ W2 w; V' Y+ u8 k. H, e数据段6 w- ?0 r# B& ~/ E: a( R
除了第0扇区外,其它每个扇区都把段0、段1、段2作为了数据段,用于保存数据。
: q  b: K, Z; w数据段的数据类型可以被区尾的控制位(Access Bits)配置为读/写段(用于譬如无线访问控制)或者值段(用于譬如电子钱包)。
2 M0 E( D: b; H: f! t$ G值段有固定的存储格式,只能在值段格式的写操作时产生,值段可以进行错误检测和纠正并备份管理,其有效命令包括读、写、加、减、传送、恢复,值段格式如下:
. q6 T$ U/ Z7 a6 D9 y' E* \
. w" T' G! ?0 Z% p' |3 G8 _4 W. P
* y  k8 G9 A% _8 ]& L' Z8 {( X
Value表示一个带符号4字节值,为了保证数据的正确性和保密性,值被保存了3次,两次直接保存,一次取反保存。该值先保存在0字节-3字节中,然后将取反的字节保存在4字节-7字节中,还保存了一次在8字节-11字节中。
1 d4 A. @1 a6 o- p' s5 i% X9 G* PAdr表示一个字节的地址,当执行备份管理时用于保存存储段的地址。地址字节保存了4次,取反和不取反各保存了2次。在执行加值、减值、恢复和传送等操作时,地址保持不变,它只能通过写命令改变。" r7 y" _% o5 ?. k- p+ }
8 F- K- q! `, x
控制段) q- m! b, h7 f0 }- I" d
每个扇区都有一个区尾控制段,它包括密钥A和密钥B(可选),以及本扇区四个段的访问控制位 (Access bits);访问控制位也可用于指出数据段的类型(为读/写段还是值段);控制段的存储格式如下:' C# c+ I  i# x8 z0 z

9 }5 W% @5 X, q7 K( O6 U0 e4 l; l/ |! z) l7 @2 D/ W/ O
# B0 [6 ~  v8 j4 R
如果不需要密钥B,那么区尾的最后6个字节可以作为数据字节,用户数据可以存储在区尾的第9个字节,这个字节具有和字节6、7、8一样的访问权限。
2 d+ l6 k# e+ w9 u# v7 z. q
% o7 W, w' |: `1.6.2 IC卡访问存储器, _# k2 A' M4 C: u) {% X% \" ?

! ?& t' `: D2 m4 s数据段支持的操作( j% |# x& |9 Y' Y( u- {
根据使用的密钥和相应区尾访问条件的不同,数据段所支持的存储器操作也不同,存储器的操作类型如下:; i# p" x1 V: K9 t9 S
' N- _: f1 [! u$ X+ M
" J1 J- \/ h( t6 j1 h6 @! g' h' o

4 e" v  t& V; C, _, e可以看到只有作为值段时,才能加、减、传送、恢复。, j/ e/ J% [  s3 t2 X+ r- t

* s1 v3 ~( j+ M: O2 Q各区的访问位定义& V; V( e3 E( A, a( \0 _# A6 o0 m
每个数据段和区尾的访问条件由3个位来定义,它们以取反和不取反的形式保存在区尾指定字节中。
7 }( u. d$ l5 K. L  |# f& \访问位控制了使用密钥A和B操作存储器的权限,当知道相关的密钥和当前的访问控制条件时,可以修改访问条件,各区的访问位定义如下:
' u2 N; g% v9 E' H) M+ c4 B1 r. x) ?$ {4 a5 p2 w
9 u0 a' k; w! O( [" h. z) ~

* }$ z6 @& h7 |$ [5 K, c% E$ h; I9 O访问位在区尾的存储形式
2 p" \5 m( ~6 S8 k# m' I* T6 s7 {% ]2 o) I4 r
, k- `7 z7 S. }" \# B
) _4 L3 _! q' L- E
区尾的访问条件
. |) b/ j3 ~, c5 |; O% F7 P根据区尾(段 3)访问位的不同,访问条件可分为 “从不”、“密钥A”、“密钥B” 或“密钥A|B”(密钥A或密钥B),区尾的访问条件如下:
5 F; |) y* O- {! m
8 w' Y9 d4 E. i% m6 n7 h$ @6 S5 C1 ^8 N2 o* S$ d- Q
8 P0 |6 J3 _% ~  a! A
用灰色标明的行是密钥B可被读的访问条件,此时密钥B可以存放数据。- R( [! C! g( z% V9 t
例如:当段3的访问条件C13C23C33=100时,表示:密钥 不可读(隐藏),验证密钥B正确后,可写(或更改);访问控制位在验证密钥A或密钥B正确后,可读不可写(写保护);密钥B不可读,在验证密钥 B 正确后可写;
( l, m8 y6 b( W& i  V  p, q  m又如:当段3的访问条件C13C23C33=110或者111时,除访问控制位需要在验证密钥A或密钥B正确后可读外,其他如访问控制位的改写,密钥 A,密钥 B 的读写权限均被锁死而无法访问;
# y) t" E* s+ n+ L  A
6 r" _6 b+ f/ G/ K9 O  t数据段的访问条件
* b; s$ M8 ]  z4 g3 T% o根据数据段(段 0-2 访问位的不同,访问条件可分为 “从不”、“密钥A ”、“密钥B ” 或“密钥A|B”(密钥A或密钥B)。+ K5 z$ s- b2 ?* J! P; V
相关访问位的设置定义了该段的应用(或者说数据段类型)以及所支持的应用命令,不同的数据段类型可以进行不同的访问操作。 读/写段可以进行读操作和写操作。值段可以进行加、减、传送和恢复的值操作。
6 w$ G+ p/ d. M1 a7 T其中一种情况中(001)只能对不可再充电的卡进行读操作和减操作,另一种情况中(110)使用密钥B可以再充电。 厂商段无论设置任何的访问位都只是只读的, 数据段的访问条件如下:5 c* V4 ^& `! L& ]+ j
: _: p( k$ _: c  j

  w1 m7 l% g# ]! o5 [
" n4 x( ~4 o  x2 |% x4 \5 b' r如果密钥B可以在相应的区尾被读出,它就不能用于确认(在前面所有表中的灰色行)。如果读卡器要用这些(带灰色标记的)访问条件的密钥B确认任何段,卡会在确认后拒绝任何存储器访问操作。1 q7 N* ^4 ^3 B6 N) ~: B. z2 s" V* u
5 a8 y' b) N& C# V/ C1 L
1.6.3 举例说明
& ^. X8 j# E3 n/ i: t
; e, N4 z7 i: t5 l( B5 XMifare S50出厂时,访问控制字节(字节6-字节9)被初始化为“FF 07 80 69”,KEY A和KEY B的默认值为“FF FF FF FF FF FF” ;  T1 \( L$ `. F
字节6为FF,二进制为1111111;字节7为07,二进制为00000111;字节8为80,二进制为10000000,如下:
$ a+ a0 y' O$ y  U, M( P& F' v( [3 H, Z  Z. P& \6 \
7 E2 f% v9 a4 B4 I! @* Y

( |1 d5 {3 R2 k2 S! G对照前面的访问位在区尾的存储形式图,可得知访问控制位为:
1 |; ]% h& F+ l* d4 s0 e9 KC10C20C30=000;C11C21C31=000;C12C22C32=000;C13C23C33=001。
1 B" F; I, _! Y3 |# a4 H7 t5 f- h2 [
C10C20C30、C11C21C31、C12C22C32对应数据段0、1、2,参考数据段的访问条件图即可得知该段三个数据区的访问权限;
0 a, D; z0 x5 f4 |2 o8 FC13C23C33对应区尾(段 3),参考区尾的访问条件图即可得知该段的访问权限;, W# p1 g0 t# n. r7 `

; G- \; V( c' ~$ D块0控制位为:0 0 0 权限为:通过A或者B密码认证后可读,可写,可进行加值和减值操作;
5 [% }4 H: ]5 x/ Q5 e( |块1控制位为:0 0 0 权限为:通过A或者B密码认证后可读,可写,可进行加值和减值操作;$ c! w: @  p! Y" x0 i5 B; E
块2控制位为:0 0 0 权限为:通过A或者B密码认证后可读,可写,可进行加值和减值操作;7 W; E* K. X! U  S$ c4 ?" U" A
块3控制位为:0 0 1 权限为:A密码不可读,验证A或者B密码后可改写A密码;验证A或者B密码后,可读可改写存取控制;验证A密码或者B密码后,可读可改写B密码;) B: ~+ b! \9 @* s. W) i/ G
9 b4 a& }! ]2 {, I/ k) |3 Y
这样每次换算还是有点麻烦,可以使用M1 S50卡控制字节生成工具快速换算:9 R  a7 ?! ]% A2 r2 L1 T! b
. J& H: H& E! A/ W3 y
! Q( u5 n( u. I* w. g( Y

/ W1 m, E' ?) M. s' p最下面一行可以输入想解释的控制字,也可以根据上面的设置生成控制字;- F3 H  H& I* I1 x
最上面一行,左边是数据段0、1、2的访问控制位,右边是对应权限所需要的秘钥;
* U9 K9 A( e7 v中间的一行,左边是区尾的访问控制位,右边是对应权限所需要的秘钥;
" [; O6 }9 C# Y/ b3 B& y2 C# a- b1 L! |. l, N
1.7 非加密IC卡和加密IC卡
$ g- i) Q: H6 q
! v" z( N' e5 H+ c6 d& z) U3 y9 u非加密IC卡和加密IC卡的区别就是,非加密IC卡中所有扇区的KEYA和KEYB数值都是默认值FFFFFFFFFFFF;
* G& ^! [3 z8 Z9 U# r& W而加密IC卡中,其中有扇区的KEYA和KEYB不等于FFFFFFFFFFFF,部分扇区加密的卡称半加密IC卡,所有扇区都加密的卡称全加密IC卡。# h; T  S6 ]+ B- d
$ J& y8 Q3 t1 Y# F8 R# Q
一般的读卡器,像手机的NFC,是读不到IC卡的加密数据的,需要用专门的工具,比如Proxmark3读取。+ n: U* t! K0 c# |3 H3 U0 T  T! K

7 ~/ F1 q! u; y! i; ~; q* I) K对于IC卡,除了对卡上数据加密,还有滚动码加密、服务器数据验证等技术。# `" Y, n% q. P- D" G
因此,对IC卡的解密,更多的是门禁卡、签到卡、车库卡等的讨论,像公交卡、饭卡等涉及到资金问题的,基本都有服务器定期校验,得先搞定服务器再说,难度高还违法。% r: d/ P$ Q. b

; I3 b" Q) v* f' E# x! M8 I参考资料:
, b0 ]. z/ I' i- L码农生活 篇二:IC卡门卡模拟探秘
6 y8 {4 O# D  p. jIC卡简介【M1/S50,UID,CUID,FUID,UFUID复制卡介绍】" W# @' M( u+ ?8 Q  u. y3 u
谈谈 Mifare Classic 破解8 M' {, M. {, |0 k0 p3 ^
rfid-practice
3 ~$ H5 L9 Q& M- o) p6 ^Type A 卡存储结构与通信0 _4 I% O" N3 D
Proxmark3 Easy破解门禁卡学习过程
& a' r) E, X  v1 w( ?' `
5 x  V8 l+ @' E0 R- e0 v2. 手机NFC模拟加密门禁卡
. n/ ?/ j: E5 E' k9 d. i: V3 I; T$ J" B) ]% o( G; w! Z
有了前面的知识,再来看现在我的加密门禁卡情况,手机能识别为加密卡,肯定是IC卡。
* K9 H, J1 u4 z6 D0 r
2 s/ g: K2 X' A- J1 ?首先,加密卡在目前这个情况下是无法解密的,如果按照下面的操作失败,请参考下一章。) Y7 L( u3 n0 ~1 W
部分门禁系统只认证IC卡的UID,利用这一情况,可以试试复制门禁卡的UID,看运气能否打开门。
* D! s  _# V% C1 v0 T( c8 N1 A7 t# X, k" V; u5 Z
在已root的情况下,直接使用APP NFC卡模拟 便可读取加密卡的UID和非加密数据、并写UID到手机NFC里。5 l' |5 a, r4 X, H, o4 R$ w
在未root的情况下,使用小米系统自带的门卡模拟功能,出于安全考虑,是不能对加密卡进行任何操作。手机的NFC,理论上可以读加密IC卡的UID,因此可以使用第三方软件MifareClassicTool读取UID,因为没有root,不能写手机NFC,但可以写IC卡,因此还需要一张CUID卡(不能使用UID卡),某宝上一块多一张,思路就是先读取加密卡的UID,再读取CUID卡的数据,然后将CUID卡的UID改为加密卡一样的UID,再将修改后的数据写回到CUID卡,最后用小米系统自带的门卡模拟功能,复制未加密的CUID卡即可。5 j: n. a& N$ ]( n3 |- p( s
" `" ?0 z5 u2 L( e+ X- J: X; K
1.读取加密卡的UID
4 _8 Y9 v) U( H" D  `2 J打开软件Mifare Classic Tool,将加密门禁卡放到手机的NFC感应区域,识别到IC卡后,点击“工具”->“显示标签信息”,可以看到加密门禁卡的8个数字,4字节的UID。# |/ j$ d. `2 k) |( `, b, w
注意,在16进制里,每个数字为4位(2^4=16),8位(bits)为一字节(bytes),即两个数字组成一字节,这里8个数字,即为4字节(Bytes)。
; F/ ?/ Q4 A8 ^前8个数字,每个数字代表4位,8位为一字节,8个数字就是32位,即4字节
0 b. q- ]7 U4 z' {接着打开“工具”->“BCC计算器”,输入UID,得到1位BBC(两个数字)校验数据。
; J: i0 l* Y0 a- j, W5 ^* H" X+ x1 n8 S, d# _7 A

4 B; f  [$ u7 N8 J% i
5 R! K# @; L1 H2 V9 w- P& i- F2.读取CUID卡数据
: m  g9 m( N; p( ^# f' r# E  k将CUID卡放到手机的NFC感应区域,识别到IC卡后,点击“读标签”->“启动映射并读取标签”,即可得到CUID白卡的所有信息。
, ?+ q+ G0 B; D) N# c. {' s7 D; M( @接着修改第一行的前10个数字,改为加密门禁卡的UID(8个数字)和BCC(2个数字),一共10个数字,并点右上角保存图标保存。
# A' y  r" `) a2 r  G% X0 ~( M5 N6 |: F5 T1 Y" @6 N; b

! i& L/ I/ ?5 P$ q; s  \; q$ G! L. e% v, n
3.写数据到CUID卡
& A# ~/ u6 y# b) v/ l' l再将CUID卡放到手机的NFC感应区域,识别到IC卡后,点击“写标签”,勾选“写转储(克隆)”->“显示选项”->“高级:使能厂商块写入”。
& }( v8 g8 q7 \$ e/ d$ b9 f+ |/ ]再点击“选择转储”,选择刚才保存的数据,点击“选择转储”。
7 }+ Z. f2 h$ L, a
# E( j! T, S3 v6 r8 f' v  j
6 O( W( x/ \; t% i  E. r) L/ s4 T
在弹出的选择写扇区界面,默认即可,点击“好的”,最后点击“启动映射并写转储数据”。
3 Y# c5 q  K1 V3 E+ d* g' R4 N, Y: g$ F: A# Q3 z4 i) H
; p4 e0 L2 J. {3 i8 n1 \

' a8 E& C' [1 Z$ i$ M: U3 |. e: G4.NFC手机复制CUID卡* f( L6 x( k; e0 ^" ]
最后,使用小米手机系统自带的门卡模拟功能,复制刚才写入新UID的CUID卡即可。
% P5 q$ J! I$ g  e7 y
. T( I6 ^$ o$ V/ {  P5 J# \/ Z% h# ?接着,就看运气吧,我小区的门禁系统就只认UID,搞定。1 X: Q* b. y3 b" m. f

- v5 q8 s5 ]* @& d' ?5 V5 z' j" ^/ W" S! K/ B

作者: BI3NRS    时间: 2021-1-18 13:25
学习一下,感谢分享
作者: 15314375698    时间: 2021-1-19 07:46
学习了师傅厉害
作者: 彩虹之约    时间: 2021-1-19 15:42
谢谢师傅,好详细的文章。
作者: 畅游天下    时间: 2021-4-8 13:45
9 ?2 h+ w. d$ i; @' e
谢谢师傅,好详细的文章。现在多用于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