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