專利名稱:具有基于進(jìn)程的密鑰庫的計算裝置和操作計算裝置的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種用于計算裝置的加密密鑰的安全管理,具體地,涉及一種在允許加密密鑰用于加密操作(一般為解密或簽名)之前,通過要求認(rèn)證(一般為PIN或密碼短語的輸入)來控制加密密鑰的使用。
背景技術(shù):
本文中所使用的術(shù)語計算裝置廣泛地理解為覆蓋任何形式的電子計算裝置,其包括數(shù)據(jù)記錄裝置、任何類型或形式的計算機(jī)(包括手持和個人計算機(jī))、以及任何形式因素的通信裝置(包括移動電話、智能電話、在單個裝置中集通信、圖像記錄和/或重放、以及計算功能于一體的通信裝置、以及其它形式的無線和有線信息裝置)。
好的密鑰管理對于所有形式的安全性(無論是電子的還是機(jī)械的)都是非常重要的。例如,安全機(jī)械裝置上的鎖可以是最高標(biāo)準(zhǔn)的,但是如果將鎖的鑰匙或密碼遺落在不安全的地方,則鎖自身的標(biāo)準(zhǔn)對于保持機(jī)械裝置的安全性就變得無關(guān)緊要了。
眾所周知,該原理還應(yīng)用于計算裝置,并且密鑰管理器的完整性至少與密鑰自身的安全性一樣重要,這是因為一般認(rèn)為對公鑰安全系統(tǒng)的大多數(shù)攻擊主要是針對密鑰管理等級,而不是針對加密算法本身。
在支持加密的所有裝置上均具有密鑰管理器,它們的目的在于能夠通過更容易地安全創(chuàng)建、導(dǎo)入、導(dǎo)出、維護(hù)、以及存儲密鑰對的一個或兩個成員來確保通信。它們還通過提供對安全證明和相關(guān)的信任等級的安全存儲和使用,在PKI(公鑰基礎(chǔ)設(shè)施)中起到關(guān)鍵作用。
典型地,密鑰管理器將密鑰以加密的形式存儲在安全位置(通常為所知的密鑰庫),其依賴于通過密碼短語和個人身份號(PIN)對嘗試訪問密鑰庫所包含的密鑰的客戶的認(rèn)證,該密碼短語和個人身份號用于保護(hù)包含在密鑰庫中的加密數(shù)據(jù)的完整性。在密鑰庫的當(dāng)前實施方式中,認(rèn)證步驟實際上實現(xiàn)兩個目的。其允許密鑰管理器軟件確定軟件的授權(quán)用戶實際存在(假設(shè)只有用戶知道PIN或密碼短語),并且其還確認(rèn)用戶希望使用密鑰。例如,如果流氓軟件試圖調(diào)用密鑰管理器以簽名用戶未請求的交易,則出現(xiàn)要求用戶認(rèn)證他/她自身的用戶界面,這將提醒用戶某事正在試圖使用他/她的密鑰,并且用戶可拒絕認(rèn)證。
Microsoft Exchange中的密鑰管理器以這種方式工作http://www.msexchange.org/tutorials/Key Management Service In Exchange 2000 Server.html描述了這種類型的密鑰管理器。還存在許多提供相似功能的Linux數(shù)據(jù)包,例如,密鑰鏈。Java的密鑰庫類是如何按照慣例實現(xiàn)這種密鑰管理器應(yīng)用編程接口(API)的很好的實例。Java密鑰庫類存儲密鑰和證書??刂茖Υ鎯ζ髟L問的API通過程序setKeyEntry和存儲器將口令與加密數(shù)據(jù)聯(lián)系起來,并且當(dāng)使用諸如獲取密鑰(getkey)的程序和加載來檢索加密數(shù)據(jù)時需要這些相同的口令。
這種一般目的的密鑰管理器的顧慮在于它們對選取的協(xié)議攻擊的脆弱性。簽名操作(signing operation)的意義可被破壞,以根據(jù)使用的協(xié)議來聲明身份或簽名特定數(shù)據(jù)段。這種攻擊的實例可為假意進(jìn)行加密套接字協(xié)議層(SSL)握手而實際上偽造簽名的S/MIME消息的惡意應(yīng)用程序。
這種破壞存在可能的原因在于盡管用戶知道怎樣假定密鑰從他們被提示輸入他們的密碼短語或PIN的文中被使用,但是密鑰管理器不知道提供密碼短語或PIN的目的,不向密鑰管理器提供這種信息并且密鑰管理器不得不假設(shè)使用的所有請求對于所有目的是等效的。監(jiān)控密鑰使用的責(zé)任被分配給請求密鑰訪問的應(yīng)用程序,如果該應(yīng)用程序不能信任,則會非常不理想。
這又意味著不僅當(dāng)前的設(shè)計不能防止這種攻擊,并且該攻擊也不能被檢測,這是因為密鑰管理器不能通知用戶正在怎樣使用密鑰。
從而,所知實現(xiàn)的缺點(diǎn)在于對裝置具有充分訪問權(quán)并且了解接口知識的任何人都有能力通過竊取、重寫、刪除、或撤銷密鑰來危及密鑰管理器的完整性。因此,當(dāng)缺乏對于整個平臺合適的安全模型時,不可能防止惡意應(yīng)用程序訪問任何它們想訪問的密鑰。
發(fā)明內(nèi)容
本發(fā)明的主旨在于在計算裝置的安全平臺中,認(rèn)證用戶的需要應(yīng)與授權(quán)使用用于特定目的的密鑰的需要分開。
為了實現(xiàn)本發(fā)明的目的,進(jìn)程是在裝置上執(zhí)行的一個或多個任務(wù)組,其占用了單個不連續(xù)的存儲區(qū)并且其還具有唯一不變的名稱。因此,進(jìn)程應(yīng)該被認(rèn)為是裝置上不變的可執(zhí)行的身份單元。其執(zhí)行實例之間的進(jìn)程身份的持久性被認(rèn)為是本發(fā)明的一個關(guān)鍵方面。
因此,本發(fā)明的目的在于提供一種用于計算裝置中密鑰管理的改進(jìn)方法。
根據(jù)本發(fā)明的第一方面,提供了一種計算裝置,其被配置為通過以下提供用于加密操作的數(shù)據(jù)的安全使用a.將所述數(shù)據(jù)的每一項保存在密鑰庫中;b.將密鑰庫中的項的所有權(quán)分配給各個進(jìn)程;c.使各個進(jìn)程能夠分配另一進(jìn)程作為各自的項的用戶;d.使各個進(jìn)程能夠刪除或修改各自的項;以及e.拒絕訪問密鑰庫中的項,以使進(jìn)程既不擁有項,也不被分配,作為項的用戶。
根據(jù)本發(fā)明的第二方面,提供了一種操作計算裝置的方法,該計算裝置提供用于加密操作的數(shù)據(jù)的安全使用,該方法包括a.將所述數(shù)據(jù)的每一項保存在密鑰庫中;b.將密鑰庫中的項的所有權(quán)分配給各個進(jìn)程;c.使各個進(jìn)程能夠分配另一進(jìn)程,作為各自的項的用戶;d.使各個進(jìn)程能夠刪除或修改各自的項;以及
e.拒絕訪問密鑰庫中的項,以使進(jìn)程既不擁有項,也不被分配,作為項的用戶根據(jù)本發(fā)明的第三方面,提供了一種用于計算裝置的操作系統(tǒng),用于使根據(jù)第一方面的計算裝置以根據(jù)第二方面的方法操作。
現(xiàn)在,將參照附圖描述本發(fā)明的實施例,僅作為進(jìn)一步的實例,其中圖1示出了密鑰庫中的根流的實例;圖2示出了密鑰庫API的實例;圖3示出了加密令牌(cryptotoken)框架API的密鑰庫實現(xiàn)的實例;圖4示出了密鑰庫API實現(xiàn)的實例;以及圖5示出了密鑰庫服務(wù)器的結(jié)構(gòu)的實例。
具體實施例方式
本發(fā)明通過將每個密鑰的范圍限制為特定的應(yīng)用程序,克服了上述于現(xiàn)有技術(shù)相聯(lián)系的顧慮。這通過定義密鑰所有者和密鑰用戶的基于進(jìn)程的方案來實現(xiàn)。因此,進(jìn)程“擁有”已創(chuàng)建或?qū)氲拿荑€,并且只允許擁有的進(jìn)程執(zhí)行對那些密鑰的全面操作。
一些應(yīng)用程序可被執(zhí)行作為幾個進(jìn)程,或者可被緊密地連接。因此,在這種情況中,密鑰的“所有者”被允許使其它應(yīng)用程序能夠?qū)ζ涿荑€執(zhí)行固定子集的操作。這通過將它們添加為單獨(dú)密鑰的“用戶”來實現(xiàn)。用戶應(yīng)用程序被允許執(zhí)行的操作子集被配置為足以準(zhǔn)許它們使用加密操作所需的密鑰,但是不準(zhǔn)許它們刪除密鑰或?qū)⑵渌鼞?yīng)用程序添加至密鑰用戶的列表。
通過對于密鑰庫API的所有者和用戶的雙API設(shè)計來支持本發(fā)明,其包括·負(fù)責(zé)創(chuàng)建、刪除、以及管理密鑰的用戶接口(UI)·實際使用密鑰的‘引擎’。
該雙API設(shè)計與密鑰所有者和密鑰用戶之間的區(qū)別相對應(yīng)。
現(xiàn)在,將描述用于實現(xiàn)本發(fā)明的方案的實施例。參照SymbianOSTM操作系統(tǒng)描述該實施例,用于移動電話的改進(jìn)的操作系統(tǒng)是由倫敦的Symbian軟件有限公司生產(chǎn)的。
該密鑰庫設(shè)計的一個目的在于最小化客戶應(yīng)用程序的私鑰的暴露。因此,使用客戶機(jī)/服務(wù)器結(jié)構(gòu)來實現(xiàn),其中,所有的私鑰操作均在服務(wù)器側(cè)執(zhí)行。然而,對于那些本領(lǐng)域的技術(shù)人員來說,能夠很容易地使設(shè)計適用于使用其它操作系統(tǒng)的裝置,并且下列進(jìn)一步概括本發(fā)明一般原理的論述用于幫助這種實現(xiàn)的研發(fā)人員。
在本發(fā)明的優(yōu)選實施例中,下面的操作系統(tǒng)提供了確保進(jìn)程的唯一身份可被檢查的安全方法,這是因為進(jìn)程身份確定其可處理的密鑰庫API的范圍。Symbian OSTM操作系統(tǒng)通過附屬于每個進(jìn)程的與安全文件結(jié)構(gòu)相結(jié)合的唯一標(biāo)識符(UID)來實現(xiàn)這些操作。題為“Secure Mobile Wireless Device With Protected File System”的英國專利申請第0312190.2號中描述了該過程。然而,本發(fā)明不限于該具體方法,并且可使用任何類似的方法??蛇x的操作系統(tǒng)可具有識別應(yīng)用程序的其它方法,例如,基于數(shù)字簽名。
應(yīng)當(dāng)注意到,無論使用什么進(jìn)程識別方案,只有當(dāng)應(yīng)用程序被安裝在裝置上時以及當(dāng)應(yīng)用程序被卸載時,才其進(jìn)行唯一地檢查,其唯一標(biāo)識符應(yīng)從任何授權(quán)列表中去除。此外,卸載擁有密鑰的任何應(yīng)用程序與刪除這種應(yīng)用程序所擁有的所有密鑰同時發(fā)生。這些步驟可防止流氓應(yīng)用程序接管先前由“已卸載的”應(yīng)用程序所使用的任何密鑰。
然而,在平臺不能夠提供用于檢查進(jìn)程身份的安全機(jī)制的情況下,也可以實現(xiàn)本發(fā)明。這種平臺的明顯風(fēng)險在于惡意應(yīng)用程序試圖使用另一個進(jìn)程的身份并通過使用其密鑰破壞該平臺。在這種情況下,可使用不同的方法來防止偽造進(jìn)程身份。因為缺少安全進(jìn)程識別在使得不可能進(jìn)行自動驗證,所以取而代之需要更廣泛地使用手動驗證方法。用于認(rèn)證密鑰使用的進(jìn)程的時間消耗密碼短語處理方案非常合適,并且下面將論述一種這樣的實現(xiàn)。然而,與能夠僅依靠安全進(jìn)程識別的方法相比,這種方法的頻繁使用更具有強(qiáng)迫性,并且提供了更少的使用戶迷惑的經(jīng)歷。
雖然可以列出裝置上的所有密鑰以及它們的所有者,但無論它們是否可被當(dāng)前應(yīng)用程序使用,嘗試列出裝置上可用密鑰的應(yīng)用程序應(yīng)將使用特征,該特征使它們能夠僅列出由它們信任的特定進(jìn)程所擁有的密鑰。這避免了看到和可能使用不安全密鑰的風(fēng)險,該密鑰可能通過惡意應(yīng)用程序添加至系統(tǒng)。
本發(fā)明還用于Java實現(xiàn),例如,J2ME,其使用諸如SecureSockets Layer的協(xié)議,以使用基于加密的密鑰來保護(hù)網(wǎng)絡(luò)通信。Java虛擬機(jī)(JVM)知道其運(yùn)行的應(yīng)用程序類,因此,能夠?qū)⑵涿荑€限定為由該應(yīng)用程序所擁有的密鑰。因此,在網(wǎng)頁瀏覽器內(nèi)運(yùn)行的小應(yīng)用程序?qū)⒛軌蚴褂门c瀏覽器進(jìn)程相同的密鑰,而將不同組的密鑰用于MIDIlet。
本發(fā)明還允許使用將密鑰映射到進(jìn)程的可選方法。例如,安全性對于以移動電話形式在計算裝置上進(jìn)行的交易是必要的。用于這些裝置的一個標(biāo)準(zhǔn)指定使用硬件WIM(無線識別模塊),該硬件WIM用于保護(hù)會話并且存儲用于所限定目的的密鑰;具體地,通過WTLS(無線傳輸層安全)協(xié)議處理客戶認(rèn)證,而數(shù)字簽名符合WMLScript(無線標(biāo)記語言腳本)SignText協(xié)議。
因此,用于包括WIM的裝置的操作系統(tǒng)可容易地適用于本發(fā)明所要求的所有者和用戶模型。最簡單的方法將假定每種類型的密鑰的所有者和用戶的靜態(tài)集。在靈活性很差的情況下,可執(zhí)行動態(tài)控制面板以定義將怎樣使用密鑰。實現(xiàn)該目的的兩種方法的實例可為·實現(xiàn)對于使用私鑰的每個單獨(dú)應(yīng)用程序的獨(dú)立的密鑰管理UI,其可擁有該應(yīng)用程序中的所有密鑰并分配任何相關(guān)的進(jìn)程,作為密鑰的其它用戶。這意味著沒有中央密鑰管理器UI。
·實現(xiàn)中央密鑰管理器UI,其擁有所有密鑰并且適合時,分配應(yīng)用程序作為用戶。
應(yīng)當(dāng)注意,這兩種方法之間的不同僅處于用戶接口(UI)等級。
密碼短語處理要求裝置的用戶通過提供正確的密碼短語或PIN來手動地授權(quán)對密鑰庫的特定操作。如前所述,該方案或等同物將不得不強(qiáng)制在不能進(jìn)行進(jìn)程的安全識別的平臺上的所有密鑰庫訪問,然而,即使在安全平臺上,當(dāng)完全自動進(jìn)程沒有提供防止裝置自身的竊取的安全性時,至少一些手動認(rèn)證是必須的。
眾所周知,這樣的密碼短語將在一段時間內(nèi)被超高速緩存(cache),以當(dāng)快速連續(xù)執(zhí)行幾個操作時不會打擾用戶。在本發(fā)明中,優(yōu)選地,基于每個進(jìn)程(即,每個所有者)設(shè)置管理超高速緩存有效性的超時,如在題為“A method for Secure Operation of aComputing Device”的英國專利申請第0329835.3號中所描述的。
根據(jù)本發(fā)明的密碼短語處理使用認(rèn)證對象API。簡而言之,加密令牌對象提供API,以列出該令牌中的認(rèn)證對象,并且每個認(rèn)證對象提供用于改變密碼短語且設(shè)置密碼短語超高速緩存超時的方法。由于安全原因,密碼短語從不會被客戶應(yīng)用程序看到。相反,改變密碼短語API觸發(fā)請求用戶輸入和確認(rèn)新口令的對話,并且整個進(jìn)程對于客戶程序是不可見的。這具有兩個優(yōu)點(diǎn)因為密碼短語從不出現(xiàn)在API中,所有用戶密碼不需要被密鑰密碼短語信任,以及希望使用一些其它認(rèn)證對象(例如,使用生物統(tǒng)計學(xué))來實現(xiàn)密鑰管理器的任何人都能夠在現(xiàn)有的API中這么做。
對于密鑰庫,僅存在一個密碼短語,因此,僅有一個認(rèn)證對象?!淖兠艽a短語’方法使得對于整個庫改變密碼短語。然而,‘設(shè)置超時’方法僅對呼叫進(jìn)程所擁有的密鑰設(shè)置超時,并且不影響由其它密鑰所有者設(shè)置的超時。
通過密鑰管理器超高速緩存密碼短語(因為超高速緩存是基于進(jìn)程的),并且作為密鑰所有者的進(jìn)程的識別與每個密碼短語一起被存儲(因為超高速緩存還是基于所有者的)。當(dāng)執(zhí)行密鑰有效用戶的操作時,密鑰管理器首先確定擁有的進(jìn)程的身份,然后檢查以觀察其是否具有所有者超高速緩存的密碼短語。如果沒有,則提示用戶輸入密碼短語。
使用定時器終止超高速緩存的密碼短語。當(dāng)密碼短語被超高速緩存時,啟動定時器,并且當(dāng)定時器終止時,去除超高速緩存的密碼短語。還可以指定密碼短語從不被超高速緩存,或被超高速緩存的密碼短語從不超時。
根據(jù)本發(fā)明的安全密鑰庫的設(shè)計可以如下實現(xiàn)。在該實例中,Symbian OSTM操作系統(tǒng)被用作上述密鑰庫技術(shù)的簡單實現(xiàn)。假設(shè)本領(lǐng)域的技術(shù)人員熟悉Symbian OSTM操作系統(tǒng)的編程語言,將能夠容易地將這里公開的技術(shù)應(yīng)用于其它的操作系統(tǒng)環(huán)境。
在本發(fā)明的該實例中,存儲每個密鑰作為單獨(dú)的流,并且所有密鑰被存儲在持久流存儲器中,因為這是存儲多流的簡單且有效的方法。持久性存儲器的提交/還原能力用于確保該存儲器總是穩(wěn)定的。
通過安全流類執(zhí)行加密。這里使用作為從密碼短語中得出密鑰的標(biāo)準(zhǔn)的PKCS#5密鑰生成算法。為了避免基于字典(dictionary)的攻擊,該標(biāo)準(zhǔn)使用大量的基礎(chǔ)算法重復(fù)(建議1000次),以使得到每個密鑰的過程相對變慢。當(dāng)?shù)玫揭粋€密鑰時,該時間被認(rèn)為是可接受的,但是當(dāng)試圖得出密鑰的完整程序庫時,則該時間被認(rèn)為是不可接受的。為了避免有人構(gòu)建可重復(fù)使用的導(dǎo)出字典,例如通過組織分散的成果來生成對應(yīng)于程序庫中每個詞的解碼密鑰,密鑰可與salt(與加密對象一起清零存儲的隨機(jī)串)相結(jié)合。
使用AES算法執(zhí)行加密。與相同的密碼短語一起加密的所有密鑰將分享一個salt,使得解密密鑰而不是密碼短語可被超高速緩存。盡管這也被證實更加安全且增加的有效性允許更高的循環(huán)計數(shù),但這么做最主要是由于有效性原因。無論什么時候改變密碼短語,salt也改變。
存儲器的根流包括所有密鑰的索引。這包括存儲器的全局?jǐn)?shù)據(jù),以及包含關(guān)于每個密鑰信息的流ID的列表。這些流又包括到另一流的指針,其中,另一流包括對應(yīng)于每個密鑰的加密PKCS#8對象。這在圖1中示出。
密鑰庫API提供對于包括密鑰庫的令牌的接口。這在圖2中示出。
MCTKeyStore接口支持密鑰庫上的‘用戶’操作列出密鑰、導(dǎo)出公鑰、以及打開用于簽名/解密/同意操作的密鑰。
CCTKeyInfo對象用于描述密鑰且包括在功能說明中描述的所有屬性。
通過‘打開’所需操作的密鑰來執(zhí)行密鑰上的加密操作。這創(chuàng)建了可用于執(zhí)行該操作的對象。為RSA和DSA簽名創(chuàng)建實現(xiàn)MRSASigner和MDSASigner接口的對象。存在用于解密的單個接口MCTDecryptor,以及用于DiffieHellman密鑰協(xié)議的一個接口MCTDH。
MCTKeyStoreManager接口擴(kuò)展MCTKeyStore接口,以支持密鑰上的‘所有者’操作創(chuàng)建密鑰、導(dǎo)入和導(dǎo)出、刪除密鑰、設(shè)置密鑰用戶、設(shè)置密碼短語超時、以及重新鎖定存儲器。然而,在該實例中,密鑰庫API不支持加密和驗證操作,為此,客戶應(yīng)用程序必須檢索合適的公鑰,并執(zhí)行操作本身。
使用客戶端/服務(wù)器架構(gòu)實現(xiàn)軟件密鑰庫??蛻舳藢崿F(xiàn)適當(dāng)?shù)募用芰钆平涌?,并且向服?wù)器發(fā)送請求。所有加密操作均在服務(wù)器內(nèi)執(zhí)行,以減少私鑰的暴露。
軟件密鑰庫是文件令牌(filetoken)組件的一部分。這里提供了用于加密令牌的軟件(即,基于文件的)實現(xiàn)的普通框架。該軟件密鑰庫也包括在證書應(yīng)用程序存儲器中。
密鑰庫客戶端使用加密令牌框架,并可被直接或通過ECOM插件程序初始化??蛻舳藢崿F(xiàn)包括單個令牌的加密令牌類型,該單個令牌作為軟件密鑰庫。除了直接初始化之外,所有與客戶端的相互作用均經(jīng)由加密令牌和密鑰庫API。
軟件密鑰庫具有一個令牌類型(軟件密鑰庫),并且其支持一個令牌,即,軟件密鑰庫自身。圖3示出了主加密令牌框架API的密鑰庫實現(xiàn)。
CCTTokenType類是令牌類型的基類,并且是加密令牌模塊的一部分。
CFSTokenTypeClient是為令牌類型提供實現(xiàn)的普通文件令牌類。其構(gòu)造程序?qū)⑵谕钆祁愋偷腢ID作為參數(shù)。在這種情況下,UID將作為軟件密鑰庫令牌類型的UID。其創(chuàng)建RFileStoreClientSession對象,以與文件令牌服務(wù)器進(jìn)行通信。如通過MCTTokenType接口所定義的,其具有列出可用令牌(一直只存在一個,軟件密鑰庫令牌)的方法,以及打開可用令牌的方法。
CFSTokenClient是另一個表示令牌的普通文件令牌類。構(gòu)造程序參數(shù)指示其表示哪一個存儲器。其通過CFSTokenClient’sOpenToken程序創(chuàng)建。其具有對令牌類型和其會話對象的引用,用于與服務(wù)器進(jìn)行通信。其支持具有打開接口程序的MCTToken接口。
密鑰庫令牌支持兩個接口(‘用戶’接口和‘所有者’接口),其通過MCTKeyStore和MCTKeyStoreManager來表示。其通過表示密鑰庫自身的CFSKeyStoreClient類來實現(xiàn)。響應(yīng)于具有合適接口的GetInterface調(diào)用通過CFSTokenClient創(chuàng)建密鑰庫令牌。其具有對會話對象的引用。無論客戶程序是請求‘用戶’接口還是請求‘所有者’接口,均創(chuàng)建相同的對象,這意味著客戶程序能夠請求用戶接口并能夠放棄指針以獲得所有者接口。然而,在服務(wù)器上對每個操作檢查權(quán)限,所以這不會造成安全風(fēng)險。在圖4中示出了密鑰庫API剩余部分的實現(xiàn)。
打開使用的密鑰來創(chuàng)建合適的對象,MRSASigner、MDSASigner、MCTDecryptor、或MCTDH的其中之一。所有這些均源于COpenedKey,作為保持對密鑰庫客戶對象的引用以執(zhí)行操作的基類。它們實現(xiàn)在API中定義的適當(dāng)接口。
在圖5中示出密鑰庫服務(wù)器的結(jié)構(gòu)。
當(dāng)啟動服務(wù)器時,創(chuàng)建CTokenServer的實例。該實例是主服務(wù)器類,并且用于當(dāng)客戶端連接至服務(wù)器時創(chuàng)建服務(wù)器側(cè)會話對象。其不是具體的密鑰庫,而是普通文件令牌服務(wù)器的一部分。
CTokenserver實例創(chuàng)建了表示密鑰庫服務(wù)器自身的CFSKeyStoreServer類的單個實例。該實例又創(chuàng)建了CFileKeyDataManager對象,其用于寫入到存儲器并在存儲器中保存密鑰列表。
當(dāng)密鑰庫客戶端連接至服務(wù)器時,創(chuàng)建CkeyStoreSession實例來表示客戶端會話。這被用于保存會話特定信息,并執(zhí)行密碼短語超高速緩存。其接收來自客戶端的請求,不調(diào)度(unmarshal)自變量,并將它們發(fā)送至CFSKeyStoreServer實例。然后,調(diào)度返回數(shù)據(jù)并將其發(fā)送回客戶端。
本發(fā)明被認(rèn)為提供了優(yōu)于已知密鑰管理系統(tǒng)的幾個優(yōu)點(diǎn)·密鑰所有權(quán)與密鑰使用的功能性分離能夠使操作環(huán)境更安全。
·其允許密鑰信任的應(yīng)用程序選擇性地將它們的信任擴(kuò)展到用戶應(yīng)用程序。
·其防止不信任的程序未經(jīng)許可訪問加密信息。
·其防止裝置上具有深入密鑰庫安全性的惡意進(jìn)程誤用加密信息。
·其從尋找冒充為其它不太可能成功的進(jìn)程的進(jìn)程中去除的‘Phishing’類型的威脅。
·其確保不使用的密鑰的安全刪除。
·其允許用于確保涉及加密的安全應(yīng)用程序的更直觀和不太直觀的用戶接口的實現(xiàn)。
因此,大體上,根據(jù)本發(fā)明的密鑰管理器通過識別每個密鑰的所有權(quán)應(yīng)用程序,提供用于區(qū)別密鑰的授權(quán)使用和未授權(quán)使用的機(jī)制,其通過密鑰管理器授權(quán),以自由地使用特定的密鑰,并且其還被信任以當(dāng)認(rèn)為合適時(例如,當(dāng)在簽名操作中使用密鑰時)請求來自用戶的明確確認(rèn)。為了允許應(yīng)用程序之間分享密鑰,所有權(quán)應(yīng)用程序能夠指定也被信任以使用密鑰的其它應(yīng)用程序的列表。
盡管參照特定實施例描述了本發(fā)明,但是應(yīng)該理解,可以進(jìn)行修改,并在由所附權(quán)利要求所限定的本發(fā)明的范圍內(nèi)。
權(quán)利要求
1.一種計算裝置,其被配置為通過以下來提供用于加密操作的數(shù)據(jù)的安全使用a.將所述數(shù)據(jù)的每一項保存在密鑰庫中;b.將所述密鑰庫中的項的所有權(quán)分配給各個進(jìn)程;c.使各個進(jìn)程能夠分配另一進(jìn)程作為各自的項的用戶;d.使各個進(jìn)程能夠刪除或修改各自的項;以及e.拒絕訪問所述密鑰庫中的項,以使進(jìn)程既不擁有項,也不被分配作為項的用戶。
2.根據(jù)權(quán)利要求1所述的裝置,其中,通過單個密鑰庫進(jìn)程控制對所述密鑰庫中的項的訪問。
3.根據(jù)權(quán)利要求1或2所述的裝置,其中,所述密鑰庫進(jìn)程包括服務(wù)器。
4.根據(jù)權(quán)利要求3所述的裝置,其中,所述密鑰庫服務(wù)器被配置為控制對保存在另一裝置中的加密數(shù)據(jù)的訪問。
5.一種根據(jù)上述權(quán)利要求中任一項所述的裝置,其中,保存在密鑰庫中的項包括加密密鑰或安全證書,或者兩者都包括。
6.一種根據(jù)上述權(quán)利要求中任一項所述的裝置,其中,通過要求對來自所述裝置的用戶的身份進(jìn)行認(rèn)證進(jìn)一步限制對所述密鑰庫中的項的訪問。
7.根據(jù)權(quán)利要求6所述的裝置,其中,通過下列中的至少一個進(jìn)行用戶認(rèn)證a.手動輸入密碼短語或PIN;以及b.生物統(tǒng)計數(shù)據(jù)的驗證。
8.根據(jù)權(quán)利要求6或7所述的裝置,其中,用戶認(rèn)證在一有限時間周期有效。
9.根據(jù)權(quán)利要求8所述的裝置,其中,用戶認(rèn)證有效的所述周期在不同的進(jìn)程之間變化。
10.一種根據(jù)上述權(quán)利要求中任一項所述的裝置,包括多個密鑰庫,其中的每一個均可通過單獨(dú)的密鑰庫進(jìn)程或通過中央密鑰庫進(jìn)程進(jìn)行訪問控制。
11.一種根據(jù)上述權(quán)利要求中任一項所述的裝置,其中,通過刪除或去除所述進(jìn)程擁有的所有項來實現(xiàn)從所述裝置刪除或去除所述進(jìn)程。
12.一種操作計算裝置的方法,所述計算裝置用于向加密操作提供數(shù)據(jù)的安全使用,所述方法包括a.將所述數(shù)據(jù)的每一項保存在密鑰庫中;b.將所述密鑰庫中的項的所有權(quán)分配給各個進(jìn)程;c.使各個進(jìn)程能夠分配另一進(jìn)程作為各自的項的用戶;d.使各個進(jìn)程能夠刪除或修改各自的項;以及e.拒絕訪問所述密鑰庫中的項,以使進(jìn)程既不擁有項,也不被分配作為項的用戶。
13.根據(jù)權(quán)利要求12所述的方法,其中,通過單個密鑰庫進(jìn)程控制對所述密鑰庫中的項的訪問。
14.根據(jù)權(quán)利要求12或13所述的方法,其中,所述密鑰庫進(jìn)程包括服務(wù)器。
15.根據(jù)權(quán)利要求14所述的方法,其中,所述密鑰庫服務(wù)器被配置為控制對保存在另一裝置中的加密數(shù)據(jù)的訪問。
16.根據(jù)權(quán)利要求12至15中任一項所述的方法,其中,保存在密鑰庫中的項包括加密密鑰或安全證書,或者兩者都包括。
17.根據(jù)權(quán)利要求12至16中任一項所述的方法,其中,通過要求對來自所述裝置用戶的身份進(jìn)行認(rèn)證進(jìn)一步限制對所述密鑰庫中的項的訪問。
18.根據(jù)權(quán)利要求17所述的方法,其中,通過下列中的至少一個進(jìn)行用戶認(rèn)證a.手動輸入密碼短語或PIN;以及b.生物統(tǒng)計數(shù)據(jù)的驗證。
19.根據(jù)權(quán)利要求17或18所述的方法,其中,用戶認(rèn)證被配置為在一有限時間周期有效。
20.根據(jù)權(quán)利要求19所述的方法,適用于用戶認(rèn)證有效的所述周期在不同的進(jìn)程之間變化。
21.根據(jù)權(quán)利要求12至20中任一項所述的方法,包括多個密鑰庫,其中的每一個均可具有通過單獨(dú)的密鑰庫進(jìn)程或通過中央密鑰庫進(jìn)程進(jìn)行訪問控制。
22.根據(jù)權(quán)利要求12至21中任一項所述的方法,其中,通過刪除或去除所述進(jìn)程擁有的所有項來實現(xiàn)從所述裝置刪除或去除所述進(jìn)程。
23.一種用于計算裝置的操作系統(tǒng),用于使根據(jù)權(quán)利要求1至11中任一項的計算裝置以根據(jù)權(quán)利要求12至22中任一項所要求的方法來操作。
全文摘要
本發(fā)明提供了一種計算裝置,其具有密鑰管理器,密鑰管理器通過識別每個密鑰的所有權(quán)應(yīng)用程序,提供用于區(qū)別密鑰的授權(quán)使用和未授權(quán)使用之間的機(jī)制,其通過密鑰管理器授權(quán)以自由地使用特定的密鑰,并且其還被信任以當(dāng)認(rèn)為合適時(例如,當(dāng)在簽名操作中使用密鑰)請求來自用戶的明確確認(rèn)。為了允許應(yīng)用程序之間共用密鑰,所有權(quán)應(yīng)用程序能夠指定也被信任以使用密鑰的其它應(yīng)用程序的列表。
文檔編號G06F21/62GK1965280SQ200580019062
公開日2007年5月16日 申請日期2005年6月8日 優(yōu)先權(quán)日2004年6月10日
發(fā)明者利昂·克拉克, 克雷格·希思 申請人:西姆畢恩軟件有限公司