![使用PKCS11標準開發(fā)跨硬件加密功能_第1頁](http://file4.renrendoc.com/view/eccce068e28bc7843efa34c7b661bd97/eccce068e28bc7843efa34c7b661bd971.gif)
![使用PKCS11標準開發(fā)跨硬件加密功能_第2頁](http://file4.renrendoc.com/view/eccce068e28bc7843efa34c7b661bd97/eccce068e28bc7843efa34c7b661bd972.gif)
![使用PKCS11標準開發(fā)跨硬件加密功能_第3頁](http://file4.renrendoc.com/view/eccce068e28bc7843efa34c7b661bd97/eccce068e28bc7843efa34c7b661bd973.gif)
![使用PKCS11標準開發(fā)跨硬件加密功能_第4頁](http://file4.renrendoc.com/view/eccce068e28bc7843efa34c7b661bd97/eccce068e28bc7843efa34c7b661bd974.gif)
![使用PKCS11標準開發(fā)跨硬件加密功能_第5頁](http://file4.renrendoc.com/view/eccce068e28bc7843efa34c7b661bd97/eccce068e28bc7843efa34c7b661bd975.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、Vol.9No.3Jul.2006106).106).第9卷第3期2006年7月西安文理學(xué)院學(xué)報:自然科學(xué)版JournalofXianUniversityofArts&Science(NatSciEd)文章編號:10085564(2006)030101-04使用PKCS11標準開發(fā)跨硬件加密功能葛澎1,王磊2,李向軍3(1海軍駐西安導(dǎo)彈設(shè)備軍事代表處,陜西西安710061;2北京電信科學(xué)研究院數(shù)據(jù)通信研究所,北京100083;3西安文理學(xué)院計算機科學(xué)系,陜西西安710065)摘要:CryptoKi接口是RSA公司提出的PKCS#11標準中規(guī)定的標準加解密接口.它提供了一套獨立于加密設(shè)備和操作系
2、統(tǒng)的密碼服務(wù)開發(fā)界面.首先簡要介紹了通用CrypoKi模型,隨后分析了其邏輯結(jié)構(gòu)和主要接口,并提供了一個開發(fā)實例用以說明作為一個密碼部件接口,CryptoKi為計算機或通信系統(tǒng)的安全提供了加解密基礎(chǔ).關(guān)鍵詞:PKCS#11;CrypoKi;加密中圖分類號:TP393.08文獻標識碼:A為了能在信息安全中廣泛應(yīng)用密碼功能,必需設(shè)置一種嚴格的彼此協(xié)作的商業(yè)標準規(guī)范.為達到目的,RSA實驗室提出了PKCS規(guī)范(公共密鑰加密標準,PubliGKeyCryptographyStandards),其中PKCS#11規(guī)范(CryptographicTokenInterfaceStandard,密碼令牌標準)
3、為開發(fā)人員提供了一套通用的跨操作系統(tǒng)和加密引擎的開發(fā)界面.PKCS#11標準為密碼設(shè)備規(guī)定了一種程序設(shè)計接口,該接口稱做CryptoKi1(cryptographictokeninterface,密碼令牌接口).CryptoKi接口提供稱為密碼令牌的一種通用的加密設(shè)備邏輯視圖及應(yīng)用程序,從而實現(xiàn)了應(yīng)用與密碼設(shè)備具體細節(jié)相獨立的目標.應(yīng)用程序在轉(zhuǎn)換成不同的加密設(shè)備接口或在不同環(huán)境下運行時不需進行調(diào)整,保證了應(yīng)用程序良好的通用性和硬件兼容性1通用CryptoKi接口模型CryptoKi是一種應(yīng)用程序與各種密碼設(shè)備(基于智能卡、PCMCIA卡以及智能軟盤)間的一種接口.該接口提供與設(shè)備細節(jié)無關(guān)的密碼
4、令牌給應(yīng)用程序使用CryptoKi的通用模型如圖1所示.模型從一個或多個必須執(zhí)行某些密碼操作的應(yīng)用程序開始,以一個或多個密碼設(shè)備結(jié)束(在密碼設(shè)備上執(zhí)行某些或全部操作).一個用戶可涉及也可不涉及一個程序CryptoKi為密碼設(shè)備提供了一個接口,這些設(shè)備通過大量的槽在系統(tǒng)中運行.每個對應(yīng)于一個物理閱讀器或設(shè)備接口的槽可包含一個令牌.當(dāng)密碼設(shè)備與相應(yīng)的閱讀器連接時,一個令牌就存在于該槽中.多個槽可能共享一個閱讀器.系統(tǒng)通常有相當(dāng)多的槽,應(yīng)用程序能連接到全部槽或某個指定槽的令牌上.密碼設(shè)備可以按照指定的命令集執(zhí)行某些密碼操作,這些命令通常要經(jīng)過標準設(shè)備驅(qū)動程序,例如PCMCIA卡服務(wù)程序或槽服務(wù)程序.
5、CryptoKi隱藏了這些細節(jié),使得每個密碼設(shè)備具有相同的邏輯結(jié)構(gòu),而不關(guān)心其具體技術(shù)實現(xiàn).因此,應(yīng)用程序不必直接與設(shè)備驅(qū)動器接口通訊,甚至不必知道使用的是收稿日期:2005-05-08基金項目:國家高技術(shù)研究發(fā)展863計劃項目(2004AA142151);中國科學(xué)院知識創(chuàng)新工程方向性項目(KGCX2-作者簡介:葛澎(1968),男,陜西西安人,海軍駐西安導(dǎo)彈設(shè)備軍事代表處中校,碩士.1994-2012?hinaAcademicJournalElectronicPublishingHouse.Allrightsreserved,http/Avw 西安文理學(xué)院學(xué)報:自然科學(xué)版第9卷第3期葛澎,等
6、:使用PKCS11標準開發(fā)跨硬件加密功能 #哪些設(shè)備.圖1通用CryptoKi模型CryptoKi的令牌邏輯視圖是一個能存儲對象和能執(zhí)行密碼函數(shù)的設(shè)備象:數(shù)據(jù)、證書和密鑰.數(shù)據(jù)對象由應(yīng)用程序定義令牌的邏輯視圖如圖.CryptoKi定義如下三個對2所示.對象可以根據(jù)它們的使用期限和可見度分為令牌對象和會話對象.令牌對象能被所有應(yīng)用程序查看,即使在會話關(guān)閉或從槽中拔出令牌后會話產(chǎn)生的所有會話對象就會自動被破壞以根據(jù)訪問需求分為公共對象和私有對象,仍能保存在令牌上會話對象則是暫時的,當(dāng)會話關(guān)閉時,該.此外,只有產(chǎn)生會話對象的應(yīng)用程序能夠查看它們對象可.應(yīng)用程序在查看公共對象時不需要存入令牌,然而如果
7、要觀察私有對象,用戶必須通過PIN或其它方式取得令牌授權(quán).令牌能建立、破壞、尋找和搜尋對象,還可以執(zhí)行帶有對象的密碼函數(shù)CryptoKi支持兩種令牌用戶類型:安全官員(SO)和普通用戶SO的作用是初始化一個令牌,操作某些公共對象,設(shè)置普通用戶的PIN或通過其他方式確定普通用戶的授權(quán)普通用戶只有在SO設(shè)置普通用戶的PIN以后才能注冊然而只有普通用戶才能訪問令牌上的私有對象,當(dāng)然首先普通用戶需要得到授權(quán)某些令牌可能不論是否涉及私有對象,在執(zhí)行令牌上的加解密功能之前都需要用戶得到圖2對象的層次結(jié)構(gòu)授權(quán)2CryptoKi接口概覽及開發(fā)實例CryptoKiAPI主要包含通用函數(shù)、槽和令牌管理函數(shù)、對象管
8、理函數(shù)及加解密函數(shù)等以下是一個簡單的應(yīng)用實例,它體現(xiàn)了Cryptoki使用的一般流程definePLAINTEXT_BUF_SZ200defineCIPHERTEXT_BUF_SZ256CK_ULONGfirstPieceLen,secondPieceLen;CK_SESSION_HANDLEhSession;CK_OBJECT_HANDLEhKey;CK_MECHANISMmechanism=CKM_DES_CBC_PAD,iv,sizeof(iv);CK_BYTEdataPLAINTEXT_BUF_SZ,encryptedDataCIPHERTEXT_BUF_SZ,iv8;CK_ULONG
9、ulEncryptedDatalLen,ulEncryptedData2Len,ulEncryptedData3Len;CK-RVrV; 西安文理學(xué)院學(xué)報:自然科學(xué)版第9卷第3期葛澎,等:使用PKCS11標準開發(fā)跨硬件加密功能 firstPieceLen=90;secondPiecelen=PLAINTEXT_BUF_SZ-firstPieceLen;rv=C_EncryptInit(hSession,&mechanism,hKey);if(rv=CKR_OK)/*Encryptfirstpiece*/ulEncryptedDatalLen=sizeof(encryptedData);rv=C
10、_EncryptUpdate(hSession,&data0,firstPieceLen,&encryptedData0,&ulEncryptedDatalLen);if(rv!=CKR_OK)/*錯誤處理*/*Encryptsecondpiece*/ulEncryptedData2Len=sizeof(encryptedData)-ulEncryptedDatalLen;rv=C_EncryptUpdate(hSession,&datafirstPieceLen,secondPieceLen,&encryptedDataulEncryptedDatalLen,&ulEncryptedData
11、2Len);if(rv!=CKR_OK)/*錯誤處理*/*Getlastlittleencryptedbit*/ulEncryptedData3Len=sizeof(encryptedData)-ulEncryptedDatalLen-ulEncryptedData2Len;rv=C_EncryptFinal(hSession,&encryptedDataulEncryptedDatalLen+ulEncryptedData2Len,&ulEncryptedData3Len);if(rv!=CKR_OK)/*錯誤處理*/.需要注意的是,對于CryptoKi來說,應(yīng)用程序包含一個獨立的地址空間及
12、其中的控制線程.應(yīng)用程序首先需要從其中一個線程調(diào)用C_lnitialize函數(shù)來使用CryptoKi接口此后該應(yīng)用程序才能調(diào)用其它CryptoKi函數(shù).應(yīng)用程序完成CryptoKi的使用后,應(yīng)當(dāng)調(diào)用CryptoKi函數(shù)C_Finalize以退出.因此在使用CryptoKi時,需要注意以上過程對于進程和線程要有不同的處理假定進程P通過調(diào)用C-Initialize完成CryptoKi庫的初始化后,調(diào)用fork產(chǎn)生了進程C,P和C擁有獨立的進程空間此時如果C需要使用CryptoKi接口,則必須使用C_Initialize重新進行初始化.否則,理論上對CryptoKi接口的調(diào)用應(yīng)當(dāng)返回CKR_CRYP
13、TOKI_NOT_INITIALIZED。然而由于該返回值可能對性能造成較差的影響,此狀態(tài)下的返回值實際未被定義因此程序在此狀態(tài)下可能出現(xiàn)意料外的結(jié)果如果C不需要使用CryptoKi接口,則它應(yīng)當(dāng)調(diào)用C_Initialize,然后立刻調(diào)用C_Fina-ize,以此來阻止所謂雙重資源的存在這也是PKCS#11中推的編程風(fēng)格對于使用線程訪問CryptoKi庫的應(yīng)用程序,CryptoKi提供多線程支持當(dāng)應(yīng)用程序通過C-In-tialize調(diào)用初始化CryptoKi庫時,將產(chǎn)生以下4種結(jié)果之一:該程序能確定它不能從多線程中同時訪問該庫,所以該庫不用擔(dān)心執(zhí)行任意種類的為了線程安全起見的鎖定.該程序能確定
14、它將從多線程中同時訪問庫,但該庫能使用本地操作系統(tǒng)的同步原語以確保正確的線程安全特性c該程序能確定它將從多線程中同時訪問該庫,但該庫需要使用一套提供應(yīng)用程序的同步原語以確保正確的線程安全特性d該應(yīng)用程序能確定它將從多線程中同時訪問庫,但該庫需要使用本地操作系統(tǒng)的同步原語或一套提供應(yīng)用程序的同步原語以確保正確的線程安全特性以上c、d兩種情況通常出現(xiàn)在不使用本地操作系統(tǒng)線程模式的多線程應(yīng)用程序提供應(yīng)用程序的同步原語包含四個函數(shù)以在應(yīng)用程序的線程模式中處理互斥操作符mutexMutex具有鎖定和解鎖兩種狀態(tài).如果一個線程鎖定一個已鎖定的mutex,線程將會等待到mutex解鎖,然后再把它鎖定并調(diào)用返
15、回.如果一個以上的線程要求使用一個專用mutex,其中一個線程將會精確鎖定mutex,再把控制返還給調(diào)用者.作為一個密碼部件接口,CryptoKi為計算機或通信系統(tǒng)的安全提供了加解密基礎(chǔ).它除了使用PIN碼保護令牌上的加解密函數(shù)和密鑰外,還提供了密鑰不可萃取的能力,即可以通過專用接口使用該密鑰,然而無法以明文讀取該密鑰2.同時不可萃取密鑰的保護機制是獨立于CryptoKi的.這種密鑰不出卡的功能在大多數(shù)的商務(wù)、政務(wù)安全服務(wù)應(yīng)用中都是必須的基于此,CryptoKi通過令牌為應(yīng)用程序管理的對象提供了足夠安全的方式,使得開發(fā)者可以方便地設(shè)計和實現(xiàn)安全應(yīng)用服務(wù)參考文獻RSACORP.PKCS#11v2
16、.11,CryptographicTokenInterfaceStandard./rsalabs/PKCS,2005-7-11.LINNJ.通用安全應(yīng)用程序設(shè)計接口RFC1508M.香港:卓越出版社,1999.責(zé)任編輯憶雪DevelopmentofMulti-hardwareEncryptionBasedonPKCS#11Standard123GEPeng,WANGLei,LIXiangjun(1.XianMilitaryAffairsOfficeofNavyMissileDevices,Xian710061,China;2.ResearchInstituteofDataCommunicati
17、ons,BeijingAcademyofTelecommunicationsScience,Beijing100083,China;3DepartmentofComputerScieuce,XianUniversityofArtsandScience,XianShaanxi710065)Abstract:CryptoKiinterfaceisakindofstandardencryptionanddecryptioninterfaceinconformitywithPKCS#11standard,laiddownbyRSACompany.CryptoKiinterfacealsopresentsasetofdevelopinginterfacesofcryptographicservice,whichisindependentofencryptiondevicesandoperatingsystems.First,acommonCrypoKimodelwasbrieflyintroduced,andthenitslogicstructureandthemaininterfaceswereanalyzed.Atlast,apractical
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 國際工程總承包協(xié)議書
- 餐飲管理居間協(xié)議示例范本
- 二零二五年度辦事處爭議解決協(xié)議(農(nóng)產(chǎn)品市場糾紛處理)
- 人力資源培訓(xùn)實習(xí)協(xié)議書
- 個人借貸無抵押合同
- 民辦學(xué)校校長聘用合同范本
- 學(xué)校電腦采購合同范本
- 產(chǎn)研學(xué)合作協(xié)議書范本
- 會計兼職協(xié)議書范本
- 類風(fēng)濕治療協(xié)議書范本
- 前列腺癌診斷治療指南
- 中國銀行招聘筆試真題「英語」
- 江蘇省2023年對口單招英語試卷及答案
- GB/T 35506-2017三氟乙酸乙酯(ETFA)
- GB/T 25784-20102,4,6-三硝基苯酚(苦味酸)
- 特種設(shè)備安全監(jiān)察指令書填寫規(guī)范(特種設(shè)備安全法)參考范本
- 硬筆書法全冊教案共20課時
- 《長方形的面積》-完整版課件
- 五年級上冊英語Module6Unit1Youcanplaybasketballwell外研社課件
- 工業(yè)企業(yè)現(xiàn)場監(jiān)測工況核查表
- 沉淀池及排水溝清理記錄表
評論
0/150
提交評論