PBOC/EMV里有两个非常重要的概念,SDA(staticdataauthentication)和DDA(dynamicdataauthentication),分别叫做静态数据认证和动态数据认证。这两个认证都是脱机下(off-line)的认证。业内人都知道磁卡和IC卡迁移的一个很重要的原因就是安全问题。

结论:

SDA和DDA都是在脱机交易下的认证

    举两个磁卡犯罪的例子:

1磁卡本身的构造原理使得它的数据非常容易被非法修改,你肯定不愿意有人非法修改你卡上的数据,当然如果是在你的余额后面加几个0就另当别论了。

2相信下面要举的这个例子,很多人都听过:犯罪分子要用两个设备,读卡器和针孔-摄-像机。他们把读卡器与银行原来的读卡器固定一起,插卡口对齐,当我们取钱时把卡插进去时,我们的卡上的信息就被他们的读卡器读出,然后他们用一张空白的卡就可以把我们的卡复制出来。针孔摄-影-机的作用就是当我们取钱时窃取我们的密码。卡有了,密码也有了,剩下的步骤就是取钱了。

SDA可以解决上述第一个问题,它实现的原理是数字签名。简单的说,过程如下:IC卡的里的数据先签个名,怎么签名呢?当然不是用笔直接上面写个名字。它的做法是用Hash为这些数据生成一个简短表示做为该数据的摘要,然后,把这个摘要加密,得到一个签名;。再把数据和加密后的签名发给终端。终端在这一头先把收到的数据Hash,得到一个签名,然后再把收到的加密签名解密,又得到一个签名,比较两个签名,就可以知道数据有没有被修改过,如果数据被修改过,两个签名是不同的。验证不会通过。

DDA除了具有SDA的功能外,它最强大的地方就是解决上述第二种犯罪。它实现的原理如下:与SDA相比,它的签名是动态的。SDA的签名在卡发行时就定好的,它加密所用的私钥是发卡行的私钥(如果你不理解私钥和公钥的概念,建议先看一下密码学的相关知识)。而DDA每次用来的签名的数据是当前交易中的一些动态数据,签名加密所用的私钥是IC卡私钥,这个私钥贮存在IC卡的一个安全区域里(这个很重要)。终端这一头有与之相对应的用来解密的公钥。那么怎么实现防复制呢?

结论:

SDA所用的签名是卡发行时就定义好了的(签名中不含交易中的动态数据),所用的加密私钥是发卡行私钥。

DDA的签名都是根据当次交易中的动态数据而生成的(这就是动态的体现),并且所加密的用的私钥是IC卡的私钥,是存放在IC卡内的安全区域里。

举个例子说,张三的卡被李四复制了一张,李四拿着这张卡去取钱。在交易时,IC卡会生成一个动态的签名给终端确认,关键的地方就在这里,这个动态的签名需要一个私钥来加密,而这个IC卡私钥贮存在IC卡里的安全区域里,李四不可能知道,李四随便选一个私钥来加密签名,所以在终端这一头的验证肯定是通不过的,因为公钥和私钥已经不对应了。那么交易肯定会被强制中止,张三卡里的钱也就不会被李四取走。

DDA实在是太强大了,可以想像如果以后我们用的银行卡全部都是有DDA功能的IC卡,将极大减少金融犯罪。Visa和master公司已经宣布2011年之后,欧洲所有银行发行的具有脱机功能的IC卡都要使用。

静态数据认证(SDA)与动态数据认证(DDA)的区别的更多相关文章

  1. ios ableviewcell的动态加载数据,模仿喜马拉雅动态数据加载

    iphone(UITableViewCell)动态加载图片http://developer.apple.com/library/ios/#samplecode/LazyTableImages/Intr ...

  2. PBOC2.0安全系列之—脱机认证之静态数据认证(SDA)

    一,什么是PBOC2.0 2005年3月13日,人民银行发布第55号文,正式颁发了<中国金融集成电路(IC)卡规范>(简称PBOC2.0).该规范补充完善电子钱包/存折应用:增加借/贷记应 ...

  3. PBOC2.0安全系列之—脱机认证之动态数据认证(DDA)

    动态数据认证: 一,什么是动态数据认证(DDA) 由于上篇<< PBOC2.0安全系列之—脱机认证之静态数据认证(SDA)>>已经对静态数据认证部分做了详细的分析,一些基本知识 ...

  4. 浅谈如何使用python抓取网页中的动态数据

    我们经常会发现网页中的许多数据并不是写死在HTML中的,而是通过js动态载入的.所以也就引出了什么是动态数据的概念, 动态数据在这里指的是网页中由Javascript动态生成的页面内容,是在页面加载到 ...

  5. python抓取网页中的动态数据

    一.概念 网页中的许多数据并不是写死在HTML中的,而是通过js动态载入的.所以也就引出了什么是动态数据的概念,动态数据在这里指的是网页中由Javascript动态生成的页面内容,是在页面加载到浏览器 ...

  6. Django 上下文管理器,为父模板添加动态数据

    1.摘要:模板继承可以减少页面内容的重复定义,实现页面内容的重用. 但是当父模板中有动态数据的话,这些动态数据在子模版中是不会显示的.我们可以通过自定义上下文处理器来解决 2.Django上下文处理器 ...

  7. Azure Tips 第一期: Azure 中的安全监视工具,数据存储, 动态数据屏蔽以及资源部署

    # 1 Azure 中的安全监视工具 微软 Azure 云提供以下监控工具,可用于观察操作和检测异常行为. Azure 安全中心 Azure 安全中心是一个统一的基础结构安全管理系统,可以增强数据中心 ...

  8. 【EMV L2】CDA复合动态数据认证/应用密文生成

    复合动态数据认证/应用密文生成处理流程:对于复合动态数据认证/应用密文生成,终端执行标准动态数据认证的步骤1到3:1.认证中心公钥的获取终端使用认证中心公钥索引(PKI)以及卡片中的注册的应用提供商标 ...

  9. 【EMV L2】DDA标准动态数据认证处理流程

    [标准动态数据认证DDA] 标准动态数据处理过程,除了动态签名由卡片生成以外,其他都是由终端执行的.处理过程: 1.认证中心公钥的获取终端使用认证中心公钥索引(PKI)以及卡片中的注册的应用提供商标识 ...

随机推荐

  1. [转]常用电器认证标志 && 手机频段

    一个手电筒就可以算得上一件家用电器的时代已经过去了,现在,谁家里不得有个几件?大家肯定看到了这些电器上贴的各种各样的认证标志了吧?看的人是眼花缭乱,目不暇接,更有一些是“洋认证”.下面罗列出一些常见的 ...

  2. shell script 基本语法

    几个符号的意义$#:代表后接的参数『个数』,以上表为例这裡显示为『 4 』:$@:代表『 "$1" "$2" "$3" "$4&q ...

  3. placeholder插件及placeholder默认颜色修改

    $.fn.placeHolder = function(){ $(this).each(function(i, el) { var self = $(el); if ($.browser.msie & ...

  4. IOS基础——IOS学习路线图(一)

    一.一个月 1.OC语法基础. 2.KVC和KVO 3.IOS UI基础 4.UI表视图与集合视图 5.UIStoryboard和autoLayout 6.Ipad API 二.10天 7.静态页面考 ...

  5. 微信开发笔记(一)通过.net如何实现接入微信

    微信公众平台,给个人.企业和组织提供业务服务与用户管理能力的全新服务平台.现在基本上每个地方都可以看到微信存在,动不动就是让你扫一下加下微信. 经常遇到这样情况,“到一家餐馆吃饭,拿了个号,前台服务引 ...

  6. c#操作Zip压缩文件

    SharpZipLib 文件/文件夹压缩 一.ZipFile ZipFile类用于选择文件或文件夹进行压缩生成压缩包. 常用属性: 属性 说明 Count 文件数目(注意是在ComitUpdat之后才 ...

  7. js各种宽高(2)

    在javascript和jquery中,都有对各种高度的写法,在这里,我们就着重讲一下窗口.文档等高度的理解.(宽度和高度差不多!) jquery的各种高度 首先来说一说$(document)和$(w ...

  8. RecyclerView的基本创建

    线性显示 类似于listview: 线性宫格显示 类似于grid view: 用线性宫格显示 类似于瀑布流: 结构图: 测试代码: activity_main.xml: <RelativeLay ...

  9. Pycharm 使用 (一)

    学习[Python基础教程]到后面的练习阶段就觉得python自带的IDLE有点out的感觉,于是就在网上搜索好用的IDE, 挺多人推荐Pycharm的 不仅跨平台而且还支持django等框架; 初次 ...

  10. STM32F4_USART配置及细节描述

    Ⅰ.概述 关于USART串口通信,可以说是MCU的标配.不管是在实际项目应用中,还是在开发过程中,它都起着很重要的作用. 在项目应用中我们常常使用UART串口进行通信,根据通信的距离及稳定性,还选择添 ...