1. 程式人生 > >EMV技術學習和研究(十三)CDA認證

EMV技術學習和研究(十三)CDA認證

轉載請註明出處

作者:小旭

之前離線資料認證,包括後面的GAC都忽略了CDA的存在,現在專門討論一下CDA。

先從離線資料認證開始,第一次遇到CDA。

CDA的前面三個步驟(獲取ca公鑰、恢復髮卡行公鑰、恢復IC卡公鑰)和DDA一樣,DDA是通過內部認證指令獲取簽名動態資料,CDA是通過GAC指令來獲取的。

終端行為分析過程中正好有一次GAC,所以採用離線資料認證的時候,前面只完成還原IC卡公鑰就行了,CDA後續的部分放在終端行為分析GAC之後。

但是CDA的GAC和請求應用密文的GAC指令不一樣,控制引數不一樣,所以請求得到的結果也不一樣。

CDA是用GAC指令請求,對於GAC指令請求,返回為格式2,也就是之前提到的77開頭的格式,需要解析TLV,解析到9F4B簽名動態應用資料。

這一步完成後,CDA比DDA多了一個步驟,終端首先將將恢復的密文資料和GAC返回的密文資料比較。

比較完成後終端需要將一些在GAC中返回的資料等一起組織起來,計算hash值,與恢復出的雜湊值是否一致進行比較,如果一致則認為CDA到目前為止還是成功的。

然後還需要將GAC恢復資料得到的IC 卡動態資料在進行處理,IC卡動態資料中也有一個hash值,還需要終端再按要求計算一個hash值,然後再和IC卡動態資料中的HASH值比較。

可以看得出是兩層資料套在了一起,先解析外層,再解析內層,一層一層還原,最終

如果這個時候卡片返回的是TC,那麼離線交易就OK了,如果返回是ARQC的話,就發起聯機。

聯機過程忽略不談,聯機處理過程CDA和DDA一樣,沒什麼區別。

如果聯機失敗,這個時候又要進行卡片行為分析。而且由於第一次GAC指令要求執行CDA,那麼第二次GAC指令也要執行CDA。

對比CDA和DDA,可以看得出CDA複雜了很多,首先CDA將應用密文也加入到簽名資料,其次CDA在響應GAC指令的時候對於密文的數有進行了一次加密封裝,進而更加增強了安全性。

CDA的卡現在太少了,除了專業測試的,其他幾乎沒有銀行發行CDA卡的,所以這塊沒有辦法取到資料,只能通過程式碼和文件進行理解和分析。