資源描述:
《基于智能卡csp設(shè)計和實現(xiàn)》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
1、基于智能卡CSP設(shè)計和實現(xiàn) 摘要:智能卡由于其安全性高、攜帶方便、價格便宜等特點被廣泛應(yīng)用,基于智能卡的CSP也得以迅速發(fā)展。在分析微軟加密理論的基礎(chǔ)上,詳細(xì)介紹了一種基于智能卡的CSP設(shè)計方法和實現(xiàn)流程,應(yīng)用程序通過CryptoAPI方便、快捷地完成了智能卡提供的一整套加密操作。關(guān)鍵詞:智能卡;CSP;CryptoAPI中圖分類號:TP319文獻(xiàn)標(biāo)識碼:A文章編號:1672-7800(2012)010-0130-02作者簡介:許夢華(1984-),女,碩士,武漢瑞達(dá)信息安全產(chǎn)業(yè)股份有限公司程序員,研究方
2、向為計算機軟件開發(fā)。0引言智能卡由于安全性高、攜帶方便、價格便宜等特點被廣泛應(yīng)用于信息加密技術(shù)領(lǐng)域,而要在Windows操作系統(tǒng)上使用智能卡完成加密操作,則必須設(shè)計和實現(xiàn)基于智能卡的CSP,智能卡從硬件上提供密鑰保護,應(yīng)用程序通過CryptoAPI選擇相應(yīng)的CSP,方便、快捷地完成了智能卡提供的一整套加密操作。目前,基于智能卡的CSP在PKI系統(tǒng)中廣泛流行,不同智能卡需要開發(fā)基于自身特定的CSP,因此將不同智能卡的CSP統(tǒng)一起來具有廣闊的市場前景。1CSP簡介6CSP(CryptographicServic
3、eProvider)加密服務(wù)提供層,是Microsoft公司用來在Windows平臺上提供第三方加密模塊的接口標(biāo)準(zhǔn),它提供一套基于軟件或者硬件的加解密服務(wù),包含加密標(biāo)準(zhǔn)和加密算法的實現(xiàn)。作為一個CSP,它包含一個動態(tài)鏈接庫DLL文件和一個簽名文件,簽名文件用于驗證CSP,以保證CSP未被非法篡改。CryptoAPI(CryptoApplicationProgrammingInterface)是PKI推薦使用的一組加密API,它是由操作系統(tǒng)開發(fā)商提供給應(yīng)用程序的開發(fā)接口。CryptoSPI(CryptoSys
4、temProgrammingInterface)也是一組API接口,它是由操作系統(tǒng)開發(fā)商提供給密碼服務(wù)開發(fā)商的系統(tǒng)接口,其實際應(yīng)用如圖1所示。應(yīng)用程序的開發(fā)者安裝CSP后,通過CryptoAPI把來自應(yīng)用程序的調(diào)用交給操作系統(tǒng),操作系統(tǒng)內(nèi)部選擇指定的CSP,通過CryptoSPI來驅(qū)動CSP執(zhí)行實際的操作,完成加密解密、簽名認(rèn)證、證書導(dǎo)入導(dǎo)出等一系列完整的加密服務(wù)。2基于智能卡的CSP設(shè)計與實現(xiàn)2.1智能卡的文件系統(tǒng)設(shè)計6一個CSP有一個密鑰庫,如圖2所示。密鑰庫是用來存儲密鑰的,每個密鑰庫中包含一個或多個
5、密鑰容器(KeyContainers),而每個密鑰容器中包含屬于一個特定用戶的所有密鑰對,CSP利用密鑰容器來管理密鑰,一般來說,一個密鑰容器中有兩對公私密鑰對,即交換密鑰對、簽名密鑰對。不同智能卡可以建立不同的CSP,應(yīng)用程序可以通過CryptoAPI選擇相應(yīng)的CSP以及其中相應(yīng)的密鑰容器來完成智能卡提供的一整套加密操作。智能卡(SmartCard)是IC卡的一種,它的特點是安全性高、價格便宜、攜帶方便。它內(nèi)含有集成電路芯片,本身具有存儲能力和計算能力,可以存儲私鑰和證書,實現(xiàn)RSA、ECC、HASH等復(fù)
6、雜的算法,被廣泛應(yīng)用于身份認(rèn)證、訪問控制、密鑰存儲和算法實現(xiàn)等方面。本設(shè)計使用的智能卡是武漢天喻智能卡(Version1.2),根據(jù)CSP中密鑰容器的結(jié)構(gòu),對天喻智能卡的文件系統(tǒng)進(jìn)行的設(shè)計如圖3所示,其中主控文件(MF)是整個文件系統(tǒng)的根,每張卡有且只有一個MF,它在卡的個人化過程中首先被建立起來,在卡的整個周期內(nèi)一直存在并保持有效,可存儲卡的公共數(shù)據(jù)信息并為各種應(yīng)用服務(wù),它所對應(yīng)的是密鑰容器結(jié)構(gòu)中的密鑰庫。專用文件(DF)是MF下針對不同的應(yīng)用建立起來的一種文件,它所對應(yīng)的是密鑰容器結(jié)構(gòu)中的密鑰容器;基本
7、文件(EF)是用于存儲各種應(yīng)用的數(shù)據(jù)和密鑰,它存在于MF和DF下,它所對應(yīng)的是密鑰容器結(jié)構(gòu)中的密鑰對和證書。2.2基于智能卡的CSP設(shè)計6基于智能卡的CSP設(shè)計可以基于軟件實現(xiàn)、硬件實現(xiàn)和軟硬件結(jié)合實現(xiàn)?;谲浖崿F(xiàn)的CSP,安全性不高;基于硬件實現(xiàn)的CSP雖然安全性高,但是費用昂貴;基于軟硬件結(jié)合實現(xiàn)的CSP,費用不高、安全性好,這種實現(xiàn)方法的密鑰對在智能卡內(nèi)產(chǎn)生,其私鑰不能被導(dǎo)出,利用私鑰進(jìn)行的解密和簽名操作也在卡內(nèi)進(jìn)行,而對稱加密、產(chǎn)生哈希值的操作則由軟件完成。本設(shè)計采用的是基于軟硬件結(jié)合實現(xiàn),HAS
8、H算法和對稱加密算法的實現(xiàn)采用軟件方式,而RSA密鑰對和隨機數(shù)則在智能卡建立完文件系統(tǒng)后由智能卡內(nèi)部產(chǎn)生和使用。6CryptoAPI包括初始化函數(shù)、密鑰生成函數(shù)、加解密函數(shù)、數(shù)字簽名驗證函數(shù)、密鑰操作函數(shù)和散列函數(shù)等25個基本函數(shù),應(yīng)用程序通過這25個函數(shù)來調(diào)用CSP模塊,完成連接上下文、產(chǎn)生密鑰、導(dǎo)入導(dǎo)出密鑰、產(chǎn)生哈希值、加密解密、簽名驗證、銷毀密鑰和釋放上下文等操作。在CryptoAPI的25個基本函數(shù)中CP