PBOC/EMV之靜態數據認證(SDA)與動態數據認證(DDA)
文章出處:http://www.nyfzw.net 作者:小馬 人氣: 發表時間:2011年10月09日
PBOC/EMV里有兩個非常重要的概念,SDA(staticdataauthentication)和DDA(dynamicdataauthentication),分別叫做靜態數據認證和動態數據認證。這兩個認證都是脫機下(off-line)的認證。業內人都知道磁卡和IC卡遷移的一個很重要的原因就是安全問題。
舉兩個磁卡犯罪的例子:
1磁卡本身的構造原理使得它的數據非常容易被非法修改,你肯定不愿意有人非法修改你卡上的數據,當然如果是在你的余額后面加幾個0就另當別論了。
2相信下面要舉的這個例子,很多人都聽過:犯罪分子要用兩個設備,讀卡器和針孔攝像機。他們把讀卡器與銀行原來的讀卡器固定一起,插卡口對齊,當我們取錢時把卡插進去時,我們的卡上的信息就被他們的讀卡器讀出,然后他們用一張空白的卡就可以把我們的卡復制出來。針孔攝影機的作用就是當我們取錢時竊取我們的密碼。卡有了,密碼也有了,剩下的步驟就是取錢了。
SDA可以解決上述第一個問題,它實現的原理是數字簽名。簡單的說,過程如下:IC卡的里的數據先簽個名,怎么簽名呢?當然不是用筆直接上面寫個名字。它的做法是用Hash為這些數據生成一個簡短表示做為該數據的摘要,然后,把這個摘要加密,得到一個簽名;。再把數據和加密后的簽名發給終端。終端在這一頭先把收到的數據Hash,得到一個簽名,然后再把收到的加密簽名解密,又得到一個簽名,比較兩個簽名,就可以知道數據有沒有被修改過,如果數據被修改過,兩個簽名是不同的。驗證不會通過。
DDA除了具有SDA的功能外,它最強大的地方就是解決上述第二種犯罪。它實現的原理如下:與SDA相比,它的簽名是動態的。SDA的簽名在卡發行時就定好的,它加密所用的私鑰是發卡行的私鑰(如果你不理解私鑰和公鑰的概念,建議先看一下密碼學的相關知識)。而DDA每次用來的簽名的數據是當前交易中的一些動態數據,簽名加密所用的私鑰是IC卡私鑰,這個私鑰貯存在IC卡的一個安全區域里(這個很重要)。終端這一頭有與之相對應的用來解密的公鑰。那么怎么實現防復制呢?
舉個例子說,張三的卡被李四復制了一張,李四拿著這張卡去取錢。在交易時,IC卡會生成一個動態的簽名給終端確認,關鍵的地方就在這里,這個動態的簽名需要一個私鑰來加密,而這個IC卡私鑰貯存在IC卡里的安全區域里,李四不可能知道,李四隨便選一個私鑰來加密簽名,所以在終端這一頭的驗證肯定是通不過的,因為公鑰和私鑰已經不對應了。那么交易肯定會被強制中止,張三卡里的錢也就不會被李四取走。
DDA實在是太強大了,可以想像如果以后我們用的銀行卡全部都是有DDA功能的IC卡,將極大減少金融犯罪。Visa和master公司已經宣布2011年之后,歐洲所有銀行發行的具有脫機功能的IC卡都要使用。