CSP在基于智能卡的移動(dòng)終端中的開(kāi)發(fā)與應(yīng)用
1 引言
本文引用地址:http://butianyuan.cn/article/151131.htm由于移動(dòng)公網(wǎng)的廣泛發(fā)展和手機(jī)PDA 的大力普及,移動(dòng)終端作為固網(wǎng)上業(yè)務(wù)服務(wù)器的訪問(wèn)接入終端也變得越來(lái)越常見(jiàn)。然而,移動(dòng)終端通過(guò)基于GPRS/CDMA的移動(dòng)公網(wǎng)接入業(yè)務(wù)服務(wù)器的過(guò)程存在著較大的安全風(fēng)險(xiǎn)。在沒(méi)有執(zhí)行任何安全保護(hù)措施的情況下,移動(dòng)終端就與業(yè)務(wù)服務(wù)器進(jìn)行數(shù)據(jù)傳輸,很容易導(dǎo)致雙方傳輸?shù)臄?shù)據(jù)被別有用心的人截取或者篡改,如果這些數(shù)據(jù)涉及到商業(yè)敏感信息,這將對(duì)雙方的利益帶來(lái)巨大的損失。并且,移動(dòng)終端雖然體積小巧,方便攜帶,也容易丟失和被盜,再加上設(shè)備的非授權(quán)使用,授權(quán)用戶的不合理或者惡意的行為,這些全都會(huì)帶來(lái)安全威脅。因而,尋找給移動(dòng)終端和業(yè)務(wù)服務(wù)器的訪問(wèn)過(guò)程增加安全性的解決方案是人們追求的目標(biāo)。IPSec VPN技術(shù)是目前普遍使用的方法,先在公共網(wǎng)絡(luò)上建立一個(gè)私有隧道,然后才在這個(gè)隧道上進(jìn)行雙方的數(shù)據(jù)傳輸。這樣,安全性確實(shí)會(huì)得到一定的提高,但是如果沒(méi)有智能卡的幫助,安全性還是會(huì)大打折扣。因此,針對(duì)這種情況,設(shè)計(jì)了一個(gè)基于智能卡的移動(dòng)IPSec VPN安全接入終端系統(tǒng),本文重點(diǎn)介紹該系統(tǒng)中CSP的開(kāi)發(fā)。
2 相關(guān)背景
2.1智能卡與PC/SC規(guī)范
智能卡是一張內(nèi)含嵌入式集成電路芯片的信用卡般大小的塑料卡,具有儲(chǔ)存信息量大,數(shù)據(jù)保密性好,抗干擾能力強(qiáng),儲(chǔ)存可靠,讀寫設(shè)備簡(jiǎn)單,使用靈活,操作速度快,脫機(jī)工作能力強(qiáng),易于攜帶等特點(diǎn)。本系統(tǒng)所使用的智能卡是一張?zhí)刂频膬?nèi)含有交換密鑰對(duì),簽名密鑰對(duì)和證書用以提供加解密、認(rèn)證等服務(wù)的電子卡。
PC/SC規(guī)范是一套為集成電路卡(ICC)與個(gè)人計(jì)算機(jī)系統(tǒng)設(shè)計(jì)進(jìn)行交互的規(guī)范,能夠讓智能卡方便地訪問(wèn)WindoW平臺(tái)。其主要優(yōu)點(diǎn)就是讓應(yīng)用程序不必為了與智能卡通信而去了解智能卡讀卡器的細(xì)節(jié),應(yīng)用程序通過(guò)PC/SC規(guī)范和智能卡讀卡器通信,后者再通過(guò)ISO7816與智能卡進(jìn)行通信來(lái)獲取智能卡提供的服務(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)心其具體實(shí)現(xiàn)。不同的供應(yīng)商可以開(kāi)發(fā)獨(dú)立的加密模塊,這些模塊成為加密服務(wù)提供者(Cryptographic Service Provider CSP),完成密鑰生成/交換、加解密、數(shù)字簽名、認(rèn)證等服務(wù)的真正模塊。微軟默認(rèn)的CSP是RSA Based Provider,使用RSA公司的加密算法。一個(gè)系統(tǒng)中可以加載多個(gè)CSP模塊,它們相互獨(dú)立。應(yīng)用程序可以使用任意一個(gè)CSP模塊,而不必關(guān)心它的具體實(shí)現(xiàn),每個(gè)CSP都對(duì)Crypto API進(jìn)行不同的實(shí)現(xiàn)。
Crypto API的體系結(jié)構(gòu)如圖1所示。
從圖1可以看出,它分為應(yīng)用層:系統(tǒng)層和加密服務(wù)提供層。處于應(yīng)用層的應(yīng)用程序通過(guò)Crypto API來(lái)調(diào)用CSP模塊提供的各種服務(wù)。
3 軟硬件結(jié)合的CSP開(kāi)發(fā)
本文介紹的移動(dòng)安全接入終端系統(tǒng)在WINCE下開(kāi)發(fā),使用WIND0w MOBILE 5.0 SDK。系統(tǒng)分兩層,彼此間相互獨(dú)立,上層進(jìn)行撥號(hào),下層給上層提供CSP支撐,上下兩層通過(guò)系統(tǒng)來(lái)整合。CSP可以基于軟件實(shí)現(xiàn),也可以基于硬件實(shí)現(xiàn),還可以基于軟硬件結(jié)合實(shí)現(xiàn)?;谲浖?shí)現(xiàn)的C SP,其使用的密鑰對(duì)及算法與操作系統(tǒng)有關(guān),安全性不高;而基于硬件實(shí)現(xiàn)的CSP雖然安全性較高,但是費(fèi)用昂貴;而基于軟硬件實(shí)現(xiàn)的CSP, 由于將密鑰技術(shù)對(duì)生成和加解密操作與操作系統(tǒng)分離,所以其密鑰的管理和加解密比基于軟件的CSP安全提高了很多,而與安全性方面沒(méi)有多少關(guān)系的部分使用軟件實(shí)現(xiàn),費(fèi)用比基于硬件實(shí)現(xiàn)的CSP降低了許多,可以說(shuō)是一種比較折中的選擇。本系統(tǒng)使用的CSP采用軟硬件結(jié)合的方案, 目標(biāo)是提供一個(gè)基于SDIO智能卡的CSP。哈希、解密等功能是不需要硬件實(shí)現(xiàn)的, 因此這些部分可以用軟件實(shí)現(xiàn)。而WINCE系統(tǒng)中包含了這部分的軟實(shí)現(xiàn),所以在設(shè)計(jì)中可以利用現(xiàn)有資源,只在需要硬實(shí)現(xiàn)的部分才對(duì)卡進(jìn)行操作,這樣既提高了性能又不影響安全性。
在對(duì)卡的調(diào)用中, 命令和響應(yīng)報(bào)文要符合IS07816-4標(biāo)準(zhǔn),因此需要一個(gè)將數(shù)據(jù)根據(jù)智能卡指令組裝成智能卡可識(shí)別的APDU的程序,由此程序負(fù)責(zé)數(shù)據(jù)格式的轉(zhuǎn)換。
根據(jù)以上設(shè)計(jì)原理的分析,可得圖2所示的CSP系統(tǒng)結(jié)構(gòu)圖。
評(píng)論