安全问题:PBOC2.0第五部分着重有讲到
SDA
静态数据认证(Static Data Authentication)
DDA
动态数据认证(Dynamic Data Authentication)
这两个认证都是脱机数据认证,是终端采用公钥技术来验证卡片数据的方法。这个过程是终端验证卡片的过程。说这两个认证的功能之前,先举两个例子,这两个例子是从网上K来的,不过我之前也见过..
1、磁条卡的结构比较简单,只有123磁道,信息格式也比较少,容易被修改,犯罪分子有可能用写卡设备修改里边的银行信息。
2、之前网上盛传的一种ATM犯罪,电视也有曝光,就是犯罪分子拿着自制的读卡器和摄像头去ATM,讲ATM插卡的卡套去掉换成自己的读卡器,将ATM上方的灯管处加上自己的摄像头,等用户来取钱,就会读取卡里边的数据,偷看到用户的密码,然后他们回去将卡数据写到一个空白的卡上边,有了卡和密码,想取多少钱都行了。
SDA就是为了防止第一种犯罪,防修改(这一点磁条卡体现的不明显,因为磁条卡只是记录一些个人信息;而芯片卡的数据繁多,特别是用于脱机消费的电子现金账户信息以及一些用于交易限制的标志位)。卡里有一些发卡行在发这张卡的时候,写进去的数据,叫做静态数据。SDA能确认卡片上的发卡行应用数据自卡片个人化后没有被非法篡改。
DDA是为了防止第二种,防复制。IC卡是CPU卡,智能卡,里边有文件结构,不像磁条卡结构那么简单,有一个IC卡私钥存储于IC卡文件安全区域,相当于XP系统的系统文件,有权限都复制不了。就算把整个卡都复制了,IC卡私钥也没有复制了去。DDA能确认卡片的真实性,防止卡片的非法复制。
技术角度来说,SDA是利用了发卡行的公钥,CFCA公钥,上边说的IC卡发卡行发卡的时候写了一些静态数据,那些数据为了证明是有效地,是发卡行的。发卡行要用自己的发卡行私钥加密,加密的是这些数据的hash,而不是全部数据,这个加密后的值叫做数字签名。这样,卡片插到终端以后,卡片发送这些数据(静态数据和数字签名)给终端,终端会通过数据中的CA公钥余项找到相应的CA公钥证书,然后用CA公钥认证发卡行公钥证书,再用发卡行公钥来解密数字签名(即认证),最后拿这个结果和发送过来的数据对比是否相同。
DDA包含SDA的技术,DDA重点在于IC卡公私钥对,IC卡私钥是放在安全区域中的(记住所有产生的私钥都是留给自己加密用的,不会给别人的)。过程是SDA的扩展,在终端验证静态数据以后,终端会发送命令给卡片(内部认证命令),命令中包含由DDOL指定的数据元,IC卡会根据这个列表指出的数据用IC卡私钥进行加密,生成数字签名,这个结果叫做签名的动态应用数据。然后就像SDA的终端验证一样,终端会用CA公钥证书->发卡行公钥证书->IC公钥证书,最后用IC公钥来解密IC卡私钥加密的数据。过程很简单。
这里有提到内部认证,内部认证就是终端认证卡片,还有个外部认证,是卡片认证终端(终端也有可能是假的呀。。。)。