/ 中存储网

静态数据认证(SDA)与动态数据认证(DDA)的区别及安全性分析

2022-08-30 21:53:07 来源:中存储

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

静态数据认证(SDA)与动态数据认证(DDA)的区别及安全性分析

最初有磁条卡。但随着 EMV 在欧洲的推广,许多银行,尤其是英国的银行,决定发行静态数据认证 (SDA) 智能卡。SDA 卡比磁条卡更难被欺诈者攻击和伪造。然而,SDA 卡存在已知的安全漏洞,这意味着欺诈者可能仍然能够在销售点收集必要的芯片数据,以进行伪造的离线交易。

为了解决这个问题,Visa 和 MasterCard 都向欧洲银行发布了一项要求,要求 2011 年之后发行的所有支持离线的卡都应使用比 SDA 更安全的动态数据认证 (DDA)。该授权也符合 SEPA 的要求。 

DDA 卡比 SDA 卡更安全,因为 DDA 卡存储了一个加密密钥,该密钥为每笔交易生成唯一数据,该数据仅对一次身份验证有效。相比之下,用于 SDA 卡的签名每次都是相同的。因此,除非发行人通过处理网络从 SDA 卡发送交易以进行在线身份验证,否则终端可能无法检测到欺诈卡。

那么,什么会延迟向 DDA 智能卡的发展呢?一个因素是发行 DDA 卡不像发行 SDA 卡那样简单。存在与 DDA 相关的重大加密能力挑战。例如,为 DDA 卡生成加密密钥可能需要长达八倍的时间。是的,最多八次。然而,随着 SEPA 的最后期限临近,更不用说 Visa 和 MasterCard 的规定,DDA 必须成为发行人的优先事项。如果要在 2010 年之前顺利实施 DDA 卡,发卡机构必须紧急解决所有潜在的容量瓶颈,包括密钥生成。

结论:

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卡都要使用。