智能卡芯片操作系統(tǒng)命令的分析與實(shí)現(xiàn)
文章出處:http://srpd123.com 作者: 人氣: 發(fā)表時(shí)間:2012年04月08日
摘要:智能卡作為存儲(chǔ)個(gè)人信息、電子支付、數(shù)據(jù)加密等的手段和工具,被要求具有更高的安全性、良好的兼容性和可擴(kuò)充性,作為智能卡的軟件平臺(tái)的芯片操作系統(tǒng)COS,具有十分重要的地位和作用。如何開發(fā)一個(gè)高效率,低成本、易擴(kuò)充的COS具有十分積極的意義。本文從實(shí)現(xiàn)命令系統(tǒng)的角度,提出了命令設(shè)計(jì)模型與開發(fā)方法,并以PKI為例對(duì)COS命令的實(shí)現(xiàn)進(jìn)行驗(yàn)證。
0前言
本文主要闡述了智能卡COS的體系結(jié)構(gòu)、基本功能模塊和工作原理等內(nèi)容,同時(shí)對(duì)智能卡命令系統(tǒng)的相關(guān)理論作了著重闡述,包括了命令特征分析、命令分類方法,命令系統(tǒng)模型和開發(fā)方法的探討等。接著用特殊應(yīng)用的命令設(shè)計(jì)與實(shí)現(xiàn)來(lái)舉例說(shuō)明,以此驗(yàn)證理論的正確與否。
1 COS體系結(jié)構(gòu)
COS直接運(yùn)行于芯片平臺(tái)上,是智能卡內(nèi)軟件的核心部分,也是卡片所支持全部應(yīng)用的基礎(chǔ)。COS的主要任務(wù)是從智能卡傳出和傳人數(shù)據(jù)、控制命令的執(zhí)行、管理文件、維護(hù)內(nèi)存空間、管理和執(zhí)行加密算法、執(zhí)行應(yīng)用代碼。因此,可以將智能卡COS的體系結(jié)構(gòu)模型劃分為COS內(nèi)核層和應(yīng)用層兩大部分(如圖1所示)。
圖1智能卡COS體系結(jié)構(gòu)模型
2 COS基本功能模塊
根據(jù)智能卡COS的體系結(jié)構(gòu)模型,可以得到COS內(nèi)核的邏輯功能模塊主要分為四大部分:通信管理模塊、文件系統(tǒng)模塊、安全控制模塊和命令解釋模塊。下面分別論述各個(gè)模塊的具體功能。
2.1通信管理模塊
通信管理模塊主要是依據(jù)智能卡所使用的信息傳輸協(xié)議,對(duì)由讀寫設(shè)備發(fā)出的命令進(jìn)行接收,同時(shí)把對(duì)命令的響應(yīng)按照傳輸協(xié)議的格式發(fā)送出去。通信管理模塊確保智能卡與終端的信息傳輸正確無(wú)誤,保證雙方對(duì)傳輸?shù)男畔⒔馕鼍哂幸恢滦?。整個(gè)通信過(guò)程中需要處理ATR的發(fā)送、通信參數(shù)的PPS協(xié)商、APDU報(bào)文格式和具體的通信協(xié)議T=0或T=1協(xié)議等幾個(gè)重要的問(wèn)題。
2.2文件系統(tǒng)模塊
文件系統(tǒng)是COS的重要模塊之一,它負(fù)責(zé)組織、管理和維護(hù)智能卡內(nèi)存儲(chǔ)的所有的數(shù)據(jù)。智能卡上的數(shù)據(jù)或應(yīng)用是以文件的形式存放在FLASH或EEPROM等存儲(chǔ)介質(zhì)中的,COS通過(guò)對(duì)智能卡內(nèi)的文件系統(tǒng)的管理和組織來(lái)實(shí)現(xiàn)對(duì)數(shù)據(jù)信息和應(yīng)用的存儲(chǔ)和管理。
2.3安全控制模塊
安全控制模塊是智能卡COS中最為核心的模塊,它對(duì)智能卡內(nèi)數(shù)據(jù)提供安全保障,同時(shí)也對(duì)外提供安全定義。在智能卡中,COS安全模塊的內(nèi)容主要包括加密算法的實(shí)現(xiàn)、系統(tǒng)的安全服務(wù)和安全控制策略的實(shí)現(xiàn)。它涉及到卡的鑒權(quán)與驗(yàn)證方式的選擇,包括COS在對(duì)卡中文件進(jìn)行訪問(wèn)時(shí)的權(quán)限控制機(jī)制,還關(guān)系到卡中信息的保密機(jī)制。
2.4命令解釋模塊
命令解釋模塊是芯片操作系統(tǒng)的重要組成部分,它負(fù)責(zé)解析卡片與終端之間交互的信息指令,并作相應(yīng)的處理。命令是卡片和外界交互的基礎(chǔ),命令處理是COS的主要職能,它也是系統(tǒng)代碼和應(yīng)用代碼之間的重要接口。終端和卡片之間的通信過(guò)程都是基于命令響應(yīng)的方式處理的,COS利用IO接口接受命令報(bào)文,通過(guò)命令解釋器來(lái)解釋報(bào)文內(nèi)容,并進(jìn)行相應(yīng)的處理,最終通過(guò)IO接口返回響應(yīng)狀態(tài)和響應(yīng)數(shù)據(jù)。
COS命令解釋的調(diào)度流程包括外部命令的接受,命令處理流程的啟動(dòng)以及命令響應(yīng)數(shù)據(jù)和狀態(tài)的送回。其中,APDU命令報(bào)文的接收是按照CLA、INS、P1、P2、P3、DATA數(shù)據(jù)域的順序依次接收,并將接收結(jié)果保存在命令緩沖區(qū)的相應(yīng)字段中。若數(shù)據(jù)接收失敗,則命令報(bào)文的輸人中斷退出。不同的命令具有惟一的指令代碼INS,COS主守護(hù)流程根據(jù)終端發(fā)出的APDU命令的INS,跳轉(zhuǎn)到相應(yīng)的命令處理模塊中進(jìn)行處理。在命令解釋模塊中,不僅要對(duì)相應(yīng)的命令的參敬P1、P2、P3進(jìn)行嚴(yán)格檢查,還應(yīng)對(duì)命令的執(zhí)行的安全條件進(jìn)行檢測(cè)。
3 COS功能模塊之間的狀態(tài)轉(zhuǎn)換及調(diào)度關(guān)系
傳統(tǒng)的COS各模塊之間的調(diào)度關(guān)系一般采用層次調(diào)度關(guān)系,COS中所有從文件系統(tǒng)中到終端的數(shù)據(jù)都需要經(jīng)過(guò)安全模塊的處理,包括數(shù)據(jù)的加解密,對(duì)文件訪問(wèn)是否符合當(dāng)前的安全條件,命令的執(zhí)行操作是否在安全環(huán)境中。
改進(jìn)的COS各模塊之間的調(diào)用關(guān)系采用與層次結(jié)構(gòu)相似的調(diào)度方式,但與傳統(tǒng)的調(diào)用方式相比,具有更高的效率。改進(jìn)的調(diào)用方式主要體現(xiàn)在安全控制模塊的設(shè)置上(如圖2所示)。
改進(jìn)的COS模塊調(diào)用方式中,不是所有信息都需要進(jìn)行安全處理,例如連續(xù)對(duì)同一文件進(jìn)行訪同時(shí)就不需要重復(fù)進(jìn)行安全處理,而是根據(jù)命令的類別來(lái)進(jìn)行適當(dāng)?shù)陌踩幚?。這樣節(jié)省了系統(tǒng)開銷,提高了系統(tǒng)的效率。
圖2改進(jìn)COS模塊關(guān)系
功能層各模塊之間的關(guān)系為程序調(diào)度請(qǐng)求和數(shù)據(jù)響應(yīng)關(guān)系,模塊的輸出為程序調(diào)度請(qǐng)求,輸入為調(diào)度后得到的數(shù)據(jù)響應(yīng),調(diào)度和響應(yīng)均以事務(wù)來(lái)表示,而事務(wù)表示一組數(shù)據(jù)以及在數(shù)據(jù)上的一組操作。圖3表示了改進(jìn)COS模塊調(diào)用方式中模塊的調(diào)度關(guān)系和狀態(tài)轉(zhuǎn)換。表l列出了模塊狀態(tài)轉(zhuǎn)換及調(diào)度關(guān)系。
4 COS命令在PKI中的實(shí)現(xiàn)
由于互聯(lián)網(wǎng)的迅速發(fā)展和普及,人們對(duì)網(wǎng)上身份認(rèn)證的要求也越來(lái)越高,PKl體系成了解決Internet的安全問(wèn)題的最優(yōu)解決方案。IC卡由于體積小、安全性高、攜帶方便等特點(diǎn)而被迅速引入到PKI體系結(jié)構(gòu)中來(lái),成為了目前PKI體系最佳的支持平臺(tái)。智能卡通過(guò)實(shí)現(xiàn)非對(duì)稱加密算法,成為一張PKI卡。由于密鑰在卡內(nèi)生成,加解密工作在卡內(nèi)完成,不會(huì)以明文形式出現(xiàn),同時(shí)與PIN結(jié)合,可防止盜用,加上數(shù)據(jù)可長(zhǎng)期保存以及便于攜帶和操作等特點(diǎn),因而它可以成為數(shù)字簽名的理想載體。
智能卡在PKI中主要工作為:數(shù)字簽名和簽名驗(yàn)證、加解密運(yùn)算操作、證書和密鑰的存儲(chǔ)、證書的解析等。與PKI應(yīng)用相關(guān)的智能卡常用命令是以ISO/IEC7816-8規(guī)范為基礎(chǔ)上建立的,歸納如表2所示。
下面選取ENCRYPT命令作詳細(xì)說(shuō)明。ENCRYPT命令功能主要用于對(duì)數(shù)據(jù)進(jìn)行非對(duì)稱算擲-,SA算法)的加密計(jì)算,輸入的是加密前的明文、密鑰,輸出的是加密后的密戈,在執(zhí)行本命令之前先執(zhí)行MANAGE SECURITY ENVIRONMENT命令。加密算法在此處選用RSA算法,編碼格式為RSAESPKCSI—V1_5。該命令報(bào)文結(jié)構(gòu)如表3所示。
為了加強(qiáng)密鑰計(jì)算的安全性和數(shù)據(jù)保密性,一般運(yùn)算需要對(duì)原始報(bào)文按照一定格式進(jìn)行編碼,實(shí)際運(yùn)算是對(duì)編碼以后敬據(jù)的運(yùn)算。此處采用的編碼格式為RSAES·PKCSI-V1_5編碼格式,詳細(xì)編碼格式和加密流程參照PKCS#1和PKCS#11規(guī)范。
【稿件聲明】:如需轉(zhuǎn)載,必須注明來(lái)源和作者,保留文中圖片和內(nèi)容的完整性,違者將依法追究。