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