專利名稱:一種可信u盤、實現(xiàn)可信u盤安全性及其與計算機數(shù)據(jù)通信的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及可信、USB存儲技術(shù)、信息安全技術(shù)領(lǐng)域,特別涉及可信U盤技術(shù)領(lǐng)域。
背景技術(shù):
目前,USB接口已經(jīng)成為計算機的標(biāo)準(zhǔn)配置端口,而USB移動存儲設(shè)備,尤其是可信U盤,由于具有存儲速度快,容量大,使用方便、體積小等特點,在日常工作中得到越來越廣泛的應(yīng)用。
普通U盤是一個透明的移動存儲介質(zhì)設(shè)備,對數(shù)據(jù)的訪問沒有任何訪問控制,只要具有USB接口的接入方都可以無阻礙地使用。因此,U盤在給人們帶來便利的同時,也帶來了兩個重要問題信息泄密和惡意軟件的植入。
U盤造成信息泄密的原因有二①由于用戶在內(nèi)外網(wǎng)之間隨意拷貝數(shù)據(jù)造成內(nèi)網(wǎng)機密信息的泄露,這種泄密方式已經(jīng)成為互聯(lián)網(wǎng)時代信息泄密主要原因之一,而且使得內(nèi)外網(wǎng)物理隔離形同虛設(shè)。
②由于U盤體積小,容易丟失,因此,U盤的丟失也是信息泄密的重要原因之一。
當(dāng)然,在內(nèi)外網(wǎng)之間隨意拷貝數(shù)據(jù)也會造成惡意軟件的植入。
目前常用的解決U盤安全問題的方法有1、為了防止用戶在內(nèi)外網(wǎng)之問隨意拷貝數(shù)據(jù),采取的解決方案或安全U盤產(chǎn)品有1)采用移動存儲介質(zhì)管理制度來控制U盤的使用。那些需要保護敏感數(shù)據(jù)的特殊部門大多制定了USB移動存儲設(shè)備使用安全管理制度,由此帶來了管理成本的大大增加,同時,由于使用上的不便,很多部門的制度形同虛設(shè),給防泄密帶來較大的安全隱患。
2)采用口令認(rèn)證技術(shù)來控制對U盤的使用。
使用口令認(rèn)證技術(shù)的安全U盤,僅僅實現(xiàn)了主機對外部設(shè)備的單向認(rèn)證,并未對U盤本身以及U盤所處使用環(huán)境進行認(rèn)證。也就是說,這種技術(shù)無法證明U盤是否真正可信,例如,如果非授權(quán)用戶獲得了U盤口令,則該U盤就毫無可信而言了。
3)采用指紋識別技術(shù)來控制對U盤的使用。
那些使用指紋識別技術(shù)的安全U盤,僅僅實現(xiàn)了主機對外部設(shè)備的單向認(rèn)證,并未對U盤本身以及U盤所處使用環(huán)境進行認(rèn)證,而且只是將U盤與用戶身份進行了綁定。這種技術(shù)就是基于對人的信任,而人往往是造成泄密和引入惡意軟件的主要因素。也就是說,用戶可能通過指紋U盤故意或非故意將敏感信息拷貝到外網(wǎng),而系統(tǒng)無法控制和審計,且用戶在內(nèi)外網(wǎng)之間拷貝文件,可能無意之中引入惡意軟件。故這種認(rèn)證方式不是嚴(yán)格的,不能滿足特殊部門設(shè)備使用的安全性要求,無法真正回答設(shè)備是否可信,設(shè)備是否允許在系統(tǒng)中被使用,設(shè)備本身是否認(rèn)可使用環(huán)境,使用者是誰等問題。
4)采用終端安全管理軟件(例如防水墻產(chǎn)品)將內(nèi)網(wǎng)主機的USB端口禁用。
采用終端安全管理軟件來禁用內(nèi)網(wǎng)主機的USB端口,可以防止一切設(shè)備通過USB端口對主機進行訪問,但是,無法實現(xiàn)靈活的權(quán)限管理。
2、為了防止U盤丟失之后其信息的泄漏,目前主要的解決辦法有兩種方式1)采用軟件加密方式,即通過主機上安裝的加密軟件對U盤存儲的數(shù)據(jù)進行加密;使用軟件加密方式的安全U盤,由于加密通過主機完成,相比硬件加密而言,由于加密強度不夠、加密密鑰存放不安全等問題,存在較大安全隱患,而且U盤上存儲的加密文件或數(shù)據(jù)容易被轉(zhuǎn)移出來進行長時間分析與破解。
2)采用硬件加密方式即通過在U盤上增加具有加密功能的芯片實現(xiàn)片上加密。
采用硬件加密方式的安全U盤,相對軟件加密方式而言,加密強度較高,而且由于加密密鑰存儲在防篡改硬件上,因此,安全性相對于軟件加密方式而言較高,但是,仍然無法解決U盤上數(shù)據(jù)被轉(zhuǎn)移分析的問題。
3、在U盤的文件系統(tǒng)中存放標(biāo)識符的方式提供權(quán)限管理,但是這種方式依賴于Windows文件系統(tǒng)格式,很容易被破解。
綜上所述,上述這些方法都只能解決U盤安全使用中的部分問題,或者在一定程度上提高U盤的安全性,并不能完全解決U盤使用中的所有安全問題,也就是說,所有這些U盤都是不可信的。
發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種滿足可信組織要求、高安全性能的可信U盤,以解決現(xiàn)有可信U盤使用過程中存在的上述安全問題,并提供可信U盤與計算機的通信方法。
本發(fā)明的技術(shù)方案如下一種可信U盤裝置,包括主機端1、所述主機端1存在1-4個USB接口11、CA中心3、內(nèi)存20、IO控制器30和閃存40,還包括支持RSA、DH、ElGamal、ECC公鑰密碼算法與DES、3DES、AES對稱密碼算法和第三方加密算法的加密協(xié)處理器50、按照J(rèn)ava Card技術(shù)規(guī)范編制的智能卡操作系統(tǒng)203且通過所述加密協(xié)處理器50完成加解密運算的Z32UF安全控制器60;所述加密協(xié)處理器50集成在所述Z32UF安全控制器60芯片上;所述內(nèi)存20、IO控制器30、閃存40、加密協(xié)處理器50、Z32UF安全控制器60構(gòu)成可信U盤2,所述可信U盤2通過插入所述USB接口11連接到主機端1,所述主機端1通過網(wǎng)絡(luò)方式與所述CA中心3連接,并能獲得所述CA中心3提供的證書申請和驗證服務(wù);所述主機端1與所述可信U盤2之間可實現(xiàn)雙向認(rèn)證,所述主機端1與所述可信U盤2之間通過兩種SCSI指令傳輸數(shù)據(jù)相聯(lián)系。
在所述可信U盤2的所述Z32UF安全控制器芯片60上安裝有按照J(rèn)ava Card技術(shù)規(guī)范編制的智能卡操作系統(tǒng)203,在所述智能卡操作系統(tǒng)203上運行有可信U盤控制程序201、控制閃存讀寫的應(yīng)用程序301完成非授權(quán)訪問次數(shù)超過閾值的邏輯判斷并實現(xiàn)自銷毀的程序111、用于完成證書認(rèn)證的應(yīng)用程序112和Applet認(rèn)證程序113;所述智能卡操作系統(tǒng)203通過所述加密協(xié)處理器50完成加解密運算,同時,①在所述智能卡與U盤復(fù)合設(shè)備2內(nèi)保存一個與之相關(guān)的數(shù)字設(shè)備證書,代表其身份,在其接入端也保存一個代表其接入端身份的數(shù)字證書,②所述主機端1具備標(biāo)準(zhǔn)的證書申請方式;實現(xiàn)可信U盤安全性及實現(xiàn)計算機與可信U盤數(shù)據(jù)通信的方法如下①可信U盤完成非授權(quán)訪問次數(shù)超過閾值的邏輯判斷并實現(xiàn)自銷毀的方法,②基于數(shù)字證書的雙向認(rèn)證機制以提高可信U盤訪問安全性的方法,③通過Applet認(rèn)證程序控制可信U盤訪問的方法,④通過定義第二種SCSI指令實現(xiàn)計算機與可信U盤數(shù)據(jù)通信的方法。
在所述可信U盤2的操作系統(tǒng)203上,安裝的所述自銷毀程序111可以對USB接口訪問進行控制、完成非授權(quán)訪問次數(shù)超過閾值的邏輯判斷,并實現(xiàn)銷毀動作;該自銷毀方法的步驟如下(1)、判斷步驟①,所述智能卡與U盤復(fù)合設(shè)備1收到“訪問嘗試”的指令后,判斷其是否是“合法訪問”①,如為“否”則進入審計步驟③,如為“是”則進入“結(jié)束”步驟②;(2)、審計步驟③,用于累計“非法訪問嘗試”信號的次數(shù),將n加1,進入下一步“是否超過閾值“m”的步驟④;(3)、判斷步驟④,經(jīng)過“n+1”次的操作后,將信號送入“是否超過閾值m”的步驟⑤,如為“是”則進入“格式化操作”步驟⑤,如為“否”則進入“結(jié)束”步驟②;(4)“格式化操作”步驟⑤,系統(tǒng)接收到大于或等于“m”次的“非法訪問嘗試”后,所述對智能卡與U盤復(fù)合設(shè)備1存儲內(nèi)容進行格式化的自銷毀操作。
所述n為系統(tǒng)審計的非法訪問嘗試的次數(shù),所述m為系統(tǒng)設(shè)定的允許非授權(quán)訪問次數(shù)的閾值。
基于數(shù)字證書的雙向認(rèn)證機制以提高可信U盤訪問安全性的方法如下①所述可信U盤設(shè)備證書生成、加載,②所述主機端1證書生成③所述主機端1和所述可信U盤2實現(xiàn)雙向認(rèn)證。
所述可信U盤2設(shè)備證書生成、加載的步驟如下
①所述主機端1向所述可信U盤2發(fā)起建立通道的請求,②所述可信U盤2響應(yīng)并建立通道,③所述主機端1請求所述可信U盤2生成RSA密鑰對,④所述可信U盤2響應(yīng),并將公鑰導(dǎo)出,返回給所述主機端1,⑤所述主機端1用所述可信U盤2的公鑰向所述CA中心3提出制作證書請求,⑥所述CA中心3生成所述可信U盤2的證書并返回給所述主機端1,⑦所述主機端1將所述可信U盤2證書寫入到所述可信U盤2中,同時將所述CA中心3的根證書也寫入到所述可信U盤2內(nèi)進行存儲,⑧所述可信U盤2成功執(zhí)行返回。
所述主機端1的證書生成的步驟如下①所述主機端1證書生成,以標(biāo)準(zhǔn)的證書申請方式向所述CA中心(3)申請證書,②所述CA中心3將生成的所述主機端1證書返回給所述主機端1。
所述主機端1和所述可信U盤2實現(xiàn)雙向認(rèn)證的步驟如下①所述主機端1發(fā)起認(rèn)證請求,②所述可信U盤2做出認(rèn)證請求的響應(yīng),如果所述可信U盤2拒絕認(rèn)證請求,雙向認(rèn)證失敗,
③所述主機端1通過與所述可信U盤2交互獲取所述可信U盤(2)的設(shè)備證書④所述可信U盤2將自身的數(shù)字證書返回給所述主機端1,⑤所述主機端1向所述CA中心3發(fā)起證書驗證請求,以驗證所述可信U盤2的設(shè)備證書的有效性,⑥所述CA中心3將驗證結(jié)果返回給所述主機端1,如果所述CA中心3認(rèn)為所述可信U盤2的證書無效,雙向認(rèn)證失敗,⑦所述主機端1生成主機端的挑戰(zhàn)數(shù)據(jù),并將此數(shù)據(jù)和所述主機端1證書一起發(fā)送到所述可信U盤2,⑧所述智能卡與U盤復(fù)合設(shè)備使用保存的所述CA中心3的證書對所述主機端1證書進行驗證,通過后使用所述可信U盤2內(nèi)的證書對應(yīng)的私鑰對主機發(fā)送挑戰(zhàn)數(shù)據(jù)的進行簽名,得到“簽名結(jié)果”;同時生成所述可信U盤2的挑戰(zhàn)數(shù)據(jù),與“簽名結(jié)果”并發(fā)送回所述主機端1,如果所述可信U盤2認(rèn)為所述主機端1的證書無效,雙向認(rèn)證失敗,⑨所述主機端1驗證所述可信U盤2計算的“簽名結(jié)果”,同時對所述可信U盤2產(chǎn)生的挑戰(zhàn)數(shù)據(jù)進行數(shù)字簽名,送到所述可信U盤2內(nèi),
⑩所述可信U盤2對所述主機端1產(chǎn)生的“簽名結(jié)果”進行驗證,成功后雙向認(rèn)證完成;如果所述可信U盤2內(nèi)對所述主機端1產(chǎn)生的簽名驗證失敗,則雙向認(rèn)證失敗。
通過Applet認(rèn)證程序控制可信U盤訪問方法的步驟如下①、待處理數(shù)據(jù)101,所述主機端1發(fā)送數(shù)據(jù)到所述可信U盤2,此數(shù)據(jù)分為三種認(rèn)證數(shù)據(jù)a,寫入/讀取閃存的請求數(shù)據(jù)b,其他數(shù)據(jù)c,三種數(shù)據(jù)被所述可信U盤的控制程序201接受,進入下一步,②、所述可信U盤的控制程序201檢測所述待處理數(shù)據(jù)101的類型201,③、如果是所述認(rèn)證數(shù)據(jù)a,發(fā)送到所述Applet認(rèn)證程序113進行處理,④、所述Applet認(rèn)證程序113對所述認(rèn)證數(shù)據(jù)a進行身份認(rèn)證處理,⑤、判斷認(rèn)證成功否?如果身份認(rèn)證成功,所述Applet認(rèn)證程序113通過所述智能卡操作系統(tǒng)203,激活所述閃存訪問標(biāo)記202,進入認(rèn)證成功213,⑥、否則,進入認(rèn)證失敗214,⑦、如果是非認(rèn)證數(shù)據(jù),但系所述寫入/讀取閃存的請求數(shù)據(jù)b,則進入檢查閃存訪問標(biāo)記215,
⑧、判斷檢查閃存訪問標(biāo)記215是否被激活216,如果未激活,進入103,拋棄該數(shù)據(jù),⑨、如果已激活,將該數(shù)據(jù)寫入到所述閃存40中保存數(shù)據(jù),否則進入待處理數(shù)據(jù)101,返回相應(yīng)的錯誤信息,⑩、如果是所述其他數(shù)據(jù)c,則直接進入103扔掉,不對外返回任何信息。
所述主機端1與所述可信U盤2間實現(xiàn)數(shù)據(jù)通信的第一種指令為標(biāo)準(zhǔn)SCSI指令101,在所述智能卡操作系統(tǒng)203上運行的可信U盤控制程序201用于處理存儲的該標(biāo)準(zhǔn)SCSI指令101,所述主機端1與所述可信U盤2間實現(xiàn)數(shù)據(jù)通信的第二種指令為SCSI指令102,所述主機端1與所述可信U盤2進行數(shù)據(jù)通信的方法與步驟為①首先對所述可信U盤2定義第二種SCSI指令102的數(shù)據(jù)格式,②同時利用該第二種SCSI指令102,實現(xiàn)主機端1與所述可信U盤2之間的數(shù)據(jù)通信。
定義所述第二種SCSI指令102數(shù)據(jù)格式的過程如下,①、所述標(biāo)準(zhǔn)SCSI指令101的格式如下
其中“SCSI命令頭”是外界向設(shè)備傳送的命令數(shù)據(jù),“數(shù)據(jù)”部分可以是外界發(fā)送的數(shù)據(jù),也可以是設(shè)備向外界返回的數(shù)據(jù),
②、所述智能卡指令103的格式如下
其中,“CLA”代表了命令類,“INS”代表了指令,“P1和P2”代表了參數(shù),“Lc”是“Data”域數(shù)據(jù)長度,“Data”是“Lc”指示的數(shù)據(jù),“Le”是期望智能卡返回的數(shù)據(jù)長度。
③、所述第二種SCSI指令102的格式如下
其中“標(biāo)記104”為智能卡指令標(biāo)記(104),定義其格式如下
利用該第二種SCSI指令102,實現(xiàn)所述主機端1與所述可信U盤2之間數(shù)據(jù)通信的步驟如下①所述主機端1發(fā)送標(biāo)記為“命令”的數(shù)據(jù),②所述主機端1發(fā)送標(biāo)記為“響應(yīng)”的數(shù)據(jù),取回響應(yīng)結(jié)果,③所述主機端1發(fā)送標(biāo)記為“狀態(tài)字”的數(shù)據(jù),取回狀態(tài)字。
1)、所述主機端1發(fā)送標(biāo)記為“命令”的數(shù)據(jù),將所述智能卡命令指令103打包成所述SCSI指令102的數(shù)據(jù),按照智能卡指令標(biāo)記104中“命令”標(biāo)記處理,然后發(fā)送給所述可信U盤2,2)、所述主機端1向所述可信U盤2發(fā)送標(biāo)記為“響應(yīng)”的數(shù)據(jù),所述可信U盤2響應(yīng)結(jié)果的處理,由所述可信U盤2上的所述Z 32UF安全控制器60處理,其步驟為①標(biāo)記響應(yīng)數(shù)據(jù),按照智能卡指令標(biāo)記104中“響應(yīng)″標(biāo)記處理,②標(biāo)記狀態(tài)字,按照智能卡指令標(biāo)記104中“狀態(tài)字”標(biāo)記處理,3)、所述主機端1向所述可信U盤2發(fā)送標(biāo)記為“狀態(tài)字”的數(shù)據(jù),所述主機端1通過所述第二種SCSI指令102取得響應(yīng)數(shù)據(jù),直到取完,其步驟為①如果存在,即獲得響應(yīng)數(shù)據(jù)②獲得狀態(tài)字。
所述第二種SCSI指令102的數(shù)據(jù)格式,即對所述可信U盤2的通信協(xié)議。
所述加解密運算用于驗證和簽名。
由于采用以上技術(shù)方案,本發(fā)明解決了普通U盤使用過程中存在的多種不安全問題,本發(fā)明的顯著特點在于除了具有普通U盤的特點(使用USB接口的移動存儲設(shè)備)以外,還全面考慮了安全的各個方面1、安全域分級管理(內(nèi)外網(wǎng)隔離)功能支持在多種不同安全級別環(huán)境下使用①雙向認(rèn)證技術(shù)可信U盤私鑰在硬件上生成,支持PK1認(rèn)證。
②多證書可技術(shù)擴展性、兼容性。
2、防遺失泄密功能存儲設(shè)備遺失的情況下,信息不會泄漏①存儲加密技術(shù)采用硬件芯片加密技術(shù),支持RSA、ECC、DH、ElGamal公鑰算法,DES、3DES、AES對稱密碼算法和第三方加密算法以及多種專用密碼算法。
②自銷毀技術(shù)對非法訪問企圖進行審計,超過閾值自動進行格式化操作。
采用上述技術(shù)方案后,本可信U盤完全支持TCG組織提出的關(guān)于可信存儲設(shè)備的功能定義。
TCG組織提出的關(guān)于可信存儲設(shè)備的功能定義①、支持登錄與連接(enrollment&connection)②、提供受保護存儲(protected storage)③、鎖定與加密(10cking&encryption)④安全性相對于軟件加密方式而言較高,但是,仍然無法解決被轉(zhuǎn)移分析的問題。
⑤、密碼服務(wù)(cryptographic service)
⑥、一些主機認(rèn)可的存儲設(shè)備特征(authorizing SD featuresets to Hosts)⑦、嵌入式軟件的安全下載(secure download of firmware)本發(fā)明與已有幾種安全U盤的顯著區(qū)別還可由下表所示
圖1--普通U盤的物理結(jié)構(gòu)示意2--可信U盤的物理結(jié)構(gòu)示意3--可信U盤內(nèi)軟件層次結(jié)構(gòu)4--可信U盤自銷毀技術(shù)操作流程示意5--本發(fā)明主機端和可信U盤的接入關(guān)系示意6--本發(fā)明可信U盤的設(shè)備證書生成、加載示意7--本發(fā)明主機端證書生成示意圖
圖8--本發(fā)明主機端和可信U盤實現(xiàn)雙向認(rèn)證過程示意9--Applet認(rèn)證程序113控制可信U盤訪問的示意10--Applet認(rèn)證程序控制可信U盤訪問的工作流程11--主機端1與普通U盤通信框12--主機端1與智能卡通信框13--主機端1與可信U盤2通信框14--主機端1通過兩種SCSI指令與可信U盤2通信示意15--主機端1向可信U盤2發(fā)送的三種數(shù)據(jù)示意圖其中,1--主機端,2--可信U盤,20--內(nèi)存,30--IO控制器,40--閃存,50--加密協(xié)處理器,60--Z32UF60安全控制器,3--CA中心,對證書申請、驗證提供服務(wù)的權(quán)成機構(gòu),111--自銷毀程序,112--用于完成證書認(rèn)證的應(yīng)用程序,113--Applet認(rèn)證程序,201--可信U盤控制程序,202--閃存訪問標(biāo)記,203--智能卡操作系統(tǒng),301--控制閃存讀寫的應(yīng)用程序,n--系統(tǒng)設(shè)定的“非法訪問嘗試”的次數(shù),m--系統(tǒng)設(shè)定的允許非授權(quán)訪問次數(shù)的閾值。
具體實施例方式
可信計算組織對可信設(shè)備提出了其必備的屬性、功能與特點1、可信計算組織(TCG,Trusted Computing Group)對“可信″定義為可信是一種期望,在這種期望下設(shè)備按照特定的目的以特定的方式運轉(zhuǎn)。
根據(jù)可信計算組織的可信計算平臺標(biāo)準(zhǔn)實施規(guī)范,可信計算應(yīng)包括以下三個屬性與功能①、確保用戶身份的唯一性,用戶工作空問的完整性與私有性。
②、確保硬件環(huán)境配置、OS內(nèi)核、服務(wù)及應(yīng)用程序的完整性。
③、確保存儲、處理、傳輸?shù)男畔⒌谋C苄?完整性。
2、可信計算組織針對不同的終端類型和平臺形式制訂出了一系列完整的規(guī)范,例如個人電腦、服務(wù)器、移動電話、通信網(wǎng)絡(luò)、軟件等等,這些規(guī)范所定義的可信平臺模塊(TrustedPlatform Module,TPM)通常以硬件的形式被嵌入到各種計算終端以用于提供更可信的運算基礎(chǔ)。
3、可信計算平臺將加密、解密、認(rèn)證等基本的安全功能寫入硬件芯片,并確保芯片中的信息不能在外部通過軟件隨意獲取。
除了具有普通U盤(使用USB接口的移動存儲設(shè)備)的特點以外,可信U盤還全面考慮了安全的各個方面3.1、安全域分級管理(內(nèi)外網(wǎng)隔離)功能支持在多種不同安全級別環(huán)境下使用①雙向認(rèn)證技術(shù)可信U盤私鑰在硬件上生成,支持PK1認(rèn)證
②多證書技術(shù)可擴展性、兼容性3.2、防遺失泄密功能(存儲設(shè)備遺失的情況下,信息不會泄漏)①存儲加密技術(shù)采用硬件芯片加密技術(shù),支持公鑰算法(RSA、ECC等)、對稱算法(DES、3DES等)以及多種專用密碼算法。
②自銷毀技術(shù)對非法訪問企圖進行審計,超過閾值自動進行格式化操作。
本發(fā)明中,可信U盤2的硬件與普通U盤不同,普通U盤主要由四個物理單元構(gòu)成Flash控制器10、內(nèi)存20、IO控制器30和閃存40。
與普通U盤類似,可信U盤的物理組成主要由四個主要元素構(gòu)成Z32UF控制器、內(nèi)存20、IO控制器30和閃存40。Flash控制器10由Z32UF控制器(包括智能卡控制器和USB控制器)60代替,除此之外還增加一個可支持RSA、DH、ElGamal、ECC公鑰密碼算法與DES、3DES、AES對稱密碼算法和第三方加密算法的加密協(xié)處理器50;在Z32UF安全控制器60上安裝有按照J(rèn)ava Card技術(shù)規(guī)范編制的智能卡操作系統(tǒng)203,在其上運行有控制程序201,應(yīng)用程序301,自銷毀程序111,用于完成證書認(rèn)證的應(yīng)用程序112和Applet認(rèn)證程序113。
通過運行在該智能卡操作系統(tǒng)203上的上述程序111--113及通過第二種SCSI指令,實現(xiàn)了可信U盤的自銷毀技術(shù)、雙向認(rèn)證、控制閃存讀寫技術(shù)和可信U盤與計算機的數(shù)據(jù)通信。使得本發(fā)明可信U盤完全支持可信計算組織提出的上述關(guān)于可信存儲設(shè)備的功能、通信、定義與特點,分述如下1、自銷毀技術(shù)在可信U盤2上采用自帶的基于Java虛擬機的操作系統(tǒng)203,其上運行有自銷毀程序111,因此,可以實現(xiàn)自銷毀功能。
所謂“白銷毀″功能指的是操作系統(tǒng)對訪問企圖進行審計,當(dāng)不成功的訪問企圖超過一定上限閾值時,系統(tǒng)自動將U盤存儲空間格式化,以防止可信U盤上存儲的機密數(shù)據(jù)被廢授權(quán)閱讀或拷貝,適用于對機密性要求比較高的情況。
可信U盤對訪問嘗試進行審計,如果連續(xù)非法訪問嘗試次數(shù)n超過閾值m,則對可信U盤進行格式化操作,具體操作流程如附圖3所示。
該自銷毀方法的步驟如下(1)、判斷步驟①,可信U盤2收到“訪問嘗試”指令后,判斷其是否是“合法訪問”①,如為“否”則進入審計步驟③,如為“是”則進入“結(jié)束”步驟②,(2)、審計步驟③,用于累計“非法訪問嘗試”信號的次數(shù),將n加1”,進入下一步“是否超過閾值m”步驟④;(3)、判斷步驟④,經(jīng)過“n+1”的判斷后,將信號送入“是否超過閾值m”步驟⑤,如為“是”則進入“格式化操作”步驟⑤,如為“否”則進入“結(jié)束”步驟②,(4)“格式化操作”步驟⑤,系統(tǒng)接收到大于或等于“m”次的“非法訪問嘗試”后,對可信U盤存儲內(nèi)容進行格式化的自銷毀操作。
其中n為系統(tǒng)審計的非法訪問嘗試的次數(shù),m為系統(tǒng)設(shè)定的允許非授權(quán)訪問次數(shù)的閥值。
其中閥值m的取值范圍為小于1000的正整數(shù)2、基于數(shù)字證書的雙向認(rèn)證機制以提高可信U盤訪問安全性的方法如前所述,普通U盤是一種具有USB接口方式的移動存儲設(shè)備,但它也是一個透明設(shè)備,即沒有訪問控制和身份認(rèn)證,不適合在安全性要求較高的用戶使用。通過加入基于數(shù)字證書的雙向認(rèn)證機制,實現(xiàn)對U盤訪問的安全性控制,可以解決特殊部門對U盤安全性需求。
數(shù)字證書的引入是為了結(jié)合現(xiàn)有系統(tǒng)的IT架構(gòu),使得U盤設(shè)備能安全有效地引入到使用系統(tǒng)中。
數(shù)字證書是一種權(quán)威機構(gòu)(CA)認(rèn)可的數(shù)字身份ID,廣泛用于身份認(rèn)證。數(shù)字證書對應(yīng)著一對非對稱密鑰,普遍使用的密鑰是長度1024位的RSA密鑰對。
雙向認(rèn)證是既認(rèn)證客戶端也認(rèn)證服務(wù)器端身份的認(rèn)證方式。對于U盤而言,U盤的接入端,如PC,可以視為服務(wù)器端,而U盤本身可視為客戶端。
為達(dá)到雙向認(rèn)證的目的,在可信U盤的操作系統(tǒng)203上運行有可進行雙向認(rèn)證的應(yīng)用程序112,可信U盤2內(nèi)保存一個與之相關(guān)的數(shù)字設(shè)備證書,代表其身份。在其接入端也將保存一個代表接入端身份的數(shù)字證書。主機端1通過設(shè)備證書對可信U盤2進行認(rèn)證,可信U盤2通過主機證書對主機端1進行認(rèn)證。
為了驗證證書的有效性,需要一個CA中心,為證書驗證提供服務(wù)。但由于接入方IT環(huán)境是多變的,如多層次CA架構(gòu)。本發(fā)明中僅體現(xiàn)一個CA中心,其內(nèi)部的復(fù)雜性不考慮。
如附圖5所示,主機端1至少存在一個USB接口11,可信U盤2通過插入USB接口11連接到主機端1。主機端1通過網(wǎng)絡(luò)方式與CA中心3連接,并能獲得CA中心3提供的證書服務(wù),如證書申請和驗證等。
附圖6示出了可信U盤設(shè)備證書生成與加載過程,其步驟如下①所述主機端1向所述可信U盤2發(fā)起建立通道的請求,②所述可信U盤2響應(yīng)并建立通道,③所述主機端1請求所述可信U盤2生成公私鑰對,④所述可信U盤2響應(yīng),并將公鑰導(dǎo)出,返回給所述主機端1,⑤所述主機端1用所述可信U盤2的公鑰向所述CA中心3提出制作證書請求,⑥所述CA中心3生成所述可信U盤2的證書并返回給所述主機端1,
⑦所述主機端1將所述可信U盤2證書寫入到所述可信U盤2中,同時將所述CA中心3的根證書也寫入到所述可信U盤2內(nèi)進行存儲,⑧所述可信U盤2成功執(zhí)行返回。
附圖7說明主機端證書生成過程,主機端證書生成可以參照標(biāo)準(zhǔn)的證書申請方式進行,其步驟為①主機端1證書生成,以標(biāo)準(zhǔn)的證書申請方式向所述CA中心3申請證書,②CA中心3將生成的主機端1證書返回、保存在主機端1,包括RSA密鑰對。
附圖8說明主機端和可信U盤的雙向認(rèn)證過程,其步驟為①所述主機端1發(fā)起認(rèn)證請求,②所述可信U盤2做出認(rèn)證請求的響應(yīng),如果所述可信U盤2拒絕認(rèn)證請求,雙向認(rèn)證失敗,③所述主機端1通過與所述可信U盤2交互獲取所述可信U盤2的設(shè)備證書④所述可信U盤2將自身的數(shù)字證書返回給所述主機端1,⑤所述主機端1向所述CA中心3發(fā)起證書驗證請求,以驗證所述可信U盤2的設(shè)備證書的有效性,
⑥所述CA中心3將驗證結(jié)果返回給所述主機端1,如果所述CA中心3認(rèn)為所述可信U盤2的證書無效,雙向認(rèn)證失敗,⑦主機端1生成主機端的挑戰(zhàn)數(shù)據(jù),并將此數(shù)據(jù)和主機端1證書一起發(fā)送到可信U盤2,⑧可信U盤2使用保存的CA中心3的證書對主機端1證書進行驗證,通過后使用可信U盤2內(nèi)的證書對應(yīng)的私鑰對主機發(fā)送挑戰(zhàn)數(shù)據(jù)的進行簽名,得到“簽名結(jié)果”;同時生成可信U盤2的挑戰(zhàn)數(shù)據(jù),與“簽名結(jié)果”并發(fā)送回所述主機端1,如果可信U盤2認(rèn)為主機端1的證書無效,雙向認(rèn)證失敗,⑨主機端1驗證可信U盤2計算的“簽名結(jié)果”,同時對可信U盤2產(chǎn)生的挑戰(zhàn)數(shù)據(jù)進行數(shù)字簽名,送到可信U盤2內(nèi),⑩可信U盤2對主機端1產(chǎn)生的“簽名結(jié)果”進行驗證,成功后雙向認(rèn)證完成;如果可信U盤2內(nèi)對主機端1產(chǎn)生的簽名驗證失敗,則雙向認(rèn)證失敗。
上述主機端1和智能卡與U盤復(fù)合設(shè)備2間完成基于證書的雙向認(rèn)證的10個主要步驟中,交互都會涉及三個命令過程,即發(fā)送“XXX命令”,發(fā)送“響應(yīng)命令”和發(fā)送“狀態(tài)字命令”。前者是主機端1向智能卡與U盤復(fù)合設(shè)備2發(fā)送的具體的命令,如認(rèn)證請求,“響應(yīng)”和“狀態(tài)字”命令則是主機端1獲得智能卡與U盤復(fù)合設(shè)備2的對具體命令的處理結(jié)果。一般地,如果“狀態(tài)字”命令得到的結(jié)果是0x9000表示處理結(jié)果是預(yù)期的,否則認(rèn)為出現(xiàn)了錯誤或警告。
為了突出本發(fā)明中雙向認(rèn)證過程的主要步驟的實施,下面的介紹將不對每個步驟所需要的三個命令過程進行說明。另外,下面步驟中涉及的數(shù)字證書是標(biāo)準(zhǔn)的X.509證書格式,其中CERT(1)代表主機端1的數(shù)字證書,CERT(2)代表智能卡和U盤復(fù)合設(shè)備2的數(shù)字證書,CERT(3)代表CA中心3的數(shù)字證書。
步驟1主機端1向智能卡與U盤復(fù)合設(shè)備2發(fā)送認(rèn)證請求命令“AUTH REQ”。
步驟2主機端1獲得智能卡與U盤復(fù)合設(shè)備2對認(rèn)證請求命令的響應(yīng)和狀態(tài)字。如果狀態(tài)字為0x9000,表示智能卡與U盤復(fù)合設(shè)備2接受了主機端1的認(rèn)證請求。如果非0x9000,表示智能卡與U盤復(fù)合設(shè)備2拒絕了認(rèn)證請求,此時雙向認(rèn)證失敗,返回0。
步驟3主機端1向智能卡與U盤復(fù)合設(shè)備2發(fā)送獲取證書命令“GET CERT”。
步驟4主機端1獲得智能卡與U盤復(fù)合設(shè)備2對獲得證書認(rèn)證請求命令的響應(yīng)和狀態(tài)字。如果狀態(tài)字為0x9000,表示智能卡與U盤復(fù)合設(shè)備2接受了主機端1的獲取證書命令,此時在“響應(yīng)命令”中得到智能卡與U盤復(fù)合設(shè)備2保存的數(shù)字證書CERT(2);如果狀態(tài)字為非0x9000,表示“GET CERT”命令失敗,雙向認(rèn)證失敗,返回0。
步驟5主機端1向CA中心3發(fā)起驗證證書的請求“CERTVERI”,要求驗證從智能卡與U盤復(fù)合設(shè)備2獲取的證書CERT(2)。
步驟6主機端1接收到CA中心3的返回值。如果返回值是1,表示證書驗證成功;如果返回值是0,表示證書驗證失敗,此時雙向認(rèn)證失敗,返回0。
步驟7主機端1調(diào)用系統(tǒng)函數(shù)rand()生成16字節(jié)的隨機數(shù)RAND(1),并將主機端1的證書CERT(1)連接后,通過“HOST VERI”,命令發(fā)送給智能卡與U盤復(fù)合設(shè)備2。智能卡與U盤復(fù)合設(shè)備2將臨時保存主機端1的證書CERT(1)。
步驟8智能卡與U盤復(fù)合設(shè)備2使用已經(jīng)保存的CERT(3),對CERT(1)進行證書驗證。如果驗證失敗,將通過狀態(tài)字告訴給主機端1,表明驗證失敗,此時雙向認(rèn)證失敗,返回0;如果驗證通過,智能卡與U盤復(fù)合設(shè)備2將對RAND(1)進行數(shù)字簽名SIG(2),并內(nèi)部生成一個16字節(jié)的隨機數(shù)RAND(2),將SIG(2)和RAND(2)連接。主機端1通過“響應(yīng)”和“狀態(tài)字”命令獲得最終的結(jié)果。如果狀態(tài)字是0x9000,則對主機端的驗證通過,否則雙向驗證失敗,返回0。
步驟9主機端1得到RAND(2),用主機端1的證書對應(yīng)的私鑰進行簽名SIG(1),并將SIG(1)按照“UD VERI”指令發(fā)送給智能卡與U盤復(fù)合設(shè)備2,以驗證智能卡與U盤復(fù)合設(shè)備2。
步驟102獲得SIG(1)后,用臨時保存的CERT(1)進行驗證。如果驗證通過,狀態(tài)字設(shè)為0x9000;如果驗證失敗,狀態(tài)字設(shè)為一個非0x9000的值,表明雙向認(rèn)證失敗。主機端1獲得狀態(tài)字后,如果是0x9000,此時基于數(shù)字證書的雙向認(rèn)證結(jié)束,返回主機端1,否則返回0,表示雙向認(rèn)證失敗。
3、通過Applet認(rèn)證程序控制可信U盤訪問的方法U盤是廣為使用的移動存儲設(shè)備,多用于數(shù)據(jù)交換目的。但U盤自身缺乏安全保護機制,為U盤的使用帶來了安全隱患。
在U盤上增加訪問控制方式有口令,指紋等。但安全性較差。
智能卡技術(shù)也是一種訪問控制技術(shù),在身份認(rèn)證、設(shè)備認(rèn)證領(lǐng)域廣泛應(yīng)用。按照卡內(nèi)片上系統(tǒng)(SoC)實現(xiàn)機制分為文件系統(tǒng)卡和智能卡。多應(yīng)用智能卡是一種基于虛擬機技術(shù)的智能卡技術(shù)。
目前,智能卡技術(shù)多采用Java卡技術(shù),按照J(rèn)ava卡技術(shù)開發(fā)的智能卡能達(dá)到的安全級別為EAL4+。
智能卡技術(shù)已經(jīng)取代文件系統(tǒng)卡技術(shù)被廣泛應(yīng)用于各個領(lǐng)域,如金融、電信、政府、軍隊等。
本發(fā)明中,將智能卡技術(shù)(Java卡)和可信U盤控制技術(shù)相結(jié)合,并利用智能卡上的Applet認(rèn)證程序113,以實現(xiàn)可信U盤資源的控制訪問,最終使得U盤成為可信U盤。
因為Applet認(rèn)證程序113是一個運行在智能卡操作系統(tǒng)203上的應(yīng)用程序,可按照某一個邏輯實現(xiàn)訪問控制。而且Applet認(rèn)證程序113可以下載和刪除,只要滿足一定的安全條件,可使得具有智能卡特征的安全可信U盤使用更加安全和靈活。
圖9是基于智能卡上Applet認(rèn)證程序113控制可信U盤訪問的示意圖。圖中虛線分割線的左邊代表可信U盤外部系統(tǒng),如PC機,虛線右邊代表本文所述的可信U盤。其中,主機端1可信U盤2所依附的主機,如PC機。
在可信U盤2內(nèi)除了可信U盤控制程序201外,還存在一個按照J(rèn)ava卡技術(shù)規(guī)范實現(xiàn)的智能卡操作系統(tǒng)203。運行在其上的Applet認(rèn)證程序113,其內(nèi)部實現(xiàn)了對閃存資源訪問控制邏輯。
智能卡操作系統(tǒng)203在內(nèi)部設(shè)置一個控制可信U盤閃存讀寫的標(biāo)記202,該標(biāo)記保存在受智能卡操作系統(tǒng)保護的區(qū)域內(nèi)。即,除智能卡操作系統(tǒng)203外,其他的控制程序不能訪問。但Applet認(rèn)證程序113是可以控制這個標(biāo)記的當(dāng)Applet認(rèn)證程序允許(通過其實現(xiàn)的內(nèi)部訪問控制后)外界讀寫可信U盤時將激活這個標(biāo)記,否則將使這個標(biāo)記失效。
當(dāng)可信U盤控制程序201接收到定向到智能卡操作系統(tǒng)203的數(shù)據(jù)時①,將交給Applet認(rèn)證程序113進行處理②,處理的數(shù)據(jù)包括認(rèn)證請求,在智能卡操作系統(tǒng)203的支持下,完成身份認(rèn)證工作。
認(rèn)證成功后,將通過Applet認(rèn)證程序113激活閃存訪問標(biāo)記202③,否則使之無效。Applet認(rèn)證程序113也處理外界使閃存訪問標(biāo)記202無效的指令,此時將使標(biāo)記無效。即,閃存40不允許讀寫操作,由當(dāng)定向到閃存40的指令時,首先檢測閃存訪問標(biāo)記202④,如果是激活狀態(tài)就允許進入閃存40⑤;否則直接扔掉,可信U盤控制程序201對此標(biāo)記是只讀的,不能修改。
附圖10示出了本發(fā)明可信U盤(認(rèn)證過程和寫入/讀取兩個過程)的工作流程,具體實施步驟如下可信U盤的外系統(tǒng)-主機端1發(fā)送待處理數(shù)據(jù)101到可信U盤2,此數(shù)據(jù)被可信U盤控制程序201接受。此控制程序201將檢測該數(shù)據(jù)包的類型,如果是認(rèn)證數(shù)據(jù)a,將發(fā)送到Applet認(rèn)證程序113進行處理。Applet認(rèn)證程序113按照其內(nèi)置的邏輯進行身份認(rèn)證處理211,如果身份認(rèn)證211成功,Applet認(rèn)證程序113通過智能卡操作系統(tǒng)203的幫助,激活閃存訪問標(biāo)記202,進入認(rèn)證成功213,否則進入認(rèn)證失敗214。
如果是非認(rèn)證數(shù)據(jù),但系寫入/讀取閃存的請求數(shù)據(jù)b,此時需要檢查215閃存訪問標(biāo)記202是否被激活216,如果已激活,則將數(shù)據(jù)寫入到閃存40中,否則拋棄數(shù)據(jù)到103,并返回相應(yīng)的錯誤信息。如果即不是認(rèn)證數(shù)據(jù)a也不是寫入/讀取閃存請求數(shù)據(jù)b的其他數(shù)據(jù)c,則進入103直接扔掉,不對外返回任何信息。
下面以認(rèn)證數(shù)據(jù)為例說明Applet認(rèn)證程序控制可信U盤訪問方法的實施過程如以主機端1向智能卡和U盤復(fù)合設(shè)備2發(fā)送認(rèn)證數(shù)據(jù),即“認(rèn)證”命令,并獲得智能卡和U盤復(fù)合設(shè)備2的響應(yīng)結(jié)果和狀態(tài)結(jié)果,需要三次指令交互發(fā)送“認(rèn)證”命令、“響應(yīng)”命令和“狀態(tài)字”命令。
如果智能卡和U盤復(fù)合設(shè)備2接收到“認(rèn)證”命令,Applet認(rèn)證程序113對認(rèn)證數(shù)據(jù)進行驗證,如果驗證通過,將設(shè)置閃存訪問標(biāo)記202為1,表示激活成功213;如果驗證未通過,則設(shè)置閃存訪問標(biāo)記202為0進入214,表示不能將數(shù)據(jù)保存在閃存40中。如果智能卡和U盤復(fù)合設(shè)備2接收到“響應(yīng)”命令,返回空。如果智能卡和U盤復(fù)合設(shè)備2接收到“狀態(tài)字”命令,將認(rèn)證結(jié)果返回給主機端1。具體實施如下“認(rèn)證”命令認(rèn)證命令內(nèi)容為0x0180120000083131313131313131,主機端1將此數(shù)據(jù)通過SCSI Passthrough方式發(fā)送給智能卡和U盤復(fù)合設(shè)備2,請求認(rèn)證。
“響應(yīng)”命令無。
“狀態(tài)字”命令狀態(tài)字命令內(nèi)容為0x03,主機端1將此數(shù)據(jù)通過SCSIPassthrough方式發(fā)送給智能卡和U盤復(fù)合設(shè)備2獲得智能卡和U盤復(fù)合設(shè)備2的響應(yīng)后的狀態(tài)字。如果得到0x9000,表示認(rèn)證成功,此時智能卡和U盤復(fù)合設(shè)備2已將閃存訪問標(biāo)記202設(shè)為1;如果得到非0x9000,則說明認(rèn)證失敗,而且智能卡和U盤復(fù)合設(shè)備2中的閃存訪問標(biāo)記202為0。
上述基于數(shù)字證書的雙向認(rèn)證機制以提高可信U盤訪問安全性的方法和以認(rèn)證數(shù)據(jù)為例說明Applet認(rèn)證程序控制可信U盤訪問方法的實施過程均基于下述第二種SCSI指令即可信U盤與計算機對可信U盤的通信協(xié)議完成的。
SCSI是英文Small Computer System Interface的簡稱。在計算機存儲技術(shù)中,SCSI用于連接設(shè)備,如外部磁盤、掃描儀等。計算機與這些設(shè)備進行通訊時,一般會采用SCSI規(guī)范定義的協(xié)議方式進行包裝數(shù)據(jù)。對于移動存儲介質(zhì),如U盤,也是按照標(biāo)準(zhǔn)SCSI指令格式101進行,該SCSI指令的格式如下
其中“SCSI命令頭”是外界向設(shè)備傳送的數(shù)據(jù),數(shù)據(jù)部分可以是外界發(fā)送的數(shù)據(jù),也可以是設(shè)備向外界返回的數(shù)據(jù)。
智能卡處理的指令是按照ISO 7816規(guī)范定義的,指令需要按照固定的格式來組織,否則不能被智能卡所接受。智能卡指令格式如下
其中,CLA代表了命令類,INS代表了指令,P1和P2代表了參數(shù),Lc是Data域數(shù)據(jù)長度,Data是Lc指示的數(shù)據(jù),Le是期望智能卡返回的數(shù)據(jù)長度。
當(dāng)可信U盤在實現(xiàn)與計算機進行通信時,需要智能卡技術(shù)控制對U盤資源的操作,如通過智能卡技術(shù)進行身份認(rèn)證后再打開U盤讀寫通道。
要實現(xiàn)與可信U盤進行通信,需要解決如何在SCSI數(shù)據(jù)包中包含智能卡指令的問題。
在PC系統(tǒng)中,主機和U盤的通訊是按照標(biāo)準(zhǔn)SCSI指令進行的,附圖11為主機端1與普通U盤通信框圖。
但是,可信U盤除了接收操作系統(tǒng)的指令外,還接收應(yīng)用程序發(fā)送的其他控制指令。這些指令是以智能卡數(shù)據(jù)報的格式APDU(應(yīng)用協(xié)議數(shù)據(jù)單元(Application Protocol DataUnit)進行封裝。附圖12為主機端1與智能卡通信框圖,附圖13為主機端1與可信U盤2通信框圖。
如上所述,設(shè)置于可信U盤2內(nèi)的Z32UF安全控制器60也是一種智能卡控制器,所以在主機與Z32UF安全控制器60進行通信時,需要將智能卡通訊協(xié)議打包成SCSI數(shù)據(jù)報格式,這樣才能實現(xiàn)外部系統(tǒng)控制Z32UF安全控制器60即可信U盤2的目的。
在可信U盤2的Z32UF安全控制器60上安裝有按照J(rèn)avaCard技術(shù)規(guī)范編制的智能卡操作系統(tǒng)203,其上運行有控制程序201,該程序201用于處理存儲的標(biāo)準(zhǔn)SCSI指令101,主機端1與可信U盤2間實現(xiàn)數(shù)據(jù)通信的第一種指令為標(biāo)準(zhǔn)SCSI指令101,主機端1與可信U盤2間實現(xiàn)數(shù)據(jù)通信的第二種指令為承載了智能卡指令的SCSI指令102。通過定義第二種SCSI指令102的數(shù)據(jù)格式,即制定對可信U盤的通信協(xié)議,即可解決計算機與可信U盤進行通信的問題。
主機端1與可信U盤2進行數(shù)據(jù)通信的方法與步驟為①首先對可信U盤2定義第二種SCSI指令102的數(shù)據(jù)格式,②同時利用該第二種SCSI指令102,實現(xiàn)主機端1與可信U盤2之間的數(shù)據(jù)通信。
定義第二種SCSI指令102數(shù)據(jù)格式的過程如下,①、標(biāo)準(zhǔn)SCSI指令101的格式為
其中“SCSI命令頭”是外界向設(shè)備傳送的命令數(shù)據(jù),“數(shù)據(jù)”部分可以是外界發(fā)送的數(shù)據(jù),也可以是設(shè)備向外界返回的數(shù)據(jù),②、智能卡指令103的格式為
其中,“CLA”代表了命令類,“INS”代表了指令,“P1和P2”代表了參數(shù),“Lc”是“Data”域數(shù)據(jù)長度,“Data”是“Lc”指示的數(shù)據(jù),“Le”是期望智能卡返回的數(shù)據(jù)長度。
③、第二種SCSI指令102的格式如下
其中“標(biāo)記104”為智能卡指令標(biāo)記(104),定義其格式如下
利用該第二種SCSI指令102,實現(xiàn)主機端1與可信U盤2之間數(shù)據(jù)通信的步驟如下①主機端1發(fā)送標(biāo)記為“命令”的數(shù)據(jù),②主機端1發(fā)送標(biāo)記為“響應(yīng)”的數(shù)據(jù),取回響應(yīng)結(jié)果,③主機端1發(fā)送標(biāo)記為“狀態(tài)字”的數(shù)據(jù),取回狀態(tài)字。
1)、主機端1發(fā)送標(biāo)記為“命令”的數(shù)據(jù),將智能卡命令指令103打包成第二種SCSI指令102的數(shù)據(jù),按照智能卡指令標(biāo)記104中“命令”標(biāo)記處理,然后發(fā)送給可信U盤2,2)、主機端1向可信U盤2發(fā)送標(biāo)記為“響應(yīng)”的數(shù)據(jù),可信U盤2響應(yīng)結(jié)果的處理,由可信U盤2上的Z32UF安全控制器60處理,其步驟為①標(biāo)記響應(yīng)數(shù)據(jù),按照智能卡指令標(biāo)記104中“響應(yīng)″標(biāo)記處理,②標(biāo)記狀態(tài)字,按照智能卡指令標(biāo)記104中“狀態(tài)字”標(biāo)記處理,3)、主機端1向可信U盤2發(fā)送標(biāo)記為“狀態(tài)字”的數(shù)據(jù),主機端1通過第二種SCSI指令102取得響應(yīng)數(shù)據(jù),直到取完,其步驟為①如果存在,即獲得響應(yīng)數(shù)據(jù)②獲得狀態(tài)字。
第二種SCSI指令102的數(shù)據(jù)格式,即對可信U盤2的通信協(xié)議。
可信U盤是被動設(shè)備,即不能主動地向主機返回響應(yīng)結(jié)果。只能由主機主動地發(fā)送標(biāo)記為“響應(yīng)”和“狀態(tài)字”的指令取回結(jié)果。
圖14為主機端1通過兩種SCSI指令與可信U盤2通信示意圖,附圖15為主機端1向可信U盤2發(fā)送的三種數(shù)據(jù)示意圖。
下面以主機端1向智能卡和U盤復(fù)合設(shè)備2發(fā)送一個“選擇文件”命令,并發(fā)送“響應(yīng)”、“狀態(tài)字”標(biāo)識得到智能卡和U盤復(fù)合設(shè)備2的響應(yīng)數(shù)據(jù)和狀態(tài)字的過程為例,說明本發(fā)明的實施過程定義三個標(biāo)記,分別對應(yīng)“命令”、“響應(yīng)”和“狀態(tài)字”三個標(biāo)記,它們是命令標(biāo)記0x01響應(yīng)標(biāo)記0x02狀態(tài)字標(biāo)記 0x03主機端1向智能卡和U盤復(fù)合設(shè)備2發(fā)送標(biāo)識“命令”對應(yīng)標(biāo)記為“命令”的數(shù)據(jù)是“選擇文件”的APDU103指令如下
其中Data部分代表智能卡和U盤復(fù)合設(shè)備中一個已有的文件標(biāo)識(0x3f01)。
按照所述的第二種SCSI指令格式定義發(fā)送的數(shù)據(jù)內(nèi)容0x0100a40400023f01,然后將此數(shù)據(jù)通過SCSI Passthrough方式發(fā)送給2。
主機端1向智能卡和U盤復(fù)合設(shè)備2發(fā)送標(biāo)識“響應(yīng)”按照所述的第二種SCSI指令格式定義發(fā)送的數(shù)據(jù)內(nèi)容0x02,然后將此數(shù)據(jù)通過SCSI Passthrough方式發(fā)送給智能卡和U盤復(fù)合設(shè)備2。得到智能卡和U盤復(fù)合設(shè)備2的響應(yīng)0x00。
主機端1向智能卡和U盤復(fù)合設(shè)備2發(fā)送標(biāo)識“狀態(tài)字”按照所述的第二種SCSI指令格式定義發(fā)送的數(shù)據(jù)內(nèi)容0x03,然后將此數(shù)據(jù)通過SCSI Passthrough方式發(fā)送給智能卡和U盤復(fù)合設(shè)備2,得到智能卡和U盤復(fù)合設(shè)備2返回的狀態(tài)字0x9000。
名詞解釋(1)主機端1可信U盤所依附的主機,如PC機(2)可信U盤控制程序201可信U盤內(nèi)解析數(shù)據(jù)包內(nèi)容的解釋程序,主要解析認(rèn)證數(shù)據(jù)、可信U盤讀取和寫入的請求數(shù)據(jù)(3)智能卡操作系統(tǒng)203按照J(rèn)ava卡技術(shù)規(guī)范實現(xiàn)的基于虛擬機技術(shù)的智能卡操作系統(tǒng),負(fù)責(zé)運行認(rèn)證程序和閃存訪問標(biāo)志的維護(4)自銷毀程序111操作系統(tǒng)對訪問企圖進行審計,當(dāng)不成功的訪問企圖超過一定閾值時,系統(tǒng)自動將U盤存儲空間格式化的程序。
(5)證書認(rèn)證程序112運行在智能卡操作系統(tǒng)203上的用于完成證書認(rèn)證的應(yīng)用程序。
(6)Applet認(rèn)證程序113是一個運行在智能卡操作系統(tǒng)203上的應(yīng)用程序,可按照某一個邏輯實現(xiàn)訪問控制,一般用Java語言編寫。代表了某種身份識別邏輯。
(7)閃存40一個NAND類型的存儲芯片,用于保存數(shù)據(jù)。
(8)閃存訪問標(biāo)記202在可信U盤某個寄存器或EEPROM內(nèi)保存標(biāo)記,此標(biāo)記只能通過認(rèn)證程序來激活或使之失效。
本發(fā)明通過采用自銷毀程序、證書認(rèn)證程序、Applet認(rèn)證程序和SCSI指令承載智能卡指令的方法,較好的解決了可信U盤安全性問題及計算機與可信U盤的數(shù)據(jù)通信問題。
本發(fā)明保密性極強,適用于對機密性要求較高的各種特殊需要的場合。
本發(fā)明中的硬件產(chǎn)品均為國產(chǎn)市售產(chǎn)品,智能卡操作系統(tǒng)與各種應(yīng)用程序均為公知技術(shù)。
與本發(fā)明內(nèi)容相同或相似的技術(shù)方案,應(yīng)在本專利的保護范圍之內(nèi)。
權(quán)利要求
1.一種可信U盤裝置,包括主機端(1)、所述主機端(1)存在1-4個USB接口(11)、CA中心(3)、內(nèi)存(20)、IO控制器(30)和閃存(40),其特征在于還包括支持RSA、DH、ElGamal、ECC公鑰密碼算法與DES、3DES、AES對稱密碼算法和第三方加密算法的加密協(xié)處理器(50)、按照J(rèn)ava Card技術(shù)規(guī)范編制的智能卡操作系統(tǒng)(203)且通過所述加密協(xié)處理器(50)完成加解密運算的Z32UF安全控制器(60);所述加密協(xié)處理器(50)集成在所述Z32UF安全控制器(60)芯片上;所述內(nèi)存(20)、IO控制器(30)、閃存(40)、加密協(xié)處理器(50)、Z32UF安全控制器(60)構(gòu)成可信U盤(2),所述可信U盤(2)通過插入所述USB接口(11)連接到主機端(1),所述主機端(1)通過網(wǎng)絡(luò)方式與所述CA中心(3)連接,并能獲得所述CA中心(3)提供的證書申請和驗證服務(wù);所述主機端1與所述可信U盤2之間可實現(xiàn)雙向認(rèn)證,所述主機端(1)與所述可信U盤(2)之間通過兩種SCSI指令傳輸數(shù)據(jù)相聯(lián)系。
2.一種實現(xiàn)可信U盤安全性的方法及可信U盤與計算機的通信協(xié)議,其特征在于在所述可信U盤(2)的所述Z32UF安全控制器芯片(60)上安裝有按照J(rèn)ava Card技術(shù)規(guī)范編制的智能卡操作系統(tǒng)(203),在所述智能卡操作系統(tǒng)(203)上運行有可信U盤控制程序(201)、控制閃存讀寫的應(yīng)用程序(301)完成非授權(quán)訪問次數(shù)超過閾值的邏輯判斷并實現(xiàn)自銷毀的程序(111)、用于完成證書認(rèn)證的應(yīng)用程序(112)和Applet認(rèn)證程序(113);所述智能卡操作系統(tǒng)(203)通過所述加密協(xié)處理器(50)完成加解密運算,同時,①在所述智能卡與U盤復(fù)合設(shè)備(2)內(nèi)保存一個與之相關(guān)的數(shù)字設(shè)備證書,代表其身份,在其接入端也保存一個代表其接入端身份的數(shù)字證書,②所述主機端(1)具備標(biāo)準(zhǔn)的證書申請方式;實現(xiàn)可信U盤安全性及實現(xiàn)計算機與可信U盤數(shù)據(jù)通信的方法如下①可信U盤完成非授權(quán)訪問次數(shù)超過閾值的邏輯判斷并實現(xiàn)自銷毀的方法,②基于數(shù)字證書的雙向認(rèn)證機制以提高可信U盤訪問安全性的方法,③通過Applet認(rèn)證程序控制可信U盤訪問的方法,④通過定義第二種SCSI指令實現(xiàn)計算機與可信U盤數(shù)據(jù)通信的方法。
3.如權(quán)利要求2所述的一種實現(xiàn)可信U盤安全性的方法及可信U盤與計算機的通信協(xié)議,其特征在于在所述可信U盤(2)的操作系統(tǒng)(203)上,安裝的所述自銷毀程序(111)可以對USB接口訪問進行控制、完成非授權(quán)訪問次數(shù)超過閾值的邏輯判斷,并實現(xiàn)銷毀動作;該自銷毀方法的步驟如下(1)、判斷步驟①,所述可信U盤(2)收到“訪問嘗試”的指令后,判斷其是否是“合法訪問”①,如為“否”則進入審計步驟③,如為“是”則進入“結(jié)束”步驟②;(2)、審計步驟③,用于累計“非法訪問嘗試”信號的次數(shù),將n加1,則進入下一步“是否超過閥值m”的步驟④;(3)、判斷步驟④,經(jīng)過“n+1”的操作后,將信號送入“是否超過閥值m”的步驟⑤,如為“是”則進入“格式化操作”步驟⑤,如為“否”則進入“結(jié)束”步驟②;(4)“格式化操作”步驟⑤,系統(tǒng)接收到大于或等于“m”次的“非法訪問嘗試”后,所述對可信U盤(2)存儲內(nèi)容進行格式化的自銷毀操作。
4.如權(quán)利要求3所述的一種實現(xiàn)可信U盤安全性的方法及可信U盤與計算機的通信協(xié)議,其特征在于所述(n)為系統(tǒng)審計的被訪問嘗試的次數(shù),所述(m)為系統(tǒng)設(shè)定的允許非授權(quán)訪問次數(shù)的閥值。
5.如權(quán)利要求2所述的一種實現(xiàn)可信U盤安全性的方法及可信U盤與計算機的通信協(xié)議,其特征在于基于數(shù)字證書的雙向認(rèn)證機制以提高可信U盤訪問安全性的方法如下①所述可信U盤設(shè)備證書生成、加載,②所述主機端1證書生成③所述主機端1和所述可信U盤2實現(xiàn)雙向認(rèn)證。
6.如權(quán)利要求5所述的一種實現(xiàn)可信U盤安全性的方法及可信U盤與計算機的通信協(xié)議,其特征在于所述可信U盤(2)設(shè)備證書生成、加載的步驟如下①所述主機端(1)向所述可信U盤(2)發(fā)起建立通道的請求,②所述可信U盤(2)響應(yīng)并建立通道,③所述主機端(1)請求所述可信U盤(2)生成RSA密鑰對,④所述可信U盤(2)響應(yīng),并將公鑰導(dǎo)出,返回給所述主機端(1),⑤所述主機端(1)用所述可信U盤(2)的公鑰向所述CA中心(3)提出制作證書請求,⑥所述CA中心(3)生成所述可信U盤(2)的證書并返回給所述主機端(1),⑦所述主機端(1)將所述可信U盤(2)證書寫入到所述可信U盤(2)中,同時將所述CA中心(3)的根證書也寫入到所述可信U盤(2)內(nèi)進行存儲,⑧所述可信U盤(2)成功執(zhí)行返回。
7.如權(quán)利要求5所述的一種實現(xiàn)可信U盤安全性的方法及可信U盤與計算機的通信協(xié)議,其特征在于所述主機端(1)的證書生成的步驟如下①所述主機端(1)證書生成,以標(biāo)準(zhǔn)的證書申請方式向所述CA中心(3)申請證書,②所述CA中心(3)將生成的所述主機端(1)證書返回給所述主機端(1)。
8.如權(quán)利要求5所述的一種實現(xiàn)可信U盤安全性的方法及可信U盤與計算機的通信協(xié)議,其特征在于所述主機端1和所述可信U盤2實現(xiàn)雙向認(rèn)證的步驟如下①所述主機端(1)發(fā)起認(rèn)證請求,②所述可信U盤(2)做出認(rèn)證請求的響應(yīng),如果所述可信U盤(2)拒絕認(rèn)證請求,雙向認(rèn)證失敗,③所述主機端(1)通過與所述可信U盤(2)交互獲取所述可信U盤(2)的設(shè)備證書④所述可信U盤(2)將自身的數(shù)字證書返回給所述主機端(1),⑤所述主機端(1)向所述CA中心(3)發(fā)起證書驗證請求,以驗證所述可信U盤(2)的設(shè)備證書的有效性,⑥所述CA中心(3)將驗證結(jié)果返回給所述主機端(1),如果所述CA中心(3)認(rèn)為所述可信U盤(2)的證書無效,雙向認(rèn)證失敗,⑦所述主機端(1)生成主機端的挑戰(zhàn)數(shù)據(jù),并將此數(shù)據(jù)和所述主機端(1)證書一起發(fā)送到所述可信U盤(2),⑧所述智能卡與U盤復(fù)合設(shè)備使用保存的所述CA中心(3)的證書對所述主機端(1)證書進行驗證,通過后使用所述可信U盤(2)內(nèi)的證書對應(yīng)的私鑰對主機發(fā)送挑戰(zhàn)數(shù)據(jù)的進行簽名,得到“簽名結(jié)果”;同時生成所述可信U盤(2)的挑戰(zhàn)數(shù)據(jù),與“簽名結(jié)果”并發(fā)送回所述主機端(1),如果所述可信U盤(2)認(rèn)為所述主機端(1)的證書無效,雙向認(rèn)證失敗,⑨所述主機端(1)驗證所述可信U盤(2)計算的“簽名結(jié)果”,同時對所述可信U盤(2)產(chǎn)生的挑戰(zhàn)數(shù)據(jù)進行數(shù)字簽名,送到所述可信U盤(2)內(nèi),⑩所述可信U盤(2)對所述主機端(1)產(chǎn)生的“簽名結(jié)果”進行驗證,成功后雙向認(rèn)證完成;如果所述可信U盤(2)內(nèi)對所述主機端(1)產(chǎn)生的簽名驗證失敗,則雙向認(rèn)證失敗。
9.如權(quán)利要求2所述的一種實現(xiàn)可信U盤安全性的方法及可信U盤與計算機的通信協(xié)議,通過Applet認(rèn)證程序控制可信U盤訪問方法的步驟如下①、待處理數(shù)據(jù)(101),所述主機端(1)發(fā)送數(shù)據(jù)到所述可信U盤(2),此數(shù)據(jù)分為三種認(rèn)證數(shù)據(jù)(a),寫入/讀取閃存的請求數(shù)據(jù)(b),其他數(shù)據(jù)(c),三種數(shù)據(jù)被所述可信U盤的控制程序(201)接受,進入下一步,②、所述可信U盤的控制程序(201)檢測所述待處理數(shù)據(jù)(101)的類型(201),③、如果是所述認(rèn)證數(shù)據(jù)(a),發(fā)送到所述Applet認(rèn)證程序(113)進行處理,④、所述Applet認(rèn)證程序(113)對所述認(rèn)證數(shù)據(jù)(a)進行身份認(rèn)證處理,⑤、判斷認(rèn)證成功否?如果身份認(rèn)證成功,所述Applet認(rèn)證程序(113)通過所述智能卡操作系統(tǒng)(203),激活所述閃存訪問標(biāo)記(202),進入認(rèn)證成功(213),⑥、否則,進入認(rèn)證失敗(214),⑦、如果是非認(rèn)證數(shù)據(jù),但系所述寫入/讀取閃存的請求數(shù)據(jù)(b),則進入檢查閃存訪問標(biāo)記(215),⑧、判斷檢查閃存訪問標(biāo)記(215)是否被激活(216),如果未激活,進入(103),拋棄該數(shù)據(jù),⑨、如果已激活,將該數(shù)據(jù)寫入到所述閃存(40)中保存數(shù)據(jù),否則進入待處理數(shù)據(jù)(101),返回相應(yīng)的錯誤信息,⑩、如果是所述其他數(shù)據(jù)(c),則直接進入(103)扔掉,不對外返回任何信息。
10.如權(quán)利要求2所述的一種實現(xiàn)可信U盤安全性的方法及可信U盤與計算機的通信協(xié)議,所述主機端(1)與所述可信U盤(2)間實現(xiàn)數(shù)據(jù)通信的第一種指令為標(biāo)準(zhǔn)SCSI指令(101),在所述智能卡操作系統(tǒng)(203)上運行的可信U盤控制程序(201)用于處理存儲的該標(biāo)準(zhǔn)SCSI指令(101),其特征在于所述主機端(1)與所述可信U盤(2)間實現(xiàn)數(shù)據(jù)通信的第二種指令為SCSI指令(102),所述主機端(1)與所述可信U盤(2)進行數(shù)據(jù)通信的方法與步驟為①首先對所述可信U盤(2)定義第二種SCSI指令(102)的數(shù)據(jù)格式,②同時利用該第二種SCSI指令(102),實現(xiàn)主機端(1)與所述可信U盤(2)之間的數(shù)據(jù)通信。
11.如權(quán)利要求10所述的一種實現(xiàn)可信U盤安全性的方法及可信U盤與計算機的通信協(xié)議,其特征在于定義所述第二種SCSI指令(102)數(shù)據(jù)格式的過程如下,①、所述標(biāo)準(zhǔn)SCSI指令(101)的格式如下
其中“SCSI命令頭”是外界向設(shè)備傳送的命令數(shù)據(jù),“數(shù)據(jù)”部分可以是外界發(fā)送的數(shù)據(jù),也可以是設(shè)備向外界返回的數(shù)據(jù),②、所述智能卡指令(103)的格式如下
其中,“CLA”代表了命令類,“INS”代表了指令,“P1和P2”代表了參數(shù),“Lc”是“Data”域數(shù)據(jù)長度,“Data”是“Lc”指示的數(shù)據(jù),“Le”是期望智能卡返回的數(shù)據(jù)長度。③、所述第二種SCSI指令(102)的格式如下
其中“標(biāo)記104”為智能卡指令標(biāo)記(104),定義其格式如下
12.如權(quán)利要求11所述的一種實現(xiàn)可信U盤安全性的方法及可信U盤與計算機的通信協(xié)議,其特征在于利用該第二種SCSI指令(102),實現(xiàn)所述主機端(1)與所述可信U盤(2)之間數(shù)據(jù)通信的步驟如下①所述主機端(1)發(fā)送標(biāo)記為“命令”的數(shù)據(jù),②所述主機端(1)發(fā)送標(biāo)記為“響應(yīng)”的數(shù)據(jù),取回響應(yīng)結(jié)果,③所述主機端(1)發(fā)送標(biāo)記為“狀態(tài)字”的數(shù)據(jù),取回狀態(tài)字。
13.如權(quán)利要求12所述的一種實現(xiàn)可信U盤安全性的方法及可信U盤與計算機的通信協(xié)議其特征在于1)、所述主機端(1)發(fā)送標(biāo)記為“命令”的數(shù)據(jù),將所述智能卡命令指令(103)打包成所述SCSI指令(102)的數(shù)據(jù),按照智能卡指令標(biāo)記(104)中“命令”標(biāo)記處理,然后發(fā)送給所述可信U盤(2),2)、所述主機端(1)向所述可信U盤(2)發(fā)送標(biāo)記為“響應(yīng)”的數(shù)據(jù),所述可信U盤(2)響應(yīng)結(jié)果的處理,由所述可信U盤(2)上的所述Z32UF安全控制器(60)處理,其步驟為①標(biāo)記響應(yīng)數(shù)據(jù),按照智能卡指令標(biāo)記(104)中“響應(yīng)″標(biāo)記處理,②標(biāo)記狀態(tài)字,按照智能卡指令標(biāo)記(104)中“狀態(tài)字”標(biāo)記處理,3)、所述主機端(1)向所述可信U盤(2)發(fā)送標(biāo)記為“狀態(tài)字”的數(shù)據(jù),所述主機端(1)通過所述第二種SCSI指令(102)取得響應(yīng)數(shù)據(jù),直到取完,其步驟為①如果存在,即獲得響應(yīng)數(shù)據(jù)②獲得狀態(tài)字。
14.如權(quán)利要求2所述的一種實現(xiàn)可信U盤安全性的方法及可信U盤與計算機的通信協(xié)議其特征在于所述第二種SCSI指令(102)的數(shù)據(jù)格式,即對所述可信U盤(2)的通信協(xié)議。
15.如權(quán)利要求1-14所述的一種實現(xiàn)可信U盤安全性的方法及可信U盤與計算機的通信協(xié)議中的任何一項權(quán)利要求,其特征在于所述加解密運算用于驗證和簽名。
全文摘要
本發(fā)明公開了一種可信U盤、實現(xiàn)可信U盤安全性及其與計算機數(shù)據(jù)通信的方法。普通U盤是一個對外完全透明的移動存儲訪問介質(zhì)設(shè)備,對數(shù)據(jù)的訪問沒有任何的訪問控制,即只要是具有USB接口的接入方都可以無阻礙地使用,用戶使用普通U盤在內(nèi)外網(wǎng)之間可隨意拷貝數(shù)據(jù),另外,U盤丟失之后其信息會隨即泄漏,因此,存儲在U盤上的敏感數(shù)據(jù)存在不安全的風(fēng)險。本發(fā)明通過采用在智能卡操作系統(tǒng)上運行的自銷毀程序、證書認(rèn)證程序、Applet認(rèn)證程序和SCSI指令承載智能卡指令的方法,較好地解決了可信U盤安全性問題及計算機與可信U盤的數(shù)據(jù)通信問題。本發(fā)明保密性極強,適用于對機密性要求比較高的各種特殊需要的場合。
文檔編號G06F13/38GK101051292SQ200710000330
公開日2007年10月10日 申請日期2007年1月8日 優(yōu)先權(quán)日2007年1月8日
發(fā)明者吳世忠, 石超英 申請人:中國信息安全產(chǎn)品測評認(rèn)證中心, 北京明宇科技有限公司