JAVA card 应用开发(六) 个人化数据的线路安全和数据安全
卡片个人化数据的线路安全和数据安全
说明:下面理论,基于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无法推断数据的完整性。
JAVA card 应用开发(六) 个人化数据的线路安全和数据安全的更多相关文章
- JAVA card 应用开发(三) 把APPLET(CAP文件)装载到卡片
依据前面两篇博文.我们能够在Eclipse上建立好Applet.而且能够有多个AID.能够选择不同的应用. 那么,以上我们都是基于模拟环境的逻辑,实际上有些函数接口是须要实际的环境.就是说我们须要把A ...
- JAVA card 应用开发(二) 在项目添加APPLET
在上篇博文中.<JAVA card 应用开发创建第一个APPLET>.介绍了一个项目从无到有. 那么.我们建立了这个项目后,仅仅有一个应用(一个可选AID),假设我希望这个项目能够有多个应 ...
- JAVA card 应用开发(一) 创建第一个APPLET
版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/freudlv/article/details/26499817 本文讲述在Eclipse环境下.怎样 ...
- C#_会员管理系统:开发六(数据搜索)
增加界面中的搜索功能 会员资料管理界面(VIPManager.cs): 详细代码如下: using System; using System.Collections.Generic; using Sy ...
- JAVA card 应用程序开发(七) JAVA 卡数据(永久数据/)时间数据
JAVA 卡对象 JAVA CARD 存储器装置: a. ROM: 永久保存程序和数据,虚拟机,API等待:(Applets它也可以在这里放) b. RAM: 栈数据,暂时对象. ...
- Java生鲜电商平台-SpringCloud微服务开发中的数据架构设计实战精讲
Java生鲜电商平台-SpringCloud微服务开发中的数据架构设计实战精讲 Java生鲜电商平台: 微服务是当前非常流行的技术框架,通过服务的小型化.原子化以及分布式架构的弹性伸缩和高可用性, ...
- Java和WebSocket开发网页聊天室
小编心语:咳咳咳,今天又是聊天室,到现在为止小编已经分享了不下两个了,这一次跟之前的又不大相同,这一次是网页聊天室,具体怎么着,还请各位看官往下看~ Java和WebSocket开发网页聊天室 一.项 ...
- Hibernate(或其它ORM)里的inverse用法详解,内容摘自Java web轻量级开发面试教程
本文来是从 java web轻量级开发面试教程从摘录的. Inverse的英文含义是反转,在Hibernate中用来决定是由哪方来维护两个业务实体类之间的关联关系,具体而言,就是由哪方去设置这个被外键 ...
- JAVA之旅(六)——单例设计模式,继承extends,聚集关系,子父类变量关系,super,覆盖
JAVA之旅(六)--单例设计模式,继承extends,聚集关系,子父类变量关系,super,覆盖 java也越来越深入了,大家加油吧!咱们一步步来 一.单例设计模式 什么是设计模式? JAVA当中有 ...
随机推荐
- 为什么Linux的Fdisk分区时First Sector为2048?
是为EFI启动预留的,而Fdisk也随着这波的兴起而跟着变. 参考: http://homepage.ntlworld.com./jonathan.deboynepollard/FGA/disc-pa ...
- Windows 定时删除指定路径下N天前的日志文件
Windows 定时删除指定路径下N天前的日志文件 Windows 下bat脚本文件的内容为 1. 删除指定路径下5天前的所有文件 @echo off set SrcDir=E:\WORK\Git s ...
- nginx静态文件访问404
在http模块下加入下面的代码 server { listen 80; server_name 192.168.1.249; #本机ip #access_log logs/host.access.lo ...
- 在linux下玩转usb摄像头
硬件平台:PC机一台 .usb摄像头 操作系统:Linux3.0.8 交叉编译环境:arm-none-Linux-gnueabi-gcc 4.5.1 调试步骤: 一.linux 内核解压 1.1使用 ...
- hive on spark VS SparkSQL VS hive on tez
http://blog.csdn.net/wtq1993/article/details/52435563 http://blog.csdn.net/yeruby/article/details/51 ...
- scrapy爬虫 函数间传值简易教程
2017-03-27 有的时候我们爬取数据的时候需要在多个页面之间跳转,爬取完所有页面的数据的时候才能把所有数据一起存到数据库,这个时候我们就需要把某个函数内爬取的数据传到下一个函数当中.有人可能会说 ...
- centos 7 查看系统/硬件信息及运维常用命令+联想Y430P无线网卡驱动安装
centos 7 查看系统/硬件信息及运维常用命令 当前环境:联想Y430P CentOS 7.3 [root@yan-001 ~] # uname -a # 查看内核/操作系统/CPU信息的Li ...
- 使用Kinect2作为Oculus游戏应用的输入设备
注: 文章写于2015年8月, 眼下VR游戏Demo已经完结, 所以把上一次预研的一些经验分享出来, 希望对大家有所帮助 背景 初接触Oculus时, 从网上下载了一大堆的Demo来体验, 可是, 操 ...
- MockServer的测试思想与实现
转载:http://blog.csdn.net/shen1936/article/details/50298901 背景 什么是MOCK Mock的定义 Mock框架简介 Mock在单测中的应用 De ...
- react-native AsyncStorage 数据持久化方案
1,AsyncStorage介绍 AsyncStorage 是一个简单的.异步的.持久化的 Key-Value 存储系统,它对于 App 来说是全局性的.它用来代替 LocalStorage. 由于它 ...