keyA的修改

M1卡修改各区块控制位值和数据
日期:2013年06月18日 分类:智能卡 标签: 智能卡 作者:堕落的鱼
(),以常用设置”08 77 8F 69″控制条件为例,先搞清楚它――具有的访问权限。
1、对”08 77 8F 69″值进行计算,该值定位于各区块36789四个字节内,字节6=08,字节7=77 字节8=8F   字节9=69(默认值,不予计算)
2、例如:字节6=08,对应其二进制值=00001000 则对678这三个字节进行二进制转换结果见下表:
字节6 = 0 0 0 0 1 0 0 0
字节7 = 0 1 1 1 0 1 1 1
字节8 = 1 0 0 0 1 1 1 1

3、参照表2及表4算法,字节6的全部二进制值取反,字节7的低四位二进制值取反,字节8不变,得到:
字节号
对应二进制值
位置
4
位置
4
字节
字节
字节8
0 0 0 0 1 0 0 0
0 1 1 1 0 1 1 1
1 0 0 0 1 1 1 1
C2Y
C1Y
m1卡C3Y
1 1 1 1
0 1 1 1
1 0 0 0
C1Y
C3Y
C2Y
0 1 1 1
1 0 0 0
1 1 1 1
   
0
0
                               
4、对以上678字节的存取/控制二进制已取反值,依照表2,表4块位转换为各块控制值,如下表:
3
字节7,字节6,字节8 = C13C23C33 = C1YC2YC3Y = 0 1 1
2
1
0
字节7,字节6,字节8 = C12C22C32 = C1YC2YC3Y = 1 1 0
字节7,字节6,字节8 = C11C21C31 = C1YC2YC3Y = 1 1 0
字节7,字节6,字节8 = C10C20C30 = C1YC2YC3Y = 1 1 0
注意: 4位的各块值=4位的各块值时,其值可用。高4位值4位值时,其值不可用!
3 数据块的访问控制条件
访问控制位
所控制的访问操作
用途
C1
C2
C3
加值
减值
转存
恢复
0
0
0
key A|B1
key A|B1
key A|B1
key A|B1
传输配置状态
0
1
0
key A|B1
key B1
禁止
禁止
读写块
1
0
0
key A|B1
key B1
禁止
禁止
读写块
1
1
0
key A|B1
key B1
key B1
key A|B1
数值块
0
0
1
key A|B1
禁止
禁止
key A|B1
数值块
0
1
1
key B1
key B1
禁止
禁止
读写块
1
0
1
key B1
禁止
禁止
禁止
读写块
1
1
1
禁止
禁止
禁止
禁止
读写块
                                3
如果相应扇区尾块Key B可读,则不得用作认证(前表中所有灰行)。后果:如果读写器试图用灰行的访问控制条件以Key B认证任何扇区的任何块,卡将在认证后拒绝所有后续存储器访问。
5 尾块的读写条件
访问控制位
所控制的访问对象
注释
KEY A
访问控制位
KEY B
C1
C2
C3
0
0
0
禁止
Key A
Key A
Key B
Key A
Key A
Key B可读
0
1
0
禁止
禁止
Key A
禁止
Key A
禁止
Key B可读
1
0
0
禁止
Key B
Key A|B
禁止
禁止
Key B
1
1
0
禁止
禁止
Key A|B
禁止
禁止
禁止
0
0
1
禁止
Key A
Key A
Key A
Key A
Key A
Key B可读
传输配置状态
0
1
1
禁止
Key B
Key A|B
Key B
禁止
Key B
1
0
1
禁止
禁止
Key A|B
Key B
禁止
禁止
1
1
1
禁止
禁止
Key A|B
禁止
禁止
禁止
                            5
注:灰行为key B可读并可用于存储数据的访问控制条件。

5、查对访问权限(数据存取控制依照表3,块3存取控制依照表5),该例”08 77 8F 69″的访问权限为:
 3 = 011:权限为:KeyAKeyB均不可读,验证KeyB正确后可改写KeyAKeyB,验证KeyAKeyB正确后可读控制位。在此可见密钥KeyB的重要性,KeyB不正确是无法看到块3控制值,更无法修改密钥。
 2 = 1 = 0 = 110:权限为:验证KeyAKeyB后可读该块数据,减值以及初始化值,只有验证KeyB 正确后才可改写该块数据,在此可以看到密钥KeyB对改写数据块也起着关键性作用。
()”08 77 8F 69″ 控制条件设置步骤:
()可知:KeyB设置后为不可读,并且改写数据和改写控制位都需要正确验证它,故KeyB设置后程序
操作员必须妥善保管KeyB值,否则以后改写数据和控制位时,不正确的KeyB值将无法实现卡的任何操作!!!
1、修改块3控制位的值:最初的各区块3内的KeyAKeyB都是厂商12”F”默认值(KeyA在任何条件下均为不可读,大部分读写机程序表现KeyA为未知的12”0″ ),在修改控制值时,先不要修改默认密码KeyAKeyB,在控制位修改成功后,再去更改新密码值。即先对块3的控制位进行修改(默认值FF 07 80 69改为新值08 77 8F 69)并执行写操作。控制位写成功后,KeyB亦为12”0″不可读了,但仍是隐藏的12”f”默认值。
2、修改块3KeyAKeyB值:控制位08 77 8F 69值写成功后,验证KeyB正确后方可改写KeyAKeyB新密码。在密码操作模式键入要改写区块之先前密码B(先前密码为默认值时,则不需改动和加载),加载后反回数据操作模式,再进行读值,KeyAKeyB值的改写。
3、修改块0~块2中数据:由新的控制条件08778F69可知,要修改数据,必须先验证KeyB,故先设置密码操作为KeyB认证方式,加载后再返回数据操作模式,对要修改的数据块进行值的改写操作。
4、上例中分析了”08 77 8F 69″的访问条件及其改写步骤,对用户的其它控制条件亦可参照应用。

本文发布于:2024-09-23 03:11:46,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/2/359380.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:控制   数据   操作   条件
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议