【静态数据认证】

静态数据认证处理过程中,卡片没有执行任何处理,终端执行的处理流程:
1、认证中心公钥的获取
终端使用卡片上的认证中心公钥索引(PKI)【TAG:8F,Certification Authority Public Key Index】以及注册的应用提供商标识(RID)【TAG:9F06,Application Identifier(AID)-terminal】来获取存储在终端的认证中心公钥和相关信息;

注:认证中心公钥是预先存储在终端里的,通过PKI和RID作为索引找到;

2、发卡行公钥的获取
终端用认证中心公钥验证发卡行公钥证书【TAG:90,Issuer Public Key Certificate】,验证正确则从发卡行公钥证书中取出发卡行公钥;

注:通过第1步获取到认证中心公钥后,使用该公钥经过RSA算法解密发卡行公钥证书【TAG:90】的数据;根据解密后的数据(格式参考Book2,5.3,Table6)验证是否正确,如果正确,则可以获取到发卡行公钥(发卡行公钥有一部分是解密后获得的);

3、签名静态应用数据的验证
终端用发卡行公钥验证签名静态应用数据【TAG:93,Signed Static Application Data】,如果验证不正确,则数据可能被篡改,静态数据认证失败了;

注:通过第2步获取到发卡行公钥后,使用改公钥经过RSA算法解密签名静态应用数据【TAG:93】的数据;根据解密后的数据(格式参考Book2,5.4,Table7)验证是否正确;

4、静态数据认证结果
如果以上所有步骤得以成功执行,则静态数据认证通过;
如果静态数据认证失败,终端设置终端验证结果中的相应指示器,以显示静态数据认证结果,并在随后的处理中使用该指示器决定交易的处理;


【发卡行公钥的获取(Book2,5.3)】

1. If the Issuer Public Key Certificate has a henght different from the length of the Cerfitfication Authority Public Key Modulus obtained in the previous section, SDA has failed.
2. In order to obtain the recovered data speicified in the Table 6, apply the recovery function specified in Annex A2.1 to the Issuer Public Key Certificate using the Certification Authority Public Key in conjunction with the corresponding algorithm. If the Recovered Data Trailer is not equal to 'BC', SDA has failed.
3. Check the Recovered Data Header. If it is not '6A', SDA has failed.
4. Check the Certificate Format. If it is not '02', SDA has failed.
5. Concatenate from left to right the second to the tenth data elements in Table 6(that is, Certificate Format through Issuer Public Key or Leftmost Digits of the Issuer Public Key), followed by th Issuer Public Key Remainder(if present), and finally the Issuer Public Key Exponent.
6. Apply the indicated hash algorithm(derived from the Hash Algorithm Indicator) to the result of the concatenation of the previous step to produce the hash result.
7. Compare the calculated hash result from the previous step with the recoverd Hash Result. If they are not the same, SDA has failed.
8. Verify that the Issuer Identifier mathces the leftmost 3-8 PAN digits (allowing for the possible padding the Issuer Identifier with hexadecimal 'F's). If not, SDA has failed.
9. Verify that the last day of the month specified in the Certificate Expiration Date is equal to or later than today's date. If the Certificate Expiration Date is earlier than today's date, the certificate has expired, in which case SDA has failed.
10.Verify that the concatenation of RID, Certification Authority Public Key Index and Certificate Serial Number is valid. If not, SDA has failed.
11.If the Issuer Public Key Algorithm Indicator is not recognised, SDA has failed.
12.If all the checks above are correct, concatenate the Leftmost Digits of Issuer Public Key and the Issuer Public Key Remainder(if present) to obtain the Issuer Public Key Modulus, and continue with the next steps for the verification of the Signed Static Application Data.


【签名静态应用数据的验证(Book2,5.4)】

1. If the Signed Static Application Data has a length different from the length of the Issuer Public Key Modulus, SDA has failed.
2. In order to abtain the Recovered Data specified in Table 7, apply the recovery function specified in Annex A2.1 on the Signed Static Application Data using the Issuer Public Key in conjunction with the corresponding algorithm. If the Recovered Data Trailer is not equal to 'BC', SDA has failed.
3. Check the Recovered Data Header. If it is not '6A', SDA has failed.
4. Check the Signed Data Format. If it is mot '03', SDA has failed.
5. Concatenate from left to right the second to the fifth data elements in Table7(that is, Signed Static Data Format through Pad Pattern), followed by the static data to the authenticated as specified in section 10.3 of Book 3. If the Statis Data Authentication Tag List is present an contains tags other than 82, then SDA has failed.
6. Apply the indicated hasd algorithm (derived from the Hash Algorithm Indicator) to the result of the concatenation of the previous step to produce the hash result.
7. Compare the calculated hash result from the previous step with the recoverd Hash Result. If they are not the same, SDA has failed.
8. If all of the obove steps were executed successfully, SDA was successful. The Data Authentication Code recovered in Table 7 shall be stored in tag '9F45'.

转载于:https://www.cnblogs.com/utank/p/8469360.html

【EMV L2】SDA静态数据认证处理流程相关推荐

  1. SDA(静态数据认证)

    SDA(静态数据认证): 首先如何理解这个静态.参与认证的都是静态的卡片数据,这些数据在卡片个人化后就不会在改变,比如卡号. 它的目的是确认存放在IC卡中的由应用文件定位器(AFL)和可选的静态数据认 ...

  2. PBOC/EMV之DDA(动态数据认证)

    前一篇文章讲了SDA,DDA的步骤可以这样理解:先执行SDA,再执行DDA特有的步骤. 所以这篇文章主要讲这个特有的步骤.正是这个特有的步骤,使得DDA不仅具有SDA的功能(保证卡片上的数据在个人化后 ...

  3. EMV技术学习和研究(五)脱机数据认证之DDA

    转载请注明出处 作者:小旭 有了前面对SDA的熟悉,接下来再研究DDA就会感觉比较轻松一点了. 用于动态数据认证的数据和SDA部分所描述的一样,也是基于SFI的来组织的. 特别说明一下:之前有一个地方 ...

  4. TCP/IP学习(30)——L2数据链路层的数据包处理详细流程

    原文地址:TCP/IP学习(30)--L2数据链路层的数据包处理详细流程 作者:GFree_Wind 本文的copyleft归gfree.wind@gmail.com所有,使用GPL发布,可以自由拷贝 ...

  5. PBOC/EMV 中SDA和DDA简介

    PBOC/EMV里有两个非常重要的概念: SDA(staticdataauthentication)和DDA(dynamicdataauthentication),分别叫做静态数据认证和动态数据认证. ...

  6. QPBOC——数据认证

    非接数据认证三种方式 SDA数据认证,标准DDA数据认证,FDDA数据认证也是DDA一种快速表现方式. SDA二步曲: 步骤 1:取得 CA 公钥 终端使用卡片中的公钥索引和RID来唯一确定并取得存储 ...

  7. 网络数据包收发流程(三):e1000网卡和DMA

    早就想整理网络数据包收发流程了,一直太懒没动笔.今天下决心写了 一.硬件环境 intel82546:PHY与MAC集成在一起的PCI网卡芯片,很强大 bcm5461:   PHY芯片,与之对应的MAC ...

  8. 铁拳nat映射_铁拳如何重塑我的数据可视化设计流程

    铁拳nat映射 It's been a full year since I've become an independent data visualization designer. When I f ...

  9. Linux内核网络数据包处理流程

    Linux内核网络数据包处理流程 from kernel-4.9: 0. Linux内核网络数据包处理流程 - 网络硬件 网卡工作在物理层和数据链路层,主要由PHY/MAC芯片.Tx/Rx FIFO. ...

最新文章

  1. 键盘I/O中断调用(INT 16H)和常见的int 17H、int 1A H
  2. js判断输入数字是否是整数,金额、数字
  3. Newtonsoft.Json.dll序列化为json,null值自动过滤
  4. Knowladge_网站学习_jQuery插件
  5. POP3口令扫描案例
  6. 使用JGit API探索Git内部
  7. Linux下查看版本及系统信息
  8. solr5.0mysql_ik扩展支持Solr配置详解
  9. 北大开源分词工具包: 准确率远超THULAC、jieba 分词
  10. AcWing 842. 排列数字(DFS)
  11. php语言能开发app吗_如何利用PHP语言开发手机APP
  12. 最新CISP模拟考试题库及答案(一)
  13. pyodbc mysql_pyodbc and mySQL
  14. 联想拯救者 Legion Y7000P 安装 Ubuntu 18.04.2 LTS amd64 遇到的问题解决
  15. php theexcerpt,wordpress函数get_comment_excerpt()用法示例
  16. oracle rap,部署RAP服务器
  17. mongdb系列之最详细基础知识
  18. 鸟枪换炮---IDEA
  19. CentOS8—ssh免密登录
  20. 出现身份验证错误,要求的函数不受支持(这可能是由于CredSSP加密Oracle修正)

热门文章

  1. postman测试工具中的js代码中的sendRequest()使用详解
  2. 笑傲江湖客户端服务器地址修改,《笑傲江湖》改键调整操作手把手教你玩笑傲...
  3. 自定义Mybatis框架
  4. python与sqlite3_sqlite3与python2.5,pysqlite和apsw有什么区别
  5. 武汉城市职业学院计算机分数线,武汉城市职业学院历年分数线 2021武汉城市职业学院录取分数线...
  6. 纵横免root框架打不开应用怎么办_很好用的软件多开神奇安卓欧皇十框架!!!...
  7. php根本自学不了,PHP开发自学还是培训?
  8. python列表各元素修改为int类型
  9. 1039 到底买不买(pat乙级、C++)
  10. 10853k1_领导学基础_21秋考试