專利名稱:在計(jì)算機(jī)系統(tǒng)中使用的隱藏的鏈接動(dòng)態(tài)密鑰管理器的制作方法
技術(shù)領(lǐng)域:
本發(fā)明是于2000年十月20日提交的美國(guó)專利申請(qǐng)No.09/693,605的繼續(xù)部分。
背景技術(shù):
對(duì)于各種理由,許多組織經(jīng)常需要通過(guò)網(wǎng)絡(luò)交換機(jī)密信息。有時(shí)許多組織為此目的通過(guò)專用租用線路建立專用網(wǎng)絡(luò)而避免使用公共網(wǎng)絡(luò)。租用線路是在用于如路由正規(guī)的電話呼叫等的電話網(wǎng)絡(luò)上的專用的點(diǎn)對(duì)點(diǎn)連接。例如,使用租用線路提供地區(qū)性辦公室與公司總部之間的專用網(wǎng)絡(luò)連接,只傳送要在地區(qū)性辦公室與總部之間的要發(fā)送的信息。
也可使用租用線路將一個(gè)組織連接到因特網(wǎng)服務(wù)供應(yīng)者(ISP)。ISP將其顧客連接到公共網(wǎng)絡(luò),諸如因特網(wǎng)。通過(guò)與公共網(wǎng)絡(luò)的連接,顧客可與也連接到公共網(wǎng)絡(luò)的任何其它一方發(fā)送和接收消息。相對(duì)于專用的私有租用線路,這具有便利與低成本的優(yōu)點(diǎn),因?yàn)橹挥信cISP的單一連接必須維護(hù)。然而,與在私有租用線路上發(fā)送的數(shù)據(jù)的用戶相比,在公共網(wǎng)絡(luò)上發(fā)送和接收信息的網(wǎng)絡(luò)用戶,對(duì)數(shù)據(jù)信息具有少得多的控制。明確地說(shuō),在公共網(wǎng)絡(luò)中,在任意發(fā)送者與接收者之間路由信息的網(wǎng)絡(luò)設(shè)備的操作員可截取信息并檢查它或者甚至在途中修改它。而且,在公共網(wǎng)絡(luò)上,發(fā)送者和接收者沒(méi)有便利的方法監(jiān)管中間的網(wǎng)絡(luò)提供者的行為。
因此,常規(guī)的明智行為是,專用租用線路提供對(duì)信息的私密性和完整性的更好控制,因?yàn)楸M管私有租用線路的供應(yīng)者有可能檢查或更改專用網(wǎng)絡(luò)上的信息,私有租用線路的用戶知道供應(yīng)者是誰(shuí)并且能夠建立合理的程序來(lái)審計(jì)供應(yīng)者的行為以確保合理級(jí)別的數(shù)據(jù)私密性和完整性。在像因特網(wǎng)這樣的公共網(wǎng)絡(luò)中,要保證網(wǎng)絡(luò)操作員不會(huì)檢查或者更改在公共網(wǎng)絡(luò)上的任意消息是不切實(shí)際的。
因此,在數(shù)據(jù)的私密性和數(shù)據(jù)完整性方面,在租用線路上的專用網(wǎng)絡(luò)更勝于常規(guī)的公共網(wǎng)絡(luò)連接。然而常常是,由于必需的專用連接的絕對(duì)數(shù)字和租用線路的巨大費(fèi)用,對(duì)于全部網(wǎng)絡(luò)使用專用租用線路變得不切實(shí)際。因而,已經(jīng)形成了建立數(shù)據(jù)私密性和完整性的其它裝置。
這些裝置之一是虛擬專用網(wǎng)絡(luò)(VPN),它使用密碼學(xué),在節(jié)點(diǎn)(包括計(jì)算機(jī))之間使用公共網(wǎng)絡(luò),諸如因特網(wǎng)的互聯(lián)網(wǎng)協(xié)議(IP)網(wǎng)絡(luò)來(lái)創(chuàng)建虛擬點(diǎn)對(duì)點(diǎn)連接。與專用網(wǎng)絡(luò)相似,VPN包括點(diǎn)對(duì)點(diǎn)連接,然而,因?yàn)樗诠簿W(wǎng)絡(luò)上使用加密的信息來(lái)建立“虛擬”連接,因此VPN不要求專用的租用線路。
硬件和軟件可廣泛地用于實(shí)現(xiàn)VPN。然而,硬件和軟件且尤其是適合操作VPN的工作人員是相當(dāng)昂貴的。
因?yàn)樵邳c(diǎn)對(duì)點(diǎn)鏈路的兩端在網(wǎng)絡(luò)層上加密和解密信息,因此如果攻擊者在損害一終端節(jié)點(diǎn)或計(jì)算機(jī)的操作系統(tǒng)時(shí)成功,則攻擊者就具有對(duì)在VPN中交換的全部信息的完全訪問(wèn)。因此,保證安全的、不受損害的VPN的操作的關(guān)鍵是,確保攻擊者和侵入者不能損害或者獲得對(duì)VPN終端節(jié)點(diǎn)的未經(jīng)授權(quán)的訪問(wèn)。
要防止未經(jīng)授權(quán)的訪問(wèn),各組織使用防火墻和健全的系統(tǒng)管理技術(shù)。防火墻過(guò)濾或者限制允許在外部公共網(wǎng)絡(luò)與內(nèi)部網(wǎng)絡(luò)之間通信的包。然而,防火墻必須允許至少一些包與公共網(wǎng)絡(luò)交換,以便無(wú)論如何與公共網(wǎng)絡(luò)連接。
因此,只要與公共網(wǎng)絡(luò)交換包,則攻擊者就有機(jī)會(huì)獲得未經(jīng)授權(quán)的訪問(wèn)。下一層次的防御是要保持操作系統(tǒng)級(jí)的安全層安全。系統(tǒng)級(jí)安全層包括軟件段,它們要求用戶姓名和口令以允許連接等。
攻擊者獲得未經(jīng)授權(quán)訪問(wèn)的普通技術(shù)是利用操作系統(tǒng)安全層中的已知缺陷。這些缺陷通常是由人在設(shè)計(jì)和實(shí)現(xiàn)系統(tǒng)軟件中的錯(cuò)誤引起的。因此,當(dāng)對(duì)于這些缺陷的修補(bǔ)變成可用時(shí),應(yīng)用這些修補(bǔ)或補(bǔ)丁是絕對(duì)必要的。監(jiān)控和及時(shí)地應(yīng)用修補(bǔ)和補(bǔ)丁是健全的系統(tǒng)管理的重要方面。如果不應(yīng)用補(bǔ)丁,則侵入者可以容易地獲得對(duì)終端節(jié)點(diǎn)的訪問(wèn)。
除了VPN(它要求在點(diǎn)對(duì)點(diǎn)鏈路的終端之間配置)之外,存在用于建立加密的信道的其它方法,通過(guò)這些信道在公共網(wǎng)絡(luò)上交換私有信息。這些信道保護(hù)包括象安全套接字協(xié)議層(SSL)和安全命令解釋程序(SSH)這樣的協(xié)議。
密碼學(xué)包括對(duì)消息進(jìn)行編碼和轉(zhuǎn)換,以向除所希望的消息接收者之外的任何人提供不可理解的消息。在保護(hù)數(shù)據(jù)私密性的環(huán)境中,提供不可理解的消息的過(guò)程稱為加密,而由所希望的接收者將消息破譯以提供可理解的消息的過(guò)程稱為解密。經(jīng)常使用除消息本身之外的附加信息來(lái)解密加密的消息。由于加密象鎖定消息而解密象為所希望的接收者解除鎖定該消息,因此用于加密和解密的信息常常稱為密鑰。
除了保護(hù)信息的私密性,保證信息的完整性是有用的,數(shù)據(jù)完整性指數(shù)據(jù)是可靠的并且沒(méi)有被授權(quán)更改過(guò)。一種保證信息可靠性的方法是計(jì)算信息上的消息摘要并且以數(shù)字方式簽署消息摘要。消息摘要常常是諸如MD5或SHA-1單向散列函數(shù)的輸出,它們從任意長(zhǎng)度的消息不可逆地產(chǎn)生定長(zhǎng)輸出摘要。在接收后,接收者可以重新計(jì)算所收到消息上的消息摘要并且驗(yàn)證簽名。通過(guò)驗(yàn)證簽名并將所計(jì)算的消息摘要與經(jīng)簽名的消息摘要相比較,接收者驗(yàn)證他或她已經(jīng)接收到未被更改的由發(fā)送者先簽名的同一消息。
提供數(shù)據(jù)完整性的驗(yàn)證的其它方法包括用于消息標(biāo)識(shí)(HMAC)的加密鑰散列(Keyed-Hashing)。HMAC是一種機(jī)制,可以標(biāo)識(shí)消息源及其完整性。HMAC利用諸如MD5或者SHA-1的任意單向散列函數(shù),連同共享的秘密或者密鑰,提供消息標(biāo)識(shí)碼。HMAC也可以結(jié)合詢問(wèn)應(yīng)答協(xié)議使用,在該協(xié)議中,應(yīng)答是由秘密碼密鑰和詢問(wèn)消息的函數(shù)計(jì)算的。當(dāng)接收者對(duì)收到的消息進(jìn)行HMAC計(jì)算并將它與結(jié)合該消息發(fā)送的消息標(biāo)識(shí)碼相比較時(shí),信息的真實(shí)性被驗(yàn)證。接收者還可以驗(yàn)證該消息來(lái)自擁有秘密碼密鑰的源。此外,在RFC 2104中描述HMAC。
密鑰可以是在公式中使用的數(shù)字,以對(duì)消息進(jìn)行運(yùn)算,或者加密或者解密該消息。其它類型的密鑰包括一次密碼密鑰加密(one time pad),它們是應(yīng)用于消息以便加密和解密它們的密鑰列表,其中密鑰列表的每一元素只使用一次。當(dāng)然,要保持加密的消息不被除所希望的消息接收者之外的其它人解密,至關(guān)緊要的是不要讓密鑰落在非所希望的接收者的手里。因此,密鑰必須以安全方式在加密通信的各方之間交換。進(jìn)行這種操作的一種不方便的方法是,通過(guò)可信的信使以物理方式在鎖定的公文包中將密鑰遞送給各方,從而依靠可驗(yàn)證的物理安全性來(lái)保證實(shí)際的安全。然而,密鑰交換的物理信使方法一般太麻煩、太慢并且太昂貴。
因此,密碼學(xué)中主要挑戰(zhàn)之一是密鑰交換的過(guò)程。用于交換密鑰的流行方法是使用公開(kāi)密鑰密碼學(xué)來(lái)交換對(duì)稱密鑰。公開(kāi)密鑰密碼學(xué)使用兩種密鑰來(lái)加密和解密信息,即旨在廣泛地分發(fā)并與特定實(shí)體相關(guān)聯(lián)的公開(kāi)密鑰,以及旨在以高度機(jī)密和安全的方式保存的私有密鑰。相反,對(duì)稱密碼學(xué)使用同一密鑰來(lái)加密和解密信息。
公開(kāi)密鑰密碼學(xué)通過(guò)以公開(kāi)密鑰加密消息工作。一旦以公開(kāi)密鑰加密,只能使用相應(yīng)的私有密鑰解密消息。同樣,簽名者可通過(guò)將他或她的私有密鑰應(yīng)用于消息,或者通常應(yīng)用于消息的摘要,來(lái)創(chuàng)建數(shù)字簽名,消息摘要是唯一地標(biāo)識(shí)該消息的定長(zhǎng)信息段。通過(guò)將所聲稱的數(shù)字簽名的公開(kāi)密鑰應(yīng)用于該簽名,來(lái)確定該簽名是否有效。
簡(jiǎn)化地使用公開(kāi)密鑰密碼學(xué)以交換對(duì)稱密鑰是按以下面的方法完成的。一方產(chǎn)生新的對(duì)稱密鑰,例如,使用隨機(jī)數(shù)產(chǎn)生器。接著,該方使用所希望的接收者的公開(kāi)密鑰加密對(duì)稱密鑰,并將加密的消息發(fā)送給所希望的接收者。接收者使用他或她的私有密鑰解密消息,從而安全地接收對(duì)稱密鑰,可以使用該對(duì)稱密鑰來(lái)保護(hù)用于進(jìn)一步通信的信道。
在公開(kāi)密鑰密碼學(xué)的任何應(yīng)用中一個(gè)重要問(wèn)題是,公開(kāi)密鑰密碼學(xué)的用戶(例如加密消息的發(fā)送者)使用其它方的可靠的公開(kāi)密鑰。如果發(fā)送者錯(cuò)誤地使用攻擊者的公開(kāi)密鑰,則攻擊者將能夠解密該消息,并且將具有允許攻擊者訪問(wèn)該安全信道的對(duì)稱密鑰。而且,如果攻擊者能夠?qū)⑺蛩约阂赃@種方式插進(jìn)信道中,則攻擊者可以偽造消息給接收者并安裝稱為“中間人(man-in-the-middle)”攻擊,其中發(fā)送者和接收者兩者都相信它們正通過(guò)安全信道直接通信,但實(shí)際上正通過(guò)攻擊者通信,攻擊者在消息在發(fā)送者和接收者之間傳輸時(shí)有能力檢查和更改消息。因此,有效地使用公開(kāi)密鑰密碼學(xué)要求用戶能夠驗(yàn)證,特定的公開(kāi)密鑰是他們想要與其通信的人的真的公開(kāi)密鑰。保證公開(kāi)密鑰是正確的公開(kāi)密鑰,這是公開(kāi)密鑰確認(rèn)的問(wèn)題。
一種解決公開(kāi)密鑰確認(rèn)問(wèn)題的方法是,在主要報(bào)紙上發(fā)布公開(kāi)密鑰,并且公開(kāi)密鑰的用戶人工地將他們使用的公開(kāi)密鑰與所公布的數(shù)字相比較。這個(gè)系統(tǒng)相當(dāng)有效并且偶爾在實(shí)際中使用。然而,它有點(diǎn)不方便并且不便于自動(dòng)化。已經(jīng)使用了其它公開(kāi)密鑰確認(rèn)程序。在“信任環(huán)(trust of ring)”環(huán)境中,諸如在相當(dāng)好私密性(Pretty Good Privacy)(PGP)TM系統(tǒng)中使用的,用戶可人工地輸入或自動(dòng)地導(dǎo)入來(lái)自可信源的公開(kāi)密鑰。驗(yàn)證公開(kāi)密鑰的另一個(gè)解決方案是數(shù)字證書(shū),其中以數(shù)字方式簽署公開(kāi)密鑰,并且按照哪些公開(kāi)密鑰密碼系統(tǒng)的用戶可以通過(guò)確認(rèn)在證書(shū)上的數(shù)字簽名,來(lái)驗(yàn)證證書(shū)及其相應(yīng)的公開(kāi)密鑰的可靠性。使用證書(shū)機(jī)構(gòu)(Certication Authority)(CA)的預(yù)建立的可信的公開(kāi)密鑰來(lái)確認(rèn)簽名。
SSL協(xié)議使用數(shù)字證書(shū)。在SSL中,網(wǎng)站服務(wù)器具有X.509格式的數(shù)字證書(shū),它由可信的CA使用CA的私有密鑰以數(shù)字方式簽署。在SSL環(huán)境中,CA的簽名可以在客戶機(jī)使用CA的公開(kāi)密鑰的可信版本來(lái)驗(yàn)證。在流行的瀏覽器中,流行的CA的公開(kāi)密鑰預(yù)加載到瀏覽器中。SSH需要服務(wù)器的公開(kāi)密鑰的初始可信交換,使得在后續(xù)的事務(wù)中,服務(wù)器的身份可以由用戶使用常規(guī)的公開(kāi)密鑰技術(shù)來(lái)驗(yàn)證。
因此,諸如SSH和SSL的VPN和信道保護(hù)器在數(shù)據(jù)在潛在的不安全的網(wǎng)絡(luò)上從一安全節(jié)點(diǎn)交換到另一個(gè)安全節(jié)點(diǎn)時(shí),保護(hù)該數(shù)據(jù)。然而,這些信道保護(hù)器只在傳輸過(guò)程中保護(hù)數(shù)據(jù)。一旦在目的節(jié)點(diǎn)上解密后,信道保護(hù)技術(shù)不能再保護(hù)數(shù)據(jù)。并且防火墻和健全的系統(tǒng)管理技術(shù)已經(jīng)證明,在保持不讓侵入者獲得對(duì)網(wǎng)絡(luò)連接的計(jì)算機(jī)系統(tǒng)未經(jīng)授權(quán)的訪問(wèn)時(shí)并不完全有效。因而,在快速地從例如各種網(wǎng)站偷竊數(shù)以千計(jì)的信用卡號(hào)碼和其它機(jī)密信息時(shí),高度公開(kāi)的攻擊已經(jīng)成功。
在某些情況下,一組織試圖通過(guò)將其服務(wù)器放置在配備了鎖定的門(mén)和監(jiān)視攝像機(jī)的房間里,保護(hù)固定的加密碼密鑰和其它敏感數(shù)據(jù)。然而,遠(yuǎn)程侵入者不需要物理地訪問(wèn)服務(wù)器房間以便訪問(wèn)存儲(chǔ)在公司的服務(wù)器上的數(shù)據(jù)。侵入者而只需要以某種方式遠(yuǎn)程訪問(wèn)該公司的網(wǎng)絡(luò)。甚至在使用防火墻的情況下,可以通過(guò)已知的利用,結(jié)合那樣一些技術(shù),例如包括IP欺騙(其中侵入者偽造具有虛假I(mǎi)P地址的包),來(lái)獲得這種訪問(wèn)。其它技術(shù)包括網(wǎng)絡(luò)掃描,這有助于識(shí)別具有可利用的缺陷的系統(tǒng)。
一旦侵入者獲得對(duì)在內(nèi)部網(wǎng)絡(luò)上的一個(gè)系統(tǒng)的訪問(wèn),它就變成可能利用內(nèi)部網(wǎng)絡(luò)中的其它弱點(diǎn),諸如截取未加密的網(wǎng)絡(luò)通信量,并且使用從該通信量獲得的信息,訪問(wèn)內(nèi)部網(wǎng)絡(luò)上的其它系統(tǒng)。例如,許多通用的電子郵件程序傳輸用戶名和口令消息,它們是未加密的或者使用其實(shí)際值的易于破解的防護(hù)。
一旦獲得對(duì)關(guān)鍵系統(tǒng)資源的訪問(wèn),即,對(duì)常規(guī)的數(shù)據(jù)庫(kù)服務(wù)器的根訪問(wèn),侵入者具有對(duì)組織的信息的完全訪問(wèn),包括例如信用卡號(hào)碼,可識(shí)別的醫(yī)療記錄,并且其它關(guān)于組織的疾病患者、顧客和/或職員的敏感機(jī)密信息??梢酝ㄟ^(guò)未授權(quán)的訪問(wèn)獲得的機(jī)密信息的其它例子包括信用卡號(hào)碼,銀行帳號(hào),社會(huì)保障號(hào),生日和高度個(gè)人和私有的醫(yī)療記錄。
結(jié)合對(duì)信息的訪問(wèn),包括對(duì)加密和解密信息的密鑰的訪問(wèn),驗(yàn)證信息的用戶的身份和授權(quán)和用戶為訪問(wèn)該信息所使用的軟件的身份和授權(quán)是有用的。因此,已經(jīng)設(shè)計(jì)出用戶授權(quán)和軟件或代碼、授權(quán)方案來(lái)進(jìn)行用戶和代碼的授權(quán)。用戶的身份驗(yàn)證可以通過(guò)例如接收口令并將該口令與所存儲(chǔ)的口令相比較,或者通過(guò)不可逆地將所收到的口令轉(zhuǎn)換成另一個(gè)形式并將轉(zhuǎn)換后的口令與以同一形式存儲(chǔ)的口令相比較來(lái)進(jìn)行。同樣,軟件組件可以通過(guò)使用例如數(shù)字簽名來(lái)進(jìn)行身份驗(yàn)證。然而,使用經(jīng)簽署的組件提供軟件組件身份驗(yàn)證的已知方法,然而,依賴于策略文件和PKI信任鏈??上В€存在破壞安全的已知方法,它依賴于普通策略文件的完整性。而且,結(jié)合用企業(yè)級(jí)簽署的私有密鑰的組件,獲得對(duì)企業(yè)級(jí)簽署的私有密鑰的訪問(wèn)的侵入者可以將簽名放在欺騙軟件組件上。因此,在本領(lǐng)域中,對(duì)軟件組件授權(quán)的方法和系統(tǒng)的領(lǐng)域中有一種需求,它們不同已知方法和系統(tǒng)的缺陷而受到損害。
從疾病患者的角度,對(duì)個(gè)人醫(yī)療記錄的未經(jīng)授權(quán)的訪問(wèn)的結(jié)果可以是毀滅性的。對(duì)于一個(gè)典型的顧客,取消和代替信用卡,與敏感醫(yī)療信息的損害和潛在公布相比是相對(duì)微小的不方便。而且,篡改醫(yī)療信息是潛在的生命威脅,侵害私密性和數(shù)據(jù)完整性。因此,機(jī)密信息的保護(hù),尤其是醫(yī)療記錄,要求更強(qiáng)地保證顧客或疾病患者的機(jī)密信息是安全的。只在傳輸時(shí)保護(hù)數(shù)據(jù)的已知方法不能滿足這一需求。
發(fā)明內(nèi)容
提供一種計(jì)算機(jī)系統(tǒng),它包含密碼密鑰和密碼密鑰標(biāo)識(shí)符。系統(tǒng)具有一儲(chǔ)存庫(kù)密碼引擎,它安全地與遠(yuǎn)程密碼引擎通信,并且儲(chǔ)存庫(kù)密碼引擎與一用戶數(shù)據(jù)存儲(chǔ)器相關(guān)聯(lián)。該數(shù)據(jù)存儲(chǔ)器包括一隱藏的鏈接,它包括用保護(hù)密鑰加密的會(huì)話密鑰標(biāo)識(shí)符。隱藏的鏈接與遠(yuǎn)程數(shù)據(jù)實(shí)體相關(guān)聯(lián)。與存儲(chǔ)庫(kù)服務(wù)器相關(guān)聯(lián)的密鑰數(shù)據(jù)存儲(chǔ)器包括用會(huì)話密鑰保護(hù)密鑰(Session-Key-Protection)加密的會(huì)話密鑰。使用會(huì)話密鑰加密和解密遠(yuǎn)程數(shù)據(jù)實(shí)體。該系統(tǒng)也包括一存儲(chǔ)庫(kù)密鑰交換模塊,用于與遠(yuǎn)程密鑰交換模塊交換會(huì)話密鑰。
會(huì)話密鑰標(biāo)識(shí)符可選地可操作,用于識(shí)別相應(yīng)于遠(yuǎn)程數(shù)據(jù)實(shí)體的會(huì)話密鑰。計(jì)算機(jī)系統(tǒng)可選地還包括控制對(duì)操作的訪問(wèn)的授權(quán)模塊。授權(quán)模塊可選地還與用戶數(shù)據(jù)存儲(chǔ)器相耦合,并且基于用戶數(shù)據(jù)存儲(chǔ)器進(jìn)一步提供對(duì)會(huì)話密鑰的訪問(wèn)。保護(hù)密鑰最好是對(duì)稱的密碼密鑰。
在一個(gè)實(shí)施例中,會(huì)話密鑰保護(hù)密鑰是對(duì)稱密碼密鑰。在另一個(gè)實(shí)施例中,會(huì)話密鑰保護(hù)密鑰和保護(hù)密鑰是等價(jià)的。對(duì)稱密碼密鑰可選地是三重?cái)?shù)據(jù)加密標(biāo)準(zhǔn)(Data Encryption Standard)或者高級(jí)加密標(biāo)準(zhǔn)(Advanced EncryptionStandard)。
提供一種分布式網(wǎng)絡(luò),它包括一包含密碼密鑰的存儲(chǔ)庫(kù)服務(wù)器。該網(wǎng)絡(luò)包括儲(chǔ)存庫(kù)密碼引擎,用于與遠(yuǎn)程密碼引擎安全地通信。該網(wǎng)絡(luò)還包括遠(yuǎn)程密碼代理,用于與遠(yuǎn)程密碼引擎安全地通信。而且,該網(wǎng)絡(luò)還包括一與遠(yuǎn)程密碼代理相耦合的商業(yè)代理,其中,商業(yè)代理的可靠性由遠(yuǎn)程密碼引擎通過(guò)將所存儲(chǔ)的商業(yè)代理的指紋與遠(yuǎn)程密碼代理的計(jì)算出的指紋相比較來(lái)驗(yàn)證。
提供一種密碼方法,用于促進(jìn)信息的安全存儲(chǔ)。首先,從遠(yuǎn)程計(jì)算機(jī)系統(tǒng)處的請(qǐng)求密鑰交換模塊接收一對(duì)會(huì)話密鑰的密鑰請(qǐng)求。該密鑰請(qǐng)求包括一隱藏的鏈接。接著,基于隱藏的鏈接使用保護(hù)密鑰訪問(wèn)和加密會(huì)話密鑰。然后,對(duì)應(yīng)于請(qǐng)求密鑰交換模塊接收交換公開(kāi)密鑰。以交換公開(kāi)密鑰中加密該會(huì)話密鑰,產(chǎn)生加密的會(huì)話密鑰。而且,將加密的會(huì)話密鑰傳輸?shù)秸?qǐng)求密鑰交換模塊。然后,在與請(qǐng)求者相關(guān)聯(lián)的計(jì)算機(jī)上,用與交換公開(kāi)密鑰相應(yīng)的交換私有密鑰接收加密的會(huì)話密鑰。用會(huì)話密鑰加密數(shù)據(jù)實(shí)體,并將隱藏的鏈接連接于數(shù)據(jù)實(shí)體。接著,存儲(chǔ)該數(shù)據(jù)實(shí)體。
從結(jié)合附圖的下面詳述可明白本發(fā)明的這些和其他發(fā)明的特征和優(yōu)點(diǎn),在諸附圖中,類似的參考字符標(biāo)記類似的單元。附圖說(shuō)
圖1是實(shí)現(xiàn)按照本發(fā)明的隱藏的鏈接動(dòng)態(tài)密鑰管理器的計(jì)算機(jī)系統(tǒng)的示意圖;圖2是圖1的計(jì)算機(jī)系統(tǒng)的示意框圖,它示出計(jì)算機(jī)系統(tǒng)的軟件組件;圖3是按照本發(fā)明并由圖1的計(jì)算機(jī)系統(tǒng)使用的數(shù)據(jù)庫(kù)結(jié)構(gòu)的示意圖;圖4是圖3的數(shù)據(jù)庫(kù)結(jié)構(gòu)的安全密鑰標(biāo)識(shí)屬性的示意圖;圖5是一監(jiān)視器顯示的示意圖,例示按照本發(fā)明的可修改的顯示參數(shù),并且只有公共信息和字段被顯示;圖6是一監(jiān)視器顯示的示意圖,例示按照本發(fā)明的可修改的顯示參數(shù),并具有公共和私有兩者信息和字段被顯示;圖7是示意框圖,例示確定如何修改在圖5和6中示出的顯示參數(shù)的步驟;圖8是會(huì)話加密碼密鑰數(shù)據(jù)實(shí)體的示意圖;圖9是系統(tǒng)密鑰普通名數(shù)據(jù)實(shí)體的示意圖;圖10是示意框圖,例示在添加事務(wù)期間數(shù)據(jù)實(shí)體的加密和存儲(chǔ);圖11是示意框圖,例示在更新和觀看事務(wù)期間數(shù)據(jù)實(shí)體的檢索和解密;圖12是示意框圖,例示在更新和觀看事務(wù)期間數(shù)據(jù)實(shí)體的檢索和解密的替換實(shí)施例;圖13是示意框圖,例示會(huì)話加密碼密鑰的撤消;圖14是示意框圖,例示會(huì)話加密碼密鑰的撤消的替換實(shí)施例;圖15是例示一系統(tǒng)的示意框圖,在該系統(tǒng)中,例示提供與本發(fā)明一致的數(shù)據(jù)庫(kù)保護(hù);圖16是例示一系統(tǒng)的示意框圖,在該系統(tǒng)中,遠(yuǎn)程計(jì)算機(jī)系統(tǒng)通過(guò)網(wǎng)絡(luò)訪問(wèn)密鑰存儲(chǔ)庫(kù);圖17是例示一系統(tǒng)的示意框圖,該系統(tǒng)包括一文件服務(wù)器,一存儲(chǔ)庫(kù)服務(wù)器和遠(yuǎn)程計(jì)算機(jī)系統(tǒng);圖18A是示意框圖,例示與本發(fā)明相一致的部門(mén)際的數(shù)據(jù)保護(hù);圖18B是示意框圖,例示與本發(fā)明相一致的部門(mén)際的數(shù)據(jù)保護(hù);圖18C是示意框圖,例示結(jié)合企業(yè)內(nèi)部網(wǎng)或外部網(wǎng)基于密鑰存儲(chǔ)庫(kù)的數(shù)據(jù)保護(hù);圖18D是例示移動(dòng)數(shù)據(jù)保護(hù)的示意框圖;圖18E是例示在多企業(yè)環(huán)境中的數(shù)據(jù)保護(hù)的示意框圖;圖19是示意框圖,例示相應(yīng)于密鑰、訪問(wèn)控制和用戶數(shù)據(jù)庫(kù)的表的實(shí)施例;圖20是示意框圖,例示按照本發(fā)明加密文件的過(guò)程;圖21是示意框圖,例示維護(hù)訪問(wèn)控制列表的過(guò)程;圖22是示意框圖,例示訪問(wèn)加密文件的過(guò)程;圖23是示意框圖,例示響應(yīng)于一密鑰變成被損害,阻止與該密鑰相關(guān)聯(lián)的訪問(wèn)的過(guò)程;圖24是例示一系統(tǒng)的示意框圖,在該系統(tǒng)中,對(duì)可信的組件進(jìn)行授權(quán);圖25是例示創(chuàng)建智能卡的過(guò)程的示意框圖;圖26是例示注冊(cè)組件的過(guò)程的示意框圖;以及圖27是示意框圖,例示執(zhí)行對(duì)組件的運(yùn)行時(shí)間授權(quán)的過(guò)程。
具體實(shí)施例方式
更詳細(xì)地參考附圖,圖1和2示出按照本發(fā)明的較佳實(shí)施例構(gòu)造的計(jì)算機(jī)系統(tǒng)20,用于存儲(chǔ)信息。本發(fā)明提供加密和解密數(shù)據(jù)的改進(jìn)方法,最好是靜止的(at rest)數(shù)據(jù),即處于其原來(lái)的形式,例如在文件系統(tǒng)中或者在數(shù)據(jù)庫(kù)服務(wù)器中。計(jì)算機(jī)系統(tǒng)20大致包括一安全域22,它具有加密碼密鑰管理器(EKM)24、系統(tǒng)密鑰管理器(SKM)84、密鑰生存期管理器(KLM)88、密鑰審計(jì)管理器(KAM)90和數(shù)據(jù)庫(kù)適配器(DBAD)86。在一替換的實(shí)施例中,在安全域22中包括其它企業(yè)安全組件。
計(jì)算機(jī)系統(tǒng)20還包括多個(gè)具有信息數(shù)據(jù)庫(kù)28的客戶機(jī)商業(yè)域26。計(jì)算機(jī)系統(tǒng)20實(shí)現(xiàn)按照本發(fā)明的一種方法。該方法大致包括數(shù)據(jù)實(shí)體30的加密、解密和存儲(chǔ)(圖3),如在圖10的流程圖中例示的,并且該方法還包括用于數(shù)據(jù)操作的數(shù)據(jù)的檢索和解密。檢索和解密方法的一個(gè)實(shí)施例在圖11的流程圖中例示。計(jì)算機(jī)系統(tǒng)20使用圖3中例示的數(shù)據(jù)結(jié)構(gòu)。該數(shù)據(jù)結(jié)構(gòu)大致包括具有安全密鑰標(biāo)識(shí)屬性32的多個(gè)數(shù)據(jù)實(shí)體30,安全密鑰標(biāo)識(shí)屬性包含如圖4例示安全密鑰信息。
參考圖1,除安全域22和客戶機(jī)商業(yè)域26之外,計(jì)算機(jī)系統(tǒng)還包括多個(gè)客戶機(jī)終端34??蛻魴C(jī)終端34具備與商業(yè)域26通信的遠(yuǎn)程通信能力。然而,本發(fā)明還考慮使用替換的通信機(jī)制,諸如例如企業(yè)內(nèi)部網(wǎng),局域網(wǎng)(LAN)和廣域網(wǎng)(WAN)。可利用企業(yè)內(nèi)部網(wǎng)、LAN和WAN于其中數(shù)據(jù)安全很重要的任何類型的設(shè)備或組織,,諸如例如銀行、醫(yī)院或法律事務(wù)所。客戶機(jī)終端34只有在通過(guò)諸如防火墻的安全裝置之后獲得對(duì)客戶機(jī)商業(yè)域26的訪問(wèn),并且在客戶機(jī)商業(yè)域26與安全域22之間通信最好通過(guò)因特網(wǎng)協(xié)議安全的虛擬專用網(wǎng)絡(luò)隧道(IPSEC,VPN隧道)38進(jìn)行。
安全域22包括一主密鑰服務(wù)器40、次級(jí)密鑰服務(wù)器42、一安全密鑰數(shù)據(jù)庫(kù)44和一證書(shū)機(jī)構(gòu)服務(wù)器46。每個(gè)密鑰服務(wù)器是通用計(jì)算機(jī),具有各種組件,包括例如,一個(gè)或多個(gè)處理器,快速主存儲(chǔ)器和持久存儲(chǔ)器。證書(shū)服務(wù)器46也是通用計(jì)算機(jī)。
主密鑰服務(wù)器40和次級(jí)密鑰服務(wù)器42是鏡象組件。因而,主和次級(jí)密鑰服務(wù)器實(shí)質(zhì)上是相同的。如果主密鑰服務(wù)器40故障,則次級(jí)密鑰服務(wù)器42立即開(kāi)始操作而不中斷整個(gè)系統(tǒng)操作,因此提供故障容錯(cuò)。在操作中的轉(zhuǎn)換是通過(guò),例如,主與次級(jí)服務(wù)器40、42之間的心博故障在線恢復(fù)信道(heart beatfailover channel)來(lái)完成的。主和次級(jí)服務(wù)器40、42各自可選地包括磁帶備份48、50,分別用于在KEYDB 44不可檢索或者密鑰完整性檢查失敗時(shí)檢索密鑰。主服務(wù)器40具備在附圖中指定為閱讀器#1的主系統(tǒng)密鑰閱讀器52,在附圖中指定為閱讀器#2的主加密碼密鑰閱讀器54。最好,主服務(wù)器40的每個(gè)主閱讀器52、54存儲(chǔ)相同的信息。因而,主閱讀器52、54是鏡象硬件組件,用于高級(jí)故障容錯(cuò)。次級(jí)數(shù)據(jù)庫(kù)42還包括在附圖中指定為閱讀器#1的次級(jí)系統(tǒng)密鑰閱讀器56,在附圖中指定為閱讀器#2的次級(jí)加密碼密鑰閱讀器58。最好,次級(jí)服務(wù)器42的每個(gè)次級(jí)閱讀器56、58存儲(chǔ)相同的信息。因而,次級(jí)閱讀器56、58也是鏡象的,并且總共有四個(gè)閱讀器,可以從它們檢索密鑰信息。閱讀器52-58包括安全權(quán)標(biāo)(token)閱讀器用于接收安全權(quán)標(biāo)。最好,閱讀器包括智能卡閱讀器,用于接收智能卡。硬件隨機(jī)數(shù)發(fā)生器(HRNG)59也是在安全域中可選地提供的,以產(chǎn)生隨機(jī)數(shù),用作密鑰的標(biāo)識(shí)符。
在一個(gè)實(shí)施例中,密鑰服務(wù)器40和42包含多個(gè)保護(hù)密鑰,用于加密和解密會(huì)話密鑰和會(huì)話密鑰標(biāo)識(shí)符。保護(hù)密鑰本身存儲(chǔ)在保護(hù)存儲(chǔ)器中,例如ASCII平面文件,并且以主密鑰加密。在一個(gè)實(shí)施例中,可以基于M中的K個(gè)范例提供主密鑰,在其之下有M個(gè),例如七個(gè)獨(dú)立的子密鑰,由例如七個(gè)不同的人保存。在這個(gè)實(shí)施例中,要解鎖保護(hù)密鑰存儲(chǔ)器,七人中的K個(gè),如三個(gè)人必須提供他們的子密鑰。在一替換的實(shí)施例中,使用M中加權(quán)K的方案,在其之下M個(gè)子密鑰中的某些比其它加權(quán)更高。在M中加權(quán)K的方案中,例如,一公司的CEO可以配備一具有足夠的權(quán)重的子密鑰來(lái)由其自己解鎖保護(hù)存儲(chǔ)器,而下級(jí)基于下級(jí)的責(zé)任級(jí)別具有各自較低權(quán)重的子密鑰。
在一個(gè)實(shí)施例中,KEYDB 44包括具有故障容錯(cuò)系統(tǒng)的外部盤(pán)陣列用于鏡象操作。在一個(gè)替換的實(shí)施例中,KEYDB 44是關(guān)系數(shù)據(jù)庫(kù)平臺(tái),諸如MicrosoftTMSQL Server,OracleTM,DB2TM,mySQLTM,PostgreSQLTM或Jet EngineTM。外部盤(pán)陣列或者數(shù)據(jù)庫(kù)服務(wù)器可選地包括冗余獨(dú)立磁盤(pán)陣列(redundant array ofindependent disks)(RAID)。每個(gè)密鑰服務(wù)器40、42用于與KEYDB 44通信。在一個(gè)實(shí)施例中,密鑰服務(wù)器使用ADO、ODBC或本地?cái)?shù)據(jù)庫(kù)接口,諸如與OracleTM數(shù)據(jù)庫(kù)服務(wù)器有關(guān)提供的接口,與數(shù)據(jù)庫(kù)服務(wù)器KEYDB 44通信。
客戶機(jī)商業(yè)域26最好包括多個(gè)應(yīng)用服務(wù)器60、61和主信息數(shù)據(jù)庫(kù)62,它與KEYDB 44隔離,并且是一個(gè)數(shù)據(jù)庫(kù)平臺(tái),諸如結(jié)合KEYDB 44或者另外的InterSystems CacheTM列舉的那些平臺(tái)。最好,還提供備份信息數(shù)據(jù)庫(kù)64。備份信息數(shù)據(jù)庫(kù)64鏡象主信息數(shù)據(jù)庫(kù)62中的信息,提供冗余并防止數(shù)據(jù)丟失。因而,為客戶機(jī)商業(yè)域26提供高級(jí)故障容錯(cuò)。為了附加的安全,在一個(gè)實(shí)施例中,客戶機(jī)商業(yè)域服務(wù)器60、61只能通過(guò)防火墻66訪問(wèn)。每個(gè)應(yīng)用服務(wù)器60、61可包含多個(gè)商業(yè)邏輯組件,諸如商業(yè)邏輯組件一號(hào)(BLC1)68。BLC包含指令和規(guī)則,用于由用戶和/或用戶軟件應(yīng)用的開(kāi)發(fā)者設(shè)置的計(jì)算機(jī)系統(tǒng)20的操作。
通常,每一客戶機(jī)終端34包括一中央處理器(CPU)70,諸如鍵盤(pán)72的數(shù)據(jù)輸入機(jī)構(gòu)和顯示器或監(jiān)視器74。CPU 70用于控制監(jiān)視器74,從鍵盤(pán)72接收輸入,并通過(guò)因特網(wǎng)36,利用調(diào)制解調(diào)器、雙向衛(wèi)星、數(shù)字用戶線(DSL)或其它通信裝置(未示出)如以太網(wǎng)適配器,建立和維護(hù)通信。CPU 70還用于控制其它計(jì)算機(jī)系統(tǒng)設(shè)備諸如打印機(jī)或盤(pán)驅(qū)動(dòng)器。最好,每一客戶機(jī)終端也裝備用戶安全權(quán)標(biāo)閱讀器,用于接收安全權(quán)標(biāo)。在一個(gè)較佳實(shí)施例中,安全權(quán)標(biāo)閱讀器包括智能卡78,用于接收智能卡80。智能卡可選地具備專用和受保護(hù)的文件系統(tǒng)。每一用戶可選地具備他或她自己的智能卡80,它包括用于標(biāo)識(shí)和授權(quán)用戶的密碼。其它已知的解決方案,諸如用戶標(biāo)識(shí)和口令,可以用于控制訪問(wèn)和用戶授權(quán)。在一個(gè)實(shí)施例中,用戶具有一個(gè)或多個(gè)授權(quán)的角色。角色標(biāo)識(shí)可以包括助理員級(jí)、接待員級(jí)、管理員級(jí)和其它。角色標(biāo)識(shí)表示由在這些級(jí)別中各人執(zhí)行的職責(zé),以及對(duì)于他們正確地執(zhí)行這些職責(zé)所需信息的范圍。如下結(jié)合圖7描述,使用用戶和角色標(biāo)識(shí)以限制對(duì)信息的訪問(wèn)。
參考圖2,計(jì)算機(jī)系統(tǒng)20的安全域22包括若干軟件組件,它們駐留在圖1所例示的硬件組件上。主和次級(jí)密鑰服務(wù)器40、42包括實(shí)質(zhì)上相同的軟件組件,并且都將參考主密鑰服務(wù)器40來(lái)描述。主密鑰服務(wù)器40包括若干軟件組件通用安全管理器(GSM)82,加密碼密鑰管理器(EKM)24,系統(tǒng)密鑰管理器(SKM)84,數(shù)據(jù)庫(kù)適配器(DBAD)86,密鑰生存期管理器(KLM)88和密鑰審計(jì)管理器(KAM)90。在專用證書(shū)機(jī)構(gòu)(CA)服務(wù)器46上提供證書(shū)管理器(CM)92。
通用安全管理器(GSM)82用作到位于安全域22中的計(jì)算機(jī)系統(tǒng)20的部分的網(wǎng)關(guān)。為此,每個(gè)安全域22組件EKM 24、SKM 84、DBAD 86、KLM 88、KAM 90、CM 92最好不用于直接與計(jì)算機(jī)系統(tǒng)20的安全域22之外的任何組件通信。在一個(gè)實(shí)施例中,它們只用于通過(guò)GSM 82與外界的組件通信。最好,組件相互授權(quán)在位于安全域中的GSM 82與外界商業(yè)域組件68之間發(fā)生。COM+、CORBA或Java安全可以用于控制相互授權(quán)。因而,在這個(gè)實(shí)施例中,客戶機(jī)用戶和客戶機(jī)商業(yè)域26中的任何組件都不能通過(guò)可信授權(quán)過(guò)程接觸除GSM 82之外的任何部分。
GSM 82也用于加密數(shù)據(jù)實(shí)體30(圖3),例如使用三密鑰(three-key),三重?cái)?shù)據(jù)加密標(biāo)準(zhǔn)(3DES),RC4或任何強(qiáng)密碼算法于數(shù)據(jù)實(shí)體30C、30D的被選擇的屬性,如由BLC和計(jì)算機(jī)系統(tǒng)20的其它組件指向和請(qǐng)求的。因而,當(dāng)DES使用對(duì)稱56位密鑰加密時(shí),GSM最好使用三密鑰3DES,這是對(duì)稱168位密碼系統(tǒng),具有大約110位的有效密鑰強(qiáng)度??梢允褂闷渌鼜?qiáng)密碼系統(tǒng)算法,諸如128位IDEA或AES。使用擴(kuò)展的長(zhǎng)度的密鑰使這些密鑰比56位DES密鑰更難以被破譯,后者已經(jīng)在實(shí)驗(yàn)上使用并行處理系統(tǒng)被破譯過(guò)。
當(dāng)計(jì)算機(jī)系統(tǒng)20的其它組件要求解密時(shí),GSM 82還執(zhí)行數(shù)據(jù)實(shí)體30的解密。而且,GSM 82用于使用消息摘要5(MD5)、SHA-1或其它強(qiáng)散列算法執(zhí)行散列操作,如由其它組件指示的。在單向散列過(guò)程中產(chǎn)生的散列值或完整性值一般作為數(shù)據(jù)實(shí)體中的屬性存儲(chǔ),用于完整性檢驗(yàn)的目的。最好,GSM 82散列數(shù)據(jù)實(shí)體的所有數(shù)據(jù)屬性,并作為一個(gè)屬性存儲(chǔ)該數(shù)據(jù)散列值。在已經(jīng)解密了數(shù)據(jù)之后,它再次被散列并且比較之前和其后的散列值。如果兩個(gè)散列值相同,則確認(rèn)了數(shù)據(jù)實(shí)體中數(shù)據(jù)的完整性。如果兩個(gè)散列值不同,則發(fā)出警報(bào)并從備份信息數(shù)據(jù)庫(kù)64檢索數(shù)據(jù)。
加密碼密鑰管理器(EKM)24,如其名稱所表示的,通常管理加密碼密鑰,如下所述用于加密和解密數(shù)據(jù)實(shí)體30C、30D。因而,EKM 24用于產(chǎn)生多重會(huì)話加密碼密鑰(SEK),例如或者3DES或者DES,并且為SEK產(chǎn)生會(huì)話加密碼密鑰標(biāo)識(shí)(SEKID)。SEKID是可選地用HRNG 59(硬件隨機(jī)數(shù)產(chǎn)生器)產(chǎn)生的隨機(jī)數(shù)。可替換地,使用軟件隨機(jī)數(shù)產(chǎn)生器產(chǎn)生SEKID。EKM用于使用SEK的散列值在SEK上執(zhí)行完整性檢驗(yàn)。EKM還用于將SEKID發(fā)送給SKM 84用于解密,并且EKM24也用于將SEK和相應(yīng)的SEKID以加密的形式發(fā)送給GSM 82,后者接著使用SEK加密數(shù)據(jù)實(shí)體30C、30D。
系統(tǒng)密鑰管理器(SKM)84通常管理系統(tǒng)密鑰,如下所述用于加密SEKID。因此,SKM 84能用于加密SEKID。在一個(gè)實(shí)施例中,使用若干保護(hù)密鑰加密SEK和SEKID。要理解,所使用的保護(hù)密鑰的數(shù)量是一個(gè)操作員可選擇的參數(shù)。在一個(gè)實(shí)施例中,使用大約20個(gè)保護(hù)密鑰。在另一個(gè)實(shí)施例中,使用超過(guò)大約1000個(gè)保護(hù)密鑰。保護(hù)密鑰可選地是3DES或AES密鑰,并且將指向保護(hù)密鑰的指針與SEK一起存儲(chǔ)。在本實(shí)施例中,與加密的數(shù)據(jù)一起發(fā)送的隱藏的鏈接包含若干數(shù)據(jù)結(jié)構(gòu),包括一個(gè)指向保護(hù)密鑰的指針,以及唯一地相應(yīng)于產(chǎn)生SEKID的密碼引擎的密碼引擎標(biāo)識(shí)符。
在一個(gè)實(shí)施例中,使用單獨(dú)的加密碼密鑰加密SEK和SEKID。在這個(gè)實(shí)施例中,使用加密碼密鑰公開(kāi)密鑰加密用于加密SEK的加密碼密鑰。而且,使用系統(tǒng)密鑰公開(kāi)密鑰加密用于加密SEKID的對(duì)稱密鑰。在這個(gè)實(shí)施例中,SKM還產(chǎn)生系統(tǒng)密鑰普通名稱(SKCN),用于非對(duì)稱加密碼密鑰對(duì)和系統(tǒng)密鑰對(duì)。在這個(gè)實(shí)施例中,當(dāng)產(chǎn)生系統(tǒng)公開(kāi)密鑰的數(shù)字證書(shū)時(shí),產(chǎn)生SKCN,因此對(duì)于每一系統(tǒng)密鑰對(duì)有一個(gè)唯一的SKCN。在一個(gè)可替換的實(shí)施例中,SEKID是用對(duì)稱密鑰加密的,而對(duì)稱密鑰是由系統(tǒng)密鑰公開(kāi)密鑰加密的。在另一個(gè)可替換實(shí)施例中,SEKID用稱為保護(hù)密鑰的,如SEK的,對(duì)稱密鑰加密的。
在從EKM 24請(qǐng)求時(shí),SKM 84也用于使用合適的密鑰解密SEKID。如果需要,SKM 84和EKM 24可以組合成單一組件并且可以駐留在同一服務(wù)器或計(jì)算機(jī)系統(tǒng)上。
在一個(gè)實(shí)施例中,Microsoft Crypto API(應(yīng)用編程接口)用于提供密碼功能。在一個(gè)可替換的實(shí)施例中,OpenSSLTM用于執(zhí)行密碼功能。
在一個(gè)實(shí)施例中,密鑰生存期管理器(KLM)88根據(jù)相應(yīng)的到期日期和時(shí)間標(biāo)記監(jiān)控SEK的生存期。在這個(gè)實(shí)施例中,KLM 88用一個(gè)期滿標(biāo)志來(lái)標(biāo)志期滿的SEK,因此在下一個(gè)請(qǐng)求中,EKM將在運(yùn)行時(shí)間操作中可選地檢查SEK的期滿狀態(tài),并且用一個(gè)新密鑰代替期滿的密鑰。
與一個(gè)特定的數(shù)據(jù)對(duì)象一起使用一個(gè)特定的SEK。因此,在一個(gè)實(shí)施例中,通過(guò)與存儲(chǔ)該數(shù)據(jù)實(shí)體的請(qǐng)求一起重新發(fā)送隱藏的鏈接,應(yīng)用可以與同一SEK一起保存數(shù)據(jù)實(shí)體。隱藏的鏈接是一個(gè)數(shù)據(jù)結(jié)構(gòu),它包括加密的SEKID、指向用于加密SEKID的指針和密碼引擎標(biāo)識(shí)符。另外,應(yīng)用可以通過(guò)發(fā)送不包括隱藏的鏈接的保存數(shù)據(jù)請(qǐng)求使得產(chǎn)生新SEK。在一個(gè)實(shí)施例中,KLM 88設(shè)置與SEK有關(guān)的密鑰期滿標(biāo)志,因此可以警告應(yīng)用,這是使得產(chǎn)生新SEK的合適時(shí)間。
在一個(gè)實(shí)施例中,密鑰審計(jì)管理器(KAM)90用于維護(hù)活動(dòng)的審計(jì)日志,它包括所有涉及SEK和用于加密SEK的密鑰的事務(wù)。通常,KAM 90利用智能模式、規(guī)則和策略監(jiān)控用于警報(bào)事件的日志。KAM 90在系統(tǒng)密鑰或SEK已經(jīng)被損害時(shí)還提供發(fā)生警報(bào)事件的通知。在一個(gè)可替換的實(shí)施例中,操作員可選擇的新密鑰產(chǎn)生數(shù)量的閾限是可設(shè)置的。在這個(gè)實(shí)施例中,操作員可以在正常操作下觀察密碼系統(tǒng),注意在一特定的時(shí)段上產(chǎn)生新密鑰的通常數(shù)量,并相應(yīng)地設(shè)置閾限。一旦設(shè)置,如果超過(guò)閾限,則發(fā)送有關(guān)超過(guò)的閾限的通知。
證書(shū)管理器(CM)92用于執(zhí)行與系統(tǒng)密鑰PKI有關(guān)的所有操作。對(duì)于每個(gè)系統(tǒng)密鑰,CM 92產(chǎn)生一個(gè)X.509數(shù)字證書(shū)。最好,數(shù)字證書(shū)包括臨界V3擴(kuò)展,使得只有專用證書(shū)機(jī)構(gòu)(CA)可以驗(yàn)證該密鑰。每次SKM 84接收由用系統(tǒng)密鑰解密的請(qǐng)求時(shí),CM與在安全域本地的專用證書(shū)機(jī)構(gòu)(CA)通信,以驗(yàn)證該系統(tǒng)密鑰。
在一個(gè)實(shí)施例中,數(shù)據(jù)庫(kù)適配器(DBAD)86用于從安全域22隱藏?cái)?shù)據(jù)庫(kù)專用的應(yīng)用編程接口(API),并且因此控制和增強(qiáng)密鑰管理器24、84與安全密鑰數(shù)據(jù)庫(kù)44之間的通信。因而,通過(guò)使用不同的DBAD,安全域組件可以與不同類型的數(shù)據(jù)庫(kù)接口。DBAD 86也允許安全域組件與安全域22內(nèi)的多個(gè)數(shù)據(jù)庫(kù)接口,諸如Microsoft SQL Server、Sybase、Informix、Oracle和IBM DB2。可以理解,已知的數(shù)據(jù)庫(kù)使用故障容錯(cuò)。盡管已經(jīng)詳細(xì)地描述了各組件的較佳操作和位置,但可以理解,在不脫離本發(fā)明的精神的情況下,可以在組件之間交換特定任務(wù)并且可以組合、分離或者交換組件的位置。
參考圖3,數(shù)據(jù)庫(kù)結(jié)構(gòu)最好包括面向?qū)ο蟮臄?shù)據(jù)庫(kù)結(jié)構(gòu),它具有多個(gè)數(shù)據(jù)實(shí)體30,它們最好是數(shù)據(jù)對(duì)象。然而,本發(fā)明考慮其它類型的數(shù)據(jù)庫(kù)。例如可以使用關(guān)系數(shù)據(jù)庫(kù),諸如Microsoft SQL Server、Oracle、Sybase、Informix和IBM DB2。因而,當(dāng)使用術(shù)語(yǔ)對(duì)象時(shí),也考慮其配對(duì)物,例如記錄,并且當(dāng)使用術(shù)語(yǔ)類時(shí),也考慮其配對(duì)物,例如表。
詳細(xì)地示出一個(gè)數(shù)據(jù)實(shí)體30A,明確地說(shuō)是一個(gè)持久數(shù)據(jù)實(shí)體。Added屬性100記錄時(shí)間標(biāo)記,包含添加該對(duì)象的日期和時(shí)間,而Added By屬性102記錄添加該記錄或數(shù)據(jù)實(shí)體的用戶的數(shù)字簽名。數(shù)字簽名是從客戶機(jī)用戶的智能卡80的數(shù)字證書(shū)或者客戶機(jī)的當(dāng)前會(huì)話和用戶標(biāo)識(shí)獲得的。Modified和Modified By屬性合為104,記錄對(duì)數(shù)據(jù)實(shí)體30A的修改的相同信息。組合起來(lái),這些認(rèn)可屬性100、102、104阻止客戶機(jī)用戶聲稱該用戶沒(méi)有采取某個(gè)動(dòng)作。安全狀態(tài)(SecStatus)屬性108表示數(shù)據(jù)對(duì)象是否包含純文本或密文以及它是公開(kāi)的還是私有的。
另外參考圖4,安全密鑰標(biāo)識(shí)屬性32也是數(shù)據(jù)實(shí)體30A的一個(gè)屬性,并且包含安全密鑰信息。安全密鑰信息包括加密的SEKID 112和SKCN散列值114,如下所述用于尋找用于加密相關(guān)聯(lián)的數(shù)據(jù)實(shí)體30C、30D的SEK并尋找用于加密SEKID 112的系統(tǒng)密鑰。盡管最好將SKCN散列值存儲(chǔ)在安全密鑰屬性32中,但可將SKCN存儲(chǔ)在這個(gè)位置而不進(jìn)行散列。
再次參考圖3,數(shù)據(jù)實(shí)體30A還包括安全完整性屬性(SecIntegrity)116,它包含數(shù)據(jù)實(shí)體散列值。數(shù)據(jù)實(shí)體散列值是通過(guò)散列在數(shù)據(jù)實(shí)體內(nèi)所有或選擇的屬性而獲得的。這是由商業(yè)需求和策略控制的,最好由客戶機(jī)確定并記錄在BLC中。當(dāng)檢索一個(gè)數(shù)據(jù)實(shí)體時(shí),使用例如SHA-1對(duì)它進(jìn)行散列操作,并且將數(shù)據(jù)實(shí)體散列值與在安全完整性屬性116中存儲(chǔ)的散列值相比較。如果散列值相同,則檢索的數(shù)據(jù)實(shí)體的完整性被確認(rèn)為正確并且未被改變。如果散列值不相同,則發(fā)出警報(bào),使得數(shù)據(jù)能可選地由人工來(lái)確認(rèn),并且如上所述,從備份信息數(shù)據(jù)庫(kù)62檢索。
另外參考圖5、6和7,安全私密性屬性118控制對(duì)相關(guān)聯(lián)的數(shù)據(jù)實(shí)體30C、30D中的信息的訪問(wèn)。當(dāng)客戶機(jī)用戶,例如醫(yī)生,將其信息標(biāo)記為私有,特殊訪問(wèn)列表(SAL),數(shù)據(jù)實(shí)體一類30B自動(dòng)地創(chuàng)建,并且將該醫(yī)生自動(dòng)地添加到特殊訪問(wèn)列表。該醫(yī)生此后可以從特殊訪問(wèn)列表中增加或者刪除用戶標(biāo)識(shí)屬性120和/或角色標(biāo)識(shí)122。用戶屬性120是基于來(lái)自智能卡或者任何其它身份驗(yàn)證方法的特定用戶標(biāo)識(shí)。角色屬性122是基于用戶的不同安全級(jí)別。例如,該醫(yī)生可批準(zhǔn)其它醫(yī)生觀看私有數(shù)據(jù)的許可但不允許護(hù)士觀看私有數(shù)據(jù)。角色可以包括任何安全級(jí)別例如,秘書(shū)、股東、保管員和行政人員。以這種方式,該醫(yī)生控制誰(shuí)可以觀看什么信息和誰(shuí)可以編輯什么信息。對(duì)于疾病患者記錄也是如此;在什么地方護(hù)士和醫(yī)生可具有完全訪問(wèn),事務(wù)員可具有對(duì)姓名、地址、支付和預(yù)約信息的有限訪問(wèn)。這種私密性可以應(yīng)用于任何頂層市場(chǎng),諸如銀行、知識(shí)產(chǎn)權(quán)系統(tǒng)、電子商務(wù)、律師事務(wù)所以及所有處理高度敏感或分等級(jí)信息的應(yīng)用。
當(dāng)經(jīng)身份驗(yàn)證的客戶機(jī)用戶在圖7的步驟124請(qǐng)求信息時(shí),計(jì)算機(jī)系統(tǒng)在步驟126檢索該信息,這將在后面更詳細(xì)地描述。在檢索該信息之后,在步驟128系統(tǒng)檢查安全隱私屬性118。如果信息沒(méi)有被標(biāo)記為私有,則在監(jiān)視器130上全部顯示,如在圖6中例示的。如果信息被標(biāo)記為私有,則在步驟132系統(tǒng)檢查客戶機(jī)用戶的安全級(jí)別。在檢查用戶的安全級(jí)別時(shí),系統(tǒng)查看用戶標(biāo)識(shí)和角色標(biāo)識(shí)兩者,以確定兩者之一是否在特殊訪問(wèn)列表中,并且確定用戶對(duì)該信息具有什么權(quán)限,諸如僅觀看或者編輯。如果客戶機(jī)用戶具有全部觀看權(quán)限,則再次示出圖6的顯示。如果客戶機(jī)用戶沒(méi)有被授權(quán)觀看私有信息,則在步驟134中調(diào)整顯示參數(shù)。在步驟134中,將不顯示的私有信息的顯示字段,與其相關(guān)的標(biāo)號(hào)從顯示參數(shù)中一起被排除,使得當(dāng)在步驟135中在圖5的監(jiān)視器136上顯示許可的信息時(shí),不顯示私有信息的字段。
此外,設(shè)想可修改公開(kāi)信息的字段,因此完全屏蔽私有信息的存在。在所示的例子中,為具有對(duì)私有信息的訪問(wèn)權(quán)限的用戶,顯示個(gè)人信息138,諸如生日和子女?dāng)?shù)量。然而,對(duì)于沒(méi)有觀看私有信息授權(quán)的用戶,生日和子女?dāng)?shù)量字段從圖5的顯示中移除。此外,為具有觀看私有信息授權(quán)的用戶顯示家庭地址信息140和工作地址信息142,并且這些字段明確地表示哪個(gè)地址是工作地址和哪個(gè)地址是家庭地址。相反,沒(méi)有對(duì)私有信息的訪問(wèn)權(quán)限的用戶不僅看不到家庭地址,而且圖5中的工作地址字段144被修改成消除了它是一個(gè)工作地址的指示。
再次專門(mén)地參考圖3,持久數(shù)據(jù)實(shí)體30A還包括若干關(guān)聯(lián)屬性,由數(shù)據(jù)庫(kù)模式用于將相關(guān)的數(shù)據(jù)實(shí)體30B、30C、30D與持久數(shù)據(jù)實(shí)體30A相關(guān)聯(lián)或鏈接。為此,持久對(duì)象30A包括類標(biāo)識(shí)屬性146和至少兩個(gè)搜索屬性148。對(duì)于更快速和安全的搜索,可搜索屬性148最好是諸如病人姓名的用戶信息的散列值。數(shù)據(jù)庫(kù)使用這些屬性146、148和其它屬性將相關(guān)的持久對(duì)象30A和相關(guān)的類對(duì)象30B、30C、30D與包含合適的安全密鑰標(biāo)識(shí)32的持久對(duì)象相關(guān)聯(lián),安全密鑰標(biāo)識(shí)32用于加密類對(duì)象中的數(shù)據(jù)屬性。在圖3中示出兩個(gè)示例性類對(duì)象個(gè)人類對(duì)象30C和姓名類對(duì)象30D。其它未例示的類對(duì)象/實(shí)體包括地址實(shí)體,職員實(shí)體,付款實(shí)體,保險(xiǎn)實(shí)體和其它。
數(shù)據(jù)庫(kù)還具備查找地圖或筆記150。所例示的查找地圖150用于個(gè)人類的性別。這節(jié)省數(shù)據(jù)庫(kù)資源,因?yàn)樵跀?shù)據(jù)庫(kù)中的每個(gè)人僅具有0,1或2,分別相應(yīng)于未公開(kāi),男性或女性。因而,查找地圖150節(jié)省了數(shù)據(jù)庫(kù)資源,因?yàn)槊總€(gè)個(gè)人類具有單個(gè)數(shù)字的整數(shù),代替了長(zhǎng)的文字條目。查找地圖最好用于安全狀態(tài)屬性108,安全私密性屬性118和其它。
參考圖8和9,數(shù)據(jù)結(jié)構(gòu)還包括保存在KEKDB 44中的SEK對(duì)象151和SKCN對(duì)象152,后者或者保存在KEKDB 44中,或者在另一個(gè)實(shí)施例中,保存在單獨(dú)的系統(tǒng)密鑰數(shù)據(jù)庫(kù)(未示出)中。因而,為增加的安全,將若干數(shù)據(jù)實(shí)體存儲(chǔ)在分開(kāi)的數(shù)據(jù)庫(kù)中。在一個(gè)實(shí)施例中,將公開(kāi)密鑰對(duì)存儲(chǔ)在硬件安全模塊(HSM)設(shè)備中。
SEK對(duì)象/實(shí)體包括作為屬性的正常/加密格式的SEKID 153、加密的SEK154、SEK完整性檢驗(yàn)155(它是SEK的散列值)、和可選的SKCN散列值156。SEK數(shù)據(jù)實(shí)體151最好不包括加密的SEKID。這創(chuàng)建在加密的數(shù)據(jù)與用于加密它的SEK之間的隱藏的鏈接,因?yàn)镾EKID是加密的,而SEK存儲(chǔ)在分別的數(shù)據(jù)庫(kù)中。在一個(gè)實(shí)施例中,提供HMAC用于數(shù)據(jù)記錄完整性,也與每個(gè)記錄一起存儲(chǔ)在密鑰數(shù)據(jù)庫(kù)中。與HMAC相關(guān)聯(lián)的秘密包含在主安全容件中,后者可選地用M中的K加密方案來(lái)保護(hù)。SEK對(duì)象最好還包括Created On屬性159,它記錄創(chuàng)建SEK的時(shí)間標(biāo)記,并且可選地包括Last Usage Date屬性161,它記錄最后一次使用SEK的時(shí)間標(biāo)記。另外,SEK對(duì)象可選地具有Usage Counter屬性163,它記錄已經(jīng)使用了SEK多少次。Created On 159,Last Usage Date 161和UsageCounter 163屬性為客戶機(jī)提供可選的特征選擇。明確地說(shuō),客戶機(jī)可以選擇讓密鑰在創(chuàng)建之后經(jīng)過(guò)某個(gè)數(shù)量的月后期滿,例如兩個(gè)月。客戶機(jī)最好也可以決定,當(dāng)SEK在一段選擇的時(shí)間內(nèi)未使用時(shí)或者在已經(jīng)使用它們超過(guò)選擇的次數(shù)時(shí),SEK為期滿??蛻魴C(jī)還可以選擇讓SEK隨機(jī)地期滿或者根本不期滿。SKCN對(duì)象/實(shí)體包括SKCN散列值157和SKCN 158作為屬性,并且最好存儲(chǔ)在與數(shù)據(jù)實(shí)體30分開(kāi)的數(shù)據(jù)庫(kù)中。
圖15是示意框圖,例示按照本發(fā)明提供數(shù)據(jù)庫(kù)保護(hù)的系統(tǒng)。分布式應(yīng)用1500通常通過(guò)應(yīng)用服務(wù)器1510提供一個(gè)接口給數(shù)據(jù)庫(kù)服務(wù)器1520中的信息。依靠由密碼服務(wù)器1530提供的SEK保護(hù)在數(shù)據(jù)庫(kù)服務(wù)器1520中的靜止信息。當(dāng)分布式應(yīng)用1500的請(qǐng)求用戶與商業(yè)應(yīng)用1542交互時(shí),商業(yè)應(yīng)用1542從數(shù)據(jù)庫(kù)服務(wù)器1520接收任何必要的信息。加密數(shù)據(jù)庫(kù)存儲(chǔ)器1522中的敏感數(shù)據(jù)。因此,為了使用加密的信息,商業(yè)應(yīng)用1542必須解密經(jīng)加密的信息。
商業(yè)應(yīng)用1542通過(guò)為密碼代理1544提供要加密和解密的數(shù)據(jù)和可選的隱藏的鏈接,利用密碼服務(wù)器1530,可選的隱藏的鏈接與加密的信息一起存儲(chǔ)在數(shù)據(jù)存儲(chǔ)器1522中。此外,請(qǐng)求的用戶將身份驗(yàn)證信息提供給商業(yè)應(yīng)用1542。在一個(gè)實(shí)施例中,身份驗(yàn)證信息是請(qǐng)求用戶的用戶標(biāo)識(shí)符和口令,用它們執(zhí)行詢問(wèn)應(yīng)答協(xié)議。在可替換的實(shí)施例,身份驗(yàn)證信息是基于生物測(cè)量學(xué)或智能卡??梢岳斫猓诓幻撾x本發(fā)明的范圍的情況下,可以使用其它用戶身份驗(yàn)證機(jī)制。
在實(shí)現(xiàn)來(lái)自請(qǐng)求用戶的請(qǐng)求時(shí),商業(yè)應(yīng)用1542將用戶的身份驗(yàn)證信息提供給密碼代理。密碼代理1544經(jīng)過(guò)可選的安全信道,例如SSL鏈路,連接到與密碼服務(wù)器1530相關(guān)聯(lián)的核心引擎。密碼服務(wù)器1530結(jié)合用戶數(shù)據(jù)庫(kù)1526確認(rèn)用戶身份驗(yàn)證信息。在一個(gè)實(shí)施例中,用戶身份驗(yàn)證信息的確認(rèn)包括在代理與核心引擎之間的詢問(wèn)應(yīng)答協(xié)議,其中使用用戶的口令計(jì)算對(duì)詢問(wèn)的應(yīng)答。
如果用戶身份驗(yàn)證信息有效,則核心引擎1554從商業(yè)應(yīng)用1542接收信息和指令以執(zhí)行諸如加密數(shù)據(jù)或者解密數(shù)據(jù)的操作。密碼服務(wù)器1530可選地通過(guò)查詢?cè)L問(wèn)控制列表數(shù)據(jù)庫(kù)1524來(lái)確定,該用戶是否被授權(quán)執(zhí)行那些操作。如果請(qǐng)求用戶被授權(quán)執(zhí)行與特定會(huì)話密鑰相關(guān)的指令,則核心引擎1554確定,哪一個(gè)保護(hù)密鑰與被請(qǐng)求的會(huì)話密鑰相關(guān)聯(lián)并用其保護(hù)密鑰解密該會(huì)話密鑰。
如果商業(yè)應(yīng)用1510需要解密存儲(chǔ)在數(shù)據(jù)庫(kù)服務(wù)器1520中加密的信息塊,則商業(yè)應(yīng)用從數(shù)據(jù)庫(kù)服務(wù)器1520接收該塊及其相關(guān)聯(lián)的隱藏的鏈接,并且將該塊及其相關(guān)聯(lián)的隱藏的鏈接提供給密碼代理1544。密碼代理1544將加密的塊和隱藏的鏈接轉(zhuǎn)接給核心引擎1554。通過(guò)檢查隱藏的鏈接,核心引擎1554可以確定隱藏的鏈接是否是本地產(chǎn)生的,或者通過(guò)檢查與隱藏的鏈接相關(guān)聯(lián)的密碼服務(wù)器標(biāo)識(shí)符可以確定,它是否來(lái)自外來(lái)的密碼服務(wù)器(未示出)。此外,核心引擎可以通過(guò)檢查包含在隱藏的鏈接中的保護(hù)密鑰指針來(lái)識(shí)別用于解密隱藏的鏈接中加密的SEKID的保護(hù)密鑰。核心引擎解密經(jīng)加密的SEKID并且使用解密的SEKID來(lái)訪問(wèn)來(lái)自密鑰數(shù)據(jù)庫(kù)1540的加密的會(huì)話密鑰。
在一個(gè)實(shí)施例中,通過(guò)查詢令SEKID作為主關(guān)系數(shù)據(jù)庫(kù)密鑰的SEK表來(lái)完成查找加密的SEK。核心引擎用相應(yīng)的保護(hù)密鑰解密經(jīng)加密的SEK。在一個(gè)實(shí)施例中,使用相同的保護(hù)密鑰加密SEKID和SEK。因此,一旦識(shí)別了SEKID保護(hù)密鑰,則可用于解密SEK。接著,核心引擎1554解密從數(shù)據(jù)庫(kù)服務(wù)器1520提供的商業(yè)應(yīng)用1542的信息,并通過(guò)密碼代理1544將解密的信息發(fā)送回給商業(yè)應(yīng)用1542。在一個(gè)實(shí)施例中,使用未加密的TCP會(huì)話執(zhí)行密碼代理1544與核心引擎1554之間的通信。在一個(gè)可替換的實(shí)施例中,使用無(wú)SSL客戶機(jī)身份認(rèn)證的SSL執(zhí)行通信。在又另一個(gè)實(shí)施例中,使用具有客戶機(jī)身份認(rèn)證的SSL執(zhí)行代理與核心引擎之間的通信??梢岳斫?,在不脫離本發(fā)明的范圍的情況下,可以使用保護(hù)代理與核心引擎之間信道的其它方法,諸如在IPSec VPN上未加密的TCP會(huì)話。
當(dāng)用戶使商業(yè)應(yīng)用在數(shù)據(jù)庫(kù)服務(wù)器存儲(chǔ)信息時(shí),密碼代理在商業(yè)應(yīng)用將信息提供給數(shù)據(jù)庫(kù)服務(wù)器之前,促進(jìn)信息的加密。如果商業(yè)應(yīng)用正在存儲(chǔ)新的信息或者如果商業(yè)應(yīng)用已確定應(yīng)當(dāng)產(chǎn)生新的SEK,則商業(yè)應(yīng)用提供不具有相關(guān)聯(lián)的隱藏的鏈接的未加密的信息。當(dāng)核心引擎接收要加密的無(wú)相關(guān)聯(lián)的隱藏的鏈接的數(shù)據(jù)時(shí),核心引擎產(chǎn)生新的SEK和SEKID,加密所提供的信息和SEKID,將保護(hù)密鑰指針與核心引擎標(biāo)識(shí)符組合起來(lái)以形成隱藏的鏈接,并通過(guò)密碼代理將加密的信息和隱藏的鏈接返回給商業(yè)應(yīng)用。此外,商業(yè)應(yīng)用在數(shù)據(jù)庫(kù)服務(wù)器存儲(chǔ)加密的信息和相關(guān)聯(lián)的隱藏的鏈接。當(dāng)必需訪問(wèn)加密的信息時(shí),將加密的信息和相關(guān)聯(lián)的隱藏的鏈接提供給核心引擎,并且如果用戶具有足夠的權(quán)限,則核心引擎為商業(yè)應(yīng)用解密該信息。
在存儲(chǔ)具有相關(guān)聯(lián)的隱藏的鏈接的信息時(shí),例如在修改數(shù)據(jù)庫(kù)中一個(gè)字段時(shí),商業(yè)應(yīng)用可以選擇不產(chǎn)生新的密鑰。為達(dá)到這個(gè)結(jié)果,商業(yè)應(yīng)用連同現(xiàn)有的隱藏的鏈接一起提供要加密的信息。當(dāng)核心引擎接收要加密的信息和現(xiàn)有的隱藏的鏈接時(shí),引擎用相應(yīng)于現(xiàn)有隱藏的鏈接的SEK加密所提供的信息。在這點(diǎn)上,商業(yè)應(yīng)用推動(dòng)為現(xiàn)有數(shù)據(jù)產(chǎn)生新的會(huì)話密鑰的過(guò)程。
圖16是例示系統(tǒng)1600的示意框圖,在該系統(tǒng)中,遠(yuǎn)程計(jì)算機(jī)系統(tǒng)通過(guò)網(wǎng)絡(luò)訪問(wèn)密鑰存儲(chǔ)庫(kù)。一個(gè)實(shí)施例包括存儲(chǔ)庫(kù)服務(wù)器1620,它包括儲(chǔ)存庫(kù)核心引擎1622。儲(chǔ)存庫(kù)密碼引擎1622包括密鑰數(shù)據(jù)庫(kù)1640,它具有包含在密鑰數(shù)據(jù)庫(kù)1640內(nèi)的密碼密鑰。儲(chǔ)存庫(kù)核心引擎1622提供密鑰產(chǎn)生、存儲(chǔ)和檢索的功能。
此外,存儲(chǔ)庫(kù)服務(wù)器1620包括訪問(wèn)控制列表(ACL)數(shù)據(jù)庫(kù)1624和用戶數(shù)據(jù)庫(kù)1626。ACL數(shù)據(jù)庫(kù)1624包含有關(guān)所允許的訪問(wèn)或權(quán)限的類型的信息,它們是特定的用戶對(duì)與存儲(chǔ)在密鑰數(shù)據(jù)庫(kù)1640中的密碼密鑰相關(guān)聯(lián)的特定數(shù)據(jù)實(shí)體所具有的。存儲(chǔ)庫(kù)服務(wù)器1620還可選地具有智能卡閱讀器1632,它用于從智能卡,諸如可從Gem Plus得到的GEM-139,讀取信息。而且,存儲(chǔ)庫(kù)服務(wù)器1620包含存儲(chǔ)庫(kù)密鑰交換模塊1634和身份驗(yàn)證/授權(quán)(A/A)模塊1636。存儲(chǔ)庫(kù)密鑰交換模塊1634使得兩個(gè)分別的密碼引擎能夠共享密鑰。A/A模塊1636通過(guò)例如有關(guān)與用戶相關(guān)聯(lián)的智能卡或用戶姓名/口令組合的詢問(wèn)應(yīng)答協(xié)議識(shí)別用戶和/或?qū)τ脩暨M(jìn)行身份驗(yàn)證。此外,A/A模塊結(jié)合ACL數(shù)據(jù)庫(kù)1624提供用戶注冊(cè)功能,ACL數(shù)據(jù)庫(kù)1624包含有關(guān)特定用戶關(guān)于特定密鑰的信息。
遠(yuǎn)程計(jì)算機(jī)系統(tǒng)1610通過(guò)網(wǎng)絡(luò)1630連接到密鑰存儲(chǔ)庫(kù)1620。網(wǎng)絡(luò)1630最好是數(shù)據(jù)網(wǎng)絡(luò),諸如因特網(wǎng),但要理解,網(wǎng)絡(luò)1630可以是其它類型的網(wǎng)絡(luò),諸如電話網(wǎng)絡(luò),無(wú)線網(wǎng)絡(luò),諸如802.11b、BluetoothTM或其它無(wú)線網(wǎng)絡(luò),局域網(wǎng),廣域網(wǎng)或光纖網(wǎng)絡(luò)。在一個(gè)實(shí)施例中,計(jì)算機(jī)系統(tǒng)1610包含智能卡閱讀器1632,用于使用戶能夠向儲(chǔ)存庫(kù)核心引擎1620對(duì)他或她自己進(jìn)行身份驗(yàn)證。此外,遠(yuǎn)程計(jì)算機(jī)系統(tǒng)1610包含遠(yuǎn)程密鑰交換模塊1630,用于與密鑰存儲(chǔ)庫(kù)1620的密鑰交換模塊交換密鑰。在一個(gè)實(shí)施例中,遠(yuǎn)程計(jì)算機(jī)系統(tǒng)1610還包含無(wú)存儲(chǔ)的遠(yuǎn)程核心引擎1642,用于在遠(yuǎn)程計(jì)算機(jī)系統(tǒng)1610上執(zhí)行遠(yuǎn)程加密和解密功能。無(wú)存儲(chǔ)的遠(yuǎn)程引擎沒(méi)有內(nèi)部密鑰數(shù)據(jù)庫(kù)并且必須與存儲(chǔ)庫(kù)服務(wù)器通信以獲得密鑰來(lái)加密或解密數(shù)據(jù)。
商業(yè)應(yīng)用1612最好還與遠(yuǎn)程計(jì)算機(jī)系統(tǒng)1610相關(guān)聯(lián)。商業(yè)應(yīng)用1612通常是消費(fèi)和產(chǎn)生由按照本發(fā)明的密碼方法和系統(tǒng)保護(hù)的信息的軟件。
圖17是例示系統(tǒng)1700的示意框圖,該系統(tǒng)包括在一組遠(yuǎn)程計(jì)算機(jī)系統(tǒng)中的文件服務(wù)器1720、存儲(chǔ)庫(kù)服務(wù)器1620和遠(yuǎn)程計(jì)算機(jī)系統(tǒng)1610。文件服務(wù)器1720包括數(shù)據(jù)存儲(chǔ)器1722,它包含用按照本發(fā)明的密碼方法和系統(tǒng)保護(hù)的信息。結(jié)合遠(yuǎn)程計(jì)算機(jī)系統(tǒng)1610,使用遠(yuǎn)程核心引擎1642加密和解密包含在數(shù)據(jù)存儲(chǔ)器1722中的信息,遠(yuǎn)程核心引擎1642使用來(lái)自在存儲(chǔ)庫(kù)服務(wù)器1620的密鑰執(zhí)行加密或解密的功能,存儲(chǔ)庫(kù)服務(wù)器1620可選地包含智能卡閱讀器1622,存儲(chǔ)庫(kù)密鑰交換模塊1634和身份驗(yàn)證/授權(quán)(A/A)模塊1636。存儲(chǔ)庫(kù)服務(wù)器1620還包含用戶數(shù)據(jù)庫(kù)1626和ACL數(shù)據(jù)庫(kù)1624。遠(yuǎn)程計(jì)算機(jī)系統(tǒng)1610可選地使用智能卡閱讀器1632和遠(yuǎn)程密鑰交換模塊1630,來(lái)與存儲(chǔ)庫(kù)服務(wù)器1620的A/A模塊1636一起驗(yàn)證以獲得適合的密鑰,來(lái)加密和解密媒體存儲(chǔ)器1620中的信息。遠(yuǎn)程核心引擎1622執(zhí)行加密和解密功能。
結(jié)合圖16和17的密碼系統(tǒng)執(zhí)行若干操作,包括(i)添加用戶到密碼系統(tǒng);(ii)為用戶提供登錄界面以便讓密碼系統(tǒng)對(duì)他或她自己進(jìn)行身份驗(yàn)證;(iii)加密新文件;(iv)維護(hù),即訪問(wèn)或修改與密鑰相關(guān)聯(lián)的ACL;(v)阻止對(duì)已經(jīng)被損害的密鑰的訪問(wèn);重新分配密碼密鑰的所有權(quán);以及(vi)為結(jié)合軟件應(yīng)用使用訪問(wèn)和解密現(xiàn)有信息。
添加新用戶的過(guò)程可選地包括為用戶產(chǎn)生交換和簽名密鑰對(duì)。在一個(gè)實(shí)施例中,將密鑰對(duì)寫(xiě)到智能卡。交換密鑰用于在存儲(chǔ)庫(kù)服務(wù)器1620與遠(yuǎn)程計(jì)算機(jī)系統(tǒng)1610之間傳輸會(huì)話密鑰。簽名密鑰用于通過(guò)A/A模塊1636對(duì)用戶進(jìn)行身份驗(yàn)證。
在一個(gè)實(shí)施例中,與新產(chǎn)生的用戶密鑰對(duì)相關(guān)聯(lián)的公開(kāi)密鑰存儲(chǔ)在用戶數(shù)據(jù)庫(kù)1626中??蛇x地,其它信息,諸如用戶的姓名和聯(lián)系信息可以存儲(chǔ)在用戶數(shù)據(jù)庫(kù)1626中。此外,用戶擁有包含密鑰對(duì)的智能卡,因此用戶可以結(jié)合加密的信息的使用,執(zhí)行身份驗(yàn)證和密鑰交換操作。
結(jié)合智能卡,用戶通過(guò)向存儲(chǔ)庫(kù)服務(wù)器1620的A/A模塊1636進(jìn)行身份驗(yàn)證登錄到密碼系統(tǒng)中。首先,用戶將他或她的智能卡放在智能卡閱讀器1632中,并且遠(yuǎn)程核心引擎1642從智能卡閱讀密鑰。智能卡最好是受保護(hù)的口令。
一旦遠(yuǎn)程核心引擎1642有權(quán)訪問(wèn)簽名密鑰對(duì)的私有密鑰,則它通過(guò)A/A模塊1636向存儲(chǔ)庫(kù)服務(wù)器1620對(duì)它自己進(jìn)行身份驗(yàn)證。在一個(gè)實(shí)施例中,A/A模塊1636和遠(yuǎn)程計(jì)算機(jī)系統(tǒng)1610結(jié)合用戶的簽名密鑰對(duì)執(zhí)行詢問(wèn)應(yīng)答協(xié)議。在這個(gè)實(shí)施例中,A/A模塊通過(guò)使用存儲(chǔ)在用戶數(shù)據(jù)庫(kù)1626中的公開(kāi)密鑰來(lái)驗(yàn)證由遠(yuǎn)程計(jì)算機(jī)系統(tǒng)1610所作的簽名,該公開(kāi)密鑰是在與創(chuàng)建用戶帳戶時(shí)與用戶的私有密鑰同時(shí)產(chǎn)生的。接著,遠(yuǎn)程計(jì)算機(jī)系統(tǒng)可選地結(jié)合詢問(wèn)應(yīng)答協(xié)議接收會(huì)話級(jí)訪問(wèn)權(quán)標(biāo),例如一個(gè)大隨機(jī)數(shù)。在一個(gè)可替換的實(shí)施例中,用戶使用其用戶標(biāo)識(shí)符和例如口令進(jìn)行身份驗(yàn)證。在一個(gè)實(shí)施例中,基于與分配給用戶和代理的角色相關(guān)聯(lián)的權(quán)限,賦予用戶和代理權(quán)限。此外,如果用戶或代理具有足夠的權(quán)限,則檢查相應(yīng)于特定密鑰的ACL,以確定用戶或代理是否具有足夠的權(quán)限使該密鑰用于加密或解密數(shù)據(jù)。
圖18A是示意框圖,例示按照本發(fā)明的部門(mén)際的數(shù)據(jù)保護(hù)。在這個(gè)實(shí)施例中,結(jié)合Kansas,Lenexa的ERUCES有限公司的TRICRYPTION商標(biāo)表示密碼引擎。該環(huán)境大致包括數(shù)據(jù)存儲(chǔ)器1802,計(jì)算機(jī)系統(tǒng)1804和1808和存儲(chǔ)庫(kù)服務(wù)器1806。數(shù)據(jù)存儲(chǔ)器1802包含,例如,由計(jì)算機(jī)系統(tǒng)1804、1808操縱的加密的文件。遠(yuǎn)程計(jì)算機(jī)系統(tǒng)1804、1808以與結(jié)合圖15所說(shuō)明的相似方式讀寫(xiě)數(shù)據(jù)存儲(chǔ)器1802中的加密的數(shù)據(jù)。然而,在這個(gè)實(shí)施例中,在操縱信息的同一計(jì)算機(jī)系統(tǒng)即系統(tǒng)1804、1808上執(zhí)行加密和解密。為實(shí)現(xiàn)這一點(diǎn),遠(yuǎn)程計(jì)算機(jī)系統(tǒng)1804使用其遠(yuǎn)程密鑰交換模塊,從如結(jié)合圖16和17所說(shuō)明的存儲(chǔ)庫(kù)服務(wù)器1806獲得密鑰。明確地說(shuō),遠(yuǎn)程計(jì)算機(jī)系統(tǒng)1804、1808使用從存儲(chǔ)庫(kù)服務(wù)器1806獲得的會(huì)話密鑰操縱在數(shù)據(jù)存儲(chǔ)器1802中的加密數(shù)據(jù)。
圖18B是示意框圖,例示按照本發(fā)明的部門(mén)際數(shù)據(jù)保護(hù)。在這個(gè)實(shí)施例中,包含在數(shù)據(jù)存儲(chǔ)器1802中的信息由在分別的部門(mén)或企業(yè)中的遠(yuǎn)程計(jì)算機(jī)系統(tǒng)1804、1808訪問(wèn)。因此,與遠(yuǎn)程計(jì)算機(jī)系統(tǒng)1804和1808的特定用戶相關(guān)聯(lián)的用戶身份驗(yàn)證和授權(quán)信息駐留在用戶部門(mén)的相應(yīng)存儲(chǔ)庫(kù)服務(wù)器1806或1807中。
對(duì)于遠(yuǎn)程計(jì)算機(jī)系統(tǒng)1804的用戶訪問(wèn)該遠(yuǎn)程計(jì)算機(jī)系統(tǒng)1808的用戶為其密鑰所有者的信息是有用的。如果用戶需要訪問(wèn)由包含在位于另一個(gè)部門(mén)的存儲(chǔ)庫(kù)服務(wù)器中的密鑰所保護(hù)的信息,則使用部門(mén)際密鑰交換。為完成部門(mén)際密鑰交換,存儲(chǔ)庫(kù)服務(wù)器1806和存儲(chǔ)庫(kù)服務(wù)器1807使用結(jié)合圖16和17所述的機(jī)制交換密鑰。一旦用戶的部門(mén)存儲(chǔ)庫(kù)服務(wù)器已經(jīng)從對(duì)等部門(mén)的存儲(chǔ)庫(kù)服務(wù)器收到合適的會(huì)話密鑰,則本地存儲(chǔ)庫(kù)服務(wù)器可以或者將密鑰提供給諸如計(jì)算機(jī)系統(tǒng)1804的無(wú)存儲(chǔ)的密碼引擎,或者在有存儲(chǔ)的存儲(chǔ)庫(kù)服務(wù)器的核心引擎中直接為代理執(zhí)行加密和解密。
圖18C是示意框圖,例示結(jié)合基于密鑰存儲(chǔ)庫(kù)的企業(yè)內(nèi)部網(wǎng)或外部網(wǎng)的數(shù)據(jù)保護(hù)。在這個(gè)實(shí)施例中,存儲(chǔ)庫(kù)服務(wù)器1806與遠(yuǎn)程計(jì)算機(jī)1804和1808被公共網(wǎng)絡(luò)1810和可選的防火墻1812分開(kāi)。因?yàn)榇鎯?chǔ)庫(kù)服務(wù)器1806與遠(yuǎn)程計(jì)算機(jī)系統(tǒng)1804和1808之間密鑰交換的安全性質(zhì),通過(guò)公共網(wǎng)絡(luò)交換密鑰是安全的,并且這些密鑰可以用于操縱數(shù)據(jù)存儲(chǔ)器1802中加密的數(shù)據(jù)。
圖18D是示意框圖,例示移動(dòng)數(shù)據(jù)保護(hù)。在這個(gè)實(shí)施例中,移動(dòng)計(jì)算機(jī)1816通過(guò)遠(yuǎn)程接入點(diǎn)1814連接。移動(dòng)計(jì)算機(jī)1816,諸如個(gè)人數(shù)字助理,包含無(wú)存儲(chǔ)的密碼引擎版本,能夠與存儲(chǔ)庫(kù)服務(wù)器1806執(zhí)行密鑰交換。由于用于數(shù)據(jù)存儲(chǔ)器1802中存儲(chǔ)信息的強(qiáng)密碼,移動(dòng)計(jì)算機(jī)系統(tǒng)1816可以安全地通過(guò)公共網(wǎng)絡(luò)1810經(jīng)可選的防火墻1812從數(shù)據(jù)存儲(chǔ)器1802檢索加密的數(shù)據(jù),并且移動(dòng)計(jì)算機(jī)可以安全地使用上述密鑰交換方法從存儲(chǔ)庫(kù)服務(wù)器1806接收會(huì)話密鑰。
圖18E是示意框圖,例示在多個(gè)企業(yè)環(huán)境中的數(shù)據(jù)保護(hù)。在這個(gè)實(shí)施例中,信息可以安全地通過(guò)公共網(wǎng)絡(luò)1810在企業(yè)之間共享。數(shù)據(jù)存儲(chǔ)器1802包含加密的信息,可以通過(guò)應(yīng)用服務(wù)器1820提供給內(nèi)部用戶,并通過(guò)其應(yīng)用服務(wù)器,例如應(yīng)用服務(wù)器1830提供給對(duì)等企業(yè)的用戶。通過(guò)公共網(wǎng)絡(luò)1810經(jīng)可選的防火墻1812在企業(yè)之間的信息的安全和顆粒狀共享是有可能的,這是由于在駐留在不同企業(yè)中的存儲(chǔ)庫(kù)服務(wù)器1806和1816之間的安全密鑰交換。通過(guò)來(lái)自諸如加利福尼亞,Mountain View的VeriSign有限公司的證書(shū)機(jī)構(gòu)1832簽署的證書(shū),在存儲(chǔ)庫(kù)服務(wù)器1806和1816之間可選地建立信任。
圖19是示意框圖,例示相應(yīng)于密鑰管理、訪問(wèn)控制和用戶數(shù)據(jù)庫(kù)的表的實(shí)施例。保護(hù)密鑰信息表1902具有保護(hù)密鑰標(biāo)識(shí)符的主關(guān)鍵字(protectionkeyid)。保護(hù)密鑰信息表1902包含“created”列(時(shí)間標(biāo)記),“keyblob”(該保護(hù)密鑰的加密的二進(jìn)制表示),和簽名(例如是HMAC數(shù)據(jù)鑒別碼)。在一個(gè)實(shí)施例中,“keyblob”字段是由主密鑰加密的,主密鑰仍然由M中的K加密方案靜止地保護(hù)。還提供會(huì)話密鑰信息表1904。會(huì)話密鑰信息表具有稱為“SEKID”的主密鑰,它相應(yīng)于未加密的SEKID。因此,一旦核心引擎解密來(lái)自隱藏的鏈接的SEKID,則它可以識(shí)別并解密來(lái)自會(huì)話密鑰信息表1904的“keyblob”。會(huì)話密鑰“keyblob”最好是用與SEKID相同的保護(hù)密鑰加密。在會(huì)話密鑰信息表1904和圖19例示的其它表中,“created”和“signature”字段與結(jié)合保護(hù)密鑰信息表1902所述的“created”和“signature”字段相似。
負(fù)責(zé)人信息表1906具有“principal”的主數(shù)據(jù)庫(kù)關(guān)鍵字,相應(yīng)于按照本發(fā)明的密碼系統(tǒng)的用戶、代理或服務(wù)器的名稱?!皉oles”字段相應(yīng)于分配給特定負(fù)責(zé)人的角色?!癴lags”字段相應(yīng)于與負(fù)責(zé)人相關(guān)聯(lián)的狀態(tài)指示器,例如,禁止的負(fù)責(zé)人或者非禁止的負(fù)責(zé)人。“subclassname”字段用于表示,例如負(fù)責(zé)人是否使用用戶名稱/口令身份驗(yàn)證或者X.509身份驗(yàn)證。
用戶和口令信息表1908和X.509負(fù)責(zé)人信息表1910與負(fù)責(zé)人信息表1906相關(guān)。用戶和口令信息表1908包含相應(yīng)用戶的用戶標(biāo)識(shí)符和口令信息。在一個(gè)實(shí)施例中,“password”字段包含由用戶初始設(shè)置的口令的加密的SHA-1散列。在這個(gè)實(shí)施例中,“password”散列是用主密鑰加密的,主密鑰是由M中的K加密方案保護(hù)的。X.509負(fù)責(zé)人信息表1910包含相應(yīng)于負(fù)責(zé)人的證書(shū),例如與當(dāng)前描述的核心引擎交換密鑰的遠(yuǎn)程密碼系統(tǒng)的證書(shū)。ACL信息表1912具有ACL標(biāo)識(shí)符的主數(shù)據(jù)庫(kù)關(guān)鍵字,用于將該表與ACL條目表1914相關(guān)聯(lián)。ACL信息表為每個(gè)密鑰包含一條記錄,包括密鑰的隱藏的鏈接,ACL的創(chuàng)建時(shí)間和密鑰的期滿標(biāo)志。ACL條目表1914具有包括ACL標(biāo)識(shí)符負(fù)責(zé)人標(biāo)識(shí)符和系統(tǒng)標(biāo)識(shí)符的主關(guān)鍵字,相應(yīng)于唯一地識(shí)別產(chǎn)生該密鑰的特定核心引擎的核心引擎標(biāo)識(shí)符。
角色表1916具有角色標(biāo)識(shí)符(roleid),角色名稱,列表操作標(biāo)識(shí)符和角色類型,它們識(shí)別和定義與特定角色相關(guān)聯(lián)的權(quán)限。操作表1918包含操作標(biāo)識(shí)符和操作名稱,它們用于將操作的名稱與授權(quán)用戶結(jié)合特定的核心引擎執(zhí)行的實(shí)際操作相關(guān)聯(lián)。
審計(jì)日志表1920和事務(wù)日志表1922用于收集定義發(fā)生在核心引擎中的事件的記錄。審計(jì)日志表1920,例如包含有關(guān)執(zhí)行特定操作的負(fù)責(zé)人的信息。事務(wù)日志表1922包含有關(guān)例如由核心引擎執(zhí)行的加密和解密的信息。
圖20是示意框圖,例示加密文件的過(guò)程。首先由用戶在密碼服務(wù)器作出對(duì)密鑰的請(qǐng)求(步驟140)。接著,存儲(chǔ)庫(kù)核心引擎可選地創(chuàng)建并發(fā)送會(huì)話密鑰到密鑰交換模塊(步驟142)。接著,存儲(chǔ)庫(kù)引擎接收用戶的交換公開(kāi)密鑰(步驟144)。交換公開(kāi)密鑰是與用于在各密鑰交換模塊之間交換會(huì)話密鑰的交換密鑰對(duì)相關(guān)聯(lián)的公開(kāi)密鑰。接著,密鑰存儲(chǔ)庫(kù)用交換公開(kāi)密鑰加密會(huì)話(步驟146)。接著,密鑰交換模塊通知A/A模塊,用戶創(chuàng)建了新的會(huì)話密鑰(步驟148)。可以創(chuàng)建一個(gè)新的會(huì)話密鑰,例如,當(dāng)應(yīng)用選擇通過(guò)保存新的數(shù)據(jù)對(duì)象或者保存現(xiàn)有數(shù)據(jù)對(duì)象而不提供相應(yīng)的隱藏的鏈接的來(lái)使得產(chǎn)生新的密鑰。接著,A/A模塊將關(guān)于密鑰所有權(quán)的信息添加到ACL數(shù)據(jù)庫(kù)(步驟150)。在一個(gè)實(shí)施例中,密鑰的所有者具有對(duì)由該密鑰保護(hù)的信息的全部訪問(wèn)權(quán)限。此外,在這個(gè)實(shí)施例中,所有者可以向其它用戶授予對(duì)由該密鑰所保護(hù)的信息的權(quán)限。接著,服務(wù)器密鑰交換模塊1530發(fā)送會(huì)話密鑰和隱藏的鏈接給遠(yuǎn)程計(jì)算機(jī)系統(tǒng),以用戶的交換公開(kāi)密鑰加密(步驟152)。接著,用戶使用與交換密鑰對(duì)相關(guān)聯(lián)的私有密鑰解密會(huì)話密鑰(步驟154)。接著,遠(yuǎn)程核心引擎1540加密用戶數(shù)據(jù)并且用戶應(yīng)用將隱藏的鏈接嵌入到與用戶數(shù)據(jù)相關(guān)聯(lián)的數(shù)據(jù)結(jié)構(gòu),諸如文件結(jié)構(gòu)中(步驟156)。
圖21是示意框圖,例示維護(hù)密鑰的訪問(wèn)控制列表(ACL)的過(guò)程。首先,用戶向密鑰存儲(chǔ)庫(kù)請(qǐng)求現(xiàn)有密鑰的ACL,并且A/A模塊接收ACL請(qǐng)求(步驟160)。接著,A/A模塊查詢?cè)撚脩艉虯CL數(shù)據(jù)庫(kù),以確定該用戶是否具有足夠的權(quán)限觀看與特定密鑰相關(guān)聯(lián)的ACL(步驟162)。在一個(gè)實(shí)施例中,從用戶數(shù)據(jù)庫(kù)獲得有關(guān)具有與該密鑰相關(guān)聯(lián)的權(quán)限的其它用戶的信息。接著,從用戶數(shù)據(jù)庫(kù)和ACL數(shù)據(jù)庫(kù)獲得用戶信息,并且將ACL發(fā)送給用戶(步驟164)。接著,由客戶機(jī)可選地修改ACL,例如,增加或者刪除對(duì)于特定用戶的特定的密鑰(步驟166)。接著,A/A模塊例如通過(guò)參照原始ACL驗(yàn)證該用戶具有足夠的權(quán)限,以修改ACL(步驟168)。最后,密鑰存儲(chǔ)庫(kù)對(duì)ACL數(shù)據(jù)庫(kù)內(nèi)的ACL作出適當(dāng)?shù)母淖?步驟170)。
圖22是示意框圖,例示訪問(wèn)加密的文件的過(guò)程。首先,文件服務(wù)器通過(guò)遠(yuǎn)程計(jì)算機(jī)系統(tǒng)給用戶提供加密的信息(步驟180)。接著,存儲(chǔ)庫(kù)服務(wù)器驗(yàn)證該用戶具有訪問(wèn)該密鑰的權(quán)限以解密由文件服務(wù)器提供的信息(步驟182)。接著,將該密鑰發(fā)送給密鑰交換管理器(步驟184)。存儲(chǔ)庫(kù)服務(wù)器隨后從用戶數(shù)據(jù)庫(kù)檢索用戶的交換公開(kāi)密鑰(步驟186)。接著,存儲(chǔ)庫(kù)密鑰交換管理器重新輸出會(huì)話密鑰(步驟188)。接著,存儲(chǔ)庫(kù)密鑰交換模塊發(fā)送加密的會(huì)話密鑰給用戶,以用戶的交換公開(kāi)密鑰加密(步驟190)。接著,用戶使用用戶的交換私有密鑰解密會(huì)話密鑰(步驟192)。此外,遠(yuǎn)程計(jì)算機(jī)系統(tǒng)解密用戶數(shù)據(jù)(步驟194)。
圖23是示意框圖,例示響應(yīng)于密鑰變成被損害的,阻止與該密鑰相關(guān)聯(lián)的訪問(wèn)的過(guò)程。首先,存儲(chǔ)庫(kù)服務(wù)器接收與遠(yuǎn)程計(jì)算機(jī)系統(tǒng)或智能卡的損害有關(guān)的信息(步驟196)。接著,存儲(chǔ)庫(kù)操作員接收來(lái)自經(jīng)授權(quán)的用戶代表的連接(步驟198)。此外,如果成功地對(duì)經(jīng)授權(quán)的代表進(jìn)行了身份驗(yàn)證,則例如通過(guò)從與受損害的密鑰相關(guān)聯(lián)的ACL中移除所有用戶禁止這些密鑰,(步驟200)。
在一個(gè)實(shí)施例中,按照本發(fā)明結(jié)合密碼系統(tǒng)執(zhí)行可信軟件組件。結(jié)合密碼系統(tǒng)使用可信組件的目的包括驗(yàn)證軟件的身份和可靠性的能力。軟件的驗(yàn)證是重要的,因?yàn)閷⑵墼p軟件引入到運(yùn)行中的密碼系統(tǒng)可以使密碼系統(tǒng)失效。
確定軟件可靠性的一種方法是驗(yàn)證其身份。通常,身份可以基于某物固有的特性來(lái)建立,基于已知一個(gè)秘密來(lái)建立,或者基于擁有某物例如證書(shū)或秘密來(lái)建立。然而,已知或者擁有一個(gè)秘密諸如嵌入的密鑰已經(jīng)證明是有問(wèn)題的。例如,持久的計(jì)算機(jī)用戶已經(jīng)能夠查找并提取軟件內(nèi)隱藏的密鑰。因此,基于軟件的固定特性建立身份是較佳的。但僅具有包含源代碼的文件的名稱是不足以建立身份的。唯一地識(shí)別文件的“指紋(fingerprint)”是較佳的??梢栽谶\(yùn)行時(shí)間在執(zhí)行軟件之前驗(yàn)證指紋,以驗(yàn)證軟件的身份。
圖24是例示一個(gè)系統(tǒng)的示意框圖,在該系統(tǒng)中,對(duì)可信組件進(jìn)行身份驗(yàn)證。提供應(yīng)用服務(wù)器2410和注冊(cè)服務(wù)器2430。可以理解,應(yīng)用服務(wù)器2410和注冊(cè)服務(wù)器2430可以作為分別的線程或進(jìn)程在單個(gè)計(jì)算機(jī)系統(tǒng)上實(shí)現(xiàn)??商鎿Q地,應(yīng)用服務(wù)器2410和注冊(cè)服務(wù)器2430在分開(kāi)的計(jì)算機(jī)系統(tǒng)上實(shí)現(xiàn)。密碼服務(wù)器2420結(jié)合應(yīng)用服務(wù)器2410的注冊(cè)服務(wù)器2430使用,以提供結(jié)合可信組件的驗(yàn)證的密碼功能。
應(yīng)用服務(wù)器2410可選地包括智能卡閱讀器2412,它從智能卡讀取密鑰信息。權(quán)標(biāo)分配器2414結(jié)合可信組件的驗(yàn)證提供密碼權(quán)標(biāo)。密碼代理2418提供應(yīng)用服務(wù)器2410所需的密碼功能,以安全地與密碼服務(wù)器2420通信并且對(duì)商業(yè)應(yīng)用2416進(jìn)行身份驗(yàn)證。注冊(cè)服務(wù)器2430包括智能卡閱讀器2412和可信組件管理器2434,后者用于收集和處理有關(guān)可信組件的信息。
密碼服務(wù)器2420包括注冊(cè)數(shù)據(jù)庫(kù)2426和可選的智能卡閱讀器2412。此外,密碼服務(wù)器2420包括核心引擎2422,核心引擎2422還包括包含密碼密鑰的密鑰數(shù)據(jù)庫(kù)2424??尚沤M件身份驗(yàn)證系統(tǒng)結(jié)合圖24-27進(jìn)一步描述。
圖25是示意框圖,例示創(chuàng)建智能卡的過(guò)程。在一個(gè)實(shí)施例中,在安裝或者配置密碼服務(wù)器2420期間產(chǎn)生兩個(gè)秘密密碼密鑰。首先,產(chǎn)生一個(gè)可操作的密鑰(步驟202)。在一個(gè)實(shí)施例中,可操作的密鑰用于保護(hù)密碼代理與密碼服務(wù)器之間的通信。在一個(gè)實(shí)施例中,將可操作的密鑰從智能卡讀到包含密碼代理的分別的機(jī)器和密碼服務(wù)器中。在這個(gè)實(shí)施例中,相應(yīng)于密碼代理的“指紋”也包含在智能卡中。使用所存儲(chǔ)的密碼代理的“指紋”,密碼服務(wù)器可以驗(yàn)證密碼代理的可靠性。接著,產(chǎn)生注冊(cè)密鑰(步驟203)。注冊(cè)密鑰由系統(tǒng)管理員在注冊(cè)過(guò)程中用于注冊(cè)可信組件。接著,將可操作的密鑰放在可操作的智能卡中(步驟204),并且可選地由如可信的實(shí)體簽署可操作的密鑰,(步驟206)。在一個(gè)實(shí)施例中,用與密碼服務(wù)器2420相關(guān)聯(lián)的簽署密鑰來(lái)簽署可操作的密鑰。接著,將注冊(cè)密鑰放在注冊(cè)智能卡中(步驟208)。此外,由可信簽名人簽署該注冊(cè)密鑰(步驟210)。
圖26是示意框圖,例示注冊(cè)組件的過(guò)程。首先,可信組件管理器2434接收以與軟件組件相關(guān)聯(lián)的電子計(jì)算機(jī)代碼形式的軟件,諸如商業(yè)應(yīng)用1542(步驟212)。接著,可信組件管理器2434例如通過(guò)執(zhí)行操作系統(tǒng)調(diào)用確定組件的名稱,以確定與該組件相關(guān)聯(lián)的文件名(步驟214)。接著,可信組件管理器2434例如通過(guò)對(duì)該組件應(yīng)用如MD5或SHA-1的散列函數(shù)計(jì)算可信組件的“指紋”,(步驟216)。接著,可信組件管理器2434從注冊(cè)智能卡讀取注冊(cè)密鑰(步驟218)。因此,沒(méi)有對(duì)注冊(cè)智能卡的訪問(wèn)權(quán)限的用戶不能注冊(cè)組件。接著,使用注冊(cè)密鑰,可信組件管理器2434使用注冊(cè)密鑰與密碼服務(wù)器執(zhí)行詢問(wèn)應(yīng)答協(xié)議(步驟220),并且安全地發(fā)送組件的信息給密碼服務(wù)器(步驟222)。而且,密碼服務(wù)器簽署新注冊(cè)組件的注冊(cè)信息,包括,例如“指紋”(步驟224),并且將注冊(cè)信息存儲(chǔ)在數(shù)據(jù)庫(kù)中。
在重啟應(yīng)用服務(wù)器2410后,權(quán)標(biāo)分配器2414通過(guò)智能卡閱讀器2412從可操作的智能卡接收信息。在一個(gè)實(shí)施例中,在插入智能卡后,用戶必須提供口令。
圖27是示意框圖,例示執(zhí)行組件的運(yùn)行時(shí)間身份驗(yàn)證的過(guò)程。首先,商業(yè)應(yīng)用2416向密碼代理2418提交請(qǐng)求,以作為可信組件運(yùn)行。密碼代理2418接收該請(qǐng)求(步驟226)。接著,密碼代理確定應(yīng)用的名稱并計(jì)算它的數(shù)字“指紋”(步驟228)。接著,密碼代理2418發(fā)送一個(gè)詢問(wèn)請(qǐng)求給與該應(yīng)用有關(guān)的密碼服務(wù)器2420(步驟230)。接著,密碼服務(wù)器2120產(chǎn)生一個(gè)隨機(jī)詢問(wèn),并且基于可操作的密鑰和該應(yīng)用的“指紋”計(jì)算正確的應(yīng)答(步驟232)。接著,密碼服務(wù)器2420向密碼代理2418提供該詢問(wèn)(步驟234),并且該代理使用應(yīng)用的指紋,通過(guò)例如,將指紋與該詢問(wèn)組合起來(lái)執(zhí)行應(yīng)答計(jì)算的第一部分(步驟236)。接著,該代理命令權(quán)標(biāo)分配器2414完成該詢問(wèn)的計(jì)算(步驟238)。接著,權(quán)標(biāo)分配器,例如通過(guò)將所存儲(chǔ)的指紋與在存儲(chǔ)器正在執(zhí)行的可運(yùn)行的代理的實(shí)際指紋相比較來(lái)驗(yàn)證代理的完整性,并且權(quán)標(biāo)分配,例如通過(guò)使用可操作的密鑰作為HMAC計(jì)算中的密鑰計(jì)算該詢問(wèn)和指紋的組合的HMAC來(lái)完成應(yīng)答計(jì)算,(步驟240)。此外,密碼服務(wù)器2420通過(guò)用可操作的密鑰驗(yàn)證HMAC和將所計(jì)算的指紋與所存儲(chǔ)的指紋相比較來(lái)驗(yàn)證對(duì)該詢問(wèn)的應(yīng)答(步驟242),并且確認(rèn)該應(yīng)用為可信組件。
本發(fā)明具有重要的好處和優(yōu)點(diǎn)。因?yàn)槊艽a密鑰不存儲(chǔ)在軟件組件中,不能使用已知技術(shù)來(lái)提取密鑰并且使密碼系統(tǒng)失效。受保護(hù)的數(shù)據(jù)項(xiàng)包含相關(guān)聯(lián)的隱藏的鏈接,后者在密鑰存儲(chǔ)器中提供相關(guān)聯(lián)的密碼密鑰的身份。此外,代替對(duì)于所有受保護(hù)的信息具有少量密鑰,使用不同的密鑰來(lái)保護(hù)離散的信息段,例如為文件服務(wù)器上每個(gè)受保護(hù)的文件或者為數(shù)據(jù)庫(kù)中每條受保護(hù)的記錄使用不同的密鑰。在一個(gè)實(shí)施例中,密鑰存儲(chǔ)器位于集中式密鑰存儲(chǔ)庫(kù)中,因而得到簡(jiǎn)化的備份和災(zāi)難恢復(fù)過(guò)程的優(yōu)點(diǎn)。此外,密鑰本身在密鑰存儲(chǔ)庫(kù)中被加密并且這些密鑰不能由它們相應(yīng)的所保護(hù)數(shù)據(jù)項(xiàng)來(lái)識(shí)別。因此,在不知道受保護(hù)數(shù)據(jù)對(duì)象內(nèi)的隱藏的鏈接的情況下,即使擁有密鑰存儲(chǔ)庫(kù)也不會(huì)讓侵入者實(shí)現(xiàn)對(duì)實(shí)際數(shù)據(jù)的訪問(wèn)。
本發(fā)明的其它好處和優(yōu)點(diǎn)包括密碼系統(tǒng)和方法的分布式性質(zhì),其中,盡管密鑰集中在一個(gè)或多個(gè)密鑰存儲(chǔ)庫(kù)中,但在接近于受保護(hù)數(shù)據(jù)的實(shí)際產(chǎn)生者與消費(fèi)者的遠(yuǎn)程計(jì)算機(jī)系統(tǒng)上執(zhí)行密碼計(jì)算。因此,遠(yuǎn)程計(jì)算機(jī)系統(tǒng)的計(jì)算能力被充分利用,并且在集中地執(zhí)行密碼計(jì)算的系統(tǒng)上達(dá)到了計(jì)算的有效性。
在加密、存儲(chǔ)、檢索和解密數(shù)據(jù)的方法中利用了上述計(jì)算機(jī)系統(tǒng)和數(shù)據(jù)庫(kù)結(jié)構(gòu)。當(dāng)客戶機(jī)用戶請(qǐng)求一個(gè)數(shù)據(jù)操作(包括添加、更新和觀看請(qǐng)求)時(shí),計(jì)算機(jī)系統(tǒng)將實(shí)現(xiàn)適當(dāng)?shù)牟襟E。對(duì)于每個(gè)事務(wù),假定客戶機(jī)用戶已經(jīng)使用諸如智能卡、雙因素身份驗(yàn)證設(shè)備或者用戶姓名和口令等可信的身份驗(yàn)證方法,獲得了對(duì)商業(yè)域的訪問(wèn)權(quán)限。
術(shù)語(yǔ)表非對(duì)稱密鑰密碼學(xué)使用不同的密鑰進(jìn)行加密和解密信息的密碼學(xué)。例如,在公開(kāi)密鑰密碼學(xué)中,使用公開(kāi)密鑰加密信息,但不能使用公開(kāi)密鑰解密信息。只有與公開(kāi)密鑰相關(guān)聯(lián)的私有密鑰可以解密經(jīng)加密的信息。
屬性/字段保存在對(duì)象中的一類數(shù)據(jù)。
商業(yè)邏輯組件(BLC)可由客戶機(jī)訪問(wèn)的計(jì)算機(jī)系統(tǒng)中的組件,用于建立和改變控制系統(tǒng)的操作的商業(yè)規(guī)則,并控制什么數(shù)據(jù)要加密和什么數(shù)據(jù)不要加密。
證書(shū)管理器(CM)控制與操作有關(guān)的系統(tǒng)密鑰PKI,并且與負(fù)責(zé)發(fā)布和驗(yàn)證系統(tǒng)密鑰的數(shù)字證書(shū)的私有證書(shū)機(jī)構(gòu)通信。
密文加密的數(shù)據(jù)。
類按照面向?qū)ο缶幊蹋瑢?duì)象的類別。
數(shù)據(jù)庫(kù)適配器(DBAD)軟件組件,它允許安全域組件在各種類型的數(shù)據(jù)庫(kù)和多個(gè)數(shù)據(jù)庫(kù)上保存和檢索數(shù)據(jù)。
數(shù)據(jù)加密標(biāo)準(zhǔn)(DES)由美國(guó)政府使用56位密鑰建立的對(duì)稱密鑰算法。
解密將數(shù)據(jù)從密文改變?yōu)槊魑摹?br>
數(shù)字證書(shū)一種用于保證公開(kāi)密鑰的可靠性的數(shù)據(jù)結(jié)構(gòu)。典型的數(shù)字證書(shū)包括證書(shū)持有者信息、公開(kāi)密鑰、證書(shū)發(fā)布者的標(biāo)識(shí)和證書(shū)的序列號(hào)的經(jīng)簽署的集合。
加密將數(shù)據(jù)轉(zhuǎn)換成秘密代碼。
加密碼密鑰管理器(EKM)計(jì)算機(jī)系統(tǒng)的軟件組件,它管理會(huì)話加密碼密鑰,包括產(chǎn)生、替換和其它任務(wù)。
故障容錯(cuò)一種在發(fā)生非預(yù)期的硬件或軟件故障的情況下繼續(xù)運(yùn)行的系統(tǒng)能力。
通用安全管理器(GSM)一種軟件組件,作為安全域的守門(mén)器運(yùn)行,并執(zhí)行散列、加密和解密功能。
硬件隨機(jī)數(shù)產(chǎn)生器(HRNG)用于為SEKID產(chǎn)生隨機(jī)數(shù)的設(shè)備。
散列從一個(gè)文本串產(chǎn)生一個(gè)數(shù)字,它實(shí)質(zhì)上比文本本身小。結(jié)合“單向”散列函數(shù),不能有效地使用散列值來(lái)確定用于產(chǎn)生散列值的文本。散列值或完整性值用于搜索查詢以識(shí)別合適的數(shù)據(jù)對(duì)象,并用于安全完整性檢驗(yàn)。
互聯(lián)網(wǎng)協(xié)議(IP)對(duì)于通過(guò)因特網(wǎng)的信息傳輸規(guī)定信息格式和尋址方案。
互聯(lián)網(wǎng)協(xié)議安全(IPSEC)一組支持在因特網(wǎng)協(xié)議層信息安全交換的協(xié)議。
IP欺騙試圖產(chǎn)生一個(gè)消息,好象它來(lái)自授權(quán)的因特網(wǎng)協(xié)議地址。
密鑰解碼經(jīng)加密的數(shù)據(jù)所需的口令或表。
密鑰審計(jì)管理器(KAM)維護(hù)有關(guān)所有EKM和SKM操作的活動(dòng)審計(jì)日志,這些操作基于策略和規(guī)則具有發(fā)送警報(bào)和通知給接收者的能力。
密鑰生存期管理器(KLM)監(jiān)控SEK的期滿并且撤消期滿的SEK或者可替換地在下一次請(qǐng)求或調(diào)用中撤消的SEK標(biāo)志。
存儲(chǔ)器(RAM)隨機(jī)存取存儲(chǔ)器。
消息摘要5(MD5)一種單向散列功能,它取一消息并將它轉(zhuǎn)換成特定大小的散列值或消息摘要。它稱為單向散列函數(shù)是因?yàn)樗鼛缀醪豢赡苣孓D(zhuǎn)這個(gè)過(guò)程,即將散列值轉(zhuǎn)換成原始消息。
對(duì)象由數(shù)據(jù)和用于操縱該數(shù)據(jù)的過(guò)程或者方法兩者組成的自包含實(shí)體。
面向?qū)ο笾敢环N特殊類型的編程,將數(shù)據(jù)結(jié)構(gòu)與函數(shù)或方法結(jié)合起來(lái)以創(chuàng)建可重用和可擴(kuò)展的稱為對(duì)象的程序元素。
明文未加密的數(shù)據(jù)。
公開(kāi)密鑰基礎(chǔ)結(jié)構(gòu)(PKI)硬件和軟件系統(tǒng)的集合,以促進(jìn)公開(kāi)密鑰密碼學(xué)的可靠使用,包括證明數(shù)字證書(shū)的證書(shū)機(jī)構(gòu),以及使用公開(kāi)密鑰密碼學(xué)驗(yàn)證和身份驗(yàn)證涉及簽署或接收加密的消息的部門(mén)的有效性和身份的其它注冊(cè)機(jī)構(gòu)。
安全散列算法(SHA-1)另一種單向散列函數(shù)。
安全密鑰數(shù)據(jù)庫(kù)(KEYDB)一種在安全域內(nèi)的數(shù)據(jù)庫(kù),其中保存SEK和SEKID。
安全套接字協(xié)議層(SSL)為通過(guò)公共因特網(wǎng)安全地傳輸信息而開(kāi)發(fā)的協(xié)議。
會(huì)話加密碼密鑰(SEK)用于在會(huì)話過(guò)程中加密和解密數(shù)據(jù)的密鑰,會(huì)話過(guò)程是訪問(wèn)數(shù)據(jù)的時(shí)段。
會(huì)話加密碼密鑰標(biāo)識(shí)符(SEKID)對(duì)SEK隨機(jī)產(chǎn)生的標(biāo)識(shí)數(shù)。
智能卡一種小電子設(shè)備,大約信用卡大小,它包含電子存儲(chǔ)器。它可包括集成電路。
對(duì)稱密鑰加密一種加密系統(tǒng),其中使用同一密鑰加密和解密數(shù)據(jù)。
系統(tǒng)密鑰對(duì)一種對(duì)稱密鑰對(duì),用于加密和解密SEKID。
系統(tǒng)密鑰通用名(SKCN)系統(tǒng)密鑰數(shù)字證書(shū)序列號(hào)和從屬的通用名。
系統(tǒng)密鑰管理器(SKM)管理系統(tǒng)密鑰,包括產(chǎn)生、驗(yàn)證和其它任務(wù)。
虛擬專用網(wǎng)絡(luò)(VPN)通過(guò)公共網(wǎng)絡(luò)的虛擬連接,用于使用密碼技術(shù)進(jìn)行專用的信息交換。
X_509廣泛使用的標(biāo)準(zhǔn),用于定義數(shù)字證書(shū)。
權(quán)利要求
1.一種計(jì)算機(jī)系統(tǒng),包含密碼密鑰和密碼密鑰標(biāo)識(shí)符,其特征在于,所述計(jì)算機(jī)系統(tǒng)包括一存儲(chǔ)庫(kù)密碼引擎,用于與一遠(yuǎn)程密碼引擎安全地通信,所述存儲(chǔ)庫(kù)密碼引擎與一用戶數(shù)據(jù)存儲(chǔ)器相關(guān)聯(lián),所述用戶數(shù)據(jù)存儲(chǔ)器具有至少一個(gè)隱藏的鏈接,所述隱藏的鏈接包括用至少一個(gè)保護(hù)密鑰加密的會(huì)話密鑰標(biāo)識(shí)符,所述隱藏的鏈接與至少一個(gè)遠(yuǎn)程數(shù)據(jù)實(shí)體相關(guān)聯(lián);至少一個(gè)用至少一個(gè)會(huì)話密鑰保護(hù)密鑰加密的會(huì)話密鑰,所述會(huì)話密鑰結(jié)合對(duì)遠(yuǎn)程數(shù)據(jù)實(shí)體的密碼操作使用;以及一存儲(chǔ)庫(kù)密鑰交換模塊,用于與遠(yuǎn)程密鑰交換模塊交換會(huì)話密鑰。
2.如權(quán)利要求1所述的計(jì)算機(jī)系統(tǒng),其特征在于,所述會(huì)話密鑰標(biāo)識(shí)符用于標(biāo)識(shí)相應(yīng)于遠(yuǎn)程數(shù)據(jù)實(shí)體的會(huì)話密鑰。
3.如權(quán)利要求1所述的計(jì)算機(jī)系統(tǒng),其特征在于,還包括一與至少一個(gè)訪問(wèn)控制列表相耦合的授權(quán)模塊,其中,基于所述訪問(wèn)控制列表提供對(duì)基于會(huì)話密鑰的操作的訪問(wèn)。
4.如權(quán)利要求3所述的計(jì)算機(jī)系統(tǒng),其特征在于,所述授權(quán)模塊還與一用戶數(shù)據(jù)存儲(chǔ)器相耦合,并且其中,還基于所述用戶數(shù)據(jù)存儲(chǔ)器提供對(duì)會(huì)話密鑰的訪問(wèn)。
5.如權(quán)利要求1所述的計(jì)算機(jī)系統(tǒng),其特征在于,所述保護(hù)密鑰是對(duì)稱密碼密鑰。
6.如權(quán)利要求1所述的計(jì)算機(jī)系統(tǒng),其特征在于,所述會(huì)話密鑰保護(hù)密鑰是對(duì)稱密碼密鑰。
7.如權(quán)利要求1所述的計(jì)算機(jī)系統(tǒng),其特征在于,所述會(huì)話密鑰保護(hù)密鑰和所述保護(hù)密鑰是等價(jià)的。
8.如權(quán)利要求6所述的計(jì)算機(jī)系統(tǒng),其特征在于,結(jié)合三重?cái)?shù)據(jù)加密標(biāo)準(zhǔn)使用對(duì)稱密碼密鑰。
9.如權(quán)利要求6所述的計(jì)算機(jī)系統(tǒng),其特征在于,結(jié)合高級(jí)加密標(biāo)準(zhǔn)使用所述對(duì)稱的密碼密鑰。
10.如權(quán)利要求1所述的計(jì)算機(jī)系統(tǒng),其特征在于,所述隱藏的鏈接與所述遠(yuǎn)程數(shù)據(jù)實(shí)體相關(guān)聯(lián)。
11.如權(quán)利要求10所述的計(jì)算機(jī)系統(tǒng),其特征在于,所述遠(yuǎn)程數(shù)據(jù)實(shí)體是一文件,并且所述隱藏的鏈接被嵌入在所述文件的首部中。
12.一種分布式網(wǎng)絡(luò),包括一包含密碼密鑰的存儲(chǔ)庫(kù)服務(wù)器,其特征在于,所述分布式網(wǎng)絡(luò)包括一存儲(chǔ)庫(kù)密碼引擎,用于與一遠(yuǎn)程密碼引擎安全地通信;一遠(yuǎn)程密碼代理,用于與遠(yuǎn)程密碼引擎安全地通信;以及一與所述遠(yuǎn)程密碼代理相耦合的商業(yè)應(yīng)用,其中,所述商業(yè)應(yīng)用的可靠性由所述遠(yuǎn)程密碼引擎通過(guò)將存儲(chǔ)的所述商業(yè)應(yīng)用的指紋與所述遠(yuǎn)程密碼代理的計(jì)算出的指紋相比較來(lái)驗(yàn)證。
13.如權(quán)利要求12所述的分布式網(wǎng)絡(luò),其特征在于,所述遠(yuǎn)程密碼代理與所述遠(yuǎn)程密碼引擎駐留在分開(kāi)的計(jì)算機(jī)系統(tǒng)中。
14.如權(quán)利要求12所述的分布式網(wǎng)絡(luò),其特征在于,使用一共享的操作密鑰來(lái)保護(hù)在所述遠(yuǎn)程密碼代理與所述遠(yuǎn)程密碼引擎之間的安全通信。
15.如權(quán)利要求14所述的分布式網(wǎng)絡(luò),其特征在于,所述共享的操作密鑰由所述遠(yuǎn)程密碼代理和所述遠(yuǎn)程密碼引擎從一智能卡接收。
16.一計(jì)算機(jī)可讀數(shù)據(jù)傳輸媒體,它包含用于促進(jìn)安全交換和加密數(shù)據(jù)的使用的數(shù)據(jù)結(jié)構(gòu),其特征在于,所述數(shù)據(jù)結(jié)構(gòu)包括至少一個(gè)由至少一個(gè)加密碼密鑰加密的數(shù)據(jù)實(shí)體;至少一個(gè)密鑰關(guān)聯(lián),它將所述數(shù)據(jù)實(shí)體與所述加密碼密鑰相關(guān)聯(lián);以及指令,用于從一應(yīng)用軟件組件接收命令以產(chǎn)生一新的加密碼密鑰,以加密的形式存儲(chǔ)所述數(shù)據(jù)實(shí)體,并且將所述數(shù)據(jù)實(shí)體的未加密形式傳送給所述應(yīng)用軟件組件,所述命令通過(guò)一可信密碼代理來(lái)代理。
17.一密碼方法,用于促進(jìn)信息的安全存儲(chǔ),其特征在于,所述方法包括從在一遠(yuǎn)程計(jì)算機(jī)系統(tǒng)上的請(qǐng)求密鑰交換模塊接收對(duì)一會(huì)話密鑰的密鑰請(qǐng)求,所述密鑰請(qǐng)求包括一隱藏的鏈接;基于所述隱藏的鏈接使用一保護(hù)密鑰訪問(wèn)并解密所述會(huì)話密鑰;接收一相應(yīng)于所述請(qǐng)求密鑰交換模塊的交換公開(kāi)密鑰;以所述交換公開(kāi)密鑰加密所述會(huì)話密鑰,產(chǎn)生一加密的會(huì)話密鑰;將所述加密的會(huì)話密鑰傳輸給所述請(qǐng)求密鑰交換模塊;在一與請(qǐng)求者相關(guān)聯(lián)的計(jì)算機(jī)系統(tǒng)上,用一相應(yīng)于所述交換公開(kāi)密鑰的交換私有密鑰解密所述加密的會(huì)話密鑰;用所述會(huì)話密鑰加密一數(shù)據(jù)實(shí)體,并且將所述隱藏的鏈接連接到所述數(shù)據(jù)實(shí)體;以及存儲(chǔ)所述數(shù)據(jù)實(shí)體。
18.一密碼方法,用于促進(jìn)信息的安全檢索,其特征在于,所述方法包括提供至少一加密的數(shù)據(jù)實(shí)體給一請(qǐng)求者;接收相應(yīng)于所述請(qǐng)求者的訪問(wèn)控制信息;確定所述請(qǐng)求者是否具有足夠的訪問(wèn)權(quán)限來(lái)解密所述加密的數(shù)據(jù)實(shí)體;將一會(huì)話密鑰傳輸給一密鑰交換模塊,所述會(huì)話密鑰相應(yīng)于所述加密的數(shù)據(jù)實(shí)體;從一用戶數(shù)據(jù)庫(kù)接收一交換公開(kāi)密鑰;以所述交換公開(kāi)密鑰加密所述會(huì)話密鑰,產(chǎn)生一加密的會(huì)話密鑰;將所述加密的會(huì)話密鑰傳輸給所述請(qǐng)求者;在一與所述請(qǐng)求者相關(guān)聯(lián)的計(jì)算機(jī)系統(tǒng)上使用一相應(yīng)于所述交換公開(kāi)密鑰的交換私有密鑰解密所述加密的會(huì)話密鑰;以及用所述會(huì)話密鑰解密所述加密的數(shù)據(jù)實(shí)體。
19.一密碼方法,用于使用可信組件促進(jìn)信息的安全處理,其特征在于,所述方法包括接收與一軟件組件相關(guān)聯(lián)的電子代碼;接收一與所述軟件組件相關(guān)聯(lián)的組件標(biāo)識(shí)符;計(jì)算一與所述電子代碼相關(guān)的指紋;從一注冊(cè)密鑰源讀出一注冊(cè)密鑰;使用所述注冊(cè)密鑰執(zhí)行一注冊(cè)詢問(wèn)應(yīng)答協(xié)議,由此證明注冊(cè)所述軟件組件的權(quán)限;連同所述軟件組件的組件標(biāo)識(shí)符,存儲(chǔ)注冊(cè)信息和所述指紋;從在一密碼代理處的所述軟件組件接收請(qǐng)求,以執(zhí)行一授權(quán)的密碼操作;以及發(fā)送一對(duì)詢問(wèn)的請(qǐng)求給有關(guān)所述軟件組件的密碼服務(wù)器;提供一詢問(wèn)給代理;接收對(duì)所述詢問(wèn)的應(yīng)答;驗(yàn)證對(duì)所述詢問(wèn)的所述應(yīng)答,包括計(jì)算所述指紋并且驗(yàn)證一操作密鑰。
20.如權(quán)利要求19所述的方法,其特征在于,所述注冊(cè)密鑰源是注冊(cè)智能卡。
21.一密碼系統(tǒng),用于促進(jìn)信息的安全處理,其特征在于,所述系統(tǒng)包括用于提供至少一個(gè)加密的數(shù)據(jù)實(shí)體給一請(qǐng)求者的裝置;用于接收相應(yīng)于所述請(qǐng)求者的訪問(wèn)控制信息的裝置;用于確定所述請(qǐng)求者是否具有足夠訪問(wèn)權(quán)限以訪問(wèn)所述加密的數(shù)據(jù)實(shí)體的裝置;用于將一會(huì)話密鑰發(fā)送給一密鑰交換模塊的裝置,所述會(huì)話密鑰相應(yīng)于所述加密的數(shù)據(jù)實(shí)體;用于從一用戶數(shù)據(jù)庫(kù)接收一交換公開(kāi)密鑰的裝置;用于以所述交換公開(kāi)密鑰加密所述會(huì)話密鑰,產(chǎn)生一加密的會(huì)話密鑰的裝置;用于將所述加密的會(huì)話密鑰發(fā)送給所述請(qǐng)求者的裝置;在一與所述請(qǐng)求者相關(guān)聯(lián)的計(jì)算機(jī)系統(tǒng)上,使用一相應(yīng)于所述交換公開(kāi)密鑰的交換私有密鑰解密所述加密的會(huì)話密鑰的裝置;以及用于用所述會(huì)話密鑰解密所述加密的數(shù)據(jù)實(shí)體的裝置。
全文摘要
揭示一計(jì)算機(jī)系統(tǒng)(1000),包含密碼密鑰和密碼密鑰標(biāo)識(shí)符(1640)。系統(tǒng)(1600)具有一存儲(chǔ)庫(kù)密碼引擎(1622),它安全地與遠(yuǎn)程密碼引擎(1642)通信,并且存儲(chǔ)庫(kù)密碼引擎(1622)與一用戶數(shù)據(jù)存儲(chǔ)器(1722)相關(guān)聯(lián)。用戶數(shù)據(jù)存儲(chǔ)器(1722)包括一隱藏的鏈接,它包括用保護(hù)密鑰加密的會(huì)話密鑰標(biāo)識(shí)符。隱藏的鏈接與遠(yuǎn)程數(shù)據(jù)實(shí)體相關(guān)聯(lián)。與存儲(chǔ)庫(kù)服務(wù)器(1620)相關(guān)聯(lián)的密鑰數(shù)據(jù)存儲(chǔ)器(1640)包括用會(huì)話密鑰保護(hù)密鑰加密的會(huì)話密鑰。使用會(huì)話密鑰加密和解密遠(yuǎn)程數(shù)據(jù)實(shí)體。系統(tǒng)(1600)也包括一存儲(chǔ)庫(kù)密鑰交換模塊(1634),用于與遠(yuǎn)程密鑰交換模塊(1630)交換會(huì)話密鑰。
文檔編號(hào)G06F17/30GK1669265SQ03816860
公開(kāi)日2005年9月14日 申請(qǐng)日期2003年5月15日 優(yōu)先權(quán)日2002年5月15日
發(fā)明者O·瓦西克, S·安沙里, 甘平, J·胡, B·庫(kù)路西, A·馬多克, A·泰西萊克 申請(qǐng)人:伊露西斯有限公司