密碼中間件CAPICOM 的應(yīng)用研究_第1頁(yè)
密碼中間件CAPICOM 的應(yīng)用研究_第2頁(yè)
密碼中間件CAPICOM 的應(yīng)用研究_第3頁(yè)
密碼中間件CAPICOM 的應(yīng)用研究_第4頁(yè)
密碼中間件CAPICOM 的應(yīng)用研究_第5頁(yè)
已閱讀5頁(yè),還剩7頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、密碼中間件capicom 的應(yīng)用研究 密碼中間件 capicom 的應(yīng)用研究 1 2 3譚文學(xué) 張健欽 王細(xì)萍 (1 湖南文理學(xué)院計(jì)算機(jī)科學(xué)與技術(shù)系 3 湖南文理學(xué)院經(jīng)濟(jì)與資源環(huán)境系 常德 415000, 2 中國(guó)科學(xué)院遙感應(yīng)用研究所北京 100101) 摘 要 capicom 是一個(gè) windows 平臺(tái)的密碼中間件, 它以 com 對(duì)象的形式封裝了對(duì) csp 的密碼函數(shù)調(diào)用,使獲取密碼服務(wù)更方便,分析了安全電子文檔管理系統(tǒng)的安全需求,研究 capicom 在系統(tǒng)中的應(yīng)用,討論 capicom 的數(shù)據(jù)結(jié)構(gòu)和 com 對(duì)象,指出使用標(biāo)準(zhǔn)接口的密碼中間件能使應(yīng)用零開銷地本地化 csp。 關(guān)鍵字

2、capicom 密碼服務(wù) csp 文檔管理 中圖分類號(hào):tp309.7 文獻(xiàn)標(biāo)識(shí)碼:a researching of crypto middle-ware capicom application 1 2 3tan wenxue zhangjianqin wangxiping 1,3hunan university of arts and science ,hunan, changde 415000 2 institute of remote sensing applications,chinese academy of sciences,beijing china 100101 abstrac

3、t capicom is one windows platform crypto middle ware, which wrapped calling of cryptoapi functions provided by csp in the form of com object ,it facilitates getting crypto service. analyzed the security requirements of electronic documents management system, studied application of capicom in the sys

4、tem, discussed the data structure and the com class of capicom, pointed out using crypto middle ware with standard interface coming to the end of zero cost to localize csp which served for applicationkeywords capicom;crypto service;csp;documents managing1 capicom 概述信息安全性是很多軟件必須具備的品質(zhì),密碼技術(shù)是信息安全的基礎(chǔ),調(diào)用密

5、碼功能實(shí)現(xiàn)安全性是軟1件開發(fā)過程中的常用方法。 windows 操作系統(tǒng)采用分層的加密體系模型 csp 密碼服務(wù)提供者(cryptographic service provider)架設(shè)系統(tǒng)安全。csp提供了齊全的具有密碼功能的 win32api函數(shù)供程2序員調(diào)用,稱為 cryptoapi。然而,調(diào)用 cryptapi 完成密碼操作仍然相當(dāng)復(fù)雜。 使用 com,開發(fā)人員可3以把注意力集中在解決用戶所需要的問題上.而不用關(guān)心網(wǎng)絡(luò)協(xié)議等底層結(jié)構(gòu)的細(xì)節(jié)。 微軟提供了capicom 組件,它以 com 對(duì)象的形式封裝了上述的復(fù)雜操作,使用它獲取密碼服務(wù)更方便。因?yàn)樵诓煌拈_發(fā)環(huán)境中,往往先要對(duì) api

6、 函數(shù)進(jìn)行某種封裝或轉(zhuǎn)換,這增加了使用難度,capicom 以中間件的形式提供了一個(gè)標(biāo)準(zhǔn)的密碼應(yīng)用層接口,是介于應(yīng)用與 csp 之間的中間層,使得應(yīng)用與 csp 具有邏輯獨(dú)立性。 1在工作時(shí),capicom 按一定順序列檢索 csp。首先檢查缺省 csp是否支持用戶指定的算法及密鑰長(zhǎng)度,如果失敗,則搜索系統(tǒng)提供的 csp,并判斷其是否支持指定的算法和密鑰長(zhǎng)度,直至遍歷完所有csp。兩者關(guān)系如圖 1 所示。 2 主要功能 目前,capicom 共有兩個(gè)版本:1.0版和 2.0 版。其中,后者在前者的基礎(chǔ)上,提供了一些額外的功3能。 capicom v1.0 提供如下功能: 1.生和驗(yàn)證 pkcs

7、#7 格式的數(shù)字簽名;2.使用證書加密/解密數(shù)據(jù);3.用口令加密/解密數(shù)據(jù)。capicom v2.0 額外提供如下功能: 1.生和驗(yàn)證代碼簽名;2.支持文件形式的證書;3.快速證書搜索;4.支持 aes算法; 3 安全電子文檔管理系統(tǒng) 3.1 應(yīng)用場(chǎng)景和目標(biāo)。 安全電子文檔管理系統(tǒng)是為某政務(wù)中心開發(fā)的管理軟件,是其電子政務(wù)的基礎(chǔ)應(yīng)用模塊。在企事業(yè)單密鑰管理應(yīng)用 數(shù)據(jù)信封應(yīng)用 數(shù)據(jù)摘要應(yīng)用數(shù)據(jù)加密應(yīng)用 數(shù)據(jù)簽名應(yīng)用 證書運(yùn)算應(yīng)用capicomcsp1 csp2 csp3圖1:csp和capicom的體系結(jié)構(gòu)位的生產(chǎn)經(jīng)營(yíng)過程中,電子文檔的管理和應(yīng)用是運(yùn)作效率的關(guān)鍵,在全球化,網(wǎng)絡(luò)化,信息化的經(jīng)營(yíng)角

8、逐中,企業(yè)需要暢通地流轉(zhuǎn)各類文檔,或是財(cái)務(wù)計(jì)劃,或是技術(shù)方案,或是營(yíng)銷策略,同時(shí),必須保證信息的完整性和秘密性,網(wǎng)絡(luò)用戶的身份認(rèn)證和密鑰協(xié)商是密碼通信的前提。文檔的高效率管理和應(yīng)用是系統(tǒng)的目標(biāo),在追求這個(gè)目標(biāo)的過程中,文檔的信息安全性如得不到保障,將使企業(yè)蒙受重大損失。 僅就應(yīng)用而言,它有很多業(yè)務(wù)需求如:用戶管理,文檔管理,日志管理,系統(tǒng)管理,和文檔數(shù)據(jù)庫(kù)管理,本文當(dāng)中,重點(diǎn)討論在密碼服務(wù)和安全性上的需求,通過實(shí)施安全性措施,確保在文檔的生命周期當(dāng)中,在文檔的運(yùn)動(dòng)過程中,敏感信息不會(huì)因數(shù)據(jù)的泄漏而喪失安全性。 3.2 系統(tǒng)開發(fā)環(huán)境 系統(tǒng)基于 windows 2000,vc 60,sql ser

9、ver 2000,window cs 證書服務(wù)器(certificate server)開3發(fā)。其中,sql server用作文檔數(shù)據(jù)庫(kù)服務(wù)器,存儲(chǔ)用戶信息和文檔; certificate server是微軟提供的證書服務(wù)器,利用它建立企業(yè) pki 平臺(tái),在 pki 平臺(tái)環(huán)境下,建立基于數(shù)字證書的安全業(yè)務(wù)應(yīng)用。 3.3 密碼功能設(shè)計(jì) 傳統(tǒng)的文件加密是基于口令,這種方式的加密只適用密文保存,在用于密碼通信時(shí)必須雙方協(xié)商密鑰,又稱口令,參與通信的主體數(shù)量龐大時(shí),這很不現(xiàn)實(shí),同時(shí),每一主體必須管理數(shù)量很大的口令,實(shí)際應(yīng)1用難以成行。 一份文檔要密發(fā)給多個(gè)接收者,需要多次加密,多次發(fā)送,cpu時(shí)間和帶

10、寬浪費(fèi)很多,不適用于群發(fā);密文一般沒有簽名,在傳輸中的篡改或信道錯(cuò)誤都無法檢測(cè),只有等到解密發(fā)現(xiàn)一片亂碼才明白。 基于 x.509證書的密碼通信能有效地解決這些問題。數(shù)字證書本質(zhì)上是經(jīng)過簽名的可信的公鑰,它既可用于驗(yàn)證數(shù)字簽名,也可用于加密數(shù)據(jù),因證書的頒發(fā)策略而定。用于加密時(shí),通常的做法是選定接收者證書,驗(yàn)證其可用性,再隨機(jī)生一個(gè)對(duì)稱密鑰,如 aes密鑰,加密數(shù)據(jù),再用公鑰加密此隨機(jī)對(duì)稱密鑰,附于密文數(shù)據(jù)后面,一起發(fā)送給接收者,接收者再用私鑰解密對(duì)稱密鑰,再用對(duì)稱密鑰解密密文,得到消息。要發(fā)送給多個(gè)接收者,則只要將對(duì)稱密鑰用多個(gè)接收者的公鑰加密多份附于密文后面,對(duì)于數(shù)據(jù)的處理,則只要一份,大

11、大縮短了 cpu 時(shí)間和網(wǎng)絡(luò)時(shí)間。對(duì)稱算法具密碼運(yùn)算速度快等優(yōu)勢(shì),公鑰算法解決了密鑰協(xié)商的問題,兩者合用巧妙地處理在基于口令方法中棘手的問題。為了防止的傳輸中的數(shù)據(jù)篡改,發(fā)送者可用私鑰對(duì)數(shù)據(jù)進(jìn)行簽名,接收者可以于解密前進(jìn)行數(shù)據(jù)的驗(yàn)證,確認(rèn)數(shù)據(jù)的來源可信性和完整性。 4.capicom 的應(yīng)用 在文檔管理系統(tǒng)中,證書的操作主要有:證書庫(kù)的打開,證書檢索,證書驗(yàn)證,證書加密數(shù)據(jù)和數(shù)字簽名 cryptoapi只提供了基本的密碼函數(shù),對(duì)于數(shù)字證書很少涉及,而 capicom 組件對(duì)這些高層應(yīng)用圖 2 十六進(jìn)制形式密文和解密結(jié)果圖3 簽名過程 服務(wù)提供了方便的接口。 4.1 證書操作 windows 平

12、臺(tái)中,證書存于證書庫(kù) certstore 的結(jié)構(gòu)中,使用時(shí)必檢索證書庫(kù),取得證書句柄,獲得證書的基本信息如:有效期,公鑰等,同時(shí),還要對(duì)證書的有效性進(jìn)行驗(yàn)證。私鑰存于密鑰容器中(key 3container),有對(duì)應(yīng)私鑰的證書,還存有私鑰容器的句柄。 默認(rèn)的證書的庫(kù)有 4 個(gè):trust,my,ca,root,其中 my存放了個(gè)人的證書,其中還有私鑰容器句柄,trust 存放了通信群體中其它人的證書,僅公鑰。證書的管理必須用到 capicom 的幾個(gè)接口:istoreptr 指向證書庫(kù),icertificates2ptr 指向證書集合,icertificateptr指向證書,三個(gè)接口形成操作證

13、書的三級(jí)索引。4.2 證書參與加密運(yùn)算 證書加密實(shí)際是用接收方證書的公鑰加密,過程有兩步:用公鑰加密對(duì)稱密鑰,用對(duì)稱密鑰加密數(shù)據(jù)。capicom 定義的對(duì)象 ienvelopeddataptr對(duì)兩步進(jìn)行了包裝,對(duì)于編程人員是透明的。 1.定義數(shù)據(jù)信封 ienvelopeddataptr pencryptienvelopeddata_uuidofenvelopeddata; ienvelopeddataptr pdecryptienvelopeddata_uuidofenvelopeddata; 2.添加接收者證書 4如果消息要密發(fā)給多個(gè)接收者,只要將 add函數(shù)調(diào)用多次,添加多個(gè)接收者的證書即

14、可。 pencryptienvelopeddata-recipients.getinterfaceptr-addmycert; 3.設(shè)定算法參數(shù)和對(duì)稱密鑰長(zhǎng)度 capicom 對(duì)密碼算法的標(biāo)識(shí)標(biāo)準(zhǔn)和密鑰長(zhǎng)度進(jìn)行了定義,以常量形式給出。 這里以 rc4 為例。 pencryptienvelopeddata-algorithm-name capicom_encryption_algorithm_rc4 ; pencryptienvelopeddata-algorithm-keylength capicom_encryption_key_length_40_bits; 4.加密 bstrtempsy

15、sallocstringbytelenhello capicom!,14;_bstr_ta.assignbstrtemp; pencryptienvelopeddata-content_bstr_ta;bstrciphertextpencryptienvelopeddata-encrypt capicom_encode_binary; 5.取出密文 bstrtemp 是 bstr 指針,指向雙字節(jié)的字符串,即以兩個(gè) bytes 來存一個(gè) ascii 字符,_bstr_t 類型對(duì)雙字節(jié)字符串進(jìn)行了對(duì)象裝箱,字節(jié)數(shù)是字符數(shù)據(jù)量的兩倍。加密hello capicom!后,以字符形式看密文則呈亂碼形式

16、。二進(jìn)制形式則如圖 2 所示。 pchar pciphertextnull;pciphertextpcharbstrciphertext;printf密文字符流:n; pvoid pchartempmalloc24; for int k0;kbstrciphertext.length*2;k+ ifk%240 memcpypvoidpchartemp,pciphertext,24; pciphertext+; 6.解密 pdecryptienvelopeddata-decryptbstrciphertext;printf解密后:%sn, pcharpdecryptienvelopeddata-

17、content.copy;結(jié)果如圖 5 所示。 4.3 數(shù)字簽名和驗(yàn)證 簽名是對(duì)消息哈希值進(jìn)行簽名,先算出數(shù)據(jù)的哈希值,再用簽名者的私鑰對(duì)哈希值簽名。此步驟中,會(huì)檢索 my證書庫(kù)的證書,找證書對(duì)鑰的私鑰的容器句柄,再找到私鑰,這對(duì)于程序員是透明的。簽名和數(shù)據(jù)可以“依附”發(fā)送也可“獨(dú)立”發(fā)送,接收者收到數(shù)據(jù)和簽名后,重算數(shù)據(jù)的哈希值,將哈希值和數(shù)據(jù)的簽名送進(jìn)驗(yàn)證運(yùn)算將會(huì)得出驗(yàn)證結(jié)果。capicom 組件,用接口 isigneddataptr和 ihasheddataptr來封裝此功能。 1.定義哈希對(duì)象和設(shè)定哈希算法 ihasheddataptr pihasheddataptr_uuidofha

18、sheddata; pihasheddataptr-algorithm capicom_hash_algorithm_sha1。 2.哈希和取哈希值 哈希對(duì)象的哈希值是字符串形式的以十六進(jìn)制的格式返回,sha-1 算法的哈希值為 160 位,即 20 字節(jié),表示成 hex 格式一個(gè)字節(jié)表示為兩個(gè)字符,共 40 個(gè) ascii 字符,再用雙字節(jié)字符表示。則為 40 個(gè)寬字符,80字節(jié),所以哈希值的字節(jié)長(zhǎng)度變成了 80 字節(jié)。如圖 3 所示。 bstrtempsysallocstringbytelenhello capicom!,14;_bstr_ta.assignbstrtemp; pchar pcharnull;pihasheddataptr-hash_bstr_ta;bstrhashvaluepihasheddataptr-value; 3.簽名 簽名加入時(shí)間戳和簽名者信息,還要編碼成一定的格式,有時(shí)還加入了簽名者的證書,故簽名消息的長(zhǎng)度取決于多個(gè)因素。而不只取決簽名者的公鑰長(zhǎng)度。如以二進(jìn)制編碼為格式則為 898 字節(jié),如圖 6 所示。 isigneddataptrpisigneddataptr_uuidofsigneddata;pisigneddataptr-contentpihasheddataptr-value; bstrsi

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論