静态数据认证(SDA)与动态数据认证(DDA)的区别
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)的区别的更多相关文章
- ios ableviewcell的动态加载数据,模仿喜马拉雅动态数据加载
iphone(UITableViewCell)动态加载图片http://developer.apple.com/library/ios/#samplecode/LazyTableImages/Intr ...
- PBOC2.0安全系列之—脱机认证之静态数据认证(SDA)
一,什么是PBOC2.0 2005年3月13日,人民银行发布第55号文,正式颁发了<中国金融集成电路(IC)卡规范>(简称PBOC2.0).该规范补充完善电子钱包/存折应用:增加借/贷记应 ...
- PBOC2.0安全系列之—脱机认证之动态数据认证(DDA)
动态数据认证: 一,什么是动态数据认证(DDA) 由于上篇<< PBOC2.0安全系列之—脱机认证之静态数据认证(SDA)>>已经对静态数据认证部分做了详细的分析,一些基本知识 ...
- 浅谈如何使用python抓取网页中的动态数据
我们经常会发现网页中的许多数据并不是写死在HTML中的,而是通过js动态载入的.所以也就引出了什么是动态数据的概念, 动态数据在这里指的是网页中由Javascript动态生成的页面内容,是在页面加载到 ...
- python抓取网页中的动态数据
一.概念 网页中的许多数据并不是写死在HTML中的,而是通过js动态载入的.所以也就引出了什么是动态数据的概念,动态数据在这里指的是网页中由Javascript动态生成的页面内容,是在页面加载到浏览器 ...
- Django 上下文管理器,为父模板添加动态数据
1.摘要:模板继承可以减少页面内容的重复定义,实现页面内容的重用. 但是当父模板中有动态数据的话,这些动态数据在子模版中是不会显示的.我们可以通过自定义上下文处理器来解决 2.Django上下文处理器 ...
- Azure Tips 第一期: Azure 中的安全监视工具,数据存储, 动态数据屏蔽以及资源部署
# 1 Azure 中的安全监视工具 微软 Azure 云提供以下监控工具,可用于观察操作和检测异常行为. Azure 安全中心 Azure 安全中心是一个统一的基础结构安全管理系统,可以增强数据中心 ...
- 【EMV L2】CDA复合动态数据认证/应用密文生成
复合动态数据认证/应用密文生成处理流程:对于复合动态数据认证/应用密文生成,终端执行标准动态数据认证的步骤1到3:1.认证中心公钥的获取终端使用认证中心公钥索引(PKI)以及卡片中的注册的应用提供商标 ...
- 【EMV L2】DDA标准动态数据认证处理流程
[标准动态数据认证DDA] 标准动态数据处理过程,除了动态签名由卡片生成以外,其他都是由终端执行的.处理过程: 1.认证中心公钥的获取终端使用认证中心公钥索引(PKI)以及卡片中的注册的应用提供商标识 ...
随机推荐
- ajax 的简单应用
ajax作为前端技术,采用异步方式,根据其采用的方式来讲,不用刷新界面,只是进行数据的传递. 后台还是用servlet的.servlet接收到ajax的get或post请求后.将数据组装成xml或者j ...
- Track files and folders manipulation in Windows
The scenario is about Business Secret and our client do worry about data leakage. They want to know ...
- 一个简单的SpringMVC3 程序
初学者对于Spring框架的难度:引用Jar包不全,或者不正确: 1.运行界面 2.客户端页面 index.jsp 的代码 <%@ page language="java" ...
- 网络流量监控shell脚本
网络收发包计数记录在 /proc/net/dev 文件中, 要取得流量, 只需要读取里面的内容两次, 然后相减, 再除以时间间隔即可. #!/bin/bash #Usage1,record in fi ...
- c++ 创建 socket server
下面一段代码是创建socket server的代码片段: 需要引用的库包括: #include <sys/types.h> #include <sys/socket.h> #i ...
- cpack
一. 简介 CPack是CMake 2.4.2之后的一个内置工具,主要作用就是生成制定类型的安装包.它可以脱离cmake单独运行. 二. 基本设置 (mandatory) 设置包类型set(CPACK ...
- 学习web前端开发感想
1.学习一个技术,不是一看见源代码就是copy,而是仔细阅读后,找到自己想要的,并且自己写出来,自己理解了,下次遇到同样的问题,自己才能解决. 2.在电脑上学习的过程中,我总是先建立一个文本文档,这样 ...
- Learning Scrapy笔记(六)- Scrapy处理JSON API和AJAX页面
摘要:介绍了使用Scrapy处理JSON API和AJAX页面的方法 有时候,你会发现你要爬取的页面并不存在HTML源码,譬如,在浏览器打开http://localhost:9312/static/, ...
- IL中的栈和闪电的Owin推荐
最近几天有幸得到闪电大哥的指点,了解了EMIT和IL中的一些指令.虽然有高射炮打蚊子的说法,但是我相信“二八定律”,80%的功能可以用20%的技术解决,20%的功能只能用80%的技术解决.大哥的博客: ...
- 解决ubuntu15 下没有声音
个人经验,个人适用. 今天想在网上在线听一首歌,结果没有声音.好气啊,于是百度,google,发现好像这个问题很常见.于是按着来,什么alsamixer还有更改什么audio权限的,但在我这都没用. ...