CPU卡及CPU卡認(rèn)證方法
文章出處:http://www.mjagi.com 作者: 人氣: 發(fā)表時間:2012年02月23日
一、為什么用CPU卡
IC卡從接口方式上分,可以分為接觸式IC卡、非接觸式IC卡及復(fù)合卡。從器件技術(shù)上分,可分為非加密存儲卡、加密存儲卡及CPU卡。非加密卡沒有安全性,可以任意改寫卡內(nèi)的數(shù)據(jù),加密存儲卡在普通存儲卡的基礎(chǔ)上加了邏輯加密電路,成了加密存儲卡。邏輯加密存儲卡由于采用密碼控制邏輯來控制對EEPROM的訪問和改寫,在使用之前需要校驗密碼才可以進(jìn)行寫操作,所以對于芯片本身來說是安全的,但在應(yīng)用上是不安全的。它有如下不安全性因素:
1、密碼在線路上是明文傳輸?shù)模妆唤厝?
2、對于系統(tǒng)商來說,密碼及加密算法都是透明的。
3、邏輯加密卡是無法認(rèn)證應(yīng)用是否合法的。例如,假設(shè)有人偽造了ATM,你無法知道它的合法性,當(dāng)您插入信用卡,輸入PIN的時候,信用卡的密碼就被截獲了。再如INTENET網(wǎng)上購物,如果用邏輯加密卡,購物者同樣無法確定網(wǎng)上商店的合法性。
正是由于邏輯加密卡使用上的不安全因素,促進(jìn)了CPU卡的發(fā)展。CPU卡可以做到對人、對卡、對系統(tǒng)的三方的合法性認(rèn)證。
二、 CPU卡的三種認(rèn)證
CPU卡具有三種認(rèn)證方法:
持卡者合法性認(rèn)證——PIN校驗
卡合法性認(rèn)證——內(nèi)部認(rèn)證
系統(tǒng)合法性認(rèn)證——外部認(rèn)證
持卡者合法性認(rèn)證:
通過持卡人輸入個人口令來進(jìn)行驗證的過程。
系統(tǒng)合法性認(rèn)證(外部認(rèn)證)過程:
系統(tǒng) 卡,
送隨機數(shù)X
用指定算法、密鑰]對隨機數(shù)加密
用指定算法、密鑰]解密Y,得結(jié)果Z
比較X,Z,如果相同則表示系統(tǒng)是合法的;
卡的合法性認(rèn)證(內(nèi)部認(rèn)證)過程:
系統(tǒng) 卡
送隨機數(shù)X
用指定算法、密鑰]對隨機數(shù)加密
用指定算法、密鑰]解密Y,得結(jié)果Z
比較X,Z,如果相同則表示卡是合法的;
在以上認(rèn)證過程中,密鑰是不在線路上以明文出現(xiàn)的,它每次的送出都是經(jīng)過隨機數(shù)加密的,而且因為有隨機數(shù)的參加,確保每次傳輸?shù)膬?nèi)容不同。如果截獲了沒有任何意義。這不單單是密碼對密碼的認(rèn)證,是方法認(rèn)證方法,就象早期在軍隊中使用的密碼電報,發(fā)送方將報文按一定的方法加密成密文發(fā)送出去,然后接收方收到后又按一定的方法將密文解密。
通過這種認(rèn)證方式,線路上就沒有了攻擊點,同時卡也可以驗證應(yīng)用的合法性;
但是因為系統(tǒng)方用于認(rèn)證的密鑰及算法是在應(yīng)用程序中,還是不能去除系統(tǒng)商的攻擊性。
在此,我們引進(jìn)了SAM卡的概念。
SAM卡是一種具有特殊性能的CPU卡,用于存放密鑰和加密算法,可完成交易中的相互認(rèn)證、密碼驗證和加密、解密運算,一般用作身份標(biāo)志。
由于SAM卡的出現(xiàn),我們有了一種更完整的系統(tǒng)解決方案。在發(fā)卡時,我們將主密鑰存入SAM卡中,然后由SAM卡中的主密鑰,對用戶卡的特征字節(jié)(如:應(yīng)用序列號)加密生成子密鑰,將子密鑰注入用戶卡中。由于應(yīng)用序列號的唯一性,使每張用戶卡內(nèi)的子密鑰都不同。
密鑰一旦注入卡中,則不會在卡外出現(xiàn)。在使用時,由SAM卡的主密鑰生成子密鑰存放在RAM區(qū)中,用于加密、解密數(shù)據(jù)。
上述的認(rèn)證過程就成為如下形式:
系統(tǒng)合法性認(rèn)證(外部認(rèn)證)過程:
SAM卡 系統(tǒng) 卡
送隨機數(shù)X
SAM卡生成子密鑰對隨機數(shù)加密
解密Y,得結(jié)果Z
比較X,Z,如果相同則表示系統(tǒng)是合法的;
卡的合法性認(rèn)證(內(nèi)部認(rèn)證)過程:
SAM卡 系統(tǒng) 卡
送隨機數(shù)X
用指定算法、密鑰]對隨機數(shù)加密
SAM卡解密Y,得結(jié)果Z
比較X,Z,如果相同則表示卡是合法的;
這樣在應(yīng)用程序中的密鑰,就轉(zhuǎn)移到了SAM卡中,認(rèn)證成為卡——卡的認(rèn)證,系統(tǒng)商不再存在責(zé)任。