《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 通信與網(wǎng)絡(luò) > 設(shè)計應(yīng)用 > CSP在基于智能卡的移動終端中的開發(fā)與應(yīng)用
CSP在基于智能卡的移動終端中的開發(fā)與應(yīng)用
聶曼 譚成翔 汪海航
來源: 中國一卡通網(wǎng)
摘要: 由于移動公網(wǎng)的廣泛發(fā)展和手機PDA的大力普及,,移動終端作為固網(wǎng)上業(yè)務(wù)服務(wù)器的訪問接入終端也變得越來越常見,。然而,移動終端通過基于GPRS/CDMA的移動公網(wǎng)接入業(yè)務(wù)服務(wù)器的過程存在著較大的安全風(fēng)險,。在沒有執(zhí)行任何安全保護(hù)措施的情況下,移動終端就與業(yè)務(wù)服務(wù)器進(jìn)行數(shù)據(jù)傳輸,很容易導(dǎo)致雙方傳輸?shù)臄?shù)據(jù)被別有用心的人截取或者篡改,,如果這些數(shù)據(jù)涉及到商業(yè)敏感信息,這將對雙方的利益帶來巨大的損失,。并且,,移動終端雖然體積小巧,方便攜帶,,也容易丟失和被盜,,再加上設(shè)備的非授權(quán)使用,授權(quán)用戶的不合理或者惡意的行為,,這些全都會帶來安全威脅,。因而,尋找給移動終端和業(yè)務(wù)服務(wù)器的訪問過程增加安全性的解決方案是人們追求的目標(biāo),。IPSec VPN技術(shù)是目前普遍使用的方法,,先在公共網(wǎng)絡(luò)上建立一個私有隧道,然后才在這個隧道上進(jìn)行雙方的數(shù)據(jù)傳輸,。這樣,,安全性確實會得到一定的提高,但是如果沒有智能卡的幫助,,安全性還是會大打折扣,。因此,針對這種情況,,設(shè)計了一個基于智能卡的移動IPSec VPN安全接入終端系統(tǒng),本文重點介紹該系統(tǒng)中CSP的開發(fā),。
Abstract:
Key words :

       1 引言
        由于移動公網(wǎng)的廣泛發(fā)展和手機PDA的大力普及,移動終端作為固網(wǎng)上業(yè)務(wù)服務(wù)器的訪問接入終端也變得越來越常見,。然而,,移動終端通過基于GPRS/CDMA的移動公網(wǎng)接入業(yè)務(wù)服務(wù)器的過程存在著較大的安全風(fēng)險。在沒有執(zhí)行任何安全保護(hù)措施的情況下,,移動終端就與業(yè)務(wù)服務(wù)器進(jìn)行數(shù)據(jù)傳輸,,很容易導(dǎo)致雙方傳輸?shù)臄?shù)據(jù)被別有用心的人截取或者篡改,如果這些數(shù)據(jù)涉及到商業(yè)敏感信息,,這將對雙方的利益帶來巨大的損失,。并且,,移動終端雖然體積小巧,,方便攜帶,也容易丟失和被盜,,再加上設(shè)備的非授權(quán)使用,,授權(quán)用戶的不合理或者惡意的行為,,這些全都會帶來安全威脅,。因而,尋找給移動終端和業(yè)務(wù)服務(wù)器的訪問過程增加安全性的解決方案是人們追求的目標(biāo),。IPSec VPN技術(shù)是目前普遍使用的方法,,先在公共網(wǎng)絡(luò)上建立一個私有隧道,,然后才在這個隧道上進(jìn)行雙方的數(shù)據(jù)傳輸,。這樣,安全性確實會得到一定的提高,,但是如果沒有智能卡的幫助,安全性還是會大打折扣,。因此,,針對這種情況,設(shè)計了一個基于智能卡的移動IPSec VPN安全接入終端系統(tǒng),,本文重點介紹該系統(tǒng)中CSP的開發(fā),。
        2 相關(guān)背景
        2.1智能卡與PC/SC規(guī)范
                      
        智能卡是一張內(nèi)含嵌入式集成電路芯片的信用卡般大小的塑料卡,具有儲存信息量大,,數(shù)據(jù)保密性好,,抗干擾能力強,儲存可靠,,讀寫設(shè)備簡單,,使用靈活,操作速度快,,脫機工作能力強,,易于攜帶等特點,。本系統(tǒng)所使用的智能卡是一張?zhí)刂频膬?nèi)含有交換密鑰對,簽名密鑰對和證書用以提供加解密,、認(rèn)證等服務(wù)的電子卡,。
                      
         PC/SC規(guī)范是一套為集成電路卡(ICC)與個人計算機系統(tǒng)設(shè)計進(jìn)行交互的規(guī)范,能夠讓智能卡方便地訪問WindoW平臺,。其主要優(yōu)點就是讓應(yīng)用程序不必為了與智能卡通信而去了解智能卡讀卡器的細(xì)節(jié),,應(yīng)用程序通過PC/SC規(guī)范和智能卡讀卡器通信,后者再通過ISO7816與智能卡進(jìn)行通信來獲取智能卡提供的服務(wù),,其傳輸?shù)陌Y(jié)構(gòu)是TPDU,。
        2.2 Crypto API體系結(jié)構(gòu)與CSP
        Crypto API是微軟提供的一套公共接口,,包含了一系列的函數(shù),,為應(yīng)用程序提供加解密、數(shù)字簽名,、哈希等安全服務(wù),,而應(yīng)用程序不必關(guān)心其具體實現(xiàn)。不同的供應(yīng)商可以開發(fā)獨立的加密模塊,,這些模塊成為加密服務(wù)提供者(Cryptographic Service Provider CSP),,完成密鑰生成/交換、加解密,、數(shù)字簽名,、認(rèn)證等服務(wù)的真正模塊。微軟默認(rèn)的CSP是RSA Based  Provider,,使用RSA公司的加密算法,。一個系統(tǒng)中可以加載多個CSP模塊,它們相互獨立,。應(yīng)用程序可以使用任意一個CSP模塊,,而不必關(guān)心它的具體實現(xiàn),每個CSP都對Crypto API進(jìn)行不同的實現(xiàn),。
           Crypto API的體系結(jié)構(gòu)如圖1所示,。

           從圖1可以看出,它分為應(yīng)用層:系統(tǒng)層和加密服務(wù)提供層,。處于應(yīng)用層的應(yīng)用程序通過Crypto API來調(diào)用CSP模塊提供的各種服務(wù),。
         3 軟硬件結(jié)合的CSP開發(fā)
         本文介紹的移動安全接入終端系統(tǒng)在WINCE下開發(fā),使用WIND0w MOBILE 5.0 SDK,。系統(tǒng)分兩層,,彼此間相互獨立,上層進(jìn)行撥號,,下層給上層提供CSP支撐,,上下兩層通過系統(tǒng)來整合,。CSP可以基于軟件實現(xiàn),也可以基于硬件實現(xiàn),,還可以基于軟硬件結(jié)合實現(xiàn),。基于軟件實現(xiàn)的CSP,,其使用的密鑰對及算法與操作系統(tǒng)有關(guān),,安全性不高;而基于硬件實現(xiàn)的CSP雖然安全性較高,,但是費用昂貴,;而基于軟硬件實現(xiàn)的CSP,由于將密鑰技術(shù)對生成和加解密操作與操作系統(tǒng)分離,,所以其密鑰的管理和加解密比基于軟件的CSP安全提高了很多,,而與安全性方面沒有多少關(guān)系的部分使用軟件實現(xiàn),費用比基于硬件實現(xiàn)的CSP降低了許多,,可以說是一種比較折中的選擇,。本系統(tǒng)使用的CSP采用軟硬件結(jié)合的方案,目標(biāo)是提供一個基于SDIO智能卡的CSP,。哈希,、解密等功能是不需要硬件實現(xiàn)的,因此這些部分可以用軟件實現(xiàn),。而WINCE系統(tǒng)中包含了這部分的軟實現(xiàn),,所以在設(shè)計中可以利用現(xiàn)有資源,只在需要硬實現(xiàn)的部分才對卡進(jìn)行操作,,這樣既提高了性能又不影響安全性,。
        在對卡的調(diào)用中,命令和響應(yīng)報文要符合IS07816-4標(biāo)準(zhǔn),,因此需要一個將數(shù)據(jù)根據(jù)智能卡指令組裝成智能卡可識別的APDU的程序,,由此程序負(fù)責(zé)數(shù)據(jù)格式的轉(zhuǎn)換。
        根據(jù)以上設(shè)計原理的分析,,可得圖2所示的CSP系統(tǒng)結(jié)構(gòu)圖。

        將CSP的實現(xiàn)分為3個模塊:CSP主程序模塊,、CSP圖形界面模塊,、CSP智能卡訪問模塊

        (1)CSP主程序模塊
        主程序模塊是CSP的核心模塊,實現(xiàn)CSP中的業(yè)務(wù)邏輯并以Crypto SPI標(biāo)準(zhǔn)接口形式提供,。主程序模塊通過調(diào)用圖形界面模塊的相應(yīng)圖形界面實現(xiàn)與用戶的交互(在CRYPT—SLIENT標(biāo)志未設(shè)置時),。主程序模塊對智能卡的訪問及數(shù)據(jù)傳送都是通過智能卡訪問模塊來實現(xiàn)的。
         (2)CSP圖形界面模塊
                      
         圖形界面模塊負(fù)責(zé)CSP與用戶的交互實現(xiàn),。主要有卡片初始化時的PIN碼設(shè)置界面和程序運行中提示用戶輸入PIN碼以驗證其合法性的界面,。

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

此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載。