PBOC/EMV之DDA(动态数据认证)
来源:互联网 发布:java金字塔图形的代码 编辑:程序博客网 时间:2024/05/22 00:43
出处:http://blog.csdn.net/pony_maggie/article/details/7429296
前一篇文章讲了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/EMV之DDA(动态数据认证)
- PBOC/EMV之静态数据认证(SDA)与动态数据认证(DDA)
- PBOC/EMV之静态数据认证(SDA)与动态数据认证(DDA)
- PBOC/EMV之静态数据认证(SDA)与动态数据认证(DDA)
- PBOC/EMV之静态数据认证(SDA)与动态数据认证(DDA)
- PBOC/EMV之静态数据认证(SDA)与动态数据认证(DDA)
- PBOC/EMV之SDA(静态数据认证)
- PBOC/EMV之CDA(复合数据认证)
- PBOC/EMV之SDA(静态数据认证)
- PBOC/EMV之CDA(复合数据认证)
- PBOC/EMV之SDA(静态数据认证)
- EMV技术学习和研究-脱机数据认证之DDA
- EMV/PBOC 之 静态数据认证(SDA) 数据完整解析(附tag数据
- EMV技术学习和研究(五)脱机数据认证之DDA
- PBOC/EMV 中SDA和DDA简介
- PBOC/EMV 中SDA和DDA简介
- PBOC2.0安全系列之—脱机认证之动态数据认证(DDA)
- WMS-C、WMTS、TMS
- Save Games in Unity: Building a robust, extendable save format in XML without tangling up your code
- RegisterClientScriptBlock的使用 .
- RegisterStartupScript的使用方法 .
- Android HAL的被调用流程
- PBOC/EMV之DDA(动态数据认证)
- 西安工作辞了,准备北漂
- PBOC/EMV之CDA(复合数据认证)
- DWR学习笔记(二)
- oracle循环语句小结
- FT103:一个半Android平板
- android.intent.action大全
- 无法识别的属性“targetFramework”
- Oracle中对一个表中的数据和输入的参数对比,做出对应的操作(存储过程)