IC卡(Integrate Circuit Card)是將集成電路芯片鑲嵌于塑料基片中,封裝成卡的形式,它因體積小、存儲容量大、安全性高、使用方便等優(yōu)點(diǎn)被廣泛應用于各行各業(yè)。IC卡分為存儲卡(Memory Card) 、邏輯加密卡(Logical Encrypt Card)和CPU卡(CPU Card)。中華人民共和國社會(huì )保障卡(簡(jiǎn)稱(chēng)社?ǎ┦褂玫氖荂PU卡。勞動(dòng)和社會(huì )保障部于1999 年制定并發(fā)布了《社會(huì )保障卡建設總體規劃》,按照此規劃,社?▽(shí)行“一卡多用”和“全國通用”。社?ㄗ鳛閯趧(dòng)者在勞動(dòng)保障領(lǐng)域辦理有關(guān)事務(wù)的身份驗證和交易消費的唯一電子憑證,其安全性尤為重要。
1 社?▋炔拷Y構
1.1 物理結構
社?ǖ膬炔堪宀糠郑篊PU 及加密邏輯、RAM、ROM、EEPROM 及I/O,是一個(gè)完整的計算機安全體系[1],如圖1 所示。
其中,CPU 及加密邏輯保證EEPROM 中數據安全, 防止外界用非法手段獲取EEPROM中的數據;RAM 存放命令參數、返回結果、安全狀態(tài)、臨時(shí)密鑰等數據,掉電后自動(dòng)丟失。社?ú僮飨到yCOS 掩膜在ROM 中,保證COS 的代碼安全。用戶(hù)信息以文件形式存放在EEPROM 中,在擁有相應權限的前提下可進(jìn)行讀或寫(xiě)。
1.2 文件組織結構
社?ǖ奈募到y是完全遵照《社會(huì )保障(個(gè)人)卡規范》[2]和ISO/IEC 7816-4 [3] 來(lái)組織的, 它是具有樹(shù)型結構的多級目錄系統, 由主文件MF(Master File)、目錄文件DF(Directory File)、和基本文件EF(Element File)組成,其中包含下級目錄的DF 為DDF,不包含下級目錄的DF 為ADF。文件系統在社?ǖ腅EPROM 中建立。MF 在社?▋任ㄒ淮嬖,在MF 和DF 下可以有多個(gè)EF 和多個(gè)下一級DF。社?ㄖС侄鄬幽夸浗Y構,同層目錄中文件不能有相同的ID。在應用系統中,各個(gè)不同的應用可以創(chuàng )建不同的DF,使一張社?ǹ梢赃m用于多個(gè)應用。社?ň唧w的層次結構如圖2所示。
2 社?ò踩w系的設計要求
社?ǖ陌踩w系有以下幾個(gè)階段:在芯片制造商完成芯片的制造后,社?ㄌ幱谖闯跏蓟癄顟B(tài);卡片制造廠(chǎng)商封裝完成后進(jìn)行初始化和檢測,此時(shí)社?ㄌ幱诔跏蓟A段;初始化和檢測完成后社?ㄌ幱谖磦(gè)人化階段;發(fā)卡方使用專(zhuān)用密鑰進(jìn)行個(gè)人化,此時(shí)處于個(gè)人化階段,這個(gè)過(guò)程中發(fā)卡方設計自己應用的安全體系并封裝到卡片中,當個(gè)人化過(guò)程結束后,社?ㄔ诎l(fā)卡方規劃的安全體系的保護下對《社會(huì )保障(個(gè)人)卡規范》和ISO/IEC7816-4 中的指令進(jìn)行解釋和執行。因此,社?ò踩w系的設計需具備以下要求:
從設計上保證即使攻擊者(含設計者)得到社?ùa,也不會(huì )影響卡片安全性。
卡片中所有密鑰(口令密鑰、密碼算法密鑰)無(wú)論在什么條件下均不可由外界讀出,因而卡片密鑰內容是不可復制的。
卡片中對文件的讀寫(xiě)根據應用需求設計安全級別,必須保證擁有相應的級別才可讀或寫(xiě)。
無(wú)其它隱含命令可直接讀寫(xiě)卡中的數據。
ROM 中的代碼不能從外部讀出,也不能被駐留在EEPROM 中的程序讀取。
EEPROM 中的數據只能通過(guò)社?钤L(fǎng)問(wèn)。
3 社?ò踩w系劃分
社?ǖ陌踩w系可分為社?ㄗ陨戆踩c應用安全。應用安全又分為安全狀態(tài)、安全屬性、安全機制、密碼算法和密鑰管理等幾個(gè)方面。社?ǖ暮诵能浖强▋炔僮飨到yCOS(Chip Operation System)。社?ㄍㄟ^(guò)COS 來(lái)管理卡內軟硬件資源,并通過(guò)安全通道與外界交換信息,保證用戶(hù)數據安全的傳輸,達到社?ò踩珣玫哪康。
3.1 安全狀態(tài)
安全狀態(tài)指的是一種安全級別。在環(huán)境目錄(DDF/MF)和應用目錄(ADF)中各有15 個(gè)等級的安全狀態(tài)。環(huán)境目錄下的安全狀態(tài),稱(chēng)為全局安全狀態(tài)字;應用目錄下的安全狀態(tài),稱(chēng)為局部安全狀態(tài)字。如果卡工作在環(huán)境目錄下(DDF/MF),則局部安全狀態(tài)無(wú)意義。
安全狀態(tài)是通過(guò)對KEY 進(jìn)行外部認證后,將KEY 數據信息中的安全級別字(SSB)映射到安全狀態(tài)字上。若認證密鑰在DDF/MF 下,則映射到全局安全狀態(tài)字上;若認證密鑰在A(yíng)DF 下,則映射到局部安全狀態(tài)字上。SSB 的高4 位表示安全級別的下限(1~15),SSB 的低4 位表示安全級別的上限(1~15)。假設KEY 的SSB 為‘XY’,表示認證KEY 成功后可獲得X 至Y 區域內的安全級別。例如:在DDF/MF 下有Key1,其安全級別設置為‘46’,即SSB=‘46’。Key1 認證通過(guò)后,卡的全局安全狀態(tài)為4,5,6 三級。若在A(yíng)DF 下有Key2,SSB=‘AD’,則Key2 認證通過(guò)后,卡的局部安全狀態(tài)為10、11、12、13 四級。若SSB=‘00’表示Key 認證通過(guò)后對安全狀態(tài)無(wú)影響!甔’>‘Y’的組合為不合理數據。
3.2 安全屬性
安全屬性是指對社?ǖ牟僮鳈嘞,用戶(hù)只有達到安全屬性規定的權限才能通過(guò)COS 命令對卡內文件和KEY 進(jìn)行操作。Right定義了對文件和KEY 操作的權限,用2 個(gè)字節表示,高字節對應全局安全狀態(tài),低字節對應局部安全狀態(tài)。每個(gè)字節的高4 位表示安全狀態(tài)的下限,低4 位表示安全狀態(tài)的上限。假設權限的高字節為‘XY’,若‘X’‘Y’表示文件或KEY 的全局安全級別在‘X’至‘Y’區域內,對文件或KEY 訪(fǎng)問(wèn)前,先要滿(mǎn)足文件或KEY 的訪(fǎng)問(wèn)權限;若‘X’>‘Y’,表示文件或KEY 被禁止訪(fǎng)問(wèn);若為‘0Y’,表示對文件或KEY 的訪(fǎng)問(wèn)無(wú)安全級別限制。
安全屬性往往和COS 文件系統相關(guān)聯(lián), 根據對不同文件類(lèi)型的操作權限,可以設計不同的安全屬性。
增加權限:在當前目錄下創(chuàng )建新文件的權限。
激活權限:激活失效安全機制的權限。
終止權限:永久終止的權限,對于MF 來(lái)說(shuō)表示卡鎖定,對于A(yíng)DF 文件來(lái)說(shuō)表示當前應用永久鎖定,即: 應用失效。
讀權限:對EF 文件內容的讀操作權限。
寫(xiě)權限:對EF 文件內容的寫(xiě)操作權限。
安裝權限:表示安裝密鑰或密碼的權限。
使用權限:表示使用密鑰或密碼的權限。
修改權限:修改密鑰或密碼的權限。
解鎖權限:解鎖密碼PIN 的權限,此權限只有PIN 才有。
3.3 安全機制
安全機制是指安全狀態(tài)的改變所采用的方法和手段以及安全屬性和安全狀態(tài)之間的控制關(guān)系。COS 命令在執行過(guò)程中,首先要檢查COS 環(huán)境所處的安全狀態(tài)是否符合執行命令要求的安全屬性。假設當前COS 所處的是安全狀態(tài)A,執行COS 命令安全屬性要求安全狀態(tài)B , 在執行COS 命令前要通過(guò)安全機制涉及安全提升方法,將安全狀態(tài)提升到安全狀態(tài)B ,這樣COS 命令才能正常執行。安全狀態(tài)、安全機制、安全屬性,三者的關(guān)系見(jiàn)圖3。
社?ǖ陌踩珯C制根據《社會(huì )保障(個(gè)人)卡規范》規定,有三方面的要求, 即: 內部/外部認證、PIN 驗證和安全報文MAC(MessageAuthentication Code)。
3.3.1 內部/外部認證:內部認證和外部認證是一種互認證過(guò)程。內部認證是用讀卡設備來(lái)認證卡, 保證卡的合法性, 內部認證可以防止偽造的卡在讀卡設備上進(jìn)行操作。外部認證是用卡來(lái)認證外部讀卡設備的合法性,外部認證可以防止惡意對卡進(jìn)行操作,讀取和更改卡內信息。外部認證還可以改變社?ǖ陌踩珷顟B(tài),一般卡內存儲了多個(gè)外部認證密鑰,每個(gè)外部認證密鑰所能改變的安全狀態(tài)不一樣,在進(jìn)行外部認證時(shí),必須通過(guò)密鑰索引參數選擇相對應的外部認證密鑰完成外部認證。
3.3.2 PIN 驗證:PIN 實(shí)際上就是密碼,根據《社會(huì )保障(個(gè)人)卡安全要求》[4]規定,社?ㄖ挥幸粋(gè)密碼PIN,持卡用戶(hù)可以修改密碼,通過(guò)密碼驗證,改變卡的安全狀態(tài),達到安全要求。
3.3.3 安全報文MAC:傳送安全報文的目的是保證數據的可靠性、完整性和發(fā)送方的認證。數據完整性和對發(fā)送方的認證是通過(guò)使用MAC 來(lái)實(shí)現,數據可靠性通過(guò)數據域的加密來(lái)得以保障。
3.4 密碼算法
社?ㄓ玫募用芩惴ǘ际菍ΨQ(chēng)分組加密算法,一般通用的對稱(chēng)加密算法主要是DES(Data Encryption Standard)。DES 算法,見(jiàn)圖4,需要滿(mǎn)足4 個(gè)要求:提供高質(zhì)量的數據保護,防止數據未經(jīng)授權的泄露和未被察覺(jué)的修改;具有相當高的復雜性;使得破譯的開(kāi)銷(xiāo)超過(guò)可能獲得的利益;便于理解和掌握;DES 算法的入口參數有三個(gè):Key、Data、Mode。其中Key 為8 個(gè)字節共64 位, 是DES 算法的工作密鑰;Data 也為8 個(gè)字節64位,是要被加密或被解密的數據;Mode 為DES 的工作方式,有兩種:加密或解密。如果Mode 為加密,則用Key 去把數據Data 進(jìn)行加密,生成Data 的密碼形式作為DES 的輸出結果; 如Mode 為解密, 則用Key 去把密碼形式的數據Data 解密, 還原為Data 的明碼形式作為DES 的輸出結果。在使用DES 時(shí), 雙方預先約定使用的“密碼”即Key,然后用Key 去加密數據;接收方得到密文后使用同樣的Key 解密得到原數據,這樣便實(shí)現了安全性較高的數據傳輸。
3.5 密鑰管理
社?ǖ拿荑的裝載、更新和下發(fā)都有一整套安全管理辦法。社?ǖ拿荑分為三個(gè)級別:國家級密鑰、省級密鑰和地市級密鑰,采用多級密鑰管理方式,逐級分散下發(fā)。從而保證用于加(解)密算法的非對稱(chēng)私有密鑰或對稱(chēng)加密密鑰在沒(méi)經(jīng)授權的情況下,不會(huì )被泄漏。如果增設個(gè)人密碼,則應保證其在社?ㄖ械陌踩娣。社?ǖ腃OS 在設計、封裝時(shí)將所有密鑰存放在專(zhuān)用的文件中,即:密鑰存放到密鑰文件中,密碼存放到密碼文件中,并且外部不能訪(fǎng)問(wèn)這兩種文件,每一種密鑰只能執行特定的功能,這樣可以保障密鑰和密碼不外泄漏, 同時(shí)又能正常使用。
4 結束語(yǔ)
為了適應社會(huì )保障信息化發(fā)展要求,滿(mǎn)足社?ㄏ到y建設、應用和管理的需求,實(shí)現“一卡多用”、“全國通用”,社?ò踩w系的研究是解決卡片信息安全問(wèn)題的關(guān)鍵和基礎技術(shù)。隨著(zhù)社?☉妙I(lǐng)域和功能的不斷地擴展,社?ò踩w系的研究和設計也將隨之發(fā)展,從而保證卡內信息的安全。