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. Razor视图引擎 语法

  2. Android IOS WebRTC 音视频开发总结(五三)-- 国内IM & RTC SDK列表

    本文主要总结国内提供RTC SDK的产品,转载必须说明出处,文章来自博客园RTC.Blacker,欢迎关注微信公众号blacker,更多详见www.rtc.help 自从开通邮件和微信公众号以来,很多 ...

  3. 二十一、contextMap中放的常用数据

    二十一.contextMap中放的常用数据 request:请求范围的数据.即ServletRequest中的那个Map parameters:请求参数的数据.即request.getParamete ...

  4. 2_JavaScript日期格式化

          第二章 JavaScript 时间格式化 2.1 Ticks 转换为常规日期 2.2 常规日期格式化 <input type="button" value=&qu ...

  5. (一)、NodeJS (转载)

    NodeJS基础                                                 ------ 转载自阿里巴巴 什么是NodeJS JS是脚本语言,脚本语言都需要一个解 ...

  6. Overview Of Portal Registry And Content References

     Portal Registry Each portal is defined by a portal registry.A portal registry has a tree-like struc ...

  7. VB 进制转换大全

    '二进制转十进制 Public Function B2D(vBStr As String) As Long Dim vLen As Integer '串长 Dim vDec As Long '结果 D ...

  8. xmpp push篇一 广播消息

    ---广播给所有人--- 1. 登录xmpp admin 账户 2. sendpacket <message to="pandans.com(域名)" > <bo ...

  9. ASP.NET MVC4学习笔记路由系统实现

    一.路由实现 路由系统实际是一个实现了ASP.NET IHttpModule接口的模块,通过注册HttpApplication的PostResolveRequestCache 事件对Url路由处理.总 ...

  10. linux 使用 pyodbc 访问 ms sqlserver 数据库

    一.安装linux下Sqlserver的驱动程序: 我们先来安装SqlServer的驱动程序,再安装ODBC相关的,目的是想尽快可以进行测试,因为在安装完Freetds之后,我们马上就可以在linux ...