中华锁艺人

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

作者: 天际线0907    时间: 2021-1-18 00:52
标题: NFC模拟加密卡
记录小米手机NFC模拟加密门禁卡,以及Proxmark3的使用。
$ a3 n0 j' a$ B, u9 @8 w" l
. t/ M  o7 S5 r2 z( e; H0. 缘起
3 K2 I/ [1 l3 G$ B! [! d, [& K4 ^6 W4 r. E( @
之前,小区用的门禁卡为非加密的门禁卡,使用小米手机系统自带的门卡模拟功能复制即可。
: h/ I9 g( {" G4 d* E后来,小区门禁系统换了一家供应商,再使用之前的方法复制门禁卡,手机提示为加密卡,无法复制。
" b* H6 u4 e$ m; o4 `2 _
. |  D8 ~, w% U! S' ^新的门禁系统,更安全了,也支持APP远程控制开门了,直到有一天门禁卡丢了,开始使用APP开门,发现这APP写得烂透了,十次有五次点击开门按钮无反应,需要反复退出、打开APP多次才能点击开门按钮成功,还有两次直接没了开门按钮,提示到物业管理处处理……4 \7 i+ G$ W9 J; ?+ o8 D
那个时候,我又开始怀念用手机刷门禁的快感了。。2 k+ X' G5 @1 ]+ c

% [$ J. B# g8 T6 _4 }' \1. 基础知识
- }. V- g  v" d# d( T% |" ?+ O9 c7 S/ ]$ r2 R- H0 U$ i
于是,我开始查阅资料,基本确定了小米手机是还是可以通过其它方式模拟加密门禁卡的。+ ~$ w" m) y. h
然后,资料查多了,记不到,又怕以后用到需要重新找,干脆水一篇博客记录下来。
+ `2 B0 S# s7 A4 o; k! `* {5 {如果熟悉NFC和IC卡,或者只想模拟加密门禁卡,并不关心原理,这章可以跳过,直接看下一章。  |2 W, Y: A( p! V7 p
, s4 A8 t' G: {* ~, b
1.1 ID卡和IC卡/ [( d, J3 I! h3 w: d1 q) g) r& y

& z& ~" G. x/ k0 u4 Y5 rID卡:全称身份识别卡(Identification Card),多为低频(125Khz),是一种不可写入的感应卡,含固定的编号,主要有台湾SYRIS的EM格式,美国HID、TI、MOTOROLA等各类ID卡。
0 U* B, T4 a* B- P- b7 q7 m" K3 G
IC卡:全称集成电路卡(Integrated Circuit Card),又称智能卡(Smart Card)。多为高频(13.56Mhz),可读写数据、容量大、有加密功能、数据记录可靠、使用更方便,如一卡通系统、消费系统等,目前主要有PHILIPS的Mifare系列卡。
9 X# m. M' r6 P- R
" k" H' w" ]5 }  X* @主要区别:
- q' s# H, C& \' ]ID卡,低频,不可写入数据,其记录内容(卡号)只可由芯片生产厂一次性写入,开发商只可读出卡号加以利用,无法根据系统的实际需要制订新的号码管理制度;& b" n4 Y' m! K
IC卡,高频,不仅可由授权用户读出大量数据,而且亦可由授权用户写入大量数据(如新的卡用户的权限、用户资料等),IC卡所记录内容可反复擦写;
6 `" r# R) q' H, Y1 W% u+ g" N3 h8 \$ Z5 a% @1 T1 W5 z' B! m
IC卡由于其固有的信息安全、便于携带、比较完善的标准化等优点,在身份认证、银行、电信、公共交通、车场管理等领域正得到越来越多的应用,例如二代身份证、银行的电子钱包,电信的手机SIM卡、公共交通的公交卡、地铁卡、用于收取停车费的停车卡、小区门禁卡等;
2 ^6 ]( a9 K( b, I6 ~  H: G/ h# G
/ B3 v" A. \( A; i: }2 Z5 q

% B7 q# K8 h, Y- [( \0 g* X! y1 [5 Z3 k5 a. o' h) _

3 W% I4 v- D* Q$ r5 y. b以上图片来自淘宝商家,网上找了半天相关资料,发现淘宝商家解释得最清楚。# s0 J' p) K4 |, a* ]. `

( t+ L4 ]' T% j总结:
6 n" {: x( F4 J+ a, p" z9 u" N1.ID卡多为低频,IC多为高频;6 p0 W& f: l( t1 @* U. f% F6 w
2.IC卡整体上看比ID卡更有优势,市面上使用的大多数也是IC卡;
# C. _& b  M/ k8 ]3.对于矩形白卡,里面为矩形线圈、表面没有编号的多为IC卡,里面为圆形线圈、表面有编号的多为ID卡;
- z+ o  [9 I8 b$ I9 t4.对于异形卡,有编号的多为ID卡,最好使用带NFC的手机进行测试(目前手机NFC只能读高频13.56Mhz),IC卡会有反应;' Q3 I! z8 t+ _0 g
, t, M) Z" U1 k! Q4 {2 c
1.2 接触式和非接触式IC卡
. e4 M0 A# ~5 n* u. C, ^9 g- Y. D. X9 I
IC卡又可以分为接触式IC卡和非接触式IC卡。  E4 p& k9 w7 r  z, W" l6 u
( |3 X( F0 Y$ y: a" N& ^
接触式IC卡:该类卡是通过IC卡读写设备的触点与IC卡的触点接触后进行数据的读写;
* w0 K; p; T; P! G& V/ m( D$ h+ Z3 p5 J
非接触式IC卡:又称射频卡、感应式IC卡,该类卡与卡设备无电路接触,而是通过非接触式的读写技术进行读写(例如RFID、NFC),其内嵌芯片除了CPU、逻辑单元、存储单元外,增加了射频收发电路。该类卡一般用在使用频繁、信息量相对较少、可靠性要求较高的场合。3 z5 B1 P! {: b' u7 w/ E

! N6 q5 a5 I  ]) r+ m: N2 N0 B两者比较好区分,直接看卡上有无金属触点即可。
' ^1 C+ I0 \* I/ y0 b  k5 c3 A! N- n( P' y; L3 T
& T' r; r+ p& F# _& O

; m* `, Y* S- P6 f5 r6 `6 [) I: J3 O1.3 RFID和NFC
5 p- s! T7 C3 t& J, L, n- b5 ~3 A- j( p; ]1 G
非接触式的读写技术常见的有两种:RFID技术和NFC技术。
6 P9 R) @% y! H; M: e- U7 C5 i5 Y0 g2 g. _$ E
RFID技术:
7 {( C  m4 i; _' U1.通常应用在生产,物流,跟踪和资产管理上;
: `4 f/ n- ]; Z/ K: S2.根据频率划分包含低频、高频(13.56MHz)、超高频、微波等;
- I! a( h7 C4 ?8 i3 p3.作用距离取决于频率、读写器功率、读写器天线增益值、标签天线尺寸等,工作距离在几厘米到几十米不等;
5 [$ m* i# M- T' `- |4 R4.读写器和非接触卡可以是一对多关系,也可以说一对一关系;且读写器和非接触卡是两个实体,不能切换;
" |1 Q+ m; M& S$ T) Y5 y7 D6 N: T6 z/ x/ j
NFC技术:" T8 X+ V) W( G! G/ a
1.通常应用在门禁,公交卡,手机支付等领域;
3 {1 v, o' i9 w& M% t2.频率也是13.56MHz,且兼容大部分RFID高频相关标准(有些是不兼容);
8 o, u2 z7 O/ n! K3.NFC作用距离较短,一般都是0~10厘米;" D) r5 ]2 N6 O  x* ~7 w
4.读写器和标签几乎都是一对一关系;且支持读写模式和卡模式,可以作为读写器也可变为非接触卡;" Z: K, i1 u: O$ e

8 j. g+ ^. i) [" _, H+ l, |( P6 Z总体来说,NFC是RFID的子集,但NFC有些新特性又是RFID所不具备的。* Z8 \; a/ z/ T" `' Y+ A( G0 S
3 d$ I/ V) m& P" S' E# {6 h
1.4 ID卡类型
% p2 O4 l( P) h% i' D, @
& z8 W7 Z3 Z8 ^0 `) C+ X2 |9 XID卡,工作在低频(125Khz),根据卡内使用芯片的不同,有如下分类:; N0 e3 y# a/ Y  k! w
3 ~% D% ?2 }; U
ID卡/ K$ B: \8 ~. |  w8 \! u
EM4XX系列,多为EM4100/EM4102卡,常用的固化ID卡,出厂固化ID,只能读不能写;常用于低成本门禁卡,小区门禁卡,停车场门禁卡;, p; @, k" q3 ?7 D
# I( u8 k* S( _2 V; }
ID白卡
! \4 ?; U, l- R! I( T* @EM4305或T5577,可用来克隆ID卡,出厂为白卡,内部EEPROM可读可写,修改卡内EEPROM的内容即可修改卡片对外的ID号,达到复制普通ID卡的目的;, _' R3 w( ~1 @3 L$ f, V& A
T5577写入ID号可以变身成为ID卡,写入HID号可以变身HID卡,写入Indala卡号,可以变身Indala卡7 r' F) _; Y( a4 v

/ t& [7 G& ^5 f) N7 P2 g4 L# dHID卡
6 n% Y" A  F1 u0 z全称HID ProxⅡ,美国常用的低频卡,可擦写,不与其他卡通用;/ H# ]" v+ g+ \& C" n; H8 c' g
9 U  @/ e- v& E  F2 b7 N
1.5 IC卡类型* f1 b5 h2 A, N7 c* \3 G( S9 w' T

# t3 P1 ]$ }9 O$ H& v% L  T! xIC卡中最常见的是NXP Mifare系列卡,工作在高频(13.56Mhz),根据卡内使用芯片的不同,有如下分类:
* A9 U6 ~, A, I2 N8 B! m
0 s! R% s& O% ^* c$ tM1卡
  p( _$ @" {7 D. I% J2 O2 G, q全称Mifare S50,是最常见的卡,出厂固化UID(UID即指卡号,全球唯一),可存储修改数据;常用于学生卡,饭卡,公交卡,门禁卡;
$ W1 d/ }* a) U5 Q! j) Z8 D6 o0 e
9 X3 c# G3 y- M: f4 F5 ]M0卡
8 d( L( L9 X6 B  S全称Mifare UltraLight,相当于M1卡的精简版,容量更小、功能更少,但价格更低,出厂固化UID,可存储修改数据;常用于地铁卡,公交卡;: S; ]% r* T: B, q# m2 ~1 T7 p

. a8 s' X. Y" k- Y以上两种固化了UID,为正规卡,接下来就是一些没有固化UID,即不正规的卡:
; ]2 N- \. E2 e) a) E! U7 L1 X
$ ^/ R* s+ l- M& F4 z9 L5 a$ wUID卡! L* p* N% D6 c- Q% ]
全称Mifare UID Chinese magic card,国外叫做中国魔术卡,M1卡的变异版本,使用后门指令(magic指令),可修改UID(UID在block0分区),可以用来完整克隆M1卡的数据;
2 e. N5 \2 Z; ^) c: r但是现在新的读卡系统通过检测卡片对后门指令的回应,可以检测出UID卡,因此可以来拒绝UID卡的访问,来达到屏蔽复制卡的功能(即UID防火墙系统);1 ^! v9 c$ j& H- E, X, U

+ c0 N" X0 r" @# w4 ?  U- bCUID卡* p- h! c* ~7 M
为了避开UID防火墙系统,CUID卡应运而生,取消响应后门指令(magic指令),可修改UID,是目前市场上最常用的复制卡;
5 d" s$ l( R1 c  f近两年,智能卡系统制造公司,根据CUID卡的特性研发出CUID卡防火墙,虽然现在(2019年)还不是很普及,但是总有一天CUID卡会和UID卡一样面临着淘汰;
) z: S* A1 l$ l' M% w+ a5 E
* t/ s9 q* {0 I  a' ~% o, w- ZFUID卡
3 C! a) d1 X; D" Z# {' VFUID卡只能写一次UID,写完之后自动固化UID所在分区,就等同M1卡,目前任何防火墙系统都无法屏蔽,复制的卡几乎和原卡一模一样;
7 f9 \' U, q- `& i9 a" {9 l但缺点也相对明显,价格高、写坏卡率高,写错就废卡。
2 n+ v& _$ ]2 T: I/ ]/ _/ t# |6 b# U5 F8 m9 J  _1 [0 J
UFUID卡
0 w. ?4 Y7 d  h; ?集UID卡和FUID卡的优点于一身,使用后门指令,可修改UID,再手动锁卡,变成M1卡。6 P' h1 Y, D1 l5 b8 D
可先反复读写UID,确认数据无误,手动锁卡变成M1,解决了UID卡的UID防火墙屏蔽,也解决FUID的一次性写入容易写错的问题,且价格比FUID卡还便宜;7 U) k8 p; i3 y1 P0 e9 Q

, h8 |+ \7 d; e$ C3 v/ O判断是M0卡(Mifare UltraLight),还是M1卡(Mifare Classic 1k),可以通过SAK值判断。0 p1 {% r/ f5 g: [1 ?4 d

& P" a% L5 Z3 r( Q. r. v" e产品ATQASAKUID长度Mifare Mini00 04094 bytesMifare Classic 1k00 04084 bytesMifare Classic 4k00 02184 bytesMifare Ultraligh00 44007 bytesMifare Plus00 44207 bytes5 B, c0 A7 v" F3 E
1 u- T  _7 H7 c/ O& f
1.6 IC卡详细分析
+ R& Z0 {7 g+ G- O. C: y5 r9 {& Q
  b1 o! ^. R( C  R$ X2 K1.6.1 IC卡存储器结构
& }+ w7 ~; E. m) C5 Z! L$ B) J# @+ m
以M1卡为例,介绍IC卡数据结构。2 h3 u1 u9 _5 \! [! b! Z, f2 L; ~
M1卡有从0到15共16个扇区,每个扇区配备了从0到3共4个数据段,每个数据段可以保存16字节的内容;, n8 b" u, V2 P6 @8 |- J; O1 K
每个扇区中的段按照0~3编号,第4个段中包含KEYA(密钥A 6字节)、控制位(4字节)、KEYB(密钥B 6字节),每个扇区可以通过它包含的密钥A或者密钥B单独加密;
9 |1 s- D, v. l/ X1 |9 M4 s, C  G7 q0 E4 `( z# }3 D
' w8 Z6 I9 }: C( `1 e
) }+ [5 Q2 @: v" u& z& [0 `& r
厂商段
. U# a  W1 D' T4 e  a- Q, R每张M1卡都有一个全球唯一的UID号,这个UID号保存在卡的第一个扇区(0 扇区)的第一段(0 编号数据段),也称为厂商段。
& C* s7 m2 T* Q其中前4个字节是卡的UID,第5个字节是卡 UID 的校验位,剩下的是厂商数据。- u& D7 F+ g7 V2 d9 F
并且这个段在出厂之前就会被设置了写入保护,只能读取不能修改,前面各种能修改UID的卡,UID是没有设置保护的,也就是厂家不按规范生产的卡。
- P( |3 A/ {4 d3 Y" q+ l1 Y; \2 \# {
$ K! R: n% e- a9 H* X4 B8 E( r

' p2 O0 a9 [  O/ T& L0 d) a数据段
- \* l5 @% O5 O" C7 ~8 m8 {除了第0扇区外,其它每个扇区都把段0、段1、段2作为了数据段,用于保存数据。8 ?- n" b/ I3 d  \8 e, e1 l
数据段的数据类型可以被区尾的控制位(Access Bits)配置为读/写段(用于譬如无线访问控制)或者值段(用于譬如电子钱包)。/ q+ _0 t7 l9 a2 N9 d) r
值段有固定的存储格式,只能在值段格式的写操作时产生,值段可以进行错误检测和纠正并备份管理,其有效命令包括读、写、加、减、传送、恢复,值段格式如下:
$ h2 j' I2 t' m; C3 _
( u, X8 X1 H9 r( P) M
5 U+ [# Q, r8 o/ F0 Z6 c7 A* d0 x% ]# o8 D( y4 |6 V
Value表示一个带符号4字节值,为了保证数据的正确性和保密性,值被保存了3次,两次直接保存,一次取反保存。该值先保存在0字节-3字节中,然后将取反的字节保存在4字节-7字节中,还保存了一次在8字节-11字节中。
5 v/ R3 K# P1 h; V1 L+ f3 U) x7 ~Adr表示一个字节的地址,当执行备份管理时用于保存存储段的地址。地址字节保存了4次,取反和不取反各保存了2次。在执行加值、减值、恢复和传送等操作时,地址保持不变,它只能通过写命令改变。8 Z3 ]  x! G. u' q* e$ z1 b

( v3 c4 F, Z8 u# E4 T: ^控制段
' @& [  L1 u! Y每个扇区都有一个区尾控制段,它包括密钥A和密钥B(可选),以及本扇区四个段的访问控制位 (Access bits);访问控制位也可用于指出数据段的类型(为读/写段还是值段);控制段的存储格式如下:2 B, C6 \7 `. f
2 {* R7 p6 C1 t' f1 S, ]

* [6 z- j) N' ^" [' @6 j) B. z2 w7 B
如果不需要密钥B,那么区尾的最后6个字节可以作为数据字节,用户数据可以存储在区尾的第9个字节,这个字节具有和字节6、7、8一样的访问权限。
% ]* t2 z6 V8 P0 a" \, i0 e
' Y( ]1 P% [" l) q4 |; v1.6.2 IC卡访问存储器, ?+ U8 w& C3 \

' M; }% |; y0 k$ m) k数据段支持的操作
$ h: w0 e9 R" O  V根据使用的密钥和相应区尾访问条件的不同,数据段所支持的存储器操作也不同,存储器的操作类型如下:# m( X2 K2 S  q! R- S0 ?% y

0 u' z% k8 F) f; M4 j
$ o9 ^+ F, p/ ?. z2 F& q
3 M- Z" d6 P' s) e可以看到只有作为值段时,才能加、减、传送、恢复。) ]8 M/ {( {3 y# {7 z* M( ^4 j! s+ M

& _( e% I, ^2 P* V" j! \0 B( u8 C: r: q各区的访问位定义( X; K) {* T( ~; x" }
每个数据段和区尾的访问条件由3个位来定义,它们以取反和不取反的形式保存在区尾指定字节中。
+ ]+ h2 t( W! ~4 H. Y/ M( K* T) `  n访问位控制了使用密钥A和B操作存储器的权限,当知道相关的密钥和当前的访问控制条件时,可以修改访问条件,各区的访问位定义如下:
8 S7 Q9 j/ S2 o0 @9 u9 f, w9 h$ n1 O; j" l- v

6 i: Q8 e. \( J, ^/ ^2 L2 u* {* s8 v$ h
访问位在区尾的存储形式
! n. x5 o, ^- f: S1 L
5 z6 M4 s. D* B, I3 V; ~) y
) m) Z0 E. M1 r- [+ D7 \4 r4 a! V& U
区尾的访问条件
) s/ {# w$ `: I根据区尾(段 3)访问位的不同,访问条件可分为 “从不”、“密钥A”、“密钥B” 或“密钥A|B”(密钥A或密钥B),区尾的访问条件如下:4 g+ m3 K5 e  U0 k4 K9 v& X
' J0 M, v/ w& X% _" I
: A- q# ?4 A# ?, r$ B- y7 x

! \, c, Q  ]! G' J8 O1 J% W" b用灰色标明的行是密钥B可被读的访问条件,此时密钥B可以存放数据。
# C# d; ?+ n6 V7 k例如:当段3的访问条件C13C23C33=100时,表示:密钥 不可读(隐藏),验证密钥B正确后,可写(或更改);访问控制位在验证密钥A或密钥B正确后,可读不可写(写保护);密钥B不可读,在验证密钥 B 正确后可写;2 u( h: P. A8 k" c- |+ G, G5 X
又如:当段3的访问条件C13C23C33=110或者111时,除访问控制位需要在验证密钥A或密钥B正确后可读外,其他如访问控制位的改写,密钥 A,密钥 B 的读写权限均被锁死而无法访问;
  D: d$ W1 q0 n5 w1 r7 Z8 e: K2 x7 q1 _9 s3 H
数据段的访问条件
) }8 w: n! v/ L# [) g根据数据段(段 0-2 访问位的不同,访问条件可分为 “从不”、“密钥A ”、“密钥B ” 或“密钥A|B”(密钥A或密钥B)。
0 _% E7 e7 a( U相关访问位的设置定义了该段的应用(或者说数据段类型)以及所支持的应用命令,不同的数据段类型可以进行不同的访问操作。 读/写段可以进行读操作和写操作。值段可以进行加、减、传送和恢复的值操作。
. y: m8 c# l* t8 b其中一种情况中(001)只能对不可再充电的卡进行读操作和减操作,另一种情况中(110)使用密钥B可以再充电。 厂商段无论设置任何的访问位都只是只读的, 数据段的访问条件如下:
; E1 W& ?7 T+ f$ ^6 d1 p( K
7 T" ~& z5 K: N; U$ `' Q) h4 ~( I3 e
: X. R' n- n! `5 r* b& G# @; ]
如果密钥B可以在相应的区尾被读出,它就不能用于确认(在前面所有表中的灰色行)。如果读卡器要用这些(带灰色标记的)访问条件的密钥B确认任何段,卡会在确认后拒绝任何存储器访问操作。
) ^+ g2 f2 A0 K% j$ Z0 r
6 E4 @. t) B- T& S$ [1.6.3 举例说明. x& M6 @% B6 v; e. m# b& @7 w* n
3 N. r1 b; `' \" k+ i7 h$ k! H6 ~
Mifare S50出厂时,访问控制字节(字节6-字节9)被初始化为“FF 07 80 69”,KEY A和KEY B的默认值为“FF FF FF FF FF FF” ;5 y4 D1 t5 s  s2 L& I
字节6为FF,二进制为1111111;字节7为07,二进制为00000111;字节8为80,二进制为10000000,如下:+ t) _& x/ \% U* M8 k3 \: I

9 m% J$ k: J3 B3 ~
- S/ v4 u3 ?$ d" p9 A- O' w
6 n4 H7 a8 G* ^8 T+ q7 }$ e6 @  y对照前面的访问位在区尾的存储形式图,可得知访问控制位为:* V$ _. F1 V3 R! E1 {
C10C20C30=000;C11C21C31=000;C12C22C32=000;C13C23C33=001。
" n; Z" F2 C8 y) R" F2 {
# R* g0 Z/ w( d+ `: ~( {4 Z* kC10C20C30、C11C21C31、C12C22C32对应数据段0、1、2,参考数据段的访问条件图即可得知该段三个数据区的访问权限;' Y/ E' J0 I3 \$ K$ W9 w1 k" P
C13C23C33对应区尾(段 3),参考区尾的访问条件图即可得知该段的访问权限;
, E& Y9 _5 u& F9 b- D1 u# g* z6 Q: E
块0控制位为:0 0 0 权限为:通过A或者B密码认证后可读,可写,可进行加值和减值操作;8 G: _1 R! m3 ~5 R# Y7 P9 q
块1控制位为:0 0 0 权限为:通过A或者B密码认证后可读,可写,可进行加值和减值操作;
$ V2 H1 |$ `' c2 y块2控制位为:0 0 0 权限为:通过A或者B密码认证后可读,可写,可进行加值和减值操作;1 X% L' u' U: E7 K4 ]3 d
块3控制位为:0 0 1 权限为:A密码不可读,验证A或者B密码后可改写A密码;验证A或者B密码后,可读可改写存取控制;验证A密码或者B密码后,可读可改写B密码;6 ]* ]8 l" M6 `$ [

$ R, k) ^" Q$ e$ W5 p这样每次换算还是有点麻烦,可以使用M1 S50卡控制字节生成工具快速换算:
& \  p: i& p( |9 z7 v* j/ H6 s6 G3 o* A3 Y! B) Q' o
  T: o7 ^: i8 N) n+ c" \
, s$ Z& b- x9 G) z) w6 a. s8 m
最下面一行可以输入想解释的控制字,也可以根据上面的设置生成控制字;
! C$ C% B! O) y5 Q最上面一行,左边是数据段0、1、2的访问控制位,右边是对应权限所需要的秘钥;
8 R- a( z9 ~! p0 \  _4 `中间的一行,左边是区尾的访问控制位,右边是对应权限所需要的秘钥;
) L& n" E/ V( q! a3 ?& {- y( c; g" E, V  q# s
1.7 非加密IC卡和加密IC卡
9 L5 k6 i& t! }& K2 \5 T$ `( u/ g9 F& V2 r& L& @/ c3 h
非加密IC卡和加密IC卡的区别就是,非加密IC卡中所有扇区的KEYA和KEYB数值都是默认值FFFFFFFFFFFF;0 X& O8 S( f0 w8 u( j/ Z3 @5 k
而加密IC卡中,其中有扇区的KEYA和KEYB不等于FFFFFFFFFFFF,部分扇区加密的卡称半加密IC卡,所有扇区都加密的卡称全加密IC卡。1 r3 ~5 ~0 F/ P& l
* o' d/ O; _/ c6 ~( }1 }, g' `' g
一般的读卡器,像手机的NFC,是读不到IC卡的加密数据的,需要用专门的工具,比如Proxmark3读取。
1 I8 c% l5 N4 H6 L
; ~* x: A' H6 T5 m+ U对于IC卡,除了对卡上数据加密,还有滚动码加密、服务器数据验证等技术。0 G$ Z" v5 \* K% {
因此,对IC卡的解密,更多的是门禁卡、签到卡、车库卡等的讨论,像公交卡、饭卡等涉及到资金问题的,基本都有服务器定期校验,得先搞定服务器再说,难度高还违法。
" O8 Y" ]* T; I& ^8 C# x  x7 \( J7 l2 G6 F# ?- `8 n
参考资料:; u% T1 `+ s" A' F* x
码农生活 篇二:IC卡门卡模拟探秘
8 d/ A. f- k! I4 [2 s3 u. DIC卡简介【M1/S50,UID,CUID,FUID,UFUID复制卡介绍】
3 h% V: e  r9 y% w谈谈 Mifare Classic 破解! a2 Z, m8 T9 i2 n  C. \
rfid-practice
4 {( T! b5 u/ ]" v$ N$ B" r* JType A 卡存储结构与通信
1 d% i" J2 u+ L* u+ U7 `Proxmark3 Easy破解门禁卡学习过程; Y6 Z' N7 S8 q/ ]% K0 P

! E$ C- j7 Q8 S; q1 P. g2. 手机NFC模拟加密门禁卡
& N( u! `0 s. R- a0 M( X' k/ y( M
5 c1 i9 `* l% t! F, w) d. [有了前面的知识,再来看现在我的加密门禁卡情况,手机能识别为加密卡,肯定是IC卡。5 _4 {3 S! i# ]0 h' ^9 |) P" ]

) n# }( B: ^3 R* z, U  b首先,加密卡在目前这个情况下是无法解密的,如果按照下面的操作失败,请参考下一章。( h( M& k" o2 s. z; O1 ?
部分门禁系统只认证IC卡的UID,利用这一情况,可以试试复制门禁卡的UID,看运气能否打开门。; \4 g" c  u) i0 i: d% ]

6 a0 C% x3 C* U在已root的情况下,直接使用APP NFC卡模拟 便可读取加密卡的UID和非加密数据、并写UID到手机NFC里。
8 n- ^" s* F8 \. |5 }( Q* U; V, b在未root的情况下,使用小米系统自带的门卡模拟功能,出于安全考虑,是不能对加密卡进行任何操作。手机的NFC,理论上可以读加密IC卡的UID,因此可以使用第三方软件MifareClassicTool读取UID,因为没有root,不能写手机NFC,但可以写IC卡,因此还需要一张CUID卡(不能使用UID卡),某宝上一块多一张,思路就是先读取加密卡的UID,再读取CUID卡的数据,然后将CUID卡的UID改为加密卡一样的UID,再将修改后的数据写回到CUID卡,最后用小米系统自带的门卡模拟功能,复制未加密的CUID卡即可。/ u9 Q: _: {- W
; I; Z7 _! I9 v4 I0 [
1.读取加密卡的UID, f1 R: [7 t$ E9 S1 A+ i
打开软件Mifare Classic Tool,将加密门禁卡放到手机的NFC感应区域,识别到IC卡后,点击“工具”->“显示标签信息”,可以看到加密门禁卡的8个数字,4字节的UID。
4 C& _* l* c9 B1 d+ E注意,在16进制里,每个数字为4位(2^4=16),8位(bits)为一字节(bytes),即两个数字组成一字节,这里8个数字,即为4字节(Bytes)。( d8 b! S1 v3 Q
前8个数字,每个数字代表4位,8位为一字节,8个数字就是32位,即4字节% T1 T9 i! q( S; q, M+ M6 C
接着打开“工具”->“BCC计算器”,输入UID,得到1位BBC(两个数字)校验数据。
, d$ c- S- h+ ^$ ?- b3 Q" d, G7 N" L5 n# K
) l3 Y. z/ k1 [, I9 ?
% D# k& l' o. R4 c. i
2.读取CUID卡数据
3 k7 L) L( v: x) }将CUID卡放到手机的NFC感应区域,识别到IC卡后,点击“读标签”->“启动映射并读取标签”,即可得到CUID白卡的所有信息。& y, d& f: u1 F9 j
接着修改第一行的前10个数字,改为加密门禁卡的UID(8个数字)和BCC(2个数字),一共10个数字,并点右上角保存图标保存。  X" Y7 C6 _) l: ?. ~. r

! b  {$ ]% W% P9 u% w9 h0 b- s' q# ]

0 T( R- X& r- d2 m& F4 n8 X3.写数据到CUID卡
8 \$ w1 A% c# U7 q: i% z- q3 w再将CUID卡放到手机的NFC感应区域,识别到IC卡后,点击“写标签”,勾选“写转储(克隆)”->“显示选项”->“高级:使能厂商块写入”。
" |1 h, {- E5 P: y, ~0 R再点击“选择转储”,选择刚才保存的数据,点击“选择转储”。
0 D: u& v. r4 f( n7 a% @: R* P& C/ g- E$ Y, ?9 f* G
4 S& v5 v, F% P2 ?" i) W+ U

. e9 T- d8 W9 O% s7 z' s. r' M在弹出的选择写扇区界面,默认即可,点击“好的”,最后点击“启动映射并写转储数据”。/ m$ h- m3 B5 B; y7 ^; ]3 q8 [
9 g+ R8 ?* t' ^8 F
& r1 P. x8 j+ K% A) f. j! Q1 Q8 G% ^! U
( ]( P. @) ?% T8 s# S  U
4.NFC手机复制CUID卡
9 j+ a* n% @3 M) O最后,使用小米手机系统自带的门卡模拟功能,复制刚才写入新UID的CUID卡即可。3 D& e$ v! A* _/ L) I; H
* q, ]" n, ?0 |
接着,就看运气吧,我小区的门禁系统就只认UID,搞定。
9 Q; S9 F) r8 Z) p
' {0 v) |7 ?6 ^0 S6 u* t8 z" F9 m" q! p. ?8 d' o6 U

作者: BI3NRS    时间: 2021-1-18 13:25
学习一下,感谢分享
作者: 15314375698    时间: 2021-1-19 07:46
学习了师傅厉害
作者: 彩虹之约    时间: 2021-1-19 15:42
谢谢师傅,好详细的文章。
作者: 畅游天下    时间: 2021-4-8 13:45
8 w$ v5 O3 R4 `1 G, L! U) F
谢谢师傅,好详细的文章。现在多用于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