CSP在基于智能卡的移動(dòng)終端中的開發(fā)與應(yīng)用
將CSP的實(shí)現(xiàn)分為3個(gè)模塊:CSP主程序模塊、CSP圖形界面模塊、CSP智能卡訪問模塊
(1)CSP主程序模塊
主程序模塊是CSP的核心模塊,實(shí)現(xiàn)CSP中的業(yè)務(wù)邏輯并以Crypto SPI標(biāo)準(zhǔn)接口形式提供。主程序模塊通過調(diào)用圖形界面模塊的相應(yīng)圖形界面實(shí)現(xiàn)與用戶的交互(在CRYPT—SLIENT標(biāo)志未設(shè)置時(shí))。主程序模塊對(duì)智能卡的訪問及數(shù)據(jù)傳送都是通過智能卡訪問模塊來實(shí)現(xiàn)的。
(2)CSP圖形界面模塊
圖形界面模塊負(fù)責(zé)CSP與用戶的交互實(shí)現(xiàn)。主要有卡片初始化時(shí)的PIN碼設(shè)置界面和程序運(yùn)行中提示用戶輸入PIN碼以驗(yàn)證其合法性的界面。
(3)CSP智能卡訪問模塊
智能卡訪問模塊是CSP使用智能卡上服務(wù)的實(shí)現(xiàn)模塊。它負(fù)責(zé)與智能卡建立連接,數(shù)據(jù)傳輸,釋放連接等。它接收主程序模塊的智能卡訪問請(qǐng)求,并根據(jù)請(qǐng)求組織相應(yīng)的APDU發(fā)送到智能卡,以及從卡上獲取返回的結(jié)果,最終將結(jié)果數(shù)據(jù)提交給主程序模塊。
將CSP劃分成3個(gè)模塊,可以降低程序各個(gè)模塊之間的耦合度,實(shí)現(xiàn)起來比較靈活。如果需要更改程序界面就不需要去改變CSP主程序模塊。同樣,當(dāng)使用另外一種智能卡時(shí),只需要替換相應(yīng)的智能卡實(shí)現(xiàn)模塊,而不需要去改變主程序模塊和程序界面,這樣就可以很方便地將第三方的智能卡實(shí)現(xiàn)模塊加載進(jìn)來,實(shí)現(xiàn)對(duì)多智能卡的支持。
CSP主程序模塊以DLL形式提供,是實(shí)現(xiàn)CSP的關(guān)鍵,其中的各個(gè)類都有具體的功能職責(zé),并且通過組合和關(guān)聯(lián)關(guān)系形成一定的層次關(guān)系。此外在CSP中,還有其他的輔助函數(shù)定義,如塊加密時(shí)的編碼與解碼函數(shù)等。其類設(shè)計(jì)如下:
(1)CContext
CContext類對(duì)應(yīng)了一個(gè)用戶上下文對(duì)象,在邏輯上相當(dāng)于密鑰庫(kù)。它通過組合關(guān)系包括了CSP中的其他類對(duì)象,并通過這些類對(duì)象來進(jìn)行相應(yīng)的操作。C C ontext作為用戶上下文對(duì)象,是提供Crypto SPI中23個(gè)接口函數(shù)實(shí)現(xiàn)的對(duì)象。
(2)C Container
CContainer類對(duì)應(yīng)了一個(gè)密鑰容器,一個(gè)用戶上下文往往包含多個(gè)密鑰容器。C Container對(duì)象中會(huì)緩存其包括的證書信息,這里緩存交換密鑰對(duì)證書和簽名密鑰對(duì)證書兩個(gè)證書。
(3)CCard
CCard類代表了擴(kuò)展卡類型。在這個(gè)類中封裝了所有對(duì)卡的安全操作,包括驗(yàn)證、加解密、存儲(chǔ)管理等。一個(gè)CCard對(duì)象會(huì)緩存對(duì)應(yīng)擴(kuò)展卡上的所有密鑰容器對(duì)象,這樣要訪問密鑰容器的相關(guān)信息就會(huì)變得方便、快捷。
(4)CRSAProvider
CRSAProvider類是用于調(diào)用系統(tǒng)提供的CSP的。它負(fù)責(zé)獲取系統(tǒng)提供CSP的句柄,利用此句柄調(diào)用相關(guān)的功能實(shí)現(xiàn)以及釋放得到的句柄。
(5)CPPManager
CPPManager類也是一個(gè)輔助控制類,它的定義只是為了使得程序更加清晰。它的功能是根據(jù)CPGetProvParam中參數(shù)的不同值取得CSP的相關(guān)信息。
(6)CHandleTable
CHandleTable類是一個(gè)輔助存儲(chǔ)類,它用于存儲(chǔ)CSP中密鑰容器等對(duì)象的句柄。它采用Hash表結(jié)構(gòu)來存儲(chǔ)對(duì)象句柄,并且提供了相應(yīng)的增加、刪除、讀取等功能。CSP編寫測(cè)試完成后,必須要讓微軟對(duì)其CSPDLL進(jìn)行簽名,這樣該C SP才能裝進(jìn)操作系統(tǒng)內(nèi)。這步比較簡(jiǎn)單, 只需要將其DLL與一個(gè)資源描述文件作為附件發(fā)往cspsign@microsoft.com就可以了,簽名周期一般為3天。完成簽名后,CSP就可以安裝到系統(tǒng)中工作了。在Windows Mobile 5.0系統(tǒng)中,需在注冊(cè)表中注冊(cè)該CSP,CSP安裝完成,以后可以通過Crypto API接口調(diào)用CSP提供的安全服務(wù)了。
4 結(jié)束語(yǔ)
本文不僅對(duì)微軟加密體系進(jìn)行了詳細(xì)的分析,而且結(jié)合移動(dòng)安全終端系統(tǒng),對(duì)智能卡上的CSP的開發(fā)進(jìn)行了充分的介紹和分析。CSP通過標(biāo)準(zhǔn)的Crypto SPI接口嵌入到微軟加密體系中,使用戶可以通過Crypto API接口來使用智能卡上所提供的高安全性的加密服務(wù),來滿足日益增加的網(wǎng)絡(luò)安全需求。
評(píng)論