【CPU卡】认证

来源:互联网 发布:四川广电网络全称 编辑:程序博客网 时间:2024/05/29 14:23

CPU卡主要认证操作有三种:
1.口令认证(或PIN认证)
2.内部认证
3.外部认证

口令认证:用户输入口令参数后由Verify命令核对口令的正确性。
具体过程:通过判断密码文件(存在EEPROM)中的错误次数计数器是否达到最大。是,则锁 卡;否,则比较密码,无论正确与否则写指定值到寄存器,再读寄存器的值判断是否符合,不符合,则计数器加一,接着继续循环。

由于直接对暗号(密钥)存在不安全的隐患(容易被窃取),所以密码学中并不直接判断两个密钥是否相> 等,而是采取一次一密的情况。
什么是一次一密呢?
就是:
1、每次都由一方产生一个随机数
2、双方都用密钥计算随机数得到一个值
3、比较随机数的计算值是否相等
这样就避免了密钥泄露的问题,因为每次得到的都是临时值,所以每次都必须去计算随机数,而
密钥又是被读出的,只能用来计算(通过使用指定的密钥标识来计算)。
所以就算泄露了随机数的计算值也没关系,因为下一次这个计算值并不能被使用。

外部认证:CPU卡验证读写器(基于psam卡,如ATM机)合法性。
具体过程:
1、读写器发送random指令给CPU卡,CPU卡产生一个8字节随机数给读写器
2、读写器用内部认证密钥计算随机数,得到8字节随机数密文
3、读写器把8字节随机数密文送给CPU卡
4、CPU卡解密8字节随机数得到随机数明文
5、CPU卡在内部把解密后的随机数和步骤1中临时存放的随机数比对,若相等,则外部认证成功

实质:CPU卡验证psam卡是否具有相同的密钥

内部认证:读写器(基于psam卡,如ATM机)验证CPU卡合法性。
具体过程:
1、读写器生成随机数给CPU卡
2、CPU卡用内部认证密钥计算随机数,得到8字节随机数密文
3、CPU卡把8字节随机数密文送给读卡器
4、读写器解密8字节随机数得到随机数明文
5、读写器在内部把解密后的随机数和步骤1中临时存放的随机数比对,若相等,则内部认证成功

实质:psam卡验证CPU卡是否具有相同密钥

*以上认证过程基于对称密钥(即密钥相同)。
*每个卡的密钥都是唯一的,虽然加密后的密文不一样,但经过同一种算法解密后的数据是一致的。
*内部认证与外部认证区别:待解决,求指导!(为什么内部验证密钥相同之后还有进行外部验证接着认证一遍密钥)

每一次认证都会生成一个过程密钥。

只有口令认证与外部认证会改变安全状态寄存器的值。
在MF下认证通过,同时改变MF安全状态寄存器与当前安全状态寄存器的值
不在MF下认证通过,只改变当前安全状态寄存器的值

0 0