中华锁艺人

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

作者: 天际线0907    时间: 2021-1-18 00:52
标题: NFC模拟加密卡
记录小米手机NFC模拟加密门禁卡,以及Proxmark3的使用。
2 r9 D, c% Q+ d2 I
3 l- h; y+ A) |0. 缘起
# \& ]9 a3 a8 C" V! l( Z% t2 R& f: ?: q' o* d
之前,小区用的门禁卡为非加密的门禁卡,使用小米手机系统自带的门卡模拟功能复制即可。
; P, }; {. k. U  V. V后来,小区门禁系统换了一家供应商,再使用之前的方法复制门禁卡,手机提示为加密卡,无法复制。
5 Y( q2 ^5 Y  _( |; h% c8 D" P6 a) _: R; `3 o) A
新的门禁系统,更安全了,也支持APP远程控制开门了,直到有一天门禁卡丢了,开始使用APP开门,发现这APP写得烂透了,十次有五次点击开门按钮无反应,需要反复退出、打开APP多次才能点击开门按钮成功,还有两次直接没了开门按钮,提示到物业管理处处理……& }, f3 g' l( \( j
那个时候,我又开始怀念用手机刷门禁的快感了。。
; D) v' X' {6 m) r6 D* @4 j& h; ?9 S, O' h4 V
1. 基础知识8 _3 d1 }6 ?, V  P

- J' x1 J+ g' n于是,我开始查阅资料,基本确定了小米手机是还是可以通过其它方式模拟加密门禁卡的。9 D% a8 d% q! D
然后,资料查多了,记不到,又怕以后用到需要重新找,干脆水一篇博客记录下来。- N, q) M; _: h6 Z& j/ ~
如果熟悉NFC和IC卡,或者只想模拟加密门禁卡,并不关心原理,这章可以跳过,直接看下一章。
( ~) k# w$ x2 f" ^
4 r# h1 _% b2 n# q. F7 u3 ~3 w- z1.1 ID卡和IC卡
+ n/ [# Z+ E7 r" P5 J% V/ e; @3 x% a' Z8 K
ID卡:全称身份识别卡(Identification Card),多为低频(125Khz),是一种不可写入的感应卡,含固定的编号,主要有台湾SYRIS的EM格式,美国HID、TI、MOTOROLA等各类ID卡。
0 p. J1 [9 |$ O% _/ ~" V. V: x7 P; Y2 w+ {1 E$ c) _
IC卡:全称集成电路卡(Integrated Circuit Card),又称智能卡(Smart Card)。多为高频(13.56Mhz),可读写数据、容量大、有加密功能、数据记录可靠、使用更方便,如一卡通系统、消费系统等,目前主要有PHILIPS的Mifare系列卡。
+ T  B6 a- u( l- f
$ H: K; X5 {/ I, E  g" F0 t主要区别:( R, p- {# p2 A7 V" u; D2 P
ID卡,低频,不可写入数据,其记录内容(卡号)只可由芯片生产厂一次性写入,开发商只可读出卡号加以利用,无法根据系统的实际需要制订新的号码管理制度;
) v1 @6 d- E& O: O! RIC卡,高频,不仅可由授权用户读出大量数据,而且亦可由授权用户写入大量数据(如新的卡用户的权限、用户资料等),IC卡所记录内容可反复擦写;5 j$ D" A! O+ N) L% L

( s8 A  ?/ o. H, ~# W! k+ J9 z# VIC卡由于其固有的信息安全、便于携带、比较完善的标准化等优点,在身份认证、银行、电信、公共交通、车场管理等领域正得到越来越多的应用,例如二代身份证、银行的电子钱包,电信的手机SIM卡、公共交通的公交卡、地铁卡、用于收取停车费的停车卡、小区门禁卡等;0 q+ x' ?# C8 e3 Q7 I5 ^4 p* N8 o

* Q  ]# I/ O5 d0 G$ Q
- a- E$ u8 R: p% ^8 C
& N6 {8 O4 n  j0 q( o0 I
7 h  f6 h0 W3 m2 [
: y7 G+ {& O+ Z% R0 F0 G1 V" c以上图片来自淘宝商家,网上找了半天相关资料,发现淘宝商家解释得最清楚。& k$ d2 V- C4 s: F2 ?" a
! {: K( U. D7 r" |
总结:% y9 L  Q3 L  X6 K' K4 z
1.ID卡多为低频,IC多为高频;* G: P, ~- U$ ?* [* O
2.IC卡整体上看比ID卡更有优势,市面上使用的大多数也是IC卡;4 g9 w2 d8 ]1 x$ W9 Z1 u
3.对于矩形白卡,里面为矩形线圈、表面没有编号的多为IC卡,里面为圆形线圈、表面有编号的多为ID卡;
. m" A' K/ m  m0 s  |4.对于异形卡,有编号的多为ID卡,最好使用带NFC的手机进行测试(目前手机NFC只能读高频13.56Mhz),IC卡会有反应;' D8 K. r1 }% f

0 ~  u3 W- Q0 y) Y! X) U- M1.2 接触式和非接触式IC卡1 [( O1 O# g) W7 U# T! i
( H6 b$ J7 T- d8 m* ~) E
IC卡又可以分为接触式IC卡和非接触式IC卡。
$ c9 d" O6 L% ~  ~) R: k
+ v: a$ \* ?6 Q接触式IC卡:该类卡是通过IC卡读写设备的触点与IC卡的触点接触后进行数据的读写;& o! `& p* w. x2 z

4 A! I% f7 ], S% {) H6 C非接触式IC卡:又称射频卡、感应式IC卡,该类卡与卡设备无电路接触,而是通过非接触式的读写技术进行读写(例如RFID、NFC),其内嵌芯片除了CPU、逻辑单元、存储单元外,增加了射频收发电路。该类卡一般用在使用频繁、信息量相对较少、可靠性要求较高的场合。
  J* C5 V6 j3 D# c! R# E3 j  n0 q' S( y: v7 B/ L
两者比较好区分,直接看卡上有无金属触点即可。
8 @3 I5 t# Z* |! N. U. S
, Y0 @" ~& {5 ]& P  _+ l) H$ u( J( k" }/ |
- z' A, z# s( n- I6 z0 s
1.3 RFID和NFC' V5 M7 O& w8 e$ |8 K$ w
% y2 g! T; b# q7 c) T4 k  h
非接触式的读写技术常见的有两种:RFID技术和NFC技术。
1 ?' I: j  O- O
4 M7 q3 p" m5 G  J; xRFID技术:$ W6 u  S9 {$ |, _3 D9 S6 b
1.通常应用在生产,物流,跟踪和资产管理上;
! L3 G4 M; T, \5 F! ~  i2.根据频率划分包含低频、高频(13.56MHz)、超高频、微波等;- a2 {0 q! {5 V
3.作用距离取决于频率、读写器功率、读写器天线增益值、标签天线尺寸等,工作距离在几厘米到几十米不等;
3 I7 s. h$ `3 X% a5 }. Q4.读写器和非接触卡可以是一对多关系,也可以说一对一关系;且读写器和非接触卡是两个实体,不能切换;
1 e& L: C* W0 n9 J) @- g. p0 y8 l' j
NFC技术:
; ~5 M7 @$ @2 L, {# k% N6 w1.通常应用在门禁,公交卡,手机支付等领域;) H" e9 J' f* Q& F% j' l( t
2.频率也是13.56MHz,且兼容大部分RFID高频相关标准(有些是不兼容);& q8 j* Y& c& u* s5 u- g
3.NFC作用距离较短,一般都是0~10厘米;9 E+ p; }" t& G, _0 k$ X! b
4.读写器和标签几乎都是一对一关系;且支持读写模式和卡模式,可以作为读写器也可变为非接触卡;
: `" C# w1 R9 O  h1 k3 a& k; @( a4 k  S, r0 N
总体来说,NFC是RFID的子集,但NFC有些新特性又是RFID所不具备的。
/ W  M& s: G& e: G- W" E) C
7 W7 }  x- u3 c6 f' A+ C2 v# B1 s1.4 ID卡类型7 M, j: B& o# d+ z  o; ]
7 w& N: V4 l# l
ID卡,工作在低频(125Khz),根据卡内使用芯片的不同,有如下分类:
: e0 r% C7 M- [+ {, F, G; M
; M3 o' F2 e0 ~0 l7 s- SID卡" R8 r" j4 l1 _2 j# m0 C/ d" d/ l
EM4XX系列,多为EM4100/EM4102卡,常用的固化ID卡,出厂固化ID,只能读不能写;常用于低成本门禁卡,小区门禁卡,停车场门禁卡;
; S' t7 Z! R. a" o/ G1 A& p$ ?7 z5 l5 e( P; J+ b- F+ a" o1 G/ O
ID白卡
& Y  y5 d) k' M" zEM4305或T5577,可用来克隆ID卡,出厂为白卡,内部EEPROM可读可写,修改卡内EEPROM的内容即可修改卡片对外的ID号,达到复制普通ID卡的目的;
- O8 Y& X! W0 ^2 w9 T  lT5577写入ID号可以变身成为ID卡,写入HID号可以变身HID卡,写入Indala卡号,可以变身Indala卡
' {% q; R0 l& X' W1 H3 @+ e
; D# |) i% V: {$ WHID卡: I; {6 X$ V- P+ k
全称HID ProxⅡ,美国常用的低频卡,可擦写,不与其他卡通用;
: u- }1 ]* J* c' g* Q" H3 D
1 O) S( r' {  n1.5 IC卡类型
0 Q5 d* X( }3 K' A; G- Q5 X& j* S
IC卡中最常见的是NXP Mifare系列卡,工作在高频(13.56Mhz),根据卡内使用芯片的不同,有如下分类:$ R$ f5 P; b% G4 e+ I

5 z0 f" B( o9 I, h: D' C4 ~M1卡
) h' j% N: l0 ^) a4 a* q全称Mifare S50,是最常见的卡,出厂固化UID(UID即指卡号,全球唯一),可存储修改数据;常用于学生卡,饭卡,公交卡,门禁卡;
" s4 f4 l; {* {  F/ p: n9 n; F5 w
( Y+ T3 {+ w: e: |+ v8 y( f% F9 s! u6 iM0卡- ~! _/ S' n, l0 v, B) D
全称Mifare UltraLight,相当于M1卡的精简版,容量更小、功能更少,但价格更低,出厂固化UID,可存储修改数据;常用于地铁卡,公交卡;4 e" j' H' O  t- a7 |* i
. f/ F+ M& {' v: ~+ g
以上两种固化了UID,为正规卡,接下来就是一些没有固化UID,即不正规的卡:0 P0 n9 R: D& {" e( C; c
2 V; b) c( v4 R, d
UID卡
; T4 O/ d% k" x+ G全称Mifare UID Chinese magic card,国外叫做中国魔术卡,M1卡的变异版本,使用后门指令(magic指令),可修改UID(UID在block0分区),可以用来完整克隆M1卡的数据;- P  e0 H  i) _0 q8 |
但是现在新的读卡系统通过检测卡片对后门指令的回应,可以检测出UID卡,因此可以来拒绝UID卡的访问,来达到屏蔽复制卡的功能(即UID防火墙系统);. v# }4 O7 z( M! v; h( `  w

/ T' q5 z3 z. @1 KCUID卡
& X9 {5 ~- Y- T为了避开UID防火墙系统,CUID卡应运而生,取消响应后门指令(magic指令),可修改UID,是目前市场上最常用的复制卡;
) [) E: N$ f- n  ?. ]7 r  E近两年,智能卡系统制造公司,根据CUID卡的特性研发出CUID卡防火墙,虽然现在(2019年)还不是很普及,但是总有一天CUID卡会和UID卡一样面临着淘汰;
7 g& t8 G1 \% I* E. C4 g8 N
3 s* S( B6 F# I0 {FUID卡
$ j1 L, i/ I, c' `! k/ gFUID卡只能写一次UID,写完之后自动固化UID所在分区,就等同M1卡,目前任何防火墙系统都无法屏蔽,复制的卡几乎和原卡一模一样;
$ X& A. Y: V3 g! d但缺点也相对明显,价格高、写坏卡率高,写错就废卡。& i3 C* C+ k% T& ]0 g% y
; I. m6 Q! w! C) r
UFUID卡
2 V4 f3 G6 y9 _集UID卡和FUID卡的优点于一身,使用后门指令,可修改UID,再手动锁卡,变成M1卡。- m, @. X6 h8 i# v  {% t% p9 m/ t
可先反复读写UID,确认数据无误,手动锁卡变成M1,解决了UID卡的UID防火墙屏蔽,也解决FUID的一次性写入容易写错的问题,且价格比FUID卡还便宜;
: v8 A- U$ |( K8 x1 u7 t
6 i5 I! H5 u# ^* V9 K5 d7 h9 u5 n$ t判断是M0卡(Mifare UltraLight),还是M1卡(Mifare Classic 1k),可以通过SAK值判断。
2 e/ |/ h2 s, O5 H. D2 a' k. @3 Z
产品ATQASAKUID长度Mifare Mini00 04094 bytesMifare Classic 1k00 04084 bytesMifare Classic 4k00 02184 bytesMifare Ultraligh00 44007 bytesMifare Plus00 44207 bytes, Q$ a  F$ M/ G8 h

2 @9 B# [! ^  _4 b8 ~, I! N7 S1.6 IC卡详细分析
  t: A6 O! N( A, A# c: X
( V$ c/ q1 |" S3 y; L7 u8 ]1.6.1 IC卡存储器结构( V$ I6 D6 B' R8 }
! z2 G, G! e/ K8 a, n$ I
以M1卡为例,介绍IC卡数据结构。: C$ P& {9 I4 _* s
M1卡有从0到15共16个扇区,每个扇区配备了从0到3共4个数据段,每个数据段可以保存16字节的内容;
, o" u* o  I; t; Z每个扇区中的段按照0~3编号,第4个段中包含KEYA(密钥A 6字节)、控制位(4字节)、KEYB(密钥B 6字节),每个扇区可以通过它包含的密钥A或者密钥B单独加密;
5 ^+ S% ?  B" Q9 [3 g9 n, h% H+ f5 L; W

& T: Q" I2 A+ l' I$ {
- H1 I7 P) U! k" M$ \厂商段
/ k. J7 q) |3 T' w" n" I每张M1卡都有一个全球唯一的UID号,这个UID号保存在卡的第一个扇区(0 扇区)的第一段(0 编号数据段),也称为厂商段。! f2 ~6 \. `+ W
其中前4个字节是卡的UID,第5个字节是卡 UID 的校验位,剩下的是厂商数据。
1 E+ }2 ]5 m" v! p/ k3 p并且这个段在出厂之前就会被设置了写入保护,只能读取不能修改,前面各种能修改UID的卡,UID是没有设置保护的,也就是厂家不按规范生产的卡。0 {; s  N( R+ z1 P3 V/ P
% I7 ?+ Q9 Q+ @3 R$ u" {* S7 O
3 x; I# N/ l% x' N
/ S4 I* ]6 a1 Y9 D
数据段
( n* y7 \% K7 E3 M# D除了第0扇区外,其它每个扇区都把段0、段1、段2作为了数据段,用于保存数据。
5 {4 ?, W$ d$ Q9 n- S* I" {4 H5 O数据段的数据类型可以被区尾的控制位(Access Bits)配置为读/写段(用于譬如无线访问控制)或者值段(用于譬如电子钱包)。
5 y# g) h* o+ f2 k, y4 v4 l值段有固定的存储格式,只能在值段格式的写操作时产生,值段可以进行错误检测和纠正并备份管理,其有效命令包括读、写、加、减、传送、恢复,值段格式如下:
* Y9 J2 b8 Z" x$ r: j7 |5 t" W, o5 z9 i
  F/ q, \+ J' C' W4 R- }6 q% J
- `* ]: Q2 K3 I% a2 x5 ~$ ~$ R$ n5 l
Value表示一个带符号4字节值,为了保证数据的正确性和保密性,值被保存了3次,两次直接保存,一次取反保存。该值先保存在0字节-3字节中,然后将取反的字节保存在4字节-7字节中,还保存了一次在8字节-11字节中。- o1 u/ j% G1 a* ?% p
Adr表示一个字节的地址,当执行备份管理时用于保存存储段的地址。地址字节保存了4次,取反和不取反各保存了2次。在执行加值、减值、恢复和传送等操作时,地址保持不变,它只能通过写命令改变。3 t6 K# y4 Z1 v' q" S: ^

/ `% l0 \( R  n. D控制段4 x6 j& p0 M, G1 F
每个扇区都有一个区尾控制段,它包括密钥A和密钥B(可选),以及本扇区四个段的访问控制位 (Access bits);访问控制位也可用于指出数据段的类型(为读/写段还是值段);控制段的存储格式如下:/ I( b6 E; c) \4 H0 W
$ j( p! a' x" X! T: U
- |5 A  H) C; ^+ n- T8 z1 V" C0 _" |

" R. g$ \4 ]4 a% e8 Y1 C$ M: J4 w6 O如果不需要密钥B,那么区尾的最后6个字节可以作为数据字节,用户数据可以存储在区尾的第9个字节,这个字节具有和字节6、7、8一样的访问权限。
# Z1 P* P2 B' R% {' z
* k  y7 X+ u/ t' t/ v9 _& S# _8 m1.6.2 IC卡访问存储器
% z! `, _  n9 Z' ?3 v, {, l; B: X( K# f5 D, u! ^4 Q3 p$ U( z
数据段支持的操作
  W" ]3 \2 ?$ t  K" L根据使用的密钥和相应区尾访问条件的不同,数据段所支持的存储器操作也不同,存储器的操作类型如下:
( {8 A% z, I- i9 a) X$ h, b! E/ ~
, h$ l; @& M, ~$ ^8 n1 t0 Y. y
5 C+ E7 }% o. R4 Y2 E* C
, e5 b  j: m: R# d# f可以看到只有作为值段时,才能加、减、传送、恢复。/ ?& K* M, t0 O& E9 i
) i1 e6 T8 t' Z* ~! _0 R
各区的访问位定义) s+ ^4 E/ F/ z: _0 P
每个数据段和区尾的访问条件由3个位来定义,它们以取反和不取反的形式保存在区尾指定字节中。& w- e$ Q. S; D, `" H  u
访问位控制了使用密钥A和B操作存储器的权限,当知道相关的密钥和当前的访问控制条件时,可以修改访问条件,各区的访问位定义如下:7 l; S' H6 w* `

3 ^# c& W, \1 }) x2 O) I" o& u4 ?) x9 J. w
& n/ X* n3 ^  g/ y4 S6 P2 B( ~
访问位在区尾的存储形式
( W8 I6 s5 A& j+ g5 l( \
, w+ s/ V$ `7 g2 o5 |2 p4 v( `* N# `+ @: i" z

/ e, k$ D# }" [( c区尾的访问条件
; L. v( |! a# ?( P/ m2 r/ t% R根据区尾(段 3)访问位的不同,访问条件可分为 “从不”、“密钥A”、“密钥B” 或“密钥A|B”(密钥A或密钥B),区尾的访问条件如下:8 n* x" c, e. T7 K+ c

! n: ^4 K" h! n. o  x
! t( A3 c; h& Y4 ^2 A2 l
0 n# C; `* j+ l# O用灰色标明的行是密钥B可被读的访问条件,此时密钥B可以存放数据。/ e) w9 o* R3 _
例如:当段3的访问条件C13C23C33=100时,表示:密钥 不可读(隐藏),验证密钥B正确后,可写(或更改);访问控制位在验证密钥A或密钥B正确后,可读不可写(写保护);密钥B不可读,在验证密钥 B 正确后可写;4 P' l2 V! ?) P* ?0 c: w* M. }
又如:当段3的访问条件C13C23C33=110或者111时,除访问控制位需要在验证密钥A或密钥B正确后可读外,其他如访问控制位的改写,密钥 A,密钥 B 的读写权限均被锁死而无法访问;% e' I& V# B5 W( K1 |% d0 M) `
$ q3 T: @1 A$ M8 o4 ?4 r
数据段的访问条件- o* u$ S6 L+ L% z
根据数据段(段 0-2 访问位的不同,访问条件可分为 “从不”、“密钥A ”、“密钥B ” 或“密钥A|B”(密钥A或密钥B)。: J. o; ]+ E7 x8 r
相关访问位的设置定义了该段的应用(或者说数据段类型)以及所支持的应用命令,不同的数据段类型可以进行不同的访问操作。 读/写段可以进行读操作和写操作。值段可以进行加、减、传送和恢复的值操作。
, F: D- S4 I9 h$ O& n其中一种情况中(001)只能对不可再充电的卡进行读操作和减操作,另一种情况中(110)使用密钥B可以再充电。 厂商段无论设置任何的访问位都只是只读的, 数据段的访问条件如下:+ r5 {# w' z- R( c3 @

7 X' r+ h% |4 p! U7 z: e0 Z1 q) J* A0 W/ ?
. T) r, s3 ?/ o# B
如果密钥B可以在相应的区尾被读出,它就不能用于确认(在前面所有表中的灰色行)。如果读卡器要用这些(带灰色标记的)访问条件的密钥B确认任何段,卡会在确认后拒绝任何存储器访问操作。
% k/ A) b4 a0 ~; Q+ Z. v
- ~4 v0 g1 e$ E; x' `1.6.3 举例说明; V9 ~! n' N" F" R1 Y1 O; N. j1 g

9 {& ?, f' N  b- I$ N/ y8 oMifare S50出厂时,访问控制字节(字节6-字节9)被初始化为“FF 07 80 69”,KEY A和KEY B的默认值为“FF FF FF FF FF FF” ;% H  \% Q9 K! {$ l
字节6为FF,二进制为1111111;字节7为07,二进制为00000111;字节8为80,二进制为10000000,如下:
. [/ Y8 p( {6 c9 ~7 k
, b2 j! L; }3 B0 u
# D5 u) W( t- y) Z
, ]: F* n4 ^% ]7 _0 W: y$ N+ `. o对照前面的访问位在区尾的存储形式图,可得知访问控制位为:% e  Z0 F& y% ]
C10C20C30=000;C11C21C31=000;C12C22C32=000;C13C23C33=001。. B* c+ _' A6 u; o! @/ S8 _7 \6 {. ]
6 M* \( l) K( m+ p
C10C20C30、C11C21C31、C12C22C32对应数据段0、1、2,参考数据段的访问条件图即可得知该段三个数据区的访问权限;
' T* R3 ~; H8 H2 p; Q- GC13C23C33对应区尾(段 3),参考区尾的访问条件图即可得知该段的访问权限;( u, g! d2 N+ O* Z( Y

3 ]- a: G  |6 g: K0 w2 v  ^: ?块0控制位为:0 0 0 权限为:通过A或者B密码认证后可读,可写,可进行加值和减值操作;3 ]- ?/ U4 m1 V& P$ x* E
块1控制位为:0 0 0 权限为:通过A或者B密码认证后可读,可写,可进行加值和减值操作;$ k# I- t5 y3 G  h+ j
块2控制位为:0 0 0 权限为:通过A或者B密码认证后可读,可写,可进行加值和减值操作;8 U7 k; r* L$ N' n# `
块3控制位为:0 0 1 权限为:A密码不可读,验证A或者B密码后可改写A密码;验证A或者B密码后,可读可改写存取控制;验证A密码或者B密码后,可读可改写B密码;7 ]9 S  c/ v  T# ]% q  m
+ y$ }+ p  ]0 c
这样每次换算还是有点麻烦,可以使用M1 S50卡控制字节生成工具快速换算:1 {6 V3 R" u! Q* e* h/ b
4 I8 w: Q/ S, g* A! k

9 \1 {( z3 Y! I0 F* g, t8 s# C' _0 r' a6 M: A* v& {1 I
最下面一行可以输入想解释的控制字,也可以根据上面的设置生成控制字;; A9 i) S) @; ?( S4 n! A4 E
最上面一行,左边是数据段0、1、2的访问控制位,右边是对应权限所需要的秘钥;7 S& q5 H  r: G  x7 H4 U& `/ q) {
中间的一行,左边是区尾的访问控制位,右边是对应权限所需要的秘钥;: W5 ~/ ?# y9 ?  G7 ^: `( F6 t
+ }3 {0 ]$ h+ e4 n
1.7 非加密IC卡和加密IC卡
5 o9 z1 w2 N; N& }- O6 H; t) c( G# r/ z2 M
非加密IC卡和加密IC卡的区别就是,非加密IC卡中所有扇区的KEYA和KEYB数值都是默认值FFFFFFFFFFFF;- H! v- u7 `  D% l" K* Q6 E8 l
而加密IC卡中,其中有扇区的KEYA和KEYB不等于FFFFFFFFFFFF,部分扇区加密的卡称半加密IC卡,所有扇区都加密的卡称全加密IC卡。
0 @/ A! U) a" p; @2 f# a1 s& n& o+ \: x& L0 M
一般的读卡器,像手机的NFC,是读不到IC卡的加密数据的,需要用专门的工具,比如Proxmark3读取。  s% h, i- f6 h8 j7 ]
' |; r5 ?* O5 @- g
对于IC卡,除了对卡上数据加密,还有滚动码加密、服务器数据验证等技术。
# R- K. K; }2 \1 _3 y因此,对IC卡的解密,更多的是门禁卡、签到卡、车库卡等的讨论,像公交卡、饭卡等涉及到资金问题的,基本都有服务器定期校验,得先搞定服务器再说,难度高还违法。
8 _' ~/ C% k" ]7 G+ B
' p9 F4 c4 X1 b参考资料:/ t6 j) R! W' j0 a: Q. B  m
码农生活 篇二:IC卡门卡模拟探秘, g8 C' L% f8 d$ Y* c0 _
IC卡简介【M1/S50,UID,CUID,FUID,UFUID复制卡介绍】$ D2 h8 f7 |1 k
谈谈 Mifare Classic 破解
9 O) e8 \$ J& i% W5 Crfid-practice
2 c. \( G# d. y1 s" M0 \Type A 卡存储结构与通信- E6 a; [2 z4 U7 N) O0 }/ Z5 A4 ~
Proxmark3 Easy破解门禁卡学习过程
" i7 B9 r6 z0 q7 D7 ^8 x7 r$ ~- E# z% r+ y6 C  K+ w1 K2 U8 ?
2. 手机NFC模拟加密门禁卡
- Y* s2 H8 w' o( r$ f* [  W& n* ^# q  @& K, g
有了前面的知识,再来看现在我的加密门禁卡情况,手机能识别为加密卡,肯定是IC卡。, W. e! k: q: t/ S. d" n/ s8 z! v
& g) t% c/ {; d
首先,加密卡在目前这个情况下是无法解密的,如果按照下面的操作失败,请参考下一章。+ Q( }, y4 y  i2 |% z
部分门禁系统只认证IC卡的UID,利用这一情况,可以试试复制门禁卡的UID,看运气能否打开门。
  `. l9 }3 w; g. p2 _1 W# p8 y+ M8 l# m# W- M# c0 r
在已root的情况下,直接使用APP NFC卡模拟 便可读取加密卡的UID和非加密数据、并写UID到手机NFC里。
4 J% K7 F! \+ h: r" W在未root的情况下,使用小米系统自带的门卡模拟功能,出于安全考虑,是不能对加密卡进行任何操作。手机的NFC,理论上可以读加密IC卡的UID,因此可以使用第三方软件MifareClassicTool读取UID,因为没有root,不能写手机NFC,但可以写IC卡,因此还需要一张CUID卡(不能使用UID卡),某宝上一块多一张,思路就是先读取加密卡的UID,再读取CUID卡的数据,然后将CUID卡的UID改为加密卡一样的UID,再将修改后的数据写回到CUID卡,最后用小米系统自带的门卡模拟功能,复制未加密的CUID卡即可。
# j5 d- \5 z3 X6 h# ~% E  q
$ W" c  z' e# J4 _1.读取加密卡的UID5 g; ~" X5 z, f% r4 O! }5 n
打开软件Mifare Classic Tool,将加密门禁卡放到手机的NFC感应区域,识别到IC卡后,点击“工具”->“显示标签信息”,可以看到加密门禁卡的8个数字,4字节的UID。
# M  m) V; G% J7 w. `& G1 M注意,在16进制里,每个数字为4位(2^4=16),8位(bits)为一字节(bytes),即两个数字组成一字节,这里8个数字,即为4字节(Bytes)。3 h6 ]: i# y1 E: N0 t0 a" d% K8 `: t
前8个数字,每个数字代表4位,8位为一字节,8个数字就是32位,即4字节
- d1 T9 Q% N# H接着打开“工具”->“BCC计算器”,输入UID,得到1位BBC(两个数字)校验数据。: v& [' T7 h4 N& a1 D

0 V6 k+ [! i3 d2 @6 i0 p( P9 H
* }& U$ K- b" V$ m. t4 `3 k; K7 Z9 b' R9 B' q: u' Z5 M
2.读取CUID卡数据; K8 }8 n- B+ i- J$ d
将CUID卡放到手机的NFC感应区域,识别到IC卡后,点击“读标签”->“启动映射并读取标签”,即可得到CUID白卡的所有信息。
2 p8 x2 N$ x/ J# p. U接着修改第一行的前10个数字,改为加密门禁卡的UID(8个数字)和BCC(2个数字),一共10个数字,并点右上角保存图标保存。
' l4 ?5 }3 t6 Z! @1 W# H8 p
0 N! r. X2 P$ B% g5 e
. U* t4 ~; `3 d6 V
3 O4 `$ N4 R/ j/ R3.写数据到CUID卡
5 I1 t4 g) V2 X: E# n# N再将CUID卡放到手机的NFC感应区域,识别到IC卡后,点击“写标签”,勾选“写转储(克隆)”->“显示选项”->“高级:使能厂商块写入”。' }$ e% D! Y9 H5 l4 w5 o+ v- V
再点击“选择转储”,选择刚才保存的数据,点击“选择转储”。# v+ w1 i' J) Y* t( U) Y/ x

# F6 s' z1 x' L: m" L; W( J4 Q$ J; `2 _8 u' i( k& K4 I+ @" p
" t' i# J% F5 Z  R. E3 u
在弹出的选择写扇区界面,默认即可,点击“好的”,最后点击“启动映射并写转储数据”。
+ j) \1 a. T) i, g0 O3 R, F: [" a+ L
' u9 H% L- u  H6 e1 M3 W- x7 |% \: f9 o* P

, B8 n8 M" f& X. A7 O  J+ o4.NFC手机复制CUID卡4 e" f# v* l6 s
最后,使用小米手机系统自带的门卡模拟功能,复制刚才写入新UID的CUID卡即可。
0 n( U& j3 s4 b6 m3 ^- m- \; Q" \8 V6 |% b3 r+ v& F
接着,就看运气吧,我小区的门禁系统就只认UID,搞定。
- U( w1 E/ v+ M9 r# p, C' Q) n9 W8 P  u
; a" Q! j  a7 q, J

作者: BI3NRS    时间: 2021-1-18 13:25
学习一下,感谢分享
作者: 15314375698    时间: 2021-1-19 07:46
学习了师傅厉害
作者: 彩虹之约    时间: 2021-1-19 15:42
谢谢师傅,好详细的文章。
作者: 畅游天下    时间: 2021-4-8 13:45
! ?' D9 Z* w- m+ ]& o
谢谢师傅,好详细的文章。现在多用于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