卡片个人化数据的线路安全和数据安全

说明:下面理论,基于GP2.2规范。

一、线路安全

1. 概念:线路安全。就是对于数据不保密。但要保证数据的完整性和防止被篡改。

2. 方法:在原有的数据基础上。加上8个字节的MAC。

3. 过程

a.在外部认证指令中,设定安全级别。

如图1.

图1

b.计算8个字节的MAC附加在后面就可以。计算MAC须要注意:完毕了外部认证后。除了选择应用的指令以外,都须要增加MAC,否则安全条件不满足。计算MAC以8个字节的0X00为计算的初始向量。输入数据为8个历史字节(上次计算的MAC值)+本次要发的指令。

比方,原本是:

80E40000094F07A000000333010100

算MAC过程:

MAC(0000000000000000,[8字节MACkey],[8字节上次MAC结果]+84E40000114F07A0000003330101,[8字节本次MAC结果])

就变成:

84E40000114F07A0000003330101+[8字节本次MAC结果]

注意:第一次的8字节MAC结果,是在“8482010010”这个指令生成的。

第二个指令就開始沿用这个指令的MAC结果,作为输入了。

MAC值加入到指令后面,长度需添加。

比方

80E20000299102266F24840E315041592E5359532E4444463031A5128801015F2D087A68656E667264659F110101

加上MAC后,就是:

84E20000319102266F24840E315041592E5359532E4444463031A5128801015F2D087A68656E667264659F110101(+8字节MAC)

其余长度都不变,并且还不能带有LE(期待的数据长度)。

二、数据安全

1. 概念:进行卡片个人化的时候,数据是保密的,比方卡片私钥。

2. 方法:把数据通过DES加密,看不到明文。

3. 过程:注意在指令的P1设定对应的数值,如图2.

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZnJldWRfbHY=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

图2

样例,原本是:(设置PIN的指令)

80E200170B801008241234FFFFFFFFFF

DesEn(241357FFFFFFFFFF,[DES KEY],[加密后的数据:8的倍数])

80E260170B801008+[加密后的数据]

注意,假设须要加密的数据。不是8的倍数,请填充00或者FF,Applet都能够正常解释出来。

假设输入数据是8的倍数,并且个人化的DGI是 0x8101、0x8103、0x8201、0x8202、0x8203、0x8204、0x8205、0x8301、0x8302、0x8303、0x8304、0x8305 这些。还须要在后面填充80FFFFFFFFFFFFFF.对于对称密钥,后面是不须要增加这8个补充字节的。

当然,是能够把个人化数据。既有线路安全也有数据安全,只是要注意,先做数据安全。再做线路安全。

否则Applet无法推断数据的完整性。

最新文章

  1. appium V1.5.x变化
  2. 【Eclipse】总结自己在工作中经常使用到的Eclipse快捷键
  3. jQuery 浮动标签插件,帮助你提升表单用户体验
  4. java中的静态代码块、构造代码块、构造方法
  5. 《深入PHP与jQuery开发》读书笔记——Chapter2
  6. 繁华模拟赛 David与Vincent的博弈游戏
  7. 蓝牙--主机接口控制器(HCI)
  8. netty中LengthFieldBasedFrameDecoder的使用
  9. mvc4 http错误403.14 forbidden
  10. Long和Date数据类型之间相互转换代码 - 调整时间推前往后,截取long型日期方法。
  11. UVA1099----Sharing Chocolate----在集合上的DP
  12. hdu 4781 Assignment For Princess (2013ACMICPC 成都站 A)
  13. 【HDOJ】3277 Marriage Match III
  14. JS一些应用脚本
  15. CAD打开缓慢问题解决方法
  16. @EnableWebMvc,WebMvcConfigurationSupport,WebMvcConfigurer和WebMvcConfigurationAdapter区别
  17. mysql 性能监控
  18. 恢复git撤销commit的代码
  19. 项目Alpha冲刺(团队6/10)
  20. python 作用域

热门文章

  1. BeanUtils——JavaBean相互转换及字典翻译
  2. D3学习之:D3.js中的12中地图投影方式
  3. ant create-path 报不允许匹配[xX][mM][1L]错误
  4. Solr 配置文件之schema.xml
  5. MySQL架构组成之物理文件组成
  6. IOS开发通过代码方式使用AutoLayout (NSLayoutConstraint + Masonry) 转载
  7. 渗透测试中的文件传输通道1- cmd下下载文件
  8. GROUP BY和HAVING 以及mysql中常用的日期函数
  9. SecureCRT如何调整好看的黄色
  10. NSNotification的几点说明