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

说明:下面理论,基于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 应用开发(六) 个人化数据的线路安全和数据安全的更多相关文章

  1. JAVA card 应用开发(三) 把APPLET(CAP文件)装载到卡片

    依据前面两篇博文.我们能够在Eclipse上建立好Applet.而且能够有多个AID.能够选择不同的应用. 那么,以上我们都是基于模拟环境的逻辑,实际上有些函数接口是须要实际的环境.就是说我们须要把A ...

  2. JAVA card 应用开发(二) 在项目添加APPLET

    在上篇博文中.<JAVA card 应用开发创建第一个APPLET>.介绍了一个项目从无到有. 那么.我们建立了这个项目后,仅仅有一个应用(一个可选AID),假设我希望这个项目能够有多个应 ...

  3. JAVA card 应用开发(一) 创建第一个APPLET

    版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/freudlv/article/details/26499817 本文讲述在Eclipse环境下.怎样 ...

  4. C#_会员管理系统:开发六(数据搜索)

    增加界面中的搜索功能 会员资料管理界面(VIPManager.cs): 详细代码如下: using System; using System.Collections.Generic; using Sy ...

  5. JAVA card 应用程序开发(七) JAVA 卡数据(永久数据/)时间数据

    JAVA 卡对象 JAVA CARD 存储器装置: a.      ROM: 永久保存程序和数据,虚拟机,API等待:(Applets它也可以在这里放) b.      RAM: 栈数据,暂时对象. ...

  6. Java生鲜电商平台-SpringCloud微服务开发中的数据架构设计实战精讲

    Java生鲜电商平台-SpringCloud微服务开发中的数据架构设计实战精讲 Java生鲜电商平台:   微服务是当前非常流行的技术框架,通过服务的小型化.原子化以及分布式架构的弹性伸缩和高可用性, ...

  7. Java和WebSocket开发网页聊天室

    小编心语:咳咳咳,今天又是聊天室,到现在为止小编已经分享了不下两个了,这一次跟之前的又不大相同,这一次是网页聊天室,具体怎么着,还请各位看官往下看~ Java和WebSocket开发网页聊天室 一.项 ...

  8. Hibernate(或其它ORM)里的inverse用法详解,内容摘自Java web轻量级开发面试教程

    本文来是从 java web轻量级开发面试教程从摘录的. Inverse的英文含义是反转,在Hibernate中用来决定是由哪方来维护两个业务实体类之间的关联关系,具体而言,就是由哪方去设置这个被外键 ...

  9. JAVA之旅(六)——单例设计模式,继承extends,聚集关系,子父类变量关系,super,覆盖

    JAVA之旅(六)--单例设计模式,继承extends,聚集关系,子父类变量关系,super,覆盖 java也越来越深入了,大家加油吧!咱们一步步来 一.单例设计模式 什么是设计模式? JAVA当中有 ...

随机推荐

  1. 【安居客】资深PHP软件开发工程师

    工作职责: 1.网站项目的开发和维护: 2.负责技术部软件开发架构设计: 3.负责生产环境.测试环境和生产环境服务器运维和优化: 4.负责研究较前沿和复杂的技术运用: 岗位要求: 1.熟悉 PHP 程 ...

  2. Linux中常使用的宏判断的几个例子

    示例一 #ifdef CONFIG_XX1 ...... #endif 示例二 #ifdef CONFIG_XX1 ...... #else ...... #endif 示例三 #if defined ...

  3. mybatis-mysql小优化

    原文:http://blog.csdn.net/jinzhencs/article/details/51656548 1.查询某条记录是否存在 <!-- 查询s是否被创建过:Uuid,name, ...

  4. 【启动】Windows上启动图形化软件,报错: 无法启动此程序,因为计算机中丢失api-ms-win-crt-runtime-1-1-0.dll

    今天在安装了jetbrains官网上的ToolBox软件后,没有办法启动起来,报错如下: 无法启动此程序,因为计算机中丢失api-ms-win-crt-runtime-1-1-0.dll 尝试重新安装 ...

  5. Ubuntu 16.04 -- 同时配置Nginx(转发)和frp(内网映射)和HTTPS(ca加密) - 端口转发

    Ubuntu16.04下: sudo apt -get nginx 用这条命令安装完nginx之后, nginx在该目录下: 然后配置nginx: 如下: 红圈圈住的地方多写几个可以做负载均衡. 端口 ...

  6. Swift入门(一)——基本的语法

    近期開始学习swift.把学习的过程和总结整理成一个系列.方便日后回想总结. 基本的语法 基础语法 swift中每一行结束后不须要加分号.多个语句在同一行内须要用分好隔开 //表示凝视.或者用/* - ...

  7. ElasticSearch的内存设置

    编辑ElasticSearch中bin目录下 vi elasticsearch中 加上   export ES_HEAP_SIZE=24g 修改配置文件 config/elasticsearch.ya ...

  8. CentOS7.4 x64环境Percona-Server-5.6安装

    CentOS7.4 x64环境Percona-Server-5.6安装 下载MySQL $ cd /usr/local/src/ $ wget https://www.percona.com/down ...

  9. http接口测试—自动化测试框架设计

    转载:https://my.oschina.net/hellotest/blog/499719 一.测试需求描述 对服务后台一系列的http接口功能测试. 输入:根据接口描述构造不同的参数输入值(Js ...

  10. CodeForces 659E New Reform

    题意:给你一个无向图,如今要求你把边改成有向的. 使得入度为0的点最少,输出有多少个点入度为0 思路:脑补一波结论.假设有环的话显然没有点入度为0,其余则至少有一个点入度为0,然后就DFS一波就能够了 ...