IC卡按照介面方式可分為接觸式卡、非接觸式卡、複合卡;按器件技術可分為非加密儲存卡、加密儲存卡和CPU卡。
加密儲存卡是對持卡人的認證,只有輸入正確的密碼才能訪問或者修改卡中的資料,最典型的是手機SIM卡的數字 PIN 碼;當設定數字 PIN 碼後,開機必須輸入數字 PIN 碼,如果連續幾次輸入錯誤,就必須更高許可權的PUK碼來修改數字 PIN 碼,如果PUK碼也連續輸錯,那就只有換卡了。
加密儲存卡保證了對持卡人的認證,但是,在保證系統安全性上還不夠。
1. 密碼輸入是採用透明傳輸,在偽造的ATM機或者網路上,這個密碼很容易被截取;
2. 邏輯加密卡無法認證應用是否合法;
3. 對於系統整合商來說,密碼和密碼編譯演算法是透明的;
由此,引入了CPU卡;
CPU卡在三個方面保證了安全:
1. 對人:持卡者合法性認證:持卡者需要輸入口令。
2. 對卡:卡的合法性認證;內部認證。
3. 對系統:系統的合法性認證;外部認證。
卡的合法性認證:
CPU卡發送隨機數給卡(如地鐵卡),卡收到隨機數後用密碼編譯演算法加密,將加密後的值傳給CPU卡,CPU卡解密並與發送的隨機數比較,如果相等,則認為卡合法。
系統的合法性認證(例如手持POS是否是合法的經過認證的廠商生產的):
CPU卡發送隨機數給POS內建的卡或者模組,POS內建的卡或者模組將隨機數加密後,傳回CPU卡,CPU卡解密並與發送的隨機數比較,如果相等,則認為系統合法。這個過程在開機時做。
在加密和解密過程中,涉及到兩個因素,一個是加解密演算法、一個是密鑰。加解密演算法是公開的,在CPU卡中,有作業系統叫COS:Chip OS;由卡的生產商提供,並提供加解密演算法。卡的生產商必須經過專門的機構認證。密鑰則有發卡機構掌握,層層發卡,許可權不同。
SAM卡:全稱是Security Access module;是一種特殊的CPU卡;儲存了密鑰和加解密演算法。
目前SAM卡分了很多種:
PSAM卡:終端安全控制模組,一般用於小額支付扣款中;
ESAM:廠商(系統)的SAM卡,用於裝置的認證;
ISAM:用於儲值;
在具體的實現中,會比較多樣化。例如,有的裝置認證並不是用ESAM卡,而是採用專用的模組。這樣,就存在一個問題,即密鑰用軟體實現,可能會存在密鑰泄露的問題;一種解決的方法是儲存多組密鑰,在隨機數中指定採用一組密鑰。
普通卡的發行一般採用金鑰組唯一的物理卡號加密的方式。