cda其實是dda的衍生方法. 所以它和dda有很多相同的地方. 先簡要說明一下cda的幾個要點:
1 它也執行sda,這個和dda是一致的.
2 它也執行dda,更先進的技術總是向下相容的.
3 它也用到簽名的動態應用資料, 不過這個資料不是內部認證請求的,而是在gac時終端請求的. 而且這個資料的組成除了一些和dda相似的組成(dol資料),還包括密文資料(tc或arqc).
4 既然簽名的動態資料多了卡片的密文資料,那最後的驗證階段也比dda多了一些步驟,cda還需要比較應用密文.
下面是詳細的步驟:
第一步,取ic卡公鑰
這個和dda的方法是一樣的,不再說明.
第二步,取簽名的動態資料
通過gac返回,當ic卡返回非aac型別的密文時, 如果終端請求cda,ic卡會返回這個簽名的資料.
這個簽名資料的產生也比dda稍複雜一些,其實是原理是一樣的,只不過需要參與簽名的資料項增加了,也即用於產生雜湊結果的資料項增加了. 如果是在第一次gac產生cda簽名,那麼參與運算的資料項包括pdol中的資料,cdol1的資料以及其它(比如資料頭,長度等), 如果是在第二次gac產生cda簽名,那麼還要加上cdol2中指定的資料項.
第三步,驗證資料
前面說到了,最後一步資料的驗證較dda是多了乙個應用密文的比較, 終端首先將將恢復的密文資料和gac返回的密文資料比較. 如果不等,cda就失敗.
剩下的步驟和dda是一樣的.
既然cda和dda有很多機同的地方,那麼它存在的意義在哪呢? 我說說自己的理解.
cda和dda的區別, 核心就在於cda對卡片行為分析產生的應用密文做了一層加密保護,確保密文是來自於合法的卡片. 這個有點像我們在atm上取錢時,輸入的密碼,經過加密後再傳到銀行的伺服器. 銀行的伺服器解密後再驗證密碼的正確性.這樣更安全了.
另外一點,cda參與雜湊運算的資料項增加了, 就表示這種認證機制更加嚴格了, 比如我就遇到過因為終端國家**的值設定錯誤導致cda失敗的情況.
根據資訊保安行業發展的規律來推測, cda應該會慢慢淘汰sda和dda成為主流甚至是強制要求. 當然以後也可能會產生新的更加安全的資料認證機制.
復合資料型別
復合資料型別 作用 封裝資料 多種不同型別資料存放在一起 應存放在全域性,在訪問結構體中的變數時,應用stu.id stu.name 初始化的方式 在對陣列進行初始化時 strcpy stu.name,zhangsan 在對指標進行初始化時 char name 對name進行初始化 stu.name...
復合資料型別
一 struct結構體 封裝資料 存放多種不同的資料型別 struct的宣告放在全域性區 1.宣告和定義 宣告 struct student struct student stu array 3 int i for i 0 i 3 i for i 0 i 3 i include struct stu...
復合資料型別
結構體 作用 封裝資料 把多種不同的資料型別放在一起 注意 一般放在全域性 分號不能省略。結構體變數用點訪問 結構體指標用 訪問 初始化 靜態初始化 動態初始化 使用注意事項 給結構體中的陣列成員賦值時,不能直接將字串賦給陣列名,可以使用strcpy函式 給結構體中的指標變數成員賦值時,要先給指標分...