PBOC/EMV之DDA(动态数据认证)
前一篇文章讲了SDA,DDA的步骤可以这样理解:先执行SDA,再执行DDA特有的步骤. 所以这篇文章主要讲这个特有的步骤.正是这个特有的步骤,使得DDA不仅具有SDA的功能(保证卡片上的数据在个人化后不会被修改),还可以防止卡片被复制伪造.
第一步,取IC公钥
在SDA阶段取得的发卡行公钥,在DDA时还有一个用途,就是恢复IC卡公钥. 可以用下面的公式表示:
发卡行公钥+IC卡公钥证书+RSA算法=IC卡公钥
IC卡公钥证书是终端在读数据阶段从卡里读出来的, 是一串密文数据,类似如下:
* Tag 9F46 ICC Public Key Certificate
* - Len 50
* - Value 79 DE 85 4F 1F 84 9E 8B 42 9D 72 6A 8B 93 F0 E9
* 83 06 B7 7F A8 78 67 26 B4 F6 25 6B ED 87 9F 2C
* 24 52 24 DD 93 1C A8 0D 44 D8 C6 A5 5E 6D A9 BB
* E5 F3 E2 7F 65 98 28 E4 2D 27 A1 7C 33 49 88 83
* 34 D7 46 3C 0C 6E C7 BA 93 D6 27 65 44 FB BF C5
第二步,取签名的动态数据
终端首先发起内部认证命令给卡片, 命令的数据域是DDOL中指明的数据, DDOL是卡片在读数据阶段返回给终端的,告诉终端自己需要哪些终端数据来生成签名的动态数据. 举例如下:
* Tag 9F49 Dynamic Data Authentication Data (DDOL)* - Len 15* - Value 9F 02 06 9F 03 06 9F 1A 02 95 05 5F 2A 02 9A 03 * 9C 01 9F 37 04
要注意9F37(终端不可预知数)是DDOL的必备项.
卡片用终端送来的DDOL中的数据,加上自己产生的动态数据(比如ATC),用IC卡私钥(注意这个, 这个私钥放在安全存贮区域,是不可复制的)生成一个密文数据,这个数据叫做签名的动态应用数据. 然后卡片把这个数据通过内部认证返回给终端.
第三步,验证哈希值
用公式可表示如下:
IC卡公钥+动态签名的应用数据+RSA=数据A
数据A也包括两部分,一部分我把它叫A1,另一部分叫哈希结果A
终端用A1加上DDOL指定的数据,用指定的哈希算法计算一个哈希结果B.
A和B比较,如果相等,则DDA成功,否则失败.
前面一开始说到,DDA可以防止复制卡片, 从上面一系列的流程可以看出, 即使你复制一张卡,SDA可以通过(因为静态的数据都是一样的),但是由于IC卡私钥的安全性,动态签名的验证是肯定失败的.
PBOC/EMV之DDA(动态数据认证)相关推荐
- PBOC规范研究之十一 ---复合动态数据认证(转)
1. 概述 CDA由IC卡动态签名的生成和终端对签名的验证组成.由于直到CDA签名验证时才需要公钥,公钥的恢复可以在CDA签名前的任何时候.在公钥恢复阶段,发现的错误可能导致CDA失败(TVR&quo ...
- EMV技术学习和研究(五)脱机数据认证之DDA
转载请注明出处 作者:小旭 有了前面对SDA的熟悉,接下来再研究DDA就会感觉比较轻松一点了. 用于动态数据认证的数据和SDA部分所描述的一样,也是基于SFI的来组织的. 特别说明一下:之前有一个地方 ...
- PBOC/EMV 中SDA和DDA简介
PBOC/EMV里有两个非常重要的概念: SDA(staticdataauthentication)和DDA(dynamicdataauthentication),分别叫做静态数据认证和动态数据认证. ...
- QPBOC——数据认证
非接数据认证三种方式 SDA数据认证,标准DDA数据认证,FDDA数据认证也是DDA一种快速表现方式. SDA二步曲: 步骤 1:取得 CA 公钥 终端使用卡片中的公钥索引和RID来唯一确定并取得存储 ...
- 【EMV L2】SDA静态数据认证处理流程
[静态数据认证] 静态数据认证处理过程中,卡片没有执行任何处理,终端执行的处理流程: 1.认证中心公钥的获取 终端使用卡片上的认证中心公钥索引(PKI)[TAG:8F,Certification Au ...
- PBOC/EMV之电子钱包与电子现金的区别
对于普通的用户来说,电子钱包和电子现金(下面分别简称EP和EC)是几乎没有区别的, 为什么这么说呢. 因为EP和EC都是为了做小额支付而生的. 我们拿着一张IC卡去超市的POS机上消费,或是坐公交消费 ...
- 金融系统中PBOC/EMV的TLV的算法实现(含C++/C#)
金融系统中PBOC/EMV的TLV的算法实现(含C++/C#) TLV即Tag-Length-Value,常在IC卡与POS终端设备中通过这样的一个应用通信协议进行数据交换.在金融系统以及认证中,PB ...
- PBOC/EMV之圈存模式的变革
转载自:http://blog.sohu.com/people/!cG9ueV9tYWdnaWVAc29odS5jb20=/143998056.html 关于圈存的概念可参见我的另一篇文章(电子现金应 ...
- TOTP动态密码认证功能,让天下无贼!
据多家媒体报道,勒索500万美元的Darkside病毒是通过泄露的VPN密码进入企业内网的,由此可见使用静态用户名密码的VPN系统存在很大的安全隐患.本文通过对现有的用户认证措施进行分析,论证了使用T ...
最新文章
- 安卓手机文件管理器:360°LES文件浏览器
- linux route命令删除多余路由
- NYOJ 460 项链
- Docker教程-简介
- 电脑安装系统多少钱_电脑系统安装教学
- ARM Linux.2.6.34内核移植
- spark1.6 maven java_Spark+ECLIPSE+JAVA+MAVEN windows开发环境搭建及入门实例【附详细代码】...
- Tomcat日志文件位置
- 算法导论——lec 12 平摊分析与优先队列
- 内部收益率irr_爱心人寿心相随年金险,IRR内部收益率测算
- python网站数据监测_python 网站数据监控
- 使用Certbot申请ssl证书
- ASEMI代理AD8603AUJZ-REEL7原装ADI车规级AD8603AUJZ-REEL7
- 停车场设计软件测试,停车场车位视频检测系统设计
- 二、肺癌检测-LUNA数据集下载和介绍
- 串行干扰消除matlab仿真,串行干扰消除求详解
- BLE Error Codes 查表
- 民航客运量变化趋势的多元线性回归模型--基于R(附R程序及讲解)
- ORA-12154 问题解决办法
- 关于开源软件研究的英文论文_关于开源公司软件的7个神话
热门文章
- OneNote的安装教程 如何解决Win10登录微软账号报错问题
- Python小海龟turtle画汉字
- 东海证券分析报告(0607)
- 电信“商务领航” PK 网通“EPOWER”
- 【Kubernetes】k8s多集群切换【含上下文作用详解】【含6443端口不可达处理方法】
- XDOJ例题及答案第六更 哥德巴赫猜想 工资发放 工资计算 购房贷款计算 后项除以前项 画图灰度直方图 回文数 计算某月天数 计算球的体积 计算球体质量 计算长方体体积
- uboot下启动logo
- React中的dav.js脚手架
- 三菱PLC常见故障及远程维护解决方案
- Java3年转型大数据开发,15天拿6个offer,薪资翻3倍,我做对了什么