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