專利名稱:安全數(shù)據(jù)解析器方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明一般地涉及用于保護數(shù)據(jù)不被未經(jīng)授權(quán)地訪問或使用的系統(tǒng)。
背景技術(shù):
在當(dāng)今社會,個人和企業(yè)越來越多地經(jīng)由計算機系統(tǒng)從事活動。這些計算機系統(tǒng),其中包括專用和非專用計算機網(wǎng)絡(luò),通常存儲、歸檔和傳輸各種類型的敏感信息。從而,越來越需要確保經(jīng)由這些系統(tǒng)存儲和傳輸?shù)臄?shù)據(jù)無法被讀取或被以其他方式危害。
一種用于保護計算機系統(tǒng)的常用解決方案是提供登錄和口令功能。但是,口令管理已被證實是代價相當(dāng)高昂的,因為很大一部分幫助桌面調(diào)用都涉及口令問題。此外,口令提供的安全性很小,這是因為它們一般被存儲在易于例如通過強力攻擊來不適當(dāng)?shù)卦L問的文件中。
另一種保護計算機系統(tǒng)的解決方案是提供密碼基礎(chǔ)設(shè)施。密碼術(shù)一般而言是指通過將數(shù)據(jù)變換或加密成不可讀的格式來保護數(shù)據(jù)。只有擁有加密鑰匙者才能將數(shù)據(jù)解密成可用格式。密碼術(shù)被用于識別用戶,例如認證,以允許訪問特權(quán),例如授權(quán),以便創(chuàng)建數(shù)字證書和簽名等等。一種流行的密碼系統(tǒng)是公鑰系統(tǒng),其使用兩個鑰匙所有人都知道的公鑰和只有其個人或企業(yè)擁有者才知道的私鑰。一般而言,用一個鑰匙加密的數(shù)據(jù)是用另一個來解密的,并且兩個鑰匙都不能用另一個來重新創(chuàng)建。
不幸的是,即使是前述典型公鑰密碼系統(tǒng)也仍是高度依賴于用戶來獲得安全性的。例如,密碼系統(tǒng)例如通過用戶的瀏覽器向用戶發(fā)布私鑰。然后不夠老練的用戶一般將該私鑰存儲在硬盤驅(qū)動器上,而該硬盤驅(qū)動器一般是可通過諸如因特網(wǎng)這樣的開放計算機系統(tǒng)來被他人訪問的。另一方面,用戶可能為包含其私鑰的文件選擇拙劣的名稱,例如“key.”。前述和其他行為的結(jié)果是使得一個或多個鑰匙易遭受危害。
除了前述危害外,用戶可能將其私鑰保存在配置有歸檔或備份系統(tǒng)的計算機系統(tǒng)上,這可能導(dǎo)致私鑰復(fù)本傳播經(jīng)過多個計算機存儲設(shè)備或其他系統(tǒng)。這種安全性漏洞通常被稱為“鑰匙遷移(keymigration)”。與鑰匙遷移類似,許多應(yīng)用至多只通過簡單的登錄和口令訪問就提供對用戶私鑰的訪問。如前所述,登錄和口令訪問通常不提供足夠的安全性。
用于增大前述密碼系統(tǒng)的安全性的一種解決方案是將生物特征量度(biometric)包括為認證或授權(quán)的一部分。生物特征量度一般包括可測量的物理特性,例如能通過自動化系統(tǒng)來檢查的指紋或語音,該自動系統(tǒng)例如是指紋樣式或語音樣式的樣式匹配或識別。在這種系統(tǒng)中,用戶的生物特征量度和/或鑰匙可被存儲在移動計算設(shè)備上,例如智能卡、筆記本電腦、個人數(shù)字助理或移動電話,從而允許生物特征量度或鑰匙能在移動環(huán)境中被使用。
前述移動生物特征量度密碼系統(tǒng)仍有多種缺陷。例如,移動用戶可能丟失或損壞智能卡或便攜式計算設(shè)備,從而使其對可能的重要數(shù)據(jù)的訪問完全被切斷。或者,某個惡意者可能竊取移動用戶的智能卡或便攜式計算設(shè)備,并使用它來有效地竊取移動用戶的數(shù)字證書。另一方面,便攜式計算設(shè)備可能被連接到開放系統(tǒng),例如因特網(wǎng),并且正如口令那樣,存儲生物特征量度的文件可能易遭受由于用戶對安全性或惡意入侵者的疏忽而造成的危害。
發(fā)明內(nèi)容
基于前述內(nèi)容,需要提供這樣一種密碼系統(tǒng),其安全性是獨立于用戶的,同時仍支持移動用戶。
因此,本發(fā)明的一個方面是提供一種方法,用于幾乎保護任何類型的數(shù)據(jù)免遭未經(jīng)授權(quán)的訪問或使用。該方法包括將要保護的數(shù)據(jù)解析、分割或分離成兩個或更多個部分的一個或多個步驟。該方法還包括對要保護的數(shù)據(jù)進行加密。數(shù)據(jù)加密可以在數(shù)據(jù)的第一解析、分割或分離之前或之后執(zhí)行。此外,可以為一部分或多部分?jǐn)?shù)據(jù)重復(fù)加密步驟。類似地,可以為一部分或多部分?jǐn)?shù)據(jù)重復(fù)解析、分割或分離步驟。該方法還任選地包括將已加密的解析、分割或分離后的數(shù)據(jù)存儲在一個位置或多個位置中。此方法還任選地包括將受保護數(shù)據(jù)重新構(gòu)成或重新組裝成其原始形式,以供授權(quán)訪問或使用。此方法可被結(jié)合到任何能夠執(zhí)行該方法的所需步驟的計算機、服務(wù)器、引擎等的操作之中。
本發(fā)明的另一個方面提供了一種系統(tǒng),用于幾乎保護任何類型的數(shù)據(jù)免遭未經(jīng)授權(quán)的訪問或使用。此系統(tǒng)包括數(shù)據(jù)分割模塊、密碼處理模塊,并且任選地包括數(shù)據(jù)組合模塊。在一個實施例中,該系統(tǒng)還可包括可存儲安全數(shù)據(jù)的一個或多個數(shù)據(jù)存儲設(shè)施。
因此,本發(fā)明的一個方面是提供一種安全服務(wù)器或信任引擎,其具有以服務(wù)器為中心的鑰匙,或者換言之,將密鑰和用戶認證數(shù)據(jù)存儲在服務(wù)器上。根據(jù)此實施例,用戶訪問信任引擎以便執(zhí)行認證和密碼功能,例如但不限于認證、授權(quán)、數(shù)字簽署和生成、存儲以及證書檢索、加密、類似公證人的或類似委托書的動作等等。
本發(fā)明的另一個方面是提供一種可靠的或受信任的認證過程。此外,在可信的肯定認證之后,可采取多種不同動作,這些動作包括提供密碼技術(shù),到系統(tǒng)或設(shè)備認證和訪問,以允許使用或控制多種電子設(shè)備之一。
本發(fā)明的另一個方面是在密鑰和認證數(shù)據(jù)不被丟失、竊取或危害的環(huán)境中提供密鑰和認證數(shù)據(jù),從而有利地避免了需要不斷重新發(fā)布和管理新鑰匙和認證數(shù)據(jù)。根據(jù)本發(fā)明的另一個方面,信任引擎允許用戶將一個鑰匙對用于多個活動、銷售者和/或認證請求。根據(jù)本發(fā)明的另一個方面,信任引擎至少執(zhí)行密碼處理的一個步驟,例如但不限于服務(wù)器方的加密、認證、或簽署,從而允許客戶端或用戶只擁有最少量的計算資源。
根據(jù)本發(fā)明的另一個方面,信任引擎包括一個或多個倉庫(depository),用于存儲每個密鑰和認證數(shù)據(jù)的多個部分。這些部分是通過數(shù)據(jù)分割過程產(chǎn)生的,該過程阻止了在沒有來自一個倉庫中的多于一個位置或來自多個倉庫的預(yù)定部分的情況下進行重建。根據(jù)另一個實施例,多個倉庫可以是地理上遠程的,以便進行欺詐的雇員或一個倉庫處的其他受到危害的系統(tǒng)將不會提供對用戶的鑰匙或認證數(shù)據(jù)的訪問。
根據(jù)另一個實施例,認證過程有利地允許信任引擎并行處理多個認證活動。根據(jù)另一個實施例,信任引擎可有利地跟蹤失敗訪問嘗試,從而限制惡意入侵者嘗試破壞系統(tǒng)的次數(shù)。
根據(jù)另一個實施例,信任引擎可包括多個實例,其中每個信任引擎可彼此預(yù)測和共享處理負載。根據(jù)另一個實施例,信任引擎可包括冗余模塊,用于輪詢多個認證結(jié)果以確保多于一個系統(tǒng)認證了用戶。
因此,本發(fā)明的一個方面包括一種可以從遠程訪問的安全密碼系統(tǒng),用于存儲任何類型的數(shù)據(jù),其中包括但不限于與多個用戶相關(guān)聯(lián)的多個私用密鑰。密碼系統(tǒng)將多個用戶中的每一個與來自多個私用密鑰的一個或多個不同鑰匙相關(guān)聯(lián),并且在不向用戶發(fā)表多個私鑰密鑰的情況下,利用相關(guān)聯(lián)的一個或多個鑰匙為每個用戶執(zhí)行密碼功能。密碼系統(tǒng)包括具有至少一個服務(wù)器的倉庫系統(tǒng),所述服務(wù)器存儲要保護的數(shù)據(jù),例如多個私用密鑰和多個注冊認證數(shù)據(jù)。每個注冊認證數(shù)據(jù)標(biāo)識多個用戶之一,并且多個用戶中的每一個與來自多個私用密鑰的一個或多個不同鑰匙相關(guān)聯(lián)。密碼系統(tǒng)還可包括認證引擎,其將由多個用戶之一接收到的認證數(shù)據(jù)和與所述多個用戶之一相對應(yīng)的從倉庫系統(tǒng)接收來的注冊認證數(shù)據(jù)相比較,從而產(chǎn)生認證結(jié)果。密碼系統(tǒng)還可包括密碼引擎,在認證結(jié)果指示所述多個用戶之一的正確標(biāo)識的情況下,該引擎利用從倉庫系統(tǒng)接收來的相關(guān)聯(lián)的一個或多個不同鑰匙代表多個用戶之一執(zhí)行密碼功能。密碼還可包括事務(wù)引擎,該引擎被連接以將來自多個用戶的數(shù)據(jù)路由到倉庫服務(wù)器系統(tǒng)、認證引擎和密碼引擎。
本發(fā)明的另一個方面包括安全密碼系統(tǒng),該系統(tǒng)是任選地可從遠程訪問的。密碼系統(tǒng)包括倉庫系統(tǒng),該倉庫系統(tǒng)具有至少一個服務(wù)器,所述服務(wù)器存儲至少一個私鑰和任何其他數(shù)據(jù),例如但不限于與多個注冊認證數(shù)據(jù),其中每個注冊認證數(shù)據(jù)標(biāo)識多個可能的用戶之一。密碼系統(tǒng)還可任選地包括認證引擎,該引擎將由用戶接收到的認證數(shù)據(jù)和與所述用戶相對應(yīng)的從倉庫系統(tǒng)接收來的注冊認證數(shù)據(jù)相比較,從而產(chǎn)生認證結(jié)果。密碼系統(tǒng)還可包括密碼引擎,在認證結(jié)果指示所述用戶的正確標(biāo)識的情況下,該引擎至少利用可能從倉庫系統(tǒng)接收到的所述私鑰來代表所述用戶執(zhí)行密碼功能。密碼還可任選地包括事務(wù)引擎,該引擎被連接以將來自用戶的數(shù)據(jù)路由到其他引擎或系統(tǒng),例如但不限于倉庫服務(wù)器系統(tǒng)、認證引擎和密碼引擎。
本發(fā)明的另一個方面包括一種輔助密碼功能的方法。該方法包括將來自多個用戶的一個用戶與來自多個私用密鑰的一個或多個鑰匙相關(guān)聯(lián),所述多個私用密鑰被存儲在安全位置上,例如安全服務(wù)器上。該方法還包括接收來自用戶的認證數(shù)據(jù),并且將認證數(shù)據(jù)和與用戶相對應(yīng)的認證數(shù)據(jù)相比較,從而驗證用戶的身份。該方法還包括在不向用戶發(fā)表所述一個或多個鑰匙的情況下利用所述一個或多個鑰匙來執(zhí)行密碼功能。
本發(fā)明的另一個方面包括一種認證系統(tǒng),用于通過對用戶的注冊認證數(shù)據(jù)的安全存儲來唯一標(biāo)識用戶。該認證系統(tǒng)包括一個或多個數(shù)據(jù)存儲設(shè)施,其中每個數(shù)據(jù)存儲設(shè)施包括計算機可訪問存儲介質(zhì),所述介質(zhì)存儲至少一部分注冊認證數(shù)據(jù)。該認證系統(tǒng)還包括認證引擎,該引擎與一個或多個數(shù)據(jù)存儲設(shè)施通信。該認證引擎包括數(shù)據(jù)分割模塊,其對注冊認證數(shù)據(jù)進行操作以產(chǎn)生多個部分;數(shù)據(jù)組裝模塊,其處理來自數(shù)據(jù)存儲設(shè)施中的至少一個的那些部分,以組裝注冊認證數(shù)據(jù);以及數(shù)據(jù)比較器模塊,其接收來自用戶的當(dāng)前認證數(shù)據(jù),并且將當(dāng)前認證數(shù)據(jù)與組裝后的注冊認證數(shù)據(jù)相比較,以確定用戶是否已經(jīng)被唯一地標(biāo)識。
本發(fā)明的另一個方面包括一種密碼系統(tǒng)。該密碼系統(tǒng)包括一個或多個數(shù)據(jù)存儲設(shè)施,其中每個數(shù)據(jù)存儲設(shè)施包括計算機可訪問存儲介質(zhì),所述介質(zhì)存儲一個或多個密鑰的至少一個部分。該密碼系統(tǒng)還包括密碼引擎,該引擎與數(shù)據(jù)存儲設(shè)施通信。該密碼引擎還包括數(shù)據(jù)分割模塊,其對密鑰進行操作以產(chǎn)生多個部分;數(shù)據(jù)組裝模塊,其處理來自數(shù)據(jù)存儲設(shè)施中的至少一個的那些部分,以組裝密鑰;以及密碼處理模塊,其接收組裝后的密鑰并利用其執(zhí)行密碼功能。
本發(fā)明的另一個方面包括一種方法,該方法存儲任何類型的數(shù)據(jù),包括但不限于地理上遠程的安全數(shù)據(jù)存儲設(shè)施中的認證數(shù)據(jù)在內(nèi),從而保護數(shù)據(jù)免遭任何個體數(shù)據(jù)存儲設(shè)施的合成。該方法包括在信任引擎處接收數(shù)據(jù),在信任引擎處利用第一準(zhǔn)隨機數(shù)來組合數(shù)據(jù)以形成第一組合值,并且利用第二準(zhǔn)隨機數(shù)來組合數(shù)據(jù)以形成第二組合值。該方法包括利用第二組合值來產(chǎn)生第一準(zhǔn)隨機數(shù)的第一配對,利用第二準(zhǔn)隨機值來產(chǎn)生第一準(zhǔn)隨機值的第二配對,并且將第一配對存儲在第一安全數(shù)據(jù)存儲設(shè)施中。該方法還包括將第二配對存儲在相對于第一安全數(shù)據(jù)存儲設(shè)施遠程的第二安全數(shù)據(jù)存儲設(shè)施中。
本發(fā)明的另一個方面包括一種方法,該方法存儲包括但不限于認證數(shù)據(jù)在內(nèi)的任何類型的數(shù)據(jù),該方法包括接收數(shù)據(jù),利用第一比特集合來組合數(shù)據(jù)以形成第二比特集合,并且利用第三比特集合來組合數(shù)據(jù)以形成第四比特集合。該方法還包括利用第三比特集合來產(chǎn)生第一比特集合的第一配對。該方法還包括利用第四比特集合來產(chǎn)生第一比特集合的第二配對,并且將第一和第二配對之一存儲在第一計算機可訪問存儲介質(zhì)中。該方法還包括將第一和第二配對中的另一個存儲在第二計算機可訪問存儲介質(zhì)中。
本發(fā)明的另一個方面包括一種方法,該方法存儲地理上遠程的安全數(shù)據(jù)存儲設(shè)施中的密碼數(shù)據(jù),從而保護密碼數(shù)據(jù)免遭任何個體數(shù)據(jù)存儲設(shè)施的合成。該方法包括在信任引擎處接收密碼數(shù)據(jù),在信任引擎處利用第一準(zhǔn)隨機數(shù)來組合密碼數(shù)據(jù)以形成第一組合值,并且利用第二準(zhǔn)隨機數(shù)來組合密碼數(shù)據(jù)以形成第二組合值。該方法包括利用第二組合值來產(chǎn)生第一準(zhǔn)隨機數(shù)的第一配對,利用第二準(zhǔn)隨機值來產(chǎn)生第一準(zhǔn)隨機值的第二配對,并且將第一配對存儲在第一安全數(shù)據(jù)存儲設(shè)施中。該方法還包括將第二配對存儲在相對于第一安全數(shù)據(jù)存儲設(shè)施遠程的第二安全數(shù)據(jù)存儲設(shè)施中。
本發(fā)明的另一個方面包括一種存儲密碼數(shù)據(jù)的方法,該方法包括接收密碼數(shù)據(jù)并且利用第一比特集合來組合密碼數(shù)據(jù)以形成第二比特集合。該方法還包括利用第三比特集合來組合密碼數(shù)據(jù)以形成第四比特集合,利用第三比特集合來產(chǎn)生第一比特集合的第一配對,并且利用第四比特集合來產(chǎn)生第一比特集合的第二配對。該方法還包括并且將第一和第二配對之一存儲在第一計算機可訪問存儲介質(zhì)中,并且將第一和第二配對中的另一個存儲在第二計算機可訪問存儲介質(zhì)中。
本發(fā)明的另一個方面包括一種在密碼系統(tǒng)中處理任何類型或形式的敏感數(shù)據(jù)的方法,其中敏感數(shù)據(jù)僅在授權(quán)用戶利用敏感數(shù)據(jù)執(zhí)行動作期間才以可使用形式存在。該方法還包括在軟件模塊中接收來自第一計算機可訪問存儲介質(zhì)的基本上隨機化的或經(jīng)加密的敏感數(shù)據(jù),并且在軟件模塊中接收來自一個或多個其他計算機可訪問存儲介質(zhì)的可能是或可能不是敏感數(shù)據(jù)的基本上隨機化的或經(jīng)加密的數(shù)據(jù)。該方法還包括在軟件模塊中處理基本上隨機化的預(yù)加密的敏感數(shù)據(jù)、和可能是或可能不是敏感數(shù)據(jù)基本上隨機化的或經(jīng)加密的數(shù)據(jù),以便組裝敏感數(shù)據(jù)并且在軟件引擎中利用敏感數(shù)據(jù)來執(zhí)行動作。所述動作包括但不限于認證用戶和執(zhí)行密碼功能中的一種。
本發(fā)明的另一個方面包括安全認證系統(tǒng)。該安全認證系統(tǒng)包括多個認證引擎。每個認證引擎接收被設(shè)計為以某個確定度唯一標(biāo)識用戶的注冊認證數(shù)據(jù)。每個認證引擎接收當(dāng)前認證數(shù)據(jù),以與注冊認證數(shù)據(jù)相比較,并且每個認證引擎確定認證結(jié)果。該安全認證系統(tǒng)還包括冗余系統(tǒng),該冗余系統(tǒng)接收至少兩個認證引擎的認證結(jié)果并確定用戶是否已被唯一標(biāo)識。
以下聯(lián)系附圖更詳細描述本發(fā)明,附圖是用來描述而不是限制本發(fā)明的,其中圖1示出根據(jù)本發(fā)明的一個實施例的某些方面的密碼系統(tǒng)的框圖;圖2示出根據(jù)本發(fā)明的一個實施例的某些方面的圖1的信任(trust)引擎的框圖;圖3示出根據(jù)本發(fā)明的一個實施例的某些方面的圖2的事務(wù)引擎的框圖;圖4示出根據(jù)本發(fā)明的一個實施例的某些方面的圖2的倉庫的框圖;圖5示出根據(jù)本發(fā)明的一個實施例的某些方面的圖2的認證引擎的框圖;圖6示出根據(jù)本發(fā)明的一個實施例的某些方面的圖2的密碼引擎的框7示出根據(jù)本發(fā)明的另一個實施例的某些方面的倉庫系統(tǒng)的框圖;圖8示出根據(jù)本發(fā)明的一個實施例的某些方面的數(shù)據(jù)分割過程的流程圖;
圖9面板A示出根據(jù)本發(fā)明的一個實施例的某些方面的注冊(enrollment)過程的數(shù)據(jù)流;圖9面板B示出根據(jù)本發(fā)明的一個實施例的某些方面的協(xié)同工作過程的流程圖;圖10示出根據(jù)本發(fā)明的一個實施例的某些方面的認證過程的數(shù)據(jù)流;圖11示出根據(jù)本發(fā)明的一個實施例的某些方面的簽署過程的數(shù)據(jù)流;圖12示出根據(jù)本發(fā)明的另一個實施例的某些方面的數(shù)據(jù)流和加密/解密過程;圖13示出根據(jù)本發(fā)明的另一個實施例的某些方面的信任引擎系統(tǒng)的簡化框圖;圖14示出根據(jù)本發(fā)明的另一個實施例的某些方面的信任引擎系統(tǒng)的簡化框圖;圖15示出根據(jù)本發(fā)明的一個實施例的某些方面的圖14的冗余模塊的框圖;圖16示出根據(jù)本發(fā)明的一個方面的用于評估認證的過程;圖17示出根據(jù)圖16所示的本發(fā)明的一個方面的分配值給認證的過程;圖18示出圖17所示的本發(fā)明的一個方面中的用于執(zhí)行信任仲裁的過程;圖19示出根據(jù)本發(fā)明的一個實施例的某些方面的用戶和銷售者之間的示例性事務(wù),其中初始的基于web的接觸導(dǎo)致雙方簽署銷售合約;圖2示出一個示例性用戶系統(tǒng),其具有密碼服務(wù)提供者模塊,該模塊向用戶系統(tǒng)提供安全性功能。
圖21示出用于解析、分割或分離數(shù)據(jù)的過程,其中加密主鑰是與數(shù)據(jù)一起被加密和存儲的。
圖22示出用于解析、分割或分離數(shù)據(jù)的過程,其中加密主鑰是單獨于數(shù)據(jù)被加密和存儲的。
圖23示出用于解析、分割或分離數(shù)據(jù)的中間鑰過程,其中加密主鑰是與數(shù)據(jù)一起被加密和存儲的。
圖24示出用于解析、分割或分離數(shù)據(jù)的中間鑰過程,其中加密主鑰是單獨于數(shù)據(jù)被加密和存儲的。
圖25示出將本發(fā)明的密碼方法和系統(tǒng)用于小工作組。
具體實施例方式
本發(fā)明的一個方面是提供一種密碼系統(tǒng),其中一個或多個安全服務(wù)器或信任引擎存儲密鑰和用戶認證數(shù)據(jù)。用戶通過對信任引擎的網(wǎng)絡(luò)訪問來訪問傳統(tǒng)密碼系統(tǒng)的功能,但是,信任引擎不發(fā)布實際鑰匙和其他認證數(shù)據(jù),因此鑰匙和數(shù)據(jù)保持安全。這種對鑰匙和認證數(shù)據(jù)的以服務(wù)器為中心的存儲提供了獨立于用戶的安全性、便攜性、可用性和直觀性。
因為用戶可以相信或信任密碼系統(tǒng)以執(zhí)行用戶和文檔認證和其他密碼功能,所以多種功能可被結(jié)合到系統(tǒng)中。例如,信任引擎提供者例如可通過以下方式來確保不受協(xié)定拒絕認證協(xié)定參與者,代表參與者以數(shù)字方式簽署協(xié)定,以及存儲由每個參與者以數(shù)字方式簽署的協(xié)定的記錄。此外,密碼系統(tǒng)可監(jiān)控協(xié)定,并且例如基于價格、用戶、銷售者、地理位置、使用地點等等來確定應(yīng)用不同程度的認證。
為了幫助充分理解本發(fā)明,以下詳細說明參考附圖來描述本發(fā)明,附圖中類似的元件始終用類似的標(biāo)號來表示。
圖1示出根據(jù)本發(fā)明的一個實施例的某些方面的密碼系統(tǒng)100的框圖。如圖1所示,密碼系統(tǒng)100包括通過通信鏈路125進行通信的用戶系統(tǒng)105、信任引擎110、證書權(quán)力機構(gòu)115和銷售者系統(tǒng)120。
根據(jù)本發(fā)明的一個實施例,用戶系統(tǒng)105包括傳統(tǒng)通用計算機,該傳統(tǒng)通用計算機具有一個或多個微處理器,例如基于Intel的處理器。此外,用戶系統(tǒng)105包括適當(dāng)?shù)牟僮飨到y(tǒng),例如能夠包括圖形或窗口的操作系統(tǒng),如Windows、Unix、Linux等等。如圖1所示,用戶系統(tǒng)105可包括生物特征量度設(shè)備107。生物特征量度設(shè)備107可有利地捕捉用戶的生物特征量度,并將捕捉到的生物特征量度傳送到信任引擎110。根據(jù)本發(fā)明的一個實施例,生物特征量度設(shè)備可有利地包括具有與以下專利申請中公開的那些類似的屬性和特征的設(shè)備1997年9月5日遞交的題為“RELIEF OBJECTIMAGE GENERATOR(浮凸對象圖像生成器)”的美國專利申請No.08/926,277、2000年4月26日遞交的題為“IMAGING DEVICE FOR A RELIEF OBJECTAND SYSTEM AND METHOD OF USING THE IMAGE DEVICE(用于浮凸對象的圖像設(shè)備以及使用該圖像設(shè)備的系統(tǒng)和方法)”的美國專利No.09/558,634、1999年11月5日遞交的題為“RELIEF OBJECTSENSOR ADAPTOR(浮凸對象傳感器適配器)”的美國專利申請No.09/435,011以及2000年1月5日遞交的題為“PLANAR OPTICALIMAGE SENSOR AND SYSTEM FOR GENERATING ANELECTRONIC IMAGE OF A RELIEF OBJECT FOR FINGERPRINTREADING(用于指紋讀取的平面光學(xué)圖像傳感器和生成浮凸對象的電子圖像的系統(tǒng))”的美國專利申請No.09/477,943,所有這些專利申請都屬于當(dāng)前的受讓人所有,并且在這里通過引用將這些專利申請包含進來。
此外,用戶系統(tǒng)105可通過傳統(tǒng)服務(wù)提供者連接到通信鏈路125,所述服務(wù)提供者例如是撥號、數(shù)字用戶線路(DSL)、電纜調(diào)制解調(diào)器、光纖連接等等。根據(jù)另一個實施例,用戶系統(tǒng)105通過網(wǎng)絡(luò)連接連接到通信鏈路125,所述網(wǎng)絡(luò)連接例如是局域網(wǎng)或廣域網(wǎng)。根據(jù)一個實施例,操作系統(tǒng)包括處理經(jīng)由通信鏈路125傳遞的所有傳入和傳出消息流量的TCP/IP棧。
雖然用戶系統(tǒng)105是參考前述實施例公開的,但是本發(fā)明不限于此。相反,本領(lǐng)域的普通技術(shù)人員將會從此處的公開文本中認識到,用戶系統(tǒng)105的大量備選實施例,其中幾乎包括任何能夠發(fā)送信息到另一個計算機系統(tǒng)或從另一個計算機系統(tǒng)接收信息的計算設(shè)備。例如,用戶系統(tǒng)105可以包括但不限于可以與通信鏈路125交互的計算機工作站、交互式電視機、移動電話、筆記本電腦等、無線通信設(shè)備、智能卡、嵌入式計算設(shè)備等。在這種備選系統(tǒng)中,操作系統(tǒng)很可能會是不同的,并且適應(yīng)于特定設(shè)備。但是,根據(jù)一個實施例,操作系統(tǒng)有利地持續(xù)提供與通信鏈路125建立通信所需的適當(dāng)通信協(xié)議。
圖1示出信任引擎110。根據(jù)一個實施例,信任引擎110包括用于訪問和存儲敏感信息的一個或多個安全服務(wù)器,所述敏感信息可以是任何類型或形式的數(shù)據(jù),例如但不限于文本、音頻、視頻、用戶認證數(shù)據(jù)和公共密鑰和私用密鑰。根據(jù)一個實施例,認證數(shù)據(jù)包括被設(shè)計為唯一標(biāo)識密碼系統(tǒng)100的用戶的數(shù)據(jù)。例如,認證數(shù)據(jù)可包括用戶標(biāo)識號碼、一個或多個生物特征量度以及由信任引擎110或用戶生成的但最初由用戶在注冊時回答的一系列問題和答案。前述問題可包括人口統(tǒng)計數(shù)據(jù),例如出生地點、地址、周年紀(jì)念等等;個人數(shù)據(jù),例如母親未婚時的名字、最愛的冰淇淋等等;或者被設(shè)計為唯一標(biāo)識用戶的其他數(shù)據(jù)。信任引擎110將與當(dāng)前事務(wù)相關(guān)聯(lián)的用戶認證數(shù)據(jù)與較早時(例如注冊期間)提供的認證數(shù)據(jù)相比較。信任引擎110可有利地要求用戶在每次事務(wù)時產(chǎn)生認證數(shù)據(jù),或者,信任引擎110可有利地允許用戶周期性地產(chǎn)生認證數(shù)據(jù),例如在一串事務(wù)開始時或登錄到特定銷售者網(wǎng)站上時。
根據(jù)用戶產(chǎn)生生物特征量度數(shù)據(jù)的實施例,用戶向生物特征量度設(shè)備107提供物理特征,例如但不限于面部掃描、手部掃描、耳部掃描、虹膜掃描、視網(wǎng)膜掃描、血管樣式、DNA、指紋、筆跡或語音。生物特征量度設(shè)備有利地產(chǎn)生該物理特征的電子樣式或生物特征量度。該電子樣式通過用戶系統(tǒng)105被傳送到信任引擎110,以用于注冊或認證目的。
一旦用戶產(chǎn)生適當(dāng)?shù)恼J證數(shù)據(jù)并且信任引擎110確定認證數(shù)據(jù)(當(dāng)前認證數(shù)據(jù))和注冊時提供的認證數(shù)據(jù)(注冊認證數(shù)據(jù))之間的肯定匹配,則信任引擎110就向用戶提供完整的密碼功能。例如,被適當(dāng)認證的用戶可有利地采用信任引擎110來執(zhí)行哈西處理、數(shù)字簽署、加密和解密(常被一起稱為加密)、創(chuàng)建或分布數(shù)字證書等等。但是,在信任引擎110外部將不能獲得密碼功能中使用的私用密鑰,從而確保了密鑰的完好性。
根據(jù)一個實施例,信任引擎110生成和存儲密鑰。根據(jù)另一個實施例,至少一個密鑰與每個用戶相關(guān)聯(lián)。另外,當(dāng)密鑰包括公鑰技術(shù)時,與用戶相關(guān)聯(lián)的每個私鑰在信任引擎110內(nèi)被生成,并且不被從信任引擎110中發(fā)表出去。從而,只要用戶具有對信任引擎110的訪問權(quán)限,用戶就能用他或她的私鑰或公鑰來執(zhí)行密碼功能,這種遠程訪問有利地允許了用戶完全保持移動并且實際上通過任何因特網(wǎng)連接來訪問密碼功能,所述因特網(wǎng)連接例如是蜂窩和衛(wèi)星電話、公用電話亭、筆記本、旅館房間等等。
根據(jù)另一個實施例,信任引擎110利用為信任引擎110生成的鑰匙對執(zhí)行密碼功能。根據(jù)此實施例,信任引擎110首先認證用戶,并且在用戶已正確地產(chǎn)生與注冊認證數(shù)據(jù)匹配的認證數(shù)據(jù)之后,信任引擎110使用其自己的密鑰對來代表被認證的用戶執(zhí)行密碼功能。
本領(lǐng)域的技術(shù)人員將會從此處的公開文本意識到密鑰可以有利地包括對稱鑰匙、公鑰和私鑰中的某些或全部。此外,本領(lǐng)域的技術(shù)人員將會從此處的公開文本中意識到,前述鑰匙可以利用多種可從商業(yè)技術(shù)獲得的算法來實現(xiàn),所述商業(yè)技術(shù)例如是RSA、ELGAMAL等等。
圖1還示出了證書權(quán)力機構(gòu)115。根據(jù)一個實施例,證書權(quán)力機構(gòu)115可以有利地包括發(fā)布數(shù)字證書的受信任的第三方組織或公司,例如VeriSign、Baltimore、Entrust等等。信任引擎110可以有利地通過一個或多個傳統(tǒng)數(shù)字協(xié)議(例如PKCS10)將對于數(shù)字證書的請求發(fā)送到證書權(quán)力機構(gòu)115。作為響應(yīng),證書權(quán)力機構(gòu)115將會以一個或多個不同的協(xié)議(例如PKCS7)來發(fā)布數(shù)字證書。根據(jù)本發(fā)明的一個實施例,信任引擎110請求來自著名的證書權(quán)力機構(gòu)115中的幾個或全部的數(shù)字證書,以便信任引擎110具有對于與任何請求方的證書標(biāo)準(zhǔn)相對應(yīng)的數(shù)字證書的訪問權(quán)限。
根據(jù)另一個實施例,信任引擎110內(nèi)部執(zhí)行證書發(fā)布。在此實施例中,信任引擎110可訪問用于生成證書的證書系統(tǒng)和/或可以在證書被請求時內(nèi)部生成證書,例如在鑰匙生成之時或者在請求之時請求的證書標(biāo)準(zhǔn)中。信任引擎110將在下文中更詳細公開。
圖1還示出了銷售者系統(tǒng)120。根據(jù)一個實施例,銷售者系統(tǒng)120有利地包括Web服務(wù)器。典型Web服務(wù)器一般利用幾種互聯(lián)網(wǎng)標(biāo)記語言或文檔格式標(biāo)準(zhǔn)之一經(jīng)由因特網(wǎng)提供內(nèi)容,所述互聯(lián)網(wǎng)標(biāo)記語言或文檔格式標(biāo)準(zhǔn)例如是超文本標(biāo)記語言(HTML)或可擴展標(biāo)記語言(XML)。Web服務(wù)器接收來自諸如Netscape和Internet Explorer這樣的瀏覽器的請求,然后返回適當(dāng)?shù)碾娮游臋n。多種服務(wù)器或客戶端側(cè)技術(shù)可用于將Web服務(wù)器的效力增大到超出其遞送標(biāo)準(zhǔn)電子文檔的能力。例如,這些技術(shù)包括公共網(wǎng)關(guān)接口(CGI)腳本、安全套接字層(SSL)安全性和活動服務(wù)器頁面(ASP)。銷售者系統(tǒng)120可有利地提供關(guān)于商業(yè)、個人、教育或其他事務(wù)的電子內(nèi)容。
雖然是參考前述實施例來公開銷售者系統(tǒng)120的,但是本發(fā)明不限于此。相反,本領(lǐng)域的普通技術(shù)人員將會從此處的公開文本中意識到銷售者系統(tǒng)120可有利地包括參考用戶系統(tǒng)105描述的設(shè)備中的任何一個或其組合。
圖1還示出了連接用戶系統(tǒng)105、信任引擎110、證書權(quán)力機構(gòu)115和銷售者系統(tǒng)120的通信鏈路125。根據(jù)一個實施例,通信鏈路125優(yōu)選地包括因特網(wǎng)。本公開文本中所使用的因特網(wǎng)是全球計算機網(wǎng)絡(luò)。因特網(wǎng)的結(jié)構(gòu)是本領(lǐng)域的普通技術(shù)人員所公知的,其包括網(wǎng)絡(luò)中樞和從該中樞出來的網(wǎng)絡(luò)分支。這些分支又具有從它們出來的網(wǎng)絡(luò)分支,以此類推。路由器在網(wǎng)絡(luò)層次之間移動信息分組,然后在網(wǎng)絡(luò)間移動信息分組,直到分組到達其目的地的鄰居。從該目的地中,目的地網(wǎng)絡(luò)的主機將信息分組引導(dǎo)到適當(dāng)?shù)慕K端或節(jié)點。在一個有利的實施例中,正如本領(lǐng)域中公知的,因特網(wǎng)路由選擇集線器包括使用傳輸控制協(xié)議/因特網(wǎng)協(xié)議(TCP/IP)的域名系統(tǒng)(DNS)服務(wù)器。路由選擇集線器經(jīng)由高速通信鏈路連接到一個或多個路由選擇集線器。
因特網(wǎng)的一個當(dāng)前流行的部分是萬維網(wǎng)。萬維網(wǎng)包含不同計算機,這些計算機存儲能夠顯示圖形和文本信息的文檔。在萬維網(wǎng)上提供信息的計算機通常被稱為“網(wǎng)站”。網(wǎng)站是由具有相關(guān)聯(lián)的電子頁面的因特網(wǎng)地址來定義的。電子頁面可由統(tǒng)一資源定位符(URL)來標(biāo)識。一般而言,電子頁面是組織文本、圖形圖像、音頻、視頻等等的呈現(xiàn)的文檔。
雖然通信鏈路125是按照其優(yōu)選實施例被公開的,但是本領(lǐng)域的普通技術(shù)人員將會從此處的公開文本中認識到通信鏈路125可包括多種交互式通信鏈路。例如,通信鏈路125可包括交互式電視網(wǎng)絡(luò)、電話網(wǎng)絡(luò)、無線數(shù)據(jù)傳輸系統(tǒng)、雙向電纜系統(tǒng)、定制的私用或公共計算機網(wǎng)絡(luò)、交互式公用電話亭網(wǎng)絡(luò)、自動出納機網(wǎng)絡(luò)、直接鏈路、衛(wèi)星或蜂窩網(wǎng)絡(luò)等等。
圖2示出根據(jù)本發(fā)明的一個實施例的某些方面的圖1的信任引擎110的框圖。如圖2所示,信任引擎110包括事務(wù)引擎205、倉庫210、認證引擎215和密碼引擎220。根據(jù)本發(fā)明的一個實施例,信任引擎110還包括大容量存儲裝置225。正如圖2中進一步示出的,事務(wù)引擎205與倉庫210、認證引擎215和密碼引擎220以及大容量存儲裝置225通信。此外,倉庫210與認證引擎215、密碼引擎220和大容量存儲裝置225通信。另外,認證引擎215與密碼引擎220通信。根據(jù)本發(fā)明的一個實施例,前述通信中的某些或全部可有利地包括將XML文檔傳輸?shù)脚c接收設(shè)備相對應(yīng)的IP地址。如前所述,XML文檔有利地允許設(shè)計者創(chuàng)建它們自己的定制的文檔標(biāo)簽,從而使得能夠定義、傳輸、驗證和解釋應(yīng)用之間以及組織之間的數(shù)據(jù)。另外,前述通信中的某些或全部可包括傳統(tǒng)SSL技術(shù)。
根據(jù)一個實施例,事務(wù)引擎205包括數(shù)據(jù)路由選擇設(shè)備,例如可從Netscape、Microsoft、Apache等獲得的傳統(tǒng)Web服務(wù)器。例如,Web服務(wù)器可有利地接收來自通信鏈路125的傳入數(shù)據(jù)。根據(jù)本發(fā)明的一個實施例,傳入數(shù)據(jù)是尋址到用于信任引擎110的前端安全措施系統(tǒng)的。例如,前端安全措施系統(tǒng)可有利地包括防火墻、搜索已知攻擊簡檔的入侵檢測系統(tǒng)和/或病毒掃描器。在通過前端安全措施系統(tǒng)之后,數(shù)據(jù)被事務(wù)引擎205接收,并被路由到倉庫210、認證引擎215、密碼引擎220和大容量存儲裝置225之一。此外,事務(wù)引擎205監(jiān)控來自認證引擎215和密碼引擎220的傳入數(shù)據(jù),并且通過通信鏈路125將數(shù)據(jù)路由到特定系統(tǒng)。例如,事務(wù)引擎205可有利地將數(shù)據(jù)路由到用戶系統(tǒng)105、證書權(quán)力機構(gòu)115或銷售者系統(tǒng)120。
根據(jù)一個實施例,數(shù)據(jù)是用傳統(tǒng)HTTP路由選擇技術(shù)來路由的,例如用URL或統(tǒng)一資源指示符(URI)來路由。URI與URL類似,但是,URI通常指示文本或動作的源,例如可執(zhí)行文件、腳本等等。因此,根據(jù)一個實施例,用戶系統(tǒng)105、證書權(quán)力機構(gòu)115、銷售者系統(tǒng)120和倉庫210的組件有利地在通信URL或URI內(nèi)包括充足的數(shù)據(jù),以便事務(wù)引擎205在整個密碼系統(tǒng)中適當(dāng)?shù)芈酚蓴?shù)據(jù)。
雖然數(shù)據(jù)路由選擇是參考其優(yōu)選實施例來公開的,但是本領(lǐng)域的技術(shù)人員將會意識到許多可能的數(shù)據(jù)路由選擇解決方案或策略。例如,XML或其他數(shù)據(jù)分組可有利地被解封裝并按照其格式、內(nèi)容等被識別,以使得事務(wù)引擎205可在整個信任引擎110中適當(dāng)?shù)芈酚蓴?shù)據(jù)。此外,本領(lǐng)域的技術(shù)人員將會意識到,例如當(dāng)通信鏈路125包括本地網(wǎng)絡(luò)時,數(shù)據(jù)路由選擇可有利地適應(yīng)于符合特定網(wǎng)絡(luò)系統(tǒng)的數(shù)據(jù)傳送協(xié)議。
根據(jù)本發(fā)明的另一個實施例,事務(wù)引擎205包括傳統(tǒng)SSL加密技術(shù),以使得在特定通信期間,前述系統(tǒng)可向事務(wù)引擎205認證其自身,反之亦然。在整個公開文本中使用的術(shù)語“SSL”是指服務(wù)器被SSL認證但客戶端不一定被SSL認證的通信,術(shù)語“完全SSL”是指客戶端和服務(wù)器被SSL認證的通信。在當(dāng)前的公開文本使用術(shù)語“SSL”時,通信可包括或完全SSL。
在事務(wù)引擎205將數(shù)據(jù)路由到密碼系統(tǒng)100的各種組件時,事務(wù)引擎205可有利地創(chuàng)建審計追蹤(audit trail)。根據(jù)一個實施例,審計追蹤至少包括由事務(wù)引擎205在整個密碼系統(tǒng)100中路由的數(shù)據(jù)的類型和格式的記錄。這種審計數(shù)據(jù)可有利地被存儲在大容量存儲裝置225中。
圖2還示出了倉庫210。根據(jù)一個實施例,倉庫210包括一個或多個數(shù)據(jù)存儲設(shè)施,例如目錄服務(wù)器、數(shù)據(jù)庫服務(wù)器等等。如圖2所示,倉庫210存儲密鑰和注冊認證數(shù)據(jù)。密鑰可有利地對應(yīng)于信任引擎110或?qū)?yīng)于密碼系統(tǒng)100的用戶,例如用戶或銷售者。注冊認證數(shù)據(jù)可有利地包括被設(shè)計為唯一標(biāo)識用戶的數(shù)據(jù),例如用戶ID、密碼、問題的答案、生物特征量度數(shù)據(jù)等等。此注冊認證數(shù)據(jù)可有利地在用戶注冊時或稍后的其他時間被獲取。例如,信任引擎110可包括注冊認證數(shù)據(jù)的周期性或其他的更新或重新發(fā)布。
根據(jù)一個實施例,從事務(wù)引擎205到認證引擎215和密碼引擎220以及從認證引擎215和密碼引擎220到事務(wù)引擎205的通信包括安全通信,例如傳統(tǒng)SSL技術(shù)。此外,如前所述,去往和來自倉庫210的通信的數(shù)據(jù)可利用URL、URI、HTTP或XML文檔來傳送,并且前述中的任何一個有利地在其中嵌入了數(shù)據(jù)請求和格式。
如上所述,倉庫210可有利地包括多個安全數(shù)據(jù)存儲設(shè)施。在這種實施例中,安全數(shù)據(jù)存儲設(shè)施可被配置為使得對一個數(shù)據(jù)存儲設(shè)施中的安全性的危害不會危害到存儲在其中的密鑰或認證數(shù)據(jù)。例如,根據(jù)此實施例,對密鑰和認證數(shù)據(jù)進行數(shù)學(xué)運算,以便使存儲在每個數(shù)據(jù)存儲設(shè)施中的數(shù)據(jù)從統(tǒng)計上而言基本上隨機化。根據(jù)一個實施例,單個數(shù)據(jù)存儲設(shè)施的數(shù)據(jù)的隨機化使得該數(shù)據(jù)無法被解密。從而,對單個數(shù)據(jù)存儲設(shè)施的危害只會產(chǎn)生隨機化的無法解密的數(shù)據(jù),而不會從整體上危害任何密鑰或認證數(shù)據(jù)的安全性。
圖2還示出包括認證引擎215的信任引擎110。根據(jù)一個實施例,認證引擎215包括被配置為將來自事務(wù)引擎205的數(shù)據(jù)與來自倉庫210的數(shù)據(jù)進行比較的數(shù)據(jù)比較器。例如,在認證期間,用戶將當(dāng)前認證數(shù)據(jù)提供給信任引擎110,以便事務(wù)引擎205接收到當(dāng)前認證數(shù)據(jù)。如前所述,事務(wù)引擎205識別優(yōu)選地采取URL或URI形式的數(shù)據(jù)請求,并且將認證數(shù)據(jù)路由到認證引擎215。此外,在請求時,倉庫210將與用戶相對應(yīng)的注冊認證數(shù)據(jù)轉(zhuǎn)發(fā)到認證引擎215。從而,認證引擎215既有當(dāng)前認證數(shù)據(jù),又有注冊認證數(shù)據(jù),以便比較。
根據(jù)一個實施例,去往認證引擎的通信包括安全通信,例如SSL技術(shù)。另外,可在信任引擎110組件內(nèi)提供安全措施,例如利用公鑰技術(shù)的超級加密(super-encryption)。例如,根據(jù)一個實施例,用戶利用認證引擎215的公鑰加密當(dāng)前認證數(shù)據(jù)。此外,倉庫210還利用認證引擎215的公鑰加密注冊認證數(shù)據(jù)。通過這種方式,只有認證引擎的私鑰能被用于解密傳輸。
如圖2所示,信任引擎110還包括密碼引擎220。根據(jù)一個實施例,密碼引擎220包括密碼處理模塊,該模塊被配置為有利地提供傳統(tǒng)密碼功能,例如公鑰基礎(chǔ)設(shè)施(PKI)功能。例如,密碼引擎220可有利地為密碼系統(tǒng)100的用戶發(fā)布公鑰和私鑰。通過這種方式,密鑰在密碼引擎220處被生成,并被轉(zhuǎn)發(fā)到倉庫210,以使得至少私用密鑰在信任引擎110外不可用。根據(jù)另一個實施例,密碼引擎220至少對私用密密鑰數(shù)據(jù)進行隨機化和分割,從而只存儲經(jīng)隨機化的分割后數(shù)據(jù)。與注冊認證數(shù)據(jù)的分割類似,分割過程確保存儲的鑰匙在密碼引擎220外部不可用。根據(jù)另一個實施例,密碼引擎的功能可以與認證引擎215相結(jié)合,并由認證引擎215來執(zhí)行。
根據(jù)一個實施例,去往和來自密碼引擎的通信包括安全通信,例如SSL技術(shù)。此外,有利地采用了XML文檔以傳送數(shù)據(jù)和/或做出密碼功能請求。
圖2還示出了具有大容量存儲裝置225的信任引擎110。如前所述,事務(wù)引擎205保存與審計追蹤相對應(yīng)的數(shù)據(jù),并將這種數(shù)據(jù)存儲在大容量存儲裝置225中。類似地,根據(jù)本發(fā)明的一個實施例,倉庫210保存與審計追蹤相對應(yīng)的數(shù)據(jù),并將這種數(shù)據(jù)存儲在大容量存儲裝置225中。倉庫審計追蹤數(shù)據(jù)與事務(wù)引擎205的審計追蹤數(shù)據(jù)的相同之處在于該審計追蹤數(shù)據(jù)包括倉庫210接收到的請求及其響應(yīng)的記錄。此外,大容量存儲裝置225可用于存儲其中包含了用戶公鑰的數(shù)字證書。
雖然信任引擎110是參考其優(yōu)選和備選實施例來公開的,但是本發(fā)明不想要限于此。相反,本領(lǐng)域的技術(shù)人員將會在此處的公開文本中意識到信任引擎110的多種備選方案。例如,信任引擎110可有利地只執(zhí)行認證,或者只執(zhí)行密碼功能中的某些或全部,例如數(shù)據(jù)加密和解密。根據(jù)這種實施例,認證引擎215和密碼引擎220之一可有利地被去除,從而產(chǎn)生信任引擎110的更直觀的設(shè)計。此外,密碼引擎220還可與證書權(quán)力機構(gòu)通信,以便證書權(quán)力機構(gòu)被包含在信任引擎110內(nèi)。根據(jù)另一個實施例,信任引擎110可有利地執(zhí)行認證和一個或多個密碼功能,例如數(shù)字簽署。
圖3示出根據(jù)本發(fā)明的一個實施例的某些方面的圖2的事務(wù)引擎205的框圖。根據(jù)此實施例,事務(wù)引擎205包括具有處理線程和監(jiān)聽線程的操作系統(tǒng)305。操作系統(tǒng)305可有利地與在傳統(tǒng)高容量服務(wù)器中找到的那些類似,所述服務(wù)器例如是可從Apache獲得的Web服務(wù)器。監(jiān)聽線程監(jiān)控來自通信鏈路125、認證引擎215和密碼引擎220之一的傳入通信以便獲得傳入數(shù)據(jù)流。處理線程識別傳入數(shù)據(jù)流的特定數(shù)據(jù)結(jié)構(gòu),例如前述數(shù)據(jù)結(jié)構(gòu),從而將傳入數(shù)據(jù)路由到通信鏈路125、倉庫210、認證引擎215、密碼引擎220或大容量存儲裝置225之一。如圖3所示,傳入和傳出數(shù)據(jù)可以有利地例如通過SSL技術(shù)而被保護。
圖4示出根據(jù)本發(fā)明的一個實施例的某些方面的圖2的倉庫210的框圖。根據(jù)此實施例,倉庫210包括一個或多個輕型目錄訪問協(xié)議(LDAP)服務(wù)器。LDAP目錄服務(wù)器可從諸如Netscape、ISO等等的多種制造商獲得。圖4還示出目錄服務(wù)器優(yōu)選地存儲與密鑰相對應(yīng)的數(shù)據(jù)405和與注冊認證數(shù)據(jù)相對應(yīng)的數(shù)據(jù)410。根據(jù)一個實施例,倉庫210包括唯一用戶ID的單個邏輯存儲器結(jié)構(gòu)索引認證數(shù)據(jù)和密密鑰數(shù)據(jù)。單個邏輯存儲器結(jié)構(gòu)優(yōu)選地包括用于確保存儲在其中的數(shù)據(jù)的高度可信度或安全性的機制。例如,倉庫210的物理位置可有利地包括多種傳統(tǒng)安全性措施,例如有限雇員訪問、現(xiàn)代監(jiān)視系統(tǒng)等等。此外,或者作為替代,物理安全措施、計算機系統(tǒng)或服務(wù)器可有利地包括用于保護存儲的數(shù)據(jù)的軟件解決方案。例如,倉庫210可有利地創(chuàng)建和存儲與所采取的動作的審計追蹤相對應(yīng)的數(shù)據(jù)415。此外,傳入和傳出通信可有利地被用耦合到傳統(tǒng)SSL技術(shù)的公鑰加密來加密。
根據(jù)另一個實施例,倉庫210可包括不同的并且物理上相分離的數(shù)據(jù)存儲設(shè)施,正如以下參考圖7進一步公開的。
圖5示出根據(jù)本發(fā)明的一個實施例的某些方面的圖2的認證引擎215的框圖。與圖3的事務(wù)引擎205類似,認證引擎215包括至少具有傳統(tǒng)Web服務(wù)器的經(jīng)修改版本的監(jiān)聽和處理線程的操作系統(tǒng)505,所述服務(wù)器例如是可從Apache獲得的Web服務(wù)器。如圖5所示,認證引擎215包括對至少一個私鑰510的訪問權(quán)限。私鑰510可有利地被用于例如對來自事務(wù)引擎205或倉庫210的數(shù)據(jù)進行解密,這些數(shù)據(jù)是用認證引擎215的相應(yīng)的公鑰來加密的。
圖5還示出包括比較器515、數(shù)據(jù)分割模塊520和數(shù)據(jù)組裝模塊525的認證引擎215。根據(jù)本發(fā)明的優(yōu)選實施例,比較器515包括能夠?qū)εc前述生物特征量度認證數(shù)據(jù)相關(guān)的可能的復(fù)雜樣式進行比較的技術(shù)。該技術(shù)可包括用于諸如指紋樣式或嗓音樣式這樣的樣式比較的硬件、軟件或組合解決方案。此外,根據(jù)一個實施例,認證引擎215的比較器515可有利地比較文檔的傳統(tǒng)哈西碼,以便給出比較結(jié)果。根據(jù)本發(fā)明的一個實施例,比較器515包括將探試(heuristic)530應(yīng)用到比較。探試530可有利地針對處理認證嘗試周圍的環(huán)境,例如時間、IP地址或子網(wǎng)掩碼、購買簡檔、電子郵件地址、處理器序列號或ID等等。
此外,生物特征量度數(shù)據(jù)比較的性質(zhì)將會導(dǎo)致從當(dāng)前生物特征量度認證數(shù)據(jù)與注冊數(shù)據(jù)的匹配中產(chǎn)生不同程度的信心。例如,與返回肯定或否定匹配的傳統(tǒng)口令不同,指紋可以被確定為部分匹配,例如90%匹配、75%匹配或10%匹配,而不僅是正確或不正確。其他的諸如聲印分析或面部識別這樣的生物特征量度識別器可共享此概率認證的屬性,而不是絕對認證。
當(dāng)利用這種概率認證進行工作時,或在認證被視為不夠絕對可靠的其他情形下,需要應(yīng)用探試530來確定對所提供的認證的信心級別是否足夠高到認證正在進行的事務(wù)。
有時候可能是這種情況,即所討論的事務(wù)是相對低價值的事務(wù),此時被認證到較低的信心級別是可接受的。這可包括有較低的美元值與其相關(guān)聯(lián)的事務(wù)(例如$10的購買)或風(fēng)險低的事務(wù)(例如準(zhǔn)許進入只限成員的網(wǎng)站)。
相反,對于認證其他事務(wù),在允許事務(wù)繼續(xù)下去之前,可能需要要求對認證的高度信心。這種事務(wù)可包括較高美元值的事務(wù)(例如簽署數(shù)百萬美元的供應(yīng)合同)或者如果發(fā)生不適當(dāng)?shù)恼J證則具有高風(fēng)險的事務(wù)(例如遠程登錄到政府計算機上)。
正如下文所述,結(jié)合信心級別和事務(wù)值使用探試530可允許比較器提供動態(tài)的對上下文敏感的認證系統(tǒng)。
根據(jù)本發(fā)明的另一個實施例,比較器515可有利地跟蹤特定事務(wù)的認證嘗試。例如,當(dāng)事務(wù)失敗時,信任引擎110可請求用戶重新輸入他或她的當(dāng)前認證數(shù)據(jù)。認證引擎215的比較器515可有利地采用嘗試限制器535來限制認證嘗試的數(shù)據(jù),從而阻止強力嘗試模仿用戶的認證數(shù)據(jù)。根據(jù)一個實施例,嘗試限制器535包括監(jiān)控事務(wù)的重復(fù)認證嘗試并例如將給定事務(wù)的認證嘗試限制到3的軟件模塊。從而,例如,嘗試限制器535將會把用于模仿個人的認證數(shù)據(jù)的自動嘗試限制到只是三次“猜測”。在三次失敗之后,嘗試限制器535可有利地拒絕更多的認證嘗試。這種拒絕例如可有利地通過以下方式來實現(xiàn)不論正在傳輸?shù)漠?dāng)前認證數(shù)據(jù)為何,比較器515都返回否定結(jié)果。另一方面事務(wù)引擎205可阻止與其中先前三次嘗試已失敗的事務(wù)有關(guān)的任何更多的認證嘗試。
認證引擎215還包括數(shù)據(jù)分割模塊520和數(shù)據(jù)組裝模塊525。數(shù)據(jù)分割模塊520有利地包括具有以下能力的軟件、硬件或組合模塊對各種數(shù)據(jù)進行數(shù)學(xué)運算,以便基本上將數(shù)據(jù)隨機化并割成多個部分。根據(jù)一個實施例,無法從單個部分重新創(chuàng)建原始數(shù)據(jù)。數(shù)據(jù)組裝模塊525有利地包括被配置為進行以下操作的軟件、硬件或組合模塊對前述基本上經(jīng)隨機化的部分進行數(shù)學(xué)運算,以便其組合提供原始的解碼后的數(shù)據(jù)。根據(jù)一個實施例,認證引擎215采用數(shù)據(jù)分割模塊520來將注冊認證數(shù)據(jù)隨機化并將其分割成多個部分,并采用數(shù)據(jù)組裝模塊525來將這些部分重新組裝回可使用的注冊認證數(shù)據(jù)。
圖6示出根據(jù)本發(fā)明的一個實施例的某些方面的圖2的密碼引擎220的框圖。與圖3的205類似,密碼引擎220包括至少具有傳統(tǒng)Web服務(wù)器的經(jīng)修改版本的監(jiān)聽和處理線程的操作系統(tǒng)605,所述服務(wù)器例如是可從Apache獲得的Web服務(wù)器。如圖6所示,密碼引擎220包括與圖5中的那些功能類似的數(shù)據(jù)分割模塊610和數(shù)據(jù)組裝模塊620。但是,根據(jù)一個實施例,數(shù)據(jù)分割模塊610和數(shù)據(jù)組裝模塊620處理密鑰數(shù)據(jù),而不是前述的注冊認證數(shù)據(jù)。雖然,本領(lǐng)域的技術(shù)人員將會從此處的公開文本意識到,數(shù)據(jù)分割模塊610和數(shù)據(jù)組裝模塊620可以與認證引擎215的那些相組合。
密碼引擎220還包括密碼處理模塊625,該模塊被配置為用于執(zhí)行多種密碼功能中的某些或全部。根據(jù)一個實施例,密碼處理模塊625可以包括軟件模塊或程序、硬件、或兩者。根據(jù)另一個實施例,密碼處理模塊625可執(zhí)行數(shù)據(jù)比較、數(shù)據(jù)解析、數(shù)據(jù)分割、數(shù)據(jù)分離、數(shù)據(jù)散列、數(shù)據(jù)加密或解密、數(shù)字簽名驗證或創(chuàng)建、數(shù)據(jù)證書生成、存儲或請求、密鑰生成等等。此外,本領(lǐng)域的技術(shù)人員將會從此處的公開文本中意識到,密碼處理模塊625可有利地包括公鑰基礎(chǔ)設(shè)施,例如良好穩(wěn)私(Pretty Good Privacy,PGP),基于RSA的公鑰系統(tǒng)或者多種備選鑰匙管理系統(tǒng)。此外,密碼處理模塊625可執(zhí)行公鑰加密、對稱鑰匙加密或兩者。除了前述以外,密碼處理模塊625可包括一個或多個計算機程序或模塊、硬件、或兩者,用于實現(xiàn)無縫透明的協(xié)同工作功能。
本領(lǐng)域的技術(shù)人員將會從此處的公開文本中意識到密碼功能可包括大量或多種通常與密鑰管理系統(tǒng)相關(guān)的功能。
圖7示出根據(jù)本發(fā)明的一個實施例的某些方面的倉庫系統(tǒng)700的簡化框圖。如圖7所示,倉庫系統(tǒng)700有利地包括多個數(shù)據(jù)存儲設(shè)施,例如數(shù)據(jù)存儲設(shè)施D1、D2、D3和D4。但是,本領(lǐng)域的普通技術(shù)人員易于理解,倉庫系統(tǒng)可以只具有一個數(shù)據(jù)存儲設(shè)施。根據(jù)本發(fā)明的一個實施例,數(shù)據(jù)存儲設(shè)施D1至D4中的每一個可有利地包括參考圖4的倉庫210公開的元件中的某些或全部。與倉庫210類似,數(shù)據(jù)存儲設(shè)施D1至D4優(yōu)選地通過傳統(tǒng)SSL與事務(wù)引擎205、認證引擎215和密碼引擎220通信。通信鏈路例如傳送XML文檔。來自事務(wù)引擎205的通信可有利地包括對數(shù)據(jù)的請求,其中請求被有利地廣播到每個數(shù)據(jù)存儲設(shè)施D1至D4的IP地址。另一方面,事務(wù)引擎205可基于許多標(biāo)準(zhǔn)將請求廣播到特定數(shù)據(jù)存儲設(shè)施,所述標(biāo)準(zhǔn)例如是響應(yīng)時間、服務(wù)器負載、維護時間安排等等。
響應(yīng)于來自事務(wù)引擎205的對數(shù)據(jù)的請求,倉庫系統(tǒng)700有利地將存儲的數(shù)據(jù)轉(zhuǎn)發(fā)到認證引擎215和密碼引擎220。各自的數(shù)據(jù)組裝模塊接收被轉(zhuǎn)發(fā)的數(shù)據(jù)并將數(shù)據(jù)組裝成可使用的格式。另一方面,從認證引擎215和密碼引擎220到數(shù)據(jù)存儲設(shè)施D1至D4的通信可包括對要存儲的敏感數(shù)據(jù)的傳輸。例如,根據(jù)一個實施例,認證引擎215和密碼引擎220可有利地采用其各自的數(shù)據(jù)分割模塊來將敏感數(shù)據(jù)劃分成不可解密的多個部分,然后將敏感數(shù)據(jù)的一個或多個不可解密的部分發(fā)送到特定的數(shù)據(jù)存儲設(shè)施。
根據(jù)一個實施例,每個數(shù)據(jù)存儲設(shè)施D1至D4包括單獨且獨立的存儲系統(tǒng),例如目錄服務(wù)器。根據(jù)本發(fā)明的一個實施例,倉庫系統(tǒng)700包括多個地理上相分離的獨立數(shù)據(jù)存儲系統(tǒng)。通過將敏感數(shù)據(jù)分布到不同且獨立的存儲設(shè)施D1至D4(其中的某些或全部可能有利地從地理上而言是分離的),倉庫系統(tǒng)700提供了冗余性以及額外的安全措施。例如,根據(jù)一個實施例,要解密和重新組裝敏感數(shù)據(jù),只需要來自多個數(shù)據(jù)存儲設(shè)施D1至D4中的兩個的數(shù)據(jù)。從而,四個數(shù)據(jù)存儲設(shè)施D1至D4中可以有兩個由于維護、系統(tǒng)失敗、斷電等等而無法工作,而不會影響信任引擎110的功能。此外,根據(jù)一個實施例,因為存儲在每個數(shù)據(jù)存儲設(shè)施中的數(shù)據(jù)已隨機化并且是不可解密的,因此對任何單個數(shù)據(jù)存儲設(shè)施的危害都不一定會危害到敏感數(shù)據(jù)。此外,在數(shù)據(jù)存儲設(shè)施從地理上相分離的實施例中,對于多個地理上遠程的設(shè)施的危害變得越來越困難。實際上,即使是進行欺詐的雇員要想破壞所需的多個獨立的地理上遠程的數(shù)據(jù)存儲設(shè)施,也會受到巨大挑戰(zhàn)。
雖然倉庫系統(tǒng)700是參考其優(yōu)選和備選實施例來公開的,但是本發(fā)明不想要限于此。相反,本領(lǐng)域的技術(shù)人員將會從此處的公開文本中意識到倉庫系統(tǒng)700的多種備選方案。例如,倉庫系統(tǒng)700可包括一個、兩個或更多個數(shù)據(jù)存儲設(shè)施。此外,可以對敏感數(shù)據(jù)進行數(shù)學(xué)運算,以便要重新組裝和解密敏感數(shù)據(jù)需要來自兩個或更多個數(shù)據(jù)存儲設(shè)施的部分。
如前所述,認證引擎215和密碼引擎220各自分別包括數(shù)據(jù)分割模塊520和610,用于分割任何類型或形式的敏感數(shù)據(jù),例如文本、音頻、視頻、認證數(shù)據(jù)和密鑰數(shù)據(jù)。圖8示出根據(jù)本發(fā)明的一個實施例的某些方面的由數(shù)據(jù)分割模塊執(zhí)行的數(shù)據(jù)分割過程800的流程圖。如圖8所示,數(shù)據(jù)分割過程800開始于步驟805處,此時敏感數(shù)據(jù)“S”被認證引擎215或密碼引擎220的數(shù)據(jù)分割模塊所接收。優(yōu)選地,在步驟810中,數(shù)據(jù)分割模塊隨后生成基本上隨機的數(shù)字、值或串或比特集合,“A”。例如,隨機數(shù)A可以是用本領(lǐng)域的普通技術(shù)人員可獲得的用于產(chǎn)生適用于密碼應(yīng)用的高質(zhì)量隨機數(shù)的多種不同的傳統(tǒng)技術(shù)來生成的。此外,根據(jù)一個實施例,隨機數(shù)A包括可以是任何合適的長度的比特長度,例如短于、長于或等于敏感數(shù)據(jù)S的比特長度。
此外,在步驟820中,數(shù)據(jù)分割過程800生成另一個統(tǒng)計上隨機的數(shù)字“C”。根據(jù)優(yōu)選實施例,統(tǒng)計上隨機的數(shù)字A和C的生成有利地是并行完成的。然后數(shù)據(jù)分割模塊將數(shù)字A和C與敏感數(shù)據(jù)S相組合,以便生成新的數(shù)字“B”和“D”。例如,數(shù)B可以包括A XOR S的二進制組合,數(shù)字D可包括C XOR S的二進制組合。XOR函數(shù)或“異或”函數(shù)是本領(lǐng)域的普通技術(shù)人員所公知的。前述組合優(yōu)選地分別發(fā)生在步驟825和830中,并且根據(jù)一個實施例,前述組合也是并行發(fā)生的。然后800前進到步驟835,在這里隨機數(shù)A和C以及數(shù)字B和D被配對,以便沒有哪一配對本身包含足以來重新組織和解密原始敏感數(shù)據(jù)S的數(shù)據(jù)。例如,可按如下方式對數(shù)字配對AC、AD、BC和BD。根據(jù)一個實施例,前述配對中的每一個被分布到圖7的倉庫D1至D4之一。根據(jù)另一個實施例,前述配對中的每一個被隨機分布到倉庫D1至D4之一。例如,在第一數(shù)據(jù)分割過程800期間,可通過對D2的IP地址的隨機選擇而將配對AC發(fā)送到倉庫D2。然后,在第二數(shù)據(jù)分割過程800期間,可通過對D4的IP地址的隨機選擇將配對AC發(fā)送到倉庫D4。此外,這些配對可以都被存儲在一個倉庫上,并且可以被存儲在所述倉庫的相分離的位置中。
基于前述,數(shù)據(jù)分割過程800有利地將敏感數(shù)據(jù)的多個部分放置在四個數(shù)據(jù)存儲設(shè)施D1至D4中的每一個中,以使得沒有一個數(shù)據(jù)存儲設(shè)施D1至D4包括足以重新創(chuàng)建原始敏感數(shù)據(jù)S的加密數(shù)據(jù)。如前所述,這種將數(shù)據(jù)隨機化成多個單獨不可用的加密部分增大了安全性,并且即使數(shù)據(jù)存儲設(shè)施D1至D4之一受到危害也保持了數(shù)據(jù)的可信度。
雖然數(shù)據(jù)分割過程800是參考其優(yōu)選實施例來公開的,但是本發(fā)明不想要限于此。相反,本領(lǐng)域的技術(shù)人員將會從此處的公開文本中意識到數(shù)據(jù)分割過程800的許多備選方案。例如,數(shù)據(jù)分割過程可有利地將數(shù)據(jù)分割成兩個數(shù)字,例如隨機數(shù)A和隨機數(shù)B,并且通過兩個數(shù)據(jù)存儲設(shè)施隨機分布A和B。此外,數(shù)據(jù)分割過程800可有利地通過生成更多隨機數(shù)將數(shù)據(jù)分割在多個數(shù)據(jù)存儲設(shè)施間。數(shù)據(jù)可被分割成任何所需的、所選擇的、預(yù)定的或隨機分配的大小的單元,包括但不限于一個比特、多個比特、字節(jié)、千字節(jié)、兆字節(jié)或更多,或這些大小的任何組合或序列。此外,改變產(chǎn)生自分割過程的數(shù)據(jù)單元的大小將會使數(shù)據(jù)更難以恢復(fù)到可使用形式,從而增大敏感數(shù)據(jù)的安全性。本領(lǐng)域的普通技術(shù)人員易于認識到,分割后的數(shù)據(jù)單元大小可以是多種數(shù)據(jù)單元大小或大小樣式或大小組合。例如,數(shù)據(jù)單元大小可被選擇或預(yù)定為是全都是相同大小、具有不同大小的固定集合、大小組合或隨機生成大小。類似地,可根據(jù)每份數(shù)據(jù)單元固定或預(yù)定數(shù)據(jù)單元大小、數(shù)據(jù)單元大小的樣式或組合,或隨機生成的一個或多個大小,來將數(shù)據(jù)單元分布到一份或多份中。
如前所述,為了重新創(chuàng)建敏感數(shù)據(jù)S,數(shù)據(jù)部分需要被解隨機化并重新組織。此過程可有利地發(fā)生在認證引擎215和密碼引擎220的數(shù)據(jù)組裝模塊525和620中。數(shù)據(jù)組裝模塊,例如數(shù)據(jù)組裝模塊525,接收來自數(shù)據(jù)存儲設(shè)施D1至D4的數(shù)據(jù)部分,并將數(shù)據(jù)重新組裝成可使用的形式。例如,根據(jù)數(shù)據(jù)分割模塊520采取圖8的數(shù)據(jù)分割過程800的一個實施例,數(shù)據(jù)組裝模塊525使用來自數(shù)據(jù)存儲設(shè)施D1至D4中的至少兩個的數(shù)據(jù)部分,以重新創(chuàng)建敏感數(shù)據(jù)S。例如,配對AC、AD、BC和BD被分布,以使得任何兩個都提供A和B或C和D之一。注意到S=A XOR B或S=C XOR D指示當(dāng)數(shù)據(jù)組裝模塊接收A和B或C和D之一時,數(shù)據(jù)組裝模塊525可有利地重新組裝敏感數(shù)據(jù)S。從而數(shù)據(jù)組裝模塊525例如可在其至少接收到來自數(shù)據(jù)存儲設(shè)施D1至D4的前兩個的數(shù)據(jù)部分時組裝敏感數(shù)據(jù)S,以響應(yīng)于信任引擎110做出的組裝請求。
基于上述數(shù)據(jù)分割和組裝過程,敏感數(shù)據(jù)S僅在信任引擎110的有限區(qū)域中以可使用形式存在。例如,當(dāng)敏感數(shù)據(jù)S包括注冊認證數(shù)據(jù)時,可使用的未隨機化的注冊認證數(shù)據(jù)僅能在認證引擎215中獲得。類似地,當(dāng)敏感數(shù)據(jù)S包括私用密密鑰數(shù)據(jù),可使用的未隨機化的私用密密鑰數(shù)據(jù)僅能在密碼引擎220中獲得。
雖然數(shù)據(jù)分割和組裝過程是參考其優(yōu)選實施例來公開的,但是本發(fā)明并不想限于此。相反,本領(lǐng)域的技術(shù)人員將會從此處的公開文本中意識到分割和重新組裝敏感數(shù)據(jù)S的多種備選方案。例如,公鑰加密可用于進一步保護數(shù)據(jù)存儲設(shè)施D1至D4處的數(shù)據(jù)。此外,本領(lǐng)域的普通技術(shù)人員將易于認識到這里所描述的數(shù)據(jù)分割模塊也是本發(fā)明的單獨的不同的實施例,它可被結(jié)合到任何現(xiàn)有計算機系統(tǒng)、軟件套組、數(shù)據(jù)庫或其組合中或本發(fā)明的任何實施例中,或與其相組合,或以其他方式作為其一部分,所述本發(fā)明的實施例例如是這里公開和描述的信任引擎、認證引擎和事務(wù)引擎。
圖9A示出了根據(jù)本發(fā)明的一個實施例的某些方面的注冊過程900的數(shù)據(jù)流。如圖9A所示,注冊過程900開始于步驟905處,此時用戶希望向密碼系統(tǒng)100的信任引擎110注冊。根據(jù)此實施例,用戶系統(tǒng)105有利地包括客戶端側(cè)小應(yīng)用程序(applet),例如基于Java的小應(yīng)用程序,這種applet查詢用戶以要求其輸入注冊數(shù)據(jù),例如人口統(tǒng)計數(shù)據(jù)和注冊認證數(shù)據(jù)。根據(jù)一個實施例,注冊認證數(shù)據(jù)包括用戶ID、口令、生物特征量度等等。根據(jù)一個實施例,在查詢過程期間,客戶端側(cè)小應(yīng)用程序優(yōu)選地與信任引擎110通信以確保所選中的用戶ID是唯一的。當(dāng)用戶ID非唯一時,信任引擎110可有利地建議唯一的用戶ID。客戶端側(cè)小應(yīng)用程序收集注冊數(shù)據(jù),并且例如通過XML文檔將注冊數(shù)據(jù)發(fā)送到信任引擎110,尤其是到事務(wù)引擎205。根據(jù)一個實施例,該傳輸被認證引擎215的公鑰編碼。
根據(jù)一個實施例,在注冊過程900的步驟905期間,用戶執(zhí)行單次注冊。例如,用戶將其自己注冊為特定的人,例如Joe User。當(dāng)JoeUsser需要注冊為Joe User,Mega公司的CEO時,那么根據(jù)此實施例,Joe User再次注冊,接收到第二個唯一用戶ID,并且信任引擎110不將兩個身份相關(guān)聯(lián)。根據(jù)本發(fā)明的另一個實施例,注冊過程900為單個用戶ID提供多個用戶身份。從而,在以上示例中,信任引擎110將會有利地將Joe User的兩個身份相關(guān)聯(lián)。正如本領(lǐng)域的技術(shù)人員將從此處的公開文本中所理解的那樣,用戶可能具有許多身份,例如一家之主Joe User、慈善基金會的成員Joe User等等。即使用戶可能具有多個身份,根據(jù)此實施例,信任引擎110優(yōu)選地也只存儲一組注冊數(shù)據(jù)。此外,用戶可有利地根據(jù)需要添加、編輯/更新或刪除身份。
雖然注冊過程900是參考其優(yōu)選實施例來公開的,但是本發(fā)明不想要限于此。相反,本領(lǐng)域的技術(shù)人員將會從此處的公開文本中意識到,用于收集注冊數(shù)據(jù)尤其是注冊認證數(shù)據(jù)的多種備選方案。例如,小應(yīng)用程序可以是基于公共對象模型(COM)的小應(yīng)用程序等等。
另一方面,注冊過程可包括分級注冊。例如,在最低級別的注冊,用戶可經(jīng)由通信鏈路125注冊而不會產(chǎn)生關(guān)于其身份的文檔記錄。根據(jù)更高級別的注冊,用戶利用諸如數(shù)字公證人這樣的受信任的第三方來注冊。例如,用戶可親自去見受信任的第三方,產(chǎn)生諸如出生證書、駕駛執(zhí)照、軍隊ID之類的證書,并且受信任的第三方例如可有利地在注冊提交中包括其數(shù)字簽名。受信任的第三方可包括實際公證人、諸如郵局或機動車輛部這樣的政府機構(gòu)、大公司中注冊雇員的負責(zé)人力資源的人,等等。本領(lǐng)域的技術(shù)人員將會從此處的公開文本理解到在注冊過程900期間可發(fā)生多種不同級別的注冊。
在接收到注冊認證數(shù)據(jù)后,在步驟915處,事務(wù)引擎205利用傳統(tǒng)完全SSL技術(shù)將注冊認證數(shù)據(jù)轉(zhuǎn)發(fā)到認證引擎215。在步驟920中,認證引擎215利用認證引擎215的私鑰對注冊認證數(shù)據(jù)進行解密。此外,認證引擎215用數(shù)據(jù)分割模塊來對注冊認證數(shù)據(jù)進行數(shù)學(xué)運算,以便將數(shù)據(jù)分割成至少兩個不可獨立解密的隨機化數(shù)字。如前所述,至少兩個數(shù)字可包括統(tǒng)計上隨機的數(shù)字或經(jīng)二進制異或后的數(shù)字。在步驟925中,認證引擎215將經(jīng)隨機化的數(shù)字的每個部分轉(zhuǎn)發(fā)到數(shù)據(jù)存儲設(shè)施D1至D4之一。如前所述,認證引擎215還可有利地就哪些部分被傳送到哪些倉庫進行隨機化。
在注冊過程900期間,用戶常會希望被發(fā)布數(shù)字證書,以便他或她能接收來自密碼系統(tǒng)100之外的他人的加密文檔。如前所述,證書權(quán)力機構(gòu)115一般根據(jù)幾個傳統(tǒng)標(biāo)準(zhǔn)中的一個或多個來發(fā)布數(shù)字證書。一般而言,數(shù)字證書包括所有人都公知的用戶或系統(tǒng)的公鑰。
不論用戶在注冊時還是在其他時間請求數(shù)字證書,請求都經(jīng)由信任引擎110被傳送到認證引擎215。根據(jù)一個實施例,請求包括XML文檔,其具有例如用戶的適當(dāng)名稱。根據(jù)步驟935,認證引擎215將請求傳送到密碼引擎220,以指示大容量存儲裝置225生成密鑰或密鑰對。
在被請求時,在步驟935處,密碼引擎220生成至少一個密鑰。根據(jù)一個實施例,密碼處理模塊625生成鑰匙對,其中一個鑰匙被用作私鑰,一個被用作公鑰。密碼引擎220存儲私鑰,并且根據(jù)一個實施例,還存儲公鑰的復(fù)本。在步驟945中,密碼引擎220將對于數(shù)字證書的請求發(fā)送到事務(wù)引擎205。根據(jù)一個實施例,該請求有利地包括標(biāo)準(zhǔn)化的請求,例如PKCS10,嵌入在例如XML文檔中。對于數(shù)字證書的請求可有利地對應(yīng)于一個或多個證書權(quán)力機構(gòu)以及這些證書權(quán)力機構(gòu)所要求的一個或多個標(biāo)準(zhǔn)格式。
在步驟950中,事務(wù)引擎205將此請求轉(zhuǎn)發(fā)到證書權(quán)力機構(gòu)115,該證書權(quán)力機構(gòu)115在步驟955中返回數(shù)字證書。所返回的數(shù)字證書可有利地采取標(biāo)準(zhǔn)化格式,例如PKCS7,或者采取證書權(quán)力機構(gòu)115中的一個或多個專用格式。在步驟960中,數(shù)字證書被事務(wù)引擎205接收到,并且一個復(fù)本被轉(zhuǎn)發(fā)到用戶,一個復(fù)本被存儲在信任引擎110中。信任引擎110存儲證書的復(fù)本,以便信任引擎110將不會需要依賴于證書權(quán)力機構(gòu)115的可用性。例如,當(dāng)用戶希望發(fā)送數(shù)字證書時,或第三方請求用戶的數(shù)字證書時,對于數(shù)字證書的請求通常被發(fā)送到證書權(quán)力機構(gòu)115。但是,如果證書權(quán)力機構(gòu)115正在進行維護或者遭受了故障或安全性危害,則數(shù)字證書可能不可用。
在發(fā)布密鑰之后的任何時刻,密碼引擎220都可以有利地采用上述數(shù)據(jù)分割過程800,以便密鑰被分割成無法獨立解密的經(jīng)隨機化的數(shù)字。與認證數(shù)據(jù)類似,在步驟965處,密碼引擎220將經(jīng)隨機化的數(shù)字傳送到數(shù)據(jù)存儲設(shè)施D1至D4。
本領(lǐng)域的技術(shù)人員將會從此處的公開文本中意識到用戶可在注冊后的任何時刻請求數(shù)字證書。此外,系統(tǒng)之間的通信可以有利地包括完全SSL或公鑰加密技術(shù)。此外,注冊過程可發(fā)布來自多個證書權(quán)力機構(gòu)的多個數(shù)字證書,所述證書權(quán)力機構(gòu)包括信任引擎110內(nèi)部或外部的一個或多個私有證書權(quán)力機構(gòu)。
正如步驟935至960中所公開的,本發(fā)明的一個實施例包括對最終被存儲在信任引擎110上的證書的請求。因為根據(jù)一個實施例,密碼處理模塊625發(fā)布由信任引擎110所使用的鑰匙,所以每個證書對應(yīng)于一個私鑰。因此,信任引擎110可有利地通過監(jiān)控用戶所擁有的證書或與用戶相關(guān)聯(lián)的證書來提供互相協(xié)作性。例如,當(dāng)密碼引擎220接收到對密碼功能的請求時,密碼處理模塊625可調(diào)查由發(fā)出請求的用戶所擁有的證書,以確定該用戶是否擁有與請求的屬性相匹配的私鑰。當(dāng)存在這種證書時,密碼處理模塊625可使用該證書或與其相關(guān)聯(lián)的公鑰或私鑰,以執(zhí)行被請求的功能。當(dāng)不存在這種證書時,密碼處理模塊625可有利地并且透明地執(zhí)行多個動作,以嘗試補救正確鑰匙的缺乏。例如,圖9B示出協(xié)同工作過程970的流程圖,根據(jù)本發(fā)明的一個實施例的某些方面,該過程公開了前述步驟,以確保密碼處理模塊625利用適當(dāng)?shù)蔫€匙執(zhí)行密碼功能。
如圖9B所示,協(xié)同工作過程970開始于步驟972處,在這里密碼處理模塊625確定所需的證書類型。根據(jù)本發(fā)明的一個實施例,證書類型可以有利地在對于密碼功能的請求中指定,或者在由請求者提供的其他數(shù)據(jù)中指定。根據(jù)另一個實施例,證書類型可以通過請求的數(shù)據(jù)格式來確定。例如,密碼處理模塊625可有利地識別與特定類型相對應(yīng)的請求。
根據(jù)一個實施例,證書類型可包括一個或多個算法標(biāo)準(zhǔn),例如RSA、ELGAMAL等等。此外,證書類型可包括一個或多個鑰匙類型,例如對稱鑰匙、公鑰、諸如256比特鑰匙這樣的強加密鑰匙、不那么安全的鑰匙等等。此外,證書類型可包括更新或替換一個或多個前述算法標(biāo)準(zhǔn)或鑰匙、一個或多個消息或數(shù)據(jù)格式、一個或多個數(shù)據(jù)封裝或編碼方案,例如Base 32或Base 64。證書類型還可包括與一個或多個第三方密碼應(yīng)用或接口、一個或多個通信協(xié)議或一個或多個證書標(biāo)準(zhǔn)或協(xié)議的兼容性。本領(lǐng)域的技術(shù)人員將會從此處的公開文本中意識到在證書類型中可存在其他差異,并且可以根據(jù)這里所公開的實現(xiàn)去往和來自這些差異的轉(zhuǎn)換。
一旦密碼處理模塊625確定了證書類型,則協(xié)同工作過程970前進到步驟974,并確定用戶是否擁有與步驟974中確定的類型相匹配的證書。當(dāng)用戶擁有匹配證書時,例如,信任引擎110能夠例如通過其先前的存儲裝置訪問匹配證書時,密碼處理模塊625知道匹配私鑰也被存儲在信任引擎110內(nèi)。例如,匹配私鑰可被存儲在倉庫210或倉庫系統(tǒng)700內(nèi)。密碼處理模塊625可有利地請求匹配私鑰被從例如倉庫210組裝,然后在步驟976中,使用匹配私鑰來執(zhí)行密碼動作或功能。例如,如前所述,密碼處理模塊625可有利地執(zhí)行散列(hashing)、散列比較、數(shù)據(jù)加密或解密、數(shù)字簽名驗證或創(chuàng)建等等。
當(dāng)用戶不擁有匹配證書時,協(xié)同工作過程970前進到步驟978,在這里密碼處理模塊625確定用戶是否擁有交叉證明的證書。根據(jù)一個實施例,證書權(quán)力機構(gòu)之間的交叉證明發(fā)生在第一證書權(quán)力機構(gòu)確定信任來自第二證書權(quán)力機構(gòu)的證書時。換言之,第一證書權(quán)力機構(gòu)確定來自第二證書權(quán)力機構(gòu)的證書符合某些質(zhì)量標(biāo)準(zhǔn),因此,可以被“證明”為等同于第一證書權(quán)力機構(gòu)自己的證書。當(dāng)證書權(quán)力機構(gòu)發(fā)布例如具有信任級別的證書時,交叉證明變得更加復(fù)雜。例如,第一證書權(quán)力機構(gòu)通??苫谧赃^程的可靠程度為特定證書提供三個信任級別,而第二證書權(quán)力機構(gòu)可提供七個信任級別。交叉證明可有利地跟蹤來自第二證書權(quán)力機構(gòu)的哪些級別和哪些證書可代替來自第一證書權(quán)力機構(gòu)的哪些級別和哪些證書。當(dāng)前述交叉證明是在兩個證明權(quán)力機構(gòu)之間正式且公開地完成的時,彼此之間的證書和級別映射常被稱為“鏈接(chaining)”。
根據(jù)本發(fā)明的另一個實施例,密碼處理模塊625可有利地在證書權(quán)力機構(gòu)所同意的那些之外開發(fā)交叉證明。例如,密碼處理模塊625可訪問第一證書權(quán)力機構(gòu)的證書操作聲明(CPS),或者其他公布的策略聲明,并且例如利用特定信任級別所要求的認證令牌,將第一證書權(quán)力機構(gòu)的證書與另一個證書權(quán)力機構(gòu)的那些相匹配。
當(dāng)在步驟978中,密碼處理模塊625確定用戶擁有交叉證明的證書時,協(xié)同工作過程970前進到步驟976,并利用交叉證明的公鑰、私鑰或兩者來執(zhí)行密碼動作或功能?;蛘?,當(dāng)密碼處理模塊625確定用戶不擁有交叉證明的證書時,協(xié)同工作過程970前進到步驟980,在這里密碼處理模塊625選擇發(fā)布被請求的證書類型或與其交叉證明的證書的證書權(quán)力機構(gòu)。在步驟982中,密碼處理模塊625確定如前所述的用戶注冊認證數(shù)據(jù)是否符合選中的證書權(quán)力機構(gòu)的認證要求。例如,如果用戶通過回答比如人口調(diào)查或其他問題而在網(wǎng)絡(luò)上注冊,則所提供的認證數(shù)據(jù)比起用戶提供生物特征量度數(shù)據(jù)和出現(xiàn)在諸如公證人這樣的第三方面前的用戶來說,提供的信任級別較低。根據(jù)一個實施例,前述認證要求可以有利地的在選中的認證權(quán)力機構(gòu)的CPS中提供。
當(dāng)用戶已向信任引擎110提供了符合選中的證書權(quán)力機構(gòu)的要求的注冊認證數(shù)據(jù)時,協(xié)同工作過程970前進到步驟984,在這里密碼處理模塊625獲取來自選中的證書權(quán)力機構(gòu)的證書。根據(jù)一個實施例,密碼處理模塊625根據(jù)前述注冊過程900的步驟945至960來獲取證書。例如,密碼處理模塊625可有利地采用來自對于密碼引擎220已經(jīng)可用的一個或多個鑰匙對的一個或多個公鑰,來請求來自證書權(quán)力機構(gòu)的證書。根據(jù)另一個實施例,密碼處理模塊625可有利地生成一個或多個新的鑰匙對,并使用與其相對應(yīng)的公鑰來請求來自證書權(quán)力機構(gòu)的證書。
根據(jù)另一個實施例,信任引擎110可有利地包括一個或多個能夠發(fā)布一種或多種證書類型的證書發(fā)布模塊。根據(jù)此實施例,證書發(fā)布模塊可提供前述證書。當(dāng)密碼處理模塊625獲取證書時,協(xié)同工作過程970前進到步驟976,并且利與所獲取的證書相對應(yīng)的公鑰、私鑰或兩者來執(zhí)行密碼動作或功能。
當(dāng)在步驟982中用戶未向信任引擎110提供符合選中的證書權(quán)力機構(gòu)的注冊認證數(shù)據(jù)時,在步驟986中,密碼處理模塊625確定是否存在其他的具有不同認證要求的證書權(quán)力機構(gòu)。例如,密碼處理模塊625可查找具有較低認證要求但仍發(fā)布選中的證書或其交叉證明的證書權(quán)力機構(gòu)。
當(dāng)存在前述具有較低要求的證書權(quán)力機構(gòu)時,協(xié)同工作過程970前進到步驟980,并選擇該證書權(quán)力機構(gòu)?;蛘撸?dāng)不存在這種證書權(quán)力機構(gòu)時,在步驟988中,信任引擎110可請求來自用戶的另外的認證令牌。例如,信任引擎110可請求例如包括生物特征量度數(shù)據(jù)的新的注冊認證數(shù)據(jù)。此外,信任引擎110可請求用戶出現(xiàn)在受信任的第三方之前并提供適當(dāng)?shù)恼J證證書,例如帶著駕駛執(zhí)照、社會安全卡、銀行卡、出生證書、軍隊ID等出現(xiàn)在公證人之前。當(dāng)信任引擎110接收到更新后的認證數(shù)據(jù)時,協(xié)同工作過程970前進到步驟984,并且獲取前述選中的證書。
通過前述協(xié)同工作過程970,密碼處理模塊625有利地提供了不同密碼系統(tǒng)之間的無縫透明翻譯和轉(zhuǎn)換。本領(lǐng)域的技術(shù)人員將會從此處的公開文本中意識到前述可協(xié)同操作的系統(tǒng)的多個優(yōu)點和實現(xiàn)方式。例如,前述協(xié)同工作過程970的步驟986可有利地的包括下文中更詳細論述的信任仲裁的某些方面,其中證書權(quán)力機構(gòu)在某些特殊情況下可接受較低級別的交叉證明。此外,協(xié)同工作過程970可包括確保標(biāo)準(zhǔn)證書撤回之間的協(xié)同工作性及其使用,例如使用證書撤回列表(CRL)、在線證書狀態(tài)協(xié)議(OCSP)等等。
圖10示出根據(jù)本發(fā)明的一個實施例的某些方面的認證過程1000的數(shù)據(jù)流。根據(jù)一個實施例,認證過程1000包括收集來自用戶的當(dāng)前認證數(shù)據(jù),并將其與用戶的注冊認證數(shù)據(jù)相比較。例如,認證過程1000開始于步驟1005處,在這里用戶希望例如與銷售者執(zhí)行事務(wù)。這種事務(wù)例如可包括選擇購買選項、請求訪問銷售者系統(tǒng)120的受限區(qū)域或設(shè)備等等。在步驟1010,銷售者向用戶提供事務(wù)ID和認證請求。事務(wù)ID可有利地包括192比特的量,其中有32比特的時間戳,接著是128比特的隨機量,或者“臨時量(nonce)”,接著是32比特的銷售者特定常數(shù)。這種事務(wù)ID唯一地標(biāo)識事務(wù),以便模仿的事務(wù)可被信任引擎110所拒絕。
認證請求可有利地包括對于特定事務(wù)需要哪個級別的認證。例如,銷售者可在發(fā)布時指定事務(wù)所要求的特定信心級別。如果如下文所論述的,認證無法獲得此信心級別,則在用戶不進行進一步的認證以提高信心級別或者在銷售者和服務(wù)器之間的認證沒有變化的情況下,事務(wù)將不會發(fā)生。這些問題在下文中更完整地論述。
根據(jù)一個實施例,事務(wù)ID和認證請求可有利地在由銷售者側(cè)小應(yīng)用程序或其他軟件程序來生成。此外,事務(wù)ID和認證數(shù)據(jù)的傳輸可包括一個或多個利用傳統(tǒng)SSL技術(shù),例如SSL,或換言之銷售者方認證的SSL所加密的XML文檔。
在用戶系統(tǒng)105接收到事務(wù)ID和認證請求之后,用戶系統(tǒng)105收集來自用戶的當(dāng)前認證數(shù)據(jù),其中可能包括當(dāng)前生物特征量度信息。在步驟1015處,用戶系統(tǒng)105利用認證引擎215的公鑰至少對當(dāng)前認證數(shù)據(jù)“B”和事務(wù)ID進行加密,并將該數(shù)據(jù)傳送到信任引擎110。傳輸有利地包括至少利用傳統(tǒng)SSL技術(shù)進行加密的XML文檔。在步驟1020中,事務(wù)引擎205接收到傳輸,優(yōu)選地識別出URL或URI中的數(shù)據(jù)格式或請求,并且將傳輸轉(zhuǎn)發(fā)到認證引擎215。
在步驟1015和1020期間,銷售者系統(tǒng)120在步驟1025處利用優(yōu)選的完全SSL技術(shù)將事務(wù)ID和認證請求轉(zhuǎn)發(fā)到信任引擎110。此通信還可包括銷售者ID,雖然銷售者標(biāo)識也可通過事務(wù)ID的非隨機部分來傳輸。在步驟1030和1035處,事務(wù)引擎205接收到通信、在審計追蹤中創(chuàng)建記錄,并生成對于從數(shù)據(jù)存儲設(shè)施D1至D4組裝的用戶注冊認證數(shù)據(jù)的請求。在步驟1040處,倉庫系統(tǒng)700將注冊認證數(shù)據(jù)與用戶相對應(yīng)的部分傳送到認證引擎215。在步驟1045處,認證引擎215利用其私鑰對傳輸進行解碼,并將注冊認證數(shù)據(jù)與用戶提供的當(dāng)前認證數(shù)據(jù)相比較。
步驟1045的比較可有利地應(yīng)用前面提到過的并且將在下文中更詳細論述的探試式上下文敏感的認證。例如,如果所接收到的生物特征量度信息沒有完美匹配,則產(chǎn)生較低的信心匹配。在特定實施例中,認證的信心級別與事務(wù)性質(zhì)以及用戶和銷售者的愿望相平衡。這一點也在下文中更詳細的描述。
在步驟1050處,認證引擎215利用步驟1045的比較結(jié)果填充認證請求。根據(jù)本發(fā)明的一個實施例,認證請求被填充為認證過程1000的“是/否”或“真/假”結(jié)果。在步驟1055中,填充后的認證請求被返回銷售者,以便銷售者按照該請求進行操作,從而例如允許用戶完成發(fā)起認證請求的事務(wù)。根據(jù)一個實施例,確認消息被傳遞到用戶。
基于前述,認證過程1000有利地保持敏感數(shù)據(jù)安全,并產(chǎn)生被配置為保持敏感數(shù)據(jù)的完好性的結(jié)果。例如,敏感數(shù)據(jù)只在認證引擎215內(nèi)部被組裝。例如,注冊認證數(shù)據(jù)是不可解密的,直到它在認證引擎215中被數(shù)據(jù)組裝模塊組裝為止,當(dāng)前認證數(shù)據(jù)是不可解密的,直到它被傳統(tǒng)SSL技術(shù)和認證引擎215的私鑰解開為止。此外,發(fā)送到銷售者的認證結(jié)果不包括敏感數(shù)據(jù),用戶可能甚至不知道他或她是否產(chǎn)生了有效認證數(shù)據(jù)。
雖然認證過程1000是參考其優(yōu)選和備選實施例來公開的,但本發(fā)明不想要限于此。相反,本領(lǐng)域的技術(shù)人員將會從此處的公開文本中意識到認證過程1000的多種備選方案。例如,銷售者可有利地由幾乎任何發(fā)出請求的應(yīng)用,甚至是那些和用戶系統(tǒng)105在一起的應(yīng)用所取代。例如,客戶端應(yīng)用,例如Microsoft Word,在解除文檔的鎖定之前,可使用應(yīng)用程序接口(API)或密碼API(CAPI)來請求認證?;蛘?,郵件服務(wù)器、網(wǎng)絡(luò)、蜂窩電話、個人或移動計算設(shè)備、工作站等等都可做出可由認證過程1000填充的認證請求。實際上,在提供了前述的受信任的認證過程1000之后,發(fā)出請求的應(yīng)用或設(shè)備可提供對多種電子或計算機設(shè)備或系統(tǒng)的訪問權(quán)限或使用。
此外,在認證失敗的情況下,認證過程1000可采用多種備選程序。例如,認證失敗可保持相同的事務(wù)ID,并要求用戶重新輸入其當(dāng)前認證數(shù)據(jù)。如前所述,使用相同的事務(wù)ID允許了認證引擎215的比較器監(jiān)控和限制對于特定事務(wù)的認證嘗試的數(shù)目,從而產(chǎn)生更安全的密碼系統(tǒng)100。
此外,認證過程1000可有利地被用來開發(fā)優(yōu)雅的單次登記解決方案,例如解除敏感數(shù)據(jù)存儲庫(sensitive data vault)的鎖定。例如,成功或肯定的認證可向被認證的用戶提供自動訪問幾乎無限數(shù)目的系統(tǒng)和應(yīng)用的任何數(shù)目口令的能力。例如,用戶的認證可向用戶提供與多個在線銷售者、局域網(wǎng)、各種個人計算設(shè)備、因特網(wǎng)服務(wù)提供者、拍賣提供者、投資經(jīng)紀(jì)人等等相關(guān)聯(lián)的口令、登錄、金融證書等的訪問權(quán)限。通過采用敏感數(shù)據(jù)存儲庫,用戶可選擇真正大且隨機的口令,因為它們不再需要通過關(guān)聯(lián)來記憶這些口令。相反,認證過程1000提供對其的訪問。例如,用戶可選擇二十多位長的隨機字母數(shù)字串,而不是與可記憶的數(shù)據(jù)、名稱等相關(guān)聯(lián)的東西。
根據(jù)一個實施例,與特定用戶相關(guān)聯(lián)的敏感數(shù)據(jù)存儲庫可有利地被存儲在倉庫210的數(shù)據(jù)存儲設(shè)施中,或者被分割并存儲在倉庫系統(tǒng)700中。根據(jù)此實施例,在肯定用戶認證之后,信任引擎110向發(fā)出請求的應(yīng)用提供被請求的敏感數(shù)據(jù),例如適當(dāng)?shù)目诹睢8鶕?jù)另一個實施例,信任引擎110可包括用于存儲敏感數(shù)據(jù)存儲庫的單獨系統(tǒng)。例如,信任引擎110可包括獨立的軟件引擎,該軟件引擎實現(xiàn)數(shù)據(jù)存儲庫功能,并且象征性地位于前述信任引擎110的前端安全措施系統(tǒng)的“后面”。根據(jù)此實施例,軟件引擎在軟件在接收到來自信任引擎110的指示肯定用戶認證的信號之后提供被請求的敏感數(shù)據(jù)。
在另一個實施例中,數(shù)據(jù)存儲庫可由第三方系統(tǒng)實現(xiàn)。與軟件引擎實施例類似,第三方系統(tǒng)可有利地在接收到來自信任引擎110的指示肯定用戶認證的信號之后提供被請求的敏感數(shù)據(jù)。根據(jù)另一個實施例,數(shù)據(jù)存儲庫可在用戶系統(tǒng)105上實現(xiàn)。用戶方軟件引擎可有利地在接收到來自信任引擎110的指示肯定用戶認證的信號之后提供前述數(shù)據(jù)。
雖然前述數(shù)據(jù)存儲庫是參考備選實施例來公開的,但是本領(lǐng)域的技術(shù)人員將會從此處的公開文本中意識到它的多種其他實現(xiàn)方式。例如,特定數(shù)據(jù)存儲庫可包括來自前述實施例的某些或全部的方面。此外,前述數(shù)據(jù)存儲庫中的任何一個可在不同時間采用一個或多個認證請求。例如,數(shù)據(jù)存儲庫中的任何一個可以按以下方式來要求認證每隔一個或多個事務(wù)、周期性地、每隔一個或多個會話、在每次訪問一個或多個網(wǎng)頁或網(wǎng)站時、以一個或多個其他指定間隔等等。
圖11示出根據(jù)本發(fā)明的一個實施例的某些方面的簽署過程1100的數(shù)據(jù)流。如圖11所示,簽署過程1100包括與上文中參考圖10所描述的認證過程1000的步驟類似的步驟。根據(jù)本發(fā)明的一個實施例,簽署過程1100首先認證用戶,然后如下文中更詳細論述的,執(zhí)行幾個數(shù)字簽署功能中的一個或多個。根據(jù)另一個實施例,簽署過程1100可有利地存儲與其相關(guān)的數(shù)據(jù),例如消息或文檔的散列等等。此數(shù)據(jù)可有利地被用于審計或任何其他事件中,例如當(dāng)參與方嘗試拒絕事務(wù)時。
如圖11所述,在認證步驟期間,用戶和銷售者可有利地就諸如合約這樣的消息達成協(xié)議。在簽署期間,簽署過程1100有利地確保用戶所簽署的合約與銷售者提供的合約相同。因此,根據(jù)一個實施例,在認證期間,銷售者和用戶在發(fā)送到認證引擎215的數(shù)據(jù)中包括其各自的消息或合約的復(fù)本的散列。通過只采用消息或合約的散列,信任引擎110可有利地存儲少得多的數(shù)據(jù),從而提供了有高效和節(jié)約成本的密碼系統(tǒng)。此外,所存儲的散列可有利地被與所考慮的文檔的散列相比較,以確定所考慮的文檔是否匹配任何一方所簽署的那一個。確定文檔是否與和事務(wù)相關(guān)的那個文檔相同的能力提供了可以用于反對某一方拒絕事務(wù)的主張的附加證據(jù)。
在步驟1103中,認證引擎215組裝注冊認證數(shù)據(jù)并將其與用戶所提供的當(dāng)前認證數(shù)據(jù)相比較。當(dāng)認證引擎215的比較器指示注冊認證數(shù)據(jù)與當(dāng)前認證數(shù)據(jù)匹配時,認證引擎215的比較器還將由銷售者提供的消息的散列與用戶提供的消息的散列相比較。從而,認證引擎215有利地確保了用戶所同意的消息與銷售者所同意的相同。
在步驟1105中,認證引擎215將數(shù)字簽名請求發(fā)送到密碼引擎220。根據(jù)本發(fā)明的一個實施例,該請求包括消息或合同的散列。但是,本領(lǐng)域的技術(shù)人員將會從此處的公開文本中意識到密碼引擎220實際上可接受任何類型的數(shù)據(jù),包括但不限于視頻、音頻、生物特征量度、圖像或文本,來形成所需的數(shù)字簽名。返回步驟1105,數(shù)字簽名請求優(yōu)選地包括通過傳統(tǒng)SSL技術(shù)傳輸?shù)腦ML文檔。
在步驟1110中,認證引擎215將請求發(fā)送到數(shù)據(jù)存儲設(shè)施D1至D4中的每一個,以便數(shù)據(jù)存儲設(shè)施D1至D4中的每一個發(fā)送其與簽署方相對應(yīng)的各自的一個或多個密鑰的部分。根據(jù)另一個實施例,密碼引擎220采用如前所述的協(xié)同工作過程970的步驟中的某些或全部,以便密碼引擎220首先確定從倉庫210或倉庫系統(tǒng)700請求的用于簽署方的一個或多個適當(dāng)?shù)蔫€匙,并采用動作來提供適當(dāng)?shù)钠ヅ滂€匙。根據(jù)另一個實施例,認證引擎215或密碼引擎220可有利地請求與簽署方相關(guān)聯(lián)的并且存儲在倉庫210或倉庫系統(tǒng)700中的一個或多個鑰匙。
根據(jù)一個實施例,簽署方包括用戶和銷售者之一或兩者。在這種情況下,認證引擎215有利地請求與用戶和/或銷售者相對應(yīng)的密鑰。根據(jù)另一個實施例,簽署方包括信任引擎110。在此實施例中,信任引擎110證明認證過程1000適當(dāng)?shù)恼J證了用戶、銷售者或兩者。因此,認證引擎215請求信任引擎110的密鑰,例如屬于密碼引擎220的鑰匙,以便執(zhí)行數(shù)字簽名。根據(jù)另一個實施例,信任引擎110執(zhí)行數(shù)字式的類似公證人功能。在此實施例中,簽署方包括用戶、銷售者或兩者,以及信任引擎110。從而,信任引擎110提供用戶和/或銷售者的數(shù)字簽名,然后用其自己的數(shù)字簽名指示用戶和/或銷售者已被適當(dāng)?shù)卣J證。在此實施例中,認證引擎215可有利地請求對與用戶、銷售者或兩者相對應(yīng)的密鑰的組裝。根據(jù)另一個實施例,認證引擎215可有利地請求與信任引擎110相對應(yīng)的密鑰的組裝。
根據(jù)另一個實施例,信任引擎110執(zhí)行類似委托書的功能。例如,信任引擎110可代表第三方以數(shù)字方式簽署消息。在這種情況下,認證引擎215請求與第三方相關(guān)聯(lián)的密鑰。根據(jù)此實施例,簽署過程1100可有利地包括在允許類似委托書的功能之前認證第三方。此外,認證過程1000可包括檢查第三方約束,例如規(guī)定特定第三方的簽名在何時何種情況下被使用的商業(yè)邏輯等等。
基于前述,在步驟1110中,認證引擎請求來自數(shù)據(jù)存儲設(shè)施D1至D4的與簽署方相對應(yīng)的密鑰。在步驟1115中,數(shù)據(jù)存儲設(shè)施D1至D4將其與簽署方相對應(yīng)的各自的密鑰的部分發(fā)送到密碼引擎220。根據(jù)一個實施例,前述傳輸包括SSL技術(shù)。根據(jù)另一個實施例,前述傳輸可有利地被用密碼引擎220的公鑰來超級加密。
在步驟1120中,密碼引擎220組裝前述的簽署方密鑰,并利用其加密消息,從而形成數(shù)字簽名。在簽署過程1100的步驟1125中,密碼引擎220將數(shù)字簽名發(fā)送到認證引擎215。在步驟1130中,認證引擎215將填充后的認證請求以及散列消息的復(fù)本和一個(或多個)數(shù)字簽名發(fā)送到事務(wù)引擎205。在步驟1135中,事務(wù)引擎205向銷售者發(fā)送收據(jù),其中包括事務(wù)ID、關(guān)于認證是否成功的指示以及數(shù)字簽名。根據(jù)一個實施例,前述傳輸可有利地包括信任引擎110的數(shù)字簽名。例如,信任引擎110可利用其私鑰對收據(jù)的散列進行加密,從而形成將被附加到去往銷售者的傳輸?shù)臄?shù)字簽名。
根據(jù)一個實施例,事務(wù)引擎205還向用戶發(fā)送確認消息。雖然簽署過程1100是參考其優(yōu)選和備選實施例來公開的,但是本發(fā)明不想要限于此。相反,本領(lǐng)域的技術(shù)人員將會從此處的公開文本中意識到簽署過程1100的多種備選方案。例如,可用諸如電子郵件應(yīng)用這樣的用戶應(yīng)用來替換銷售者。例如,用戶可能希望利用他或她的數(shù)字簽名以數(shù)字方式簽署特定電子郵件。在這種實施例中,在整個簽署過程1100中的傳輸可有利地只包括消息散列的一個復(fù)本。此外,本領(lǐng)域的技術(shù)人員將會從此處的公開文本中意識到多種客戶端應(yīng)用可請求數(shù)字簽名。例如,客戶端應(yīng)用可包括字處理器、電子數(shù)據(jù)表、電子郵件、語音郵件、對受限服務(wù)區(qū)域的訪問等等。
此外,本領(lǐng)域的技術(shù)人員將會從此處的公開文本中認識到簽署過程1100的步驟1105至1120可有利地在采用圖9B的協(xié)同工作過程970的步驟中的某些或全部,從而提供例如可能需要處理不同簽名類型的數(shù)字簽名的不同密碼系統(tǒng)之間的協(xié)同工作性。
圖12示出根據(jù)本發(fā)明的另一個實施例的某些方面的加密/解密過程1200的數(shù)據(jù)流。如圖12所示,解密過程1200通過利用認證過程1000認證用戶而開始。根據(jù)一個實施例,認證過程1000在認證請求中包括同步會話鑰匙。例如,在傳統(tǒng)PKI技術(shù)中,本領(lǐng)域的技術(shù)人員理解到利用公鑰或私鑰對數(shù)據(jù)進行加密或解密是數(shù)學(xué)密集型的,并且可能要求大量系統(tǒng)資源。但是,在對稱鑰匙密碼系統(tǒng)中,或者在消息發(fā)送者和接收者共享用于加密和解密消息的單個公用鑰匙的系統(tǒng)中,數(shù)學(xué)運算簡單得多也快得多。從而,在傳統(tǒng)PKI技術(shù)中,消息的發(fā)送者將會生成同步會話鑰匙,并利用更簡單更快速的對稱鑰匙系統(tǒng)來加密消息。然后,發(fā)送者將會利用接收者的公鑰來加密會話鑰匙。加密后的會話鑰匙將會被附加到同步加密的消息,并且兩個數(shù)據(jù)都被發(fā)送到接收者。接收者使用其私鑰來對會話鑰匙進行解密,然后使用會話鑰匙來對消息進行解密?;谇笆?,更簡單和更快速的對稱鑰匙系統(tǒng)被用于大多數(shù)加密/解密處理。從而,在解密過程1200中,解密有利地假設(shè)同步鑰匙已經(jīng)被用戶公鑰加密。從而,如前所述,加密后的會話鑰匙被包括在認證請求中。
返回解密過程1200,當(dāng)在步驟1205中用戶已被認證之后,認證引擎215將加密后的會話鑰匙轉(zhuǎn)發(fā)到密碼引擎220。在步驟1210中,認證引擎215將請求轉(zhuǎn)發(fā)到數(shù)據(jù)存儲設(shè)施D1至D4中的每一個,以請求用戶的密鑰數(shù)據(jù)。在步驟1215中,每個數(shù)據(jù)存儲設(shè)施D1至D4將其各自的密鑰部分發(fā)送到密碼引擎220。根據(jù)一個實施例,前述傳輸被用密碼引擎220的公鑰來加密。
在解密過程1200的步驟1220中,密碼引擎220組裝密鑰并利用該密鑰來對會話鑰匙進行解密。在步驟1225中,密碼引擎將會話鑰匙轉(zhuǎn)發(fā)到認證引擎215。在步驟1227中,認證引擎215填充包括解密后的會話鑰匙的認證請求,并將填充后的認證請求轉(zhuǎn)發(fā)到事務(wù)引擎205。在步驟1230中,事務(wù)引擎205將認證請求以及會話鑰匙一起轉(zhuǎn)發(fā)到發(fā)出請求的應(yīng)用或銷售者。然后,根據(jù)一個實施例,發(fā)出請求的應(yīng)用或銷售者使用會話鑰匙來對加密后的消息進行解密。
雖然解密過程1200是參考其優(yōu)選或備選實施例來公開的,但是本領(lǐng)域的技術(shù)人員將會從此處的公開文本中意識到解密過程1200的多種備選方案。例如,解密過程1200可以在同步鑰匙加密之前,并且依賴于完全公鑰技術(shù)。在這種實施例中,發(fā)出請求的應(yīng)用可將整個消息發(fā)送到密碼引擎220,或者可以采用某種類型的壓縮或可逆散列以將消息發(fā)送到密碼引擎220。本領(lǐng)域的技術(shù)人員將會從此處的公開文本中意識到前述通信可有利地包括以SSL技術(shù)打包的XML文檔。
加密/解密過程1200還提供對文檔或其他數(shù)據(jù)的加密。從而,在步驟1235中,發(fā)出請求的應(yīng)用或銷售者可有利地向信任引擎110的事務(wù)引擎205發(fā)送對于用戶的公鑰的請求。發(fā)出請求的應(yīng)用或銷售者做出此請求是因為發(fā)出請求的應(yīng)用或銷售者使用用戶公鑰來例如對將用于加密文檔或消息的會話鑰匙進行加密。正如在注冊過程900中提到過的,事務(wù)引擎205例如在大容量存儲裝置225中存儲用戶的數(shù)字證書的復(fù)本。從而,在加密過程1200的步驟1240中,事務(wù)引擎205請求來自大容量存儲裝置225的用戶數(shù)字證書。在步驟1245中,大容量存儲裝置225將與用戶相對應(yīng)的數(shù)字證書發(fā)送到事務(wù)引擎205。在步驟1250中,事務(wù)引擎205將數(shù)字證書發(fā)送到發(fā)出請求的應(yīng)用或銷售者。根據(jù)一個實施例,加密過程1200的加密部分不包括用戶認證。這是因為發(fā)出請求的銷售者只需要用戶的公鑰,而不請求任何敏感數(shù)據(jù)。
本領(lǐng)域的技術(shù)人員將會從此處的公開文本中意識到,如果特定用戶不具有數(shù)字證書,則信任引擎110可采用注冊過程900中的某些或全部來為該特定用戶生成數(shù)字證書。然后,信任引擎110可發(fā)起加密/解密過程1200,從而提供適當(dāng)?shù)臄?shù)字證書。此外,本領(lǐng)域的技術(shù)人員將會從此處的公開文本中意識到,加密/解密過程1200的步驟1220和1235至1250可有利地在采用圖9B的協(xié)同工作過程的步驟中的某些或全部,從而提供可能需要處理加密的不同密碼系統(tǒng)之間的協(xié)同工作性。
圖13示出根據(jù)本發(fā)明的另一個實施例的某些方面的信任引擎系統(tǒng)1300的簡化框圖。如圖13所示,信任引擎系統(tǒng)1300包括多個不同的信任引擎1305、1310、1315和1320。為了幫助更全面地理解本發(fā)明,圖13將每個信任引擎1305、1310、1315和1320示為具有事務(wù)引擎、倉庫和認證引擎。但是,本領(lǐng)域的技術(shù)人員將會意識到每個事務(wù)引擎可有利地包括參考圖1-8所公開的元件和通信信道中的某些、組合或全部。例如,一個實施例可有利地包括具有一個或多個事務(wù)引擎、倉庫、密碼服務(wù)器或其任何組合的信任引擎。
根據(jù)本發(fā)明的一個實施例,信任引擎1305、1310、1315和1320中的每一個從地理上而言都是分離的,以使得,例如,信任引擎1305可位于第一位置,1310可位于第二位置,1315可位于第三位置,信任引擎1320可位于第四位置。前述地理分離性有利地減小了系統(tǒng)響應(yīng)時間,同時增大了整個信任引擎系統(tǒng)1300的安全性。
例如,當(dāng)用戶登錄到密碼系統(tǒng)100上時,用戶可能最靠近第一位置并且可能希望被認證。正如參考圖10所描述的,為了被認證,用戶提供當(dāng)前認證數(shù)據(jù),例如生物特征量度等等,并且當(dāng)前認證數(shù)據(jù)被與用戶的注冊認證數(shù)據(jù)相比較。因此,根據(jù)一個示例,用戶有利地向地理上最靠近的1305提供當(dāng)前認證數(shù)據(jù)。然后信任引擎1305的事務(wù)引擎1321將當(dāng)前認證數(shù)據(jù)轉(zhuǎn)發(fā)到也位于第一位置處的認證引擎1322。根據(jù)另一個實施例,事務(wù)引擎1321將當(dāng)前認證數(shù)據(jù)轉(zhuǎn)發(fā)到信任引擎1310、1315或1320的認證引擎中的一個或多個。
事務(wù)引擎1321還請求組裝例如來自信任引擎1305至1320中的每一個的倉庫的注冊認證數(shù)據(jù)。根據(jù)此實施例,每個倉庫向信任引擎1305的認證引擎1322提供它的那部分注冊認證數(shù)據(jù)。然后認證引擎1322使用例如來自前兩個倉庫的加密數(shù)據(jù)部分來做出響應(yīng),并且將注冊認證數(shù)據(jù)組裝成可解密的形式。認證引擎1322將注冊認證數(shù)據(jù)與當(dāng)前認證數(shù)據(jù)相比較,并向信任引擎1305的事務(wù)引擎1321返回認證結(jié)果。
基于上述,信任引擎系統(tǒng)1300使用多個地理上相分離的信任引擎1305至1320中最靠近的那個來執(zhí)行認證過程。根據(jù)本發(fā)明的一個實施例,將信息路由到最靠近的事務(wù)引擎可有利地在用戶系統(tǒng)105、銷售者系統(tǒng)120或證書權(quán)力機構(gòu)115中的一個或多個上執(zhí)行的客戶端側(cè)小應(yīng)用程序上執(zhí)行。根據(jù)備選實施例,可采用更復(fù)雜的判決過程,來從信任引擎1305至1320中進行選擇。例如,判決可基于給定信任引擎的可用性、可操作性、連接速度、負載、性能、地理鄰近性或其組合。
通過這種方式,信任引擎系統(tǒng)1300降低了它的響應(yīng)時間,同時保持了與地理上遠程的數(shù)據(jù)存儲設(shè)施相關(guān)聯(lián)的安全性優(yōu)點,所述數(shù)據(jù)存儲設(shè)施例如是參考圖7所論述的那些數(shù)據(jù)存儲設(shè)施,其中每個數(shù)據(jù)存儲設(shè)施存儲敏感數(shù)據(jù)的隨機化部分。例如,信任引擎1315的倉庫1325處的安全性危害不一定會危害到信任引擎系統(tǒng)1300的敏感數(shù)據(jù)。這是因為倉庫只包含不可解密的經(jīng)隨機化的數(shù)據(jù),這些數(shù)據(jù)在沒有更多的情況下是完全無用的。
根據(jù)另一個實施例,信任引擎系統(tǒng)1300可有利地包括多個與認證引擎類似地安排的密碼引擎。密碼引擎可有利地執(zhí)行諸如參考圖1-8公開的那些功能。根據(jù)另一個實施例,信任引擎系統(tǒng)1300可有利地用多個密碼引擎來替換多個認證引擎,從而執(zhí)行諸如參考圖1-8所公開的那些密碼功能。根據(jù)本發(fā)明的另一個實施例,信任引擎系統(tǒng)1300可用具有如前所述的認證引擎、密碼引擎或二者的功能中的某些或全部的引擎來替換多個認證引擎中的每一個。
雖然信任引擎系統(tǒng)1300是參考其優(yōu)選和備選實施例來公開的,但是本領(lǐng)域的技術(shù)人員將會意識到信任引擎系統(tǒng)1300可包括信任引擎1305至1320的某些部分。例如,信用引擎系統(tǒng)1300可包括一個或多個事務(wù)引擎、一個或多個倉庫、一個或多個認證引擎或一個或多個密碼引擎,或者其組合。
圖14示出根據(jù)本發(fā)明的另一個實施例的某些方面的信任引擎系統(tǒng)1400的簡化框圖。如圖14所示,信任引擎系統(tǒng)1400包括多個信任引擎1405、1410、1415和1420。根據(jù)一個實施例,信任引擎1405、1410、1415和1420中的每一個包括參考圖1-8公開的信任引擎110的元件中的某些或全部。根據(jù)此實施例,當(dāng)用戶系統(tǒng)105、銷售者系統(tǒng)120或證書權(quán)力機構(gòu)115的客戶端側(cè)小應(yīng)用程序與信任引擎系統(tǒng)1400通信時,這些通信被發(fā)送到信任引擎1405至1420中的每一個的IP地址。另外,信任引擎1405、1410、1415和1420中每一個的每個事務(wù)引擎的行為類似于參考圖3公開的信任引擎1305的事務(wù)引擎1321。例如,在認證過程期間,信任引擎1405、1410、1415和1420中每一個的每個事務(wù)引擎將當(dāng)前認證數(shù)據(jù)發(fā)送到它們各自的認證引擎,并發(fā)送請求以組裝存儲在信任引擎1405至1420中每一個的每個倉庫中的經(jīng)隨機化后的數(shù)據(jù)。圖14沒有示出這些通信的部分,因為這種圖示將會變得過度復(fù)雜。繼續(xù)所述認證過程,然后每個倉庫將它的那部分經(jīng)隨機化的數(shù)據(jù)傳輸?shù)叫湃我?405至1420中的每一個的每個認證引擎。每個信任引擎的每個認證引擎采用其比較器來確定當(dāng)前認證數(shù)據(jù)是否匹配信任引擎1405至1420中的每一個的倉庫提供的注冊認證數(shù)據(jù)。根據(jù)此實施例,然后每個認證引擎進行的比較的結(jié)果被發(fā)送到其他三個信任引擎的冗余模塊。例如,來自信任引擎1405的認證引擎的結(jié)果被發(fā)送到信任引擎1410、1415和1420的冗余模塊。從而,信任引擎1405的冗余模塊類似地接收來自信任引擎1410、1415和1420的認證引擎的結(jié)果。
圖15示出圖14的冗余模塊的框圖。冗余模塊包括比較器,該比較器被配置為用于接收來自三個認證引擎的認證結(jié)果并將該結(jié)果發(fā)送到第四個信任引擎的事務(wù)引擎。比較器比較來自三個認證引擎的認證結(jié)果,并且如果兩個結(jié)果吻合,則比較器得出以下結(jié)論認證結(jié)果應(yīng)當(dāng)與兩個吻合的認證引擎的結(jié)果相匹配。然后此結(jié)果被發(fā)送回不與所述三個認證引擎相關(guān)聯(lián)的信任引擎相對應(yīng)的事務(wù)引擎。
基于前述,冗余模塊確定來自優(yōu)選地與該冗余模塊的信任引擎從地理上而言遠程的認證引擎接收到的數(shù)據(jù)中的認證結(jié)果。通過提供這種冗余功能。信任引擎系統(tǒng)1400確保了對信任引擎1405至1420之一的認證引擎的危害不足以危害到該特定信任引擎的冗余模塊的認證結(jié)果。本領(lǐng)域的技術(shù)人員將會意識到信任引擎系統(tǒng)1400的冗余模塊功能還可應(yīng)用于信任引擎1405至1420中的每一個的密碼引擎。但是,圖14中未示出這種密碼引擎通信以避免復(fù)雜。此外,本領(lǐng)域的技術(shù)人員將會意識到,用于圖15的比較器的多種備選的認證結(jié)果沖突分辨算法適用于本發(fā)明。
根據(jù)本發(fā)明的另一個實施例,信任引擎系統(tǒng)1400可有利地在密碼比較步驟期間采用冗余模塊。例如,前述參考圖14的關(guān)于冗余模塊的公開文本中的某些或全部可有利地實現(xiàn)在特定事務(wù)期間由一方或多方提供的文檔的散列比較期間。
雖然已就某些優(yōu)選和備選實施例來描述了本發(fā)明,但是從此處的公開文本中本領(lǐng)域的技術(shù)人員將會明顯看出其他實施例。例如,信任引擎110可發(fā)布短期證書,其中在預(yù)定的時間段中私用密鑰被發(fā)表給用戶。例如,當(dāng)前證書標(biāo)準(zhǔn)包括可被設(shè)置為在預(yù)定量的時間之后期滿的有效性字段。從而,信任引擎110可向用戶發(fā)表私鑰,其中私鑰可能例如在24小時中有效。根據(jù)這種實施例,信任引擎110可有利地發(fā)布與特定用戶相關(guān)聯(lián)的新的密鑰對,然后發(fā)表該新的密鑰對的私鑰。然后,一旦私用密鑰被發(fā)表,信任引擎110立即使任何對這種私鑰的內(nèi)部有效使用期滿,因為這種使用不再能被信任引擎110保護。
此外,本領(lǐng)域的技術(shù)人員將會意識到密碼系統(tǒng)100或信任引擎110可包括識別任何類型的設(shè)備的能力,所述設(shè)備例如是但不限于筆記本電腦、蜂窩電話、網(wǎng)絡(luò)、生物特征量度設(shè)備等等。根據(jù)一個實施例,這種識別可能來自對于特定服務(wù)的請求中提供的數(shù)據(jù),所述請求例如是對于導(dǎo)致訪問或使用的認證的請求、對于密碼功能的請求等等。根據(jù)一個實施例,前述請求可包括唯一設(shè)備標(biāo)識符,例如處理器ID?;蛘?,該請求可包括采取特定的可識別數(shù)據(jù)格式的數(shù)據(jù)。例如,移動和衛(wèi)星電話通常不包括用于安全的X509.v3重型加密證書的處理能力,因此不會請求這些證書。根據(jù)此實施例,信任引擎110可識別給出的數(shù)據(jù)格式的類似,并且僅對適當(dāng)?shù)姆N類做出響應(yīng)。
在以上描述的系統(tǒng)的另一個方面中,可利用以下將要描述的各種技術(shù)來提供對上下文敏感的認證。上下文敏感認證,例如如圖16所示的上下文敏感認證提供了以下可能性不僅評估用戶在嘗試認證其自身時發(fā)送的實際數(shù)據(jù),而且還評估圍繞該數(shù)據(jù)的生成和遞送的環(huán)境的可能性。這種技術(shù)還可支持用戶和信任引擎110或銷售者和信任引擎110之間的事務(wù)特定的信任仲裁,如下所述。
如上所述,認證是證實用戶是它所聲稱的那個人的過程。一般而言,認證要求向認證權(quán)力機構(gòu)展示某些事實。本發(fā)明的信任引擎110代表了用戶必須向其認證自身的權(quán)力機構(gòu)。用戶必須通過以下方式之一來向信任引擎110展示他就是他所聲稱他是的那個人知道只有該用戶應(yīng)當(dāng)知道的某個事情(基于知識的認證)、擁有只有該用戶應(yīng)當(dāng)擁有的某個事物(基于令牌的認證)或者通過成為只有該用戶應(yīng)當(dāng)成為的某個事物(基于生物特征量度的認證)。
基于知識的認證的示例包括但不限于口令、PIN號碼或鎖定組合?;诹钆频恼J證的示例包括但不限于住宅鑰匙、物理信用卡、駕駛執(zhí)照或特定電話號碼?;谏锾卣髁慷鹊恼J證的示例包括但不限于指紋、筆跡分析、面部掃描、手部掃描、耳部掃描、虹膜掃描、血管樣式、DNA、嗓音分析或視網(wǎng)膜掃描。
每種類型的認證具有特定的優(yōu)點和缺點,并且每一種提供不同級別的安全性。例如,比起偷聽某人的口令并重復(fù)該口令來說,創(chuàng)建匹配他人的指紋的虛假指紋一般更難。每種類型的認證還要求認證權(quán)力機構(gòu)已知不同類型的數(shù)據(jù),以便利用該種形式的認證來驗證某人。
這里所使用的“認證”是廣泛地指驗證某個人的身份是他所聲稱他是的那個人的整個過程?!罢J證技術(shù)”是指基于特定信息片段、物理信牌或生物特征量度讀取的特定類型的認證?!罢J證數(shù)據(jù)”是指被發(fā)送或以其他方式展示給認證權(quán)力機構(gòu)以便確立身份的信息?!白詳?shù)據(jù)”是指最初被提交給認證權(quán)力機構(gòu)以便確立與認證數(shù)據(jù)相比較的基線的數(shù)據(jù)?!罢J證實例”是指與通過認證技術(shù)進行的認證嘗試相關(guān)聯(lián)的數(shù)據(jù)。
認證用戶的過程中涉及的內(nèi)部協(xié)議和通信是參考以上圖10來描述的。此過程中發(fā)生上下文敏感認證的部分發(fā)生在圖10的步驟1045所示的比較步驟內(nèi)。此步驟發(fā)生在認證引擎215內(nèi),并且涉及組裝從倉庫210取回的認證數(shù)據(jù)410并將用戶提供的認證數(shù)據(jù)與其相比較。此過程的一個特定實施例在圖16中示出并在下文中描述。
用戶提供的當(dāng)前認證數(shù)據(jù)和從倉庫210取回的注冊數(shù)據(jù)在圖16的步驟1600中被認證引擎215接收。這兩個數(shù)據(jù)集合都可包括與認證的分離技術(shù)相關(guān)的數(shù)據(jù)。在步驟1605中,認證引擎215分離與每個認證實例相關(guān)聯(lián)的認證數(shù)據(jù)。這一步是必要的,以便認證數(shù)據(jù)被與用戶的適當(dāng)?shù)淖詳?shù)據(jù)子集相比較(例如指紋認證數(shù)據(jù)應(yīng)當(dāng)被與指紋注冊數(shù)據(jù)相比較,而不是與口令注冊數(shù)據(jù)相比較)。
一般而言,認證一個用戶涉及一個或多個個體的認證實例,這取決于用戶可獲得的認證技術(shù)。這些方法由用戶在注冊過程期間提供的注冊數(shù)據(jù)(如果用戶的注冊時未提供視網(wǎng)膜掃描,則他將不能用視網(wǎng)膜掃描來認證他自己)以及用戶當(dāng)前可獲得的裝置(例如,如果用戶在其當(dāng)前位置處不具有指紋讀取器,則指紋認證就是不可行的)所限制。在某些情況下,單個認證實例可能就足以認證用戶;但是,在某些情況下,可使用多個認證實例的組合以便為特定事務(wù)有信心地認證用戶。
每個認證實例由與特定認證技術(shù)(例如指紋、口令、智能卡等)相關(guān)的數(shù)據(jù)以及圍繞用于該特定技術(shù)的數(shù)據(jù)捕捉和遞送的環(huán)境構(gòu)成。例如,嘗試經(jīng)由口令進行認證的特定實例不僅會生成與口令本身相關(guān)的數(shù)據(jù),還會生成與口令嘗試相關(guān)的環(huán)境數(shù)據(jù),稱為“元數(shù)據(jù)(metadata)”。此環(huán)境數(shù)據(jù)包括諸如以下信息特定認證實例發(fā)生的時間、認證信息被遞送自的網(wǎng)絡(luò)地址以及本領(lǐng)域的技術(shù)人員已知的可確定關(guān)于認證數(shù)據(jù)的起源的任何其他信息(例如連接類型、處理器序列號等等)。
在許多情況下,只有少量的環(huán)境元數(shù)據(jù)可用。例如,如果用戶位于使用代理或網(wǎng)絡(luò)地址翻譯或掩蔽起源計算機的地址的其他技術(shù)的網(wǎng)絡(luò)之上,則只能確定代理或路由器的地址。類似地,在許多情況下,諸如處理器序列號這樣的信息可能由于以下原因中的任何一種而不可用所使用的硬件或操作系統(tǒng)的限制、系統(tǒng)的操作者對這種功能的禁用、或者用戶的系統(tǒng)和信任引擎110之間的連接的其他限制。
如圖16所示,一旦認證數(shù)據(jù)內(nèi)代表的個體認證實例在步驟1605中被提取和分離,則認證引擎215評估每個實例在指示用戶是他所聲稱的那個人方面的可靠度。單個認證實例的可靠度一般是基于幾個因素來確定的。這些因素可以被分組為在步驟1610中評估的涉及與技術(shù)相關(guān)的可靠度的因素,以及在步驟1815中評估的涉及所提供的特定認證數(shù)據(jù)的可靠度的因素。第一組包括但不限于所使用的認證技術(shù)的固有可靠度以及用于該方法的注冊數(shù)據(jù)的可靠度。第二組包括但不限于注冊數(shù)據(jù)和與認證實例一起提供的數(shù)據(jù)之間的匹配度,以及與該認證實例相關(guān)聯(lián)的元數(shù)據(jù)。這些因素中的每一個都可以獨立于其他的因素而變化。
認證技術(shù)的固有可靠度是基于冒名頂替者提供他人的正確數(shù)據(jù)的困難度以及該認證技術(shù)的整體差錯率的。對于基于口令和知識的認證方法,此可靠度通常是相當(dāng)?shù)偷?,因為沒有什么能夠防止某人將其口令暴露給另一個人以及防止所述第二人使用該口令。即使更復(fù)雜的基于知識的系統(tǒng)也只會具有中等可靠度,這是因為知識很容易被從一個從傳送到另一個人?;诹钆频恼J證,例如具有適當(dāng)?shù)闹悄芸ɑ蚴褂锰囟ńK端來執(zhí)行認證的認證也類似地具有它自己所使用的低可靠度,這是因為無法保證正確的人擁有適當(dāng)?shù)牧钆啤?br>
但是,生物特征量度技術(shù)從本質(zhì)上來說是更加可靠的,這是因為一般難以向他人提供以便利的方式(哪怕是故意地)使用你的指紋的能力。因為破壞生物特征量度認證技術(shù)更困難,所以生物特征量度方法固有可靠度一般高于單獨的基于知識或基于令牌的認證技術(shù)的可靠度。但是,即使是生物特征量度技術(shù)也可能有生成虛假接受或虛擬拒絕的情形。這些事件可以由相同生物特征量度技術(shù)的不同實現(xiàn)方式的不同可靠度來反映。例如,一個公司提供的指紋匹配系統(tǒng)可能提供比另一個公司提供的指紋匹配系統(tǒng)更高的可靠度,這是因為其中一個使用較高質(zhì)量的光學(xué)或更好的掃描分辨率,或減少錯誤接受或錯誤拒絕的發(fā)生的某個其他改進。
注意此可靠度可以以不同方式來表達。希望可靠度被表達成探試530和認證引擎215的算法能夠用于計算每個認證的信心級別的某種量度。表達這些可靠度的一種優(yōu)選模式是表達成百分?jǐn)?shù)或分?jǐn)?shù)。例如,指紋可能被分配97%的固有可靠度,而口令可被分配50%的固有可靠度。本領(lǐng)域的技術(shù)人員將會意識到這些特定值只是示例性的,對于特定實現(xiàn)方式可以發(fā)生變化。
必須為可靠度評定的第二個因素是注冊的可靠度。這是上文中提到的“分級注冊”過程的一部分。此可靠度因素影響初始注冊過程期間提供的標(biāo)識的可靠度。例如,如果個人最初以向公證人或其他公共官方機構(gòu)物理地提供證據(jù)的方式進行注冊,并且注冊數(shù)據(jù)在此時被記錄并公證,則這種數(shù)據(jù)比起在注冊時經(jīng)由網(wǎng)絡(luò)提供并且僅由并非真正與個人聯(lián)系在一起的數(shù)字簽名或其他信息來擔(dān)保的數(shù)據(jù)來要更可靠。
其他的具有不同的可靠度級別的注冊技術(shù)包括但不限于在信任引擎110操作者的物理辦事處注冊;在用戶工作地點注冊;在郵局或護照局注冊;通過信任引擎110操作者的附屬或受信任方注冊;不具名或匿名注冊,其中被注冊的身份尚未被用特定真實個體標(biāo)識;以及現(xiàn)有技術(shù)中已知的其他這種手段。
這些因素反映信任引擎110和注冊過程期間提供的標(biāo)識的源之間的信任。例如,如果注冊是在初始的提供身份證據(jù)的過程期間聯(lián)系雇員來執(zhí)行的,則當(dāng)用于公司內(nèi)時,此信息可能被視為極可靠的,但是政府機構(gòu)或競爭者可能就不那么信任它。因此,這些其他組織中的每一個所操作的信任引擎可向此注冊分配不同級別的可靠度。
類似地,經(jīng)由網(wǎng)絡(luò)提交的但是是由相同信任引擎110的先前注冊提供的其他受信任的數(shù)據(jù)來認證的附加數(shù)據(jù)可以被視為與原始注冊數(shù)據(jù)一樣可靠,即使后一種數(shù)據(jù)是經(jīng)由開放網(wǎng)絡(luò)提交的。在這種情況下,后續(xù)公證將會有效地增大與原始注冊數(shù)據(jù)相關(guān)聯(lián)的可靠度級別。通過這種方式,例如,則可以通過向某些注冊官方機構(gòu)展示與注冊的數(shù)據(jù)相匹配的個人的身份來將不具名或匿名注冊提升到完全注冊。
上述可靠度因素一般是可以在任何特定的認證實例之前確定的值。這是因為它們是基于注冊和技術(shù)的,而不是基于實際認證的。在一個實施例中,基于這些因素生成可靠度的步驟涉及查找先前為此特定認證技術(shù)所確定的值以及用戶的注冊數(shù)據(jù)。在本發(fā)明的一個有利實施例的另一個方面中,這種可靠度可以與注冊數(shù)據(jù)本身包括在一起。通過這種方式,這些因素與來自倉庫210的注冊數(shù)據(jù)一起被自動遞送到認證引擎215。
雖然這些因素一般可以在任何個體的認證實例之前被確定,但是它們?nèi)匀粚τ跒樵撚脩羰褂迷撎囟ㄕJ證技術(shù)的每個認證實例有影響。此外,雖然值可能隨著時間變化(例如如果用戶以更可靠的方式重新注冊),但是它們不依賴于認證數(shù)據(jù)本身。相反,與單個特定實例的數(shù)據(jù)相關(guān)聯(lián)的可靠度因素在每個場合下可能是不同的。如下所述,必須為每個新的認證評估這些因素以便在步驟1815中生成可靠度得分。
認證數(shù)據(jù)的可靠度反映了在特定認證實例中用戶提供的數(shù)據(jù)與認證注冊期間提供的數(shù)據(jù)之間的匹配。這是認證數(shù)據(jù)是否與用戶聲稱他是的那個個體的注冊數(shù)據(jù)相匹配的基本問題。通常,當(dāng)數(shù)據(jù)不匹配時,用戶被認為是未被成功認證,并且認證失敗。評估這一點的方式可根據(jù)所使用的認證技術(shù)而變化。對這種數(shù)據(jù)的比較是由圖5所示的認證引擎215的比較器515功能來執(zhí)行的。
例如,口令的匹配通常是以二元方式來評估的。換言之,口令或者是完全匹配,或者是失敗匹配。如果口令不是完全正確的話,則通常不希望接受與正確口令接近的口令,來作為哪怕是部分匹配。因此,當(dāng)評估口令認證時,比較器515所返回的認證的可靠度通?;蛘呤?00%(正確)或者是0%(錯誤),而不可能有中間值。
與用于口令的規(guī)則類似的規(guī)則通常被應(yīng)用到基于令牌的認證方法,例如智能卡。這是因為,擁有具有類似標(biāo)識符的智能卡或擁有與正確智能卡相類似的智能卡和擁有任何其他不正確的令牌的錯誤程度是一樣的。因此令牌往往也是二元認證用戶或者擁有正確令牌,或者沒有。
但是,某些類型的認證數(shù)據(jù),例如問卷和生物特征量度,則通常不是二元認證。例如,指紋可能在不同程度上與參考指紋相匹配。從某種程度上而言,這可能是因為初始注冊期間或者后續(xù)認證時捕捉的數(shù)據(jù)的質(zhì)量的變化。(指紋可能被弄污,或者某個人的特定的手指上可能有仍在愈合中的疤痕或燒傷)。在其他情況下,數(shù)據(jù)可能不是那么完全地匹配,這是因為信息本身在某種程度上可變的并且是基于樣式匹配的。(由于背景噪聲或記錄嗓音的環(huán)境的聲學(xué)特性或者因為那個人感冒了,嗓音分析可能看起來接近但不是十分正確)。最后,在要比較大量數(shù)據(jù)的情況下,可能就有這種情況許多數(shù)據(jù)匹配得很好,但是某些卻不是。(十個問題的問卷可能產(chǎn)生八個對于個人問題的正確回答,但有兩個不正確的回答)。由于這些原因中的任何一種,注冊數(shù)據(jù)和特定認證實例的數(shù)據(jù)之間的匹配可能被比較器515符合需要地分配部分匹配值。通過這種方式,例如,指紋可能被說成是85%匹配,聲紋是65%匹配,問卷是80%匹配。
由比較器515產(chǎn)生的這種度量(匹配度)是代表認證正確與否的基本問題的因素。但是,如上所述,這只是可用于確定給定認證實例的可靠度的因素之一。還注意到即使可確定到某個部分程度的匹配,但是最終可能還是需要基于部分匹配提供二元結(jié)果。在備選操作模式中,也可以基于匹配度是否超過特定閾值匹配級別,來將部分匹配視為二元的,即或者是完全(100%)或者是失敗(0%)匹配。這種過程可用于為(不然會產(chǎn)生部分匹配的)系統(tǒng)提供簡單的通過/失敗匹配級別。
在評估給定認證實例的可靠度時考慮的另一個因素涉及提供此特定實例的認證數(shù)據(jù)的環(huán)境。如上所述,環(huán)境是指與特定認證實例相關(guān)聯(lián)的元數(shù)據(jù)。這可包括但不限于諸如以下信息認證者的網(wǎng)絡(luò)地址(到可確定的程度為止);認證時間;認證數(shù)據(jù)的傳輸模式(電話線路、蜂窩、網(wǎng)絡(luò)等等);以及認證者的系統(tǒng)的序列號。
這些因素可用于產(chǎn)生用戶通常請求的認證類型的簡檔。然后,此信息可用于以至少兩種方式評價可靠度。一種方式是考慮用戶是否正在以與此用戶進行的認證的正常簡檔相一致的方式請求認證。如果用戶在工作日期間(當(dāng)其在工作時)通常從一個網(wǎng)絡(luò)地址做出認證請求,而在晚間或周末(當(dāng)其在家時)通常是從另一個網(wǎng)絡(luò)地址做出認證請求,則在工作日期間從家庭地址發(fā)生的認證就不太可靠,這是因為它在正確認證簡檔的范圍之外。類似地,如果用戶通常使用指紋生物特征量度以及在夜時進行認證,則在日間僅用口令發(fā)起的認證就不那么可靠。
環(huán)境元數(shù)據(jù)可用于評估認證實例的可靠度的另一種方式是確定環(huán)境對于認證者是他所聲稱的那個個體提供了多少確證。例如,如果認證來自具有已知與用戶相關(guān)聯(lián)的序列號的系統(tǒng),則這是用戶是他所聲稱的那個人的良好的環(huán)境指示物。相反,當(dāng)已知用戶位于倫敦時,如果認證來自已知處于洛杉磯的網(wǎng)絡(luò)地址,則這就是對于此認證根據(jù)其環(huán)境不那么可靠的指示。
還可能當(dāng)用戶與銷售者系統(tǒng)或信任引擎110交互時,cookie或其他電子數(shù)據(jù)被放置在用戶所使用的系統(tǒng)之上。此數(shù)據(jù)被寫入到用戶系統(tǒng)的存儲裝置中,并且可包括可被用戶系統(tǒng)上的Web瀏覽器或其他軟件所讀取的標(biāo)識。如果此數(shù)據(jù)被允許在會話之間存在于用戶系統(tǒng)上(“持續(xù)cookie”),則在特定用戶的認證期間,該數(shù)據(jù)可以與認證數(shù)據(jù)一起被發(fā)送,作為過去對此系統(tǒng)的使用的進一步的證據(jù)。從效果上而言,給定實例的元數(shù)據(jù),尤其是持續(xù)cookie,本身就可形成一類基于令牌的認證。
一旦按照上文中分別在步驟1610和1615中描述的,適當(dāng)?shù)幕谡J證實例的技術(shù)和數(shù)據(jù)的可靠度因素被生成,這些可靠度因素就被用于產(chǎn)生步驟1620中提供的認證實例的整體可靠度。完成這一點的一種手段就是將每個可靠度表達為百分?jǐn)?shù),然后將它們乘在一起。
例如,假設(shè)認證數(shù)據(jù)是從根據(jù)用戶過去的認證簡檔已完全知道是用戶的家用計算機的網(wǎng)絡(luò)地址發(fā)送進來的,并且所使用的技術(shù)是指紋識別(97%),并且初始指紋數(shù)據(jù)已通過用戶的雇主向信任引擎110登記(90%),并且認證數(shù)據(jù)和注冊數(shù)據(jù)中的原始指紋模板之間的匹配非常好(99%)。則此認證實例的整體可靠度將會被計算為這些可靠度之積100%*97%*90%*99%-86.4%的可靠度。
這個計算出的可靠度代表單個認證實例的可靠度。單個認證實例的整體可靠度也可以用以不同方式對待不同可靠度因素的技術(shù)來計算,所述不同方式利用是通過使用其中不同權(quán)重被分配給每個可靠度因素的公式。此外,本領(lǐng)域的技術(shù)人員將會意識到所使用的實際值可代表除百分?jǐn)?shù)之外的值,并且可使用非算術(shù)系統(tǒng)。一個實施例可包括被認證請求者用來設(shè)置每個因素的權(quán)重以及用于確立認證實例的整體可靠度的算法的模塊。
認證引擎215可使用上述技術(shù)及其變體來確定單個認證實例的可靠度,如步驟1620所示。但是,在許多認證情形中,同時提供多個認證實例可能是有用的。例如,在嘗試使用本發(fā)明的系統(tǒng)來認證他自己的同時,用戶可提供用戶標(biāo)識、指紋認證數(shù)據(jù)、智能卡和口令。在這種情況下,三個獨立的認證實例被提供給信任引擎110以便評估。前進到步驟1625,如果認證引擎215確定用戶提供的數(shù)據(jù)包括多于一個認證實例,則每個實例又將會以步驟1630中所示的方式被選擇,并且以上文中步驟1610、1615和1620中所描述的方式被評估。
注意,所論述的許多可靠度因素在不同實例間可能是不同的。例如,這些技術(shù)的固有可靠度可能是不同的,認證數(shù)據(jù)和注冊數(shù)據(jù)之間提供的匹配度也可能是不同的。此外,對于這些技術(shù)中的每一個,用戶可能在不同時間和不同環(huán)境下提供了注冊數(shù)據(jù),從而也為這些實例中的每一個提供了不同的注冊可靠度。最后,即使提交這些實例中的每一個的數(shù)據(jù)的環(huán)境是相同的,這些技術(shù)的使用也可能各自不同地與用戶的簡檔相適配,因此可能被分配不同的環(huán)境可靠度。(例如,用戶可能通常使用其口令和指紋,而不使用其智能卡)。
這樣,這些認證實例中的每一個的最終可靠度可能彼此不同。但是,通過一起使用多個實例,對于認證的整體信心級別往往會增大。
一旦認證引擎已為認證數(shù)據(jù)中提供的所有認證實例執(zhí)行了步驟1610至1620,則在步驟1635中每個實例的可靠度被用于評估整體認證信心級別。將個體認證實例可靠度組合成認證信心級別的這一過程可以由與產(chǎn)生的個體可靠度相關(guān)的各種方法來模擬,并且也可針對解決這些認證技術(shù)中的某一些之間的特定交互。(例如,多個諸如口令這樣的基于知識的系統(tǒng)產(chǎn)生的信心可能少于單個口令或者甚至是相當(dāng)弱的生物特征量度,例如基本嗓音分析)。
認證引擎215可用于組合多個同時發(fā)生的認證實例的可靠度來生成最終信心級別的手段是將每個實例的不可靠度相乘以得到總不可靠度。不可靠度一般是可靠度的補百分比。例如,84%可靠的技術(shù)是16%不可靠的。產(chǎn)生86%、75%和72%的可靠度的上述三個認證實例(指紋、智能卡、口令)將會分別具有(100-86)%、(100-75)%和(100-72)%,或者說14%、25%和28%的相應(yīng)的不可靠度。通過將這些不可靠度相乘,我們得到累積不可靠度14%*25%*28%-0.98%的不可靠度,這對應(yīng)于99.02%的可靠度。
在另一種操作模式中,在認證引擎215內(nèi)可應(yīng)用另外的因素和探試530,以考慮到各種認證技術(shù)之間的互相依賴性。例如,如果某人擁有對于特定家用計算機的未經(jīng)授權(quán)的訪問權(quán)限,則它們可能也擁有對于該地址處的電話線路的訪問權(quán)限。因此,基于主叫電話號碼以及基于認證系統(tǒng)的序列號的認證不會使認證的整體信心增加多少。但是,基于知識的認證很大程度上是獨立于基于令牌的認證的(即,如果某人竊取了你的蜂窩電話或鑰匙,則與他未曾竊取相比,他也不會更有可能知道你的PIN或口令)。
此外,不同銷售者或其他認證請求者可能希望以不同方式對認證的不同方面進行加權(quán)。這可包括在計算個體實例的可靠度時使用單獨的加權(quán)因素或算法,以及使用不同的手段來評估具有多個實例的認證事件。
例如,某種類型的事務(wù)的銷售者,例如公司電子郵件系統(tǒng),可能希望默認地主要基于探試和其他環(huán)境數(shù)據(jù)來進行認證。因此,它們可能向與元數(shù)據(jù)相關(guān)的因素以及與圍繞認證事件的環(huán)境相關(guān)聯(lián)的其他簡檔相關(guān)信息應(yīng)用高權(quán)重。此配置通過不向用戶要求比他在工作期間登錄到正確機器上時更多的東西,從而可以用于減除正常操作期間用戶的負擔(dān)。但是,另一個銷售者可能為來自特定技術(shù)(例如指紋匹配)的認證應(yīng)用最重的權(quán)重,這是因為以下策略判決對于特定銷售者的目的,這種技術(shù)最適合于認證。
在一種操作模式中,這種變化的權(quán)重可由認證請求者在生成認證請求時定義,并且與認證請求一起被發(fā)送到信任引擎110。在另一種操作模式中,這種選項也可在認證請求者的初始注冊過程期間被設(shè)置為優(yōu)選,并且被存儲在認證引擎內(nèi)。
一旦認證引擎215為所提供的認證數(shù)據(jù)產(chǎn)生了認證信心級別,則在步驟1640中,此信心級別被用于完成認證請求,并且此信息被從認證引擎215轉(zhuǎn)發(fā)到事務(wù)引擎205,以便被包括在去往認證請求者的消息中。
上述過程只是示例性的,本領(lǐng)域的技術(shù)人員將會意識到可以不以所示的順序來執(zhí)行步驟,或者只需要執(zhí)行某些步驟,或者可能需要步驟的各種組合。此外,如果環(huán)境允許的話,則某些步驟,例如所提供的每個認證實例的可靠度的評估,可以彼此并行地執(zhí)行。
在本發(fā)明的另一個方面中,提供了一種適應(yīng)以下狀況的方法上述過程產(chǎn)生的認證信心級別未能符合要求認證的銷售者或其他方的所要求的信任級別。在所提供的信心級別和所需要的信任級別之間存在差距的情況下,信任引擎110的操作者處于以下位置將提供備選數(shù)據(jù)或要求的機會提供給一方或兩方,以便閉合此信任差距。此過程在此處將被稱為“信任仲裁”。
信任仲裁可發(fā)生在以上參考圖10和11所描述的密碼認證的框架內(nèi)。如該處所示,銷售者或其他方可能請求結(jié)合特定事務(wù)認證特定用戶。在一種情況下,銷售者就僅僅請求認證,該認證或者是肯定的,或者是否定的,并且在接收到來自用戶的適當(dāng)數(shù)據(jù)后,信任引擎110將會提供這種二元認證。在這種情況下,為了確??隙ㄕJ證所需的信心程度是基于信任引擎110內(nèi)設(shè)置的優(yōu)選項來確定的。
但是,也可能銷售者請求特定級別的信任以便完成特定事務(wù)。此要求的級別可與認證請求包括在一起(例如以98%的信心認證此用戶),或者可由信任引擎110基于與事務(wù)相關(guān)聯(lián)的其他因素來確定(例如對于此事務(wù)適當(dāng)?shù)卣J證此用戶)。一個這種因素可以是事務(wù)的經(jīng)濟價值。對于具有較大經(jīng)濟價值的事務(wù),可能要求較高的信任度。類似地,對于具有高風(fēng)險度的事務(wù),則可能要求高信任度。相反,對于低風(fēng)險或低價值的事務(wù),銷售者或其他認證請求者可能要求較低的信任級別。
信任仲裁過程發(fā)生在圖10的步驟1050中信任引擎110接收認證數(shù)據(jù)和圖10的步驟1055中向銷售者返回認證結(jié)果的步驟之間。在這些步驟之間,導(dǎo)致信任級別的評估并且可能導(dǎo)致信任仲裁的過程以如圖17所示的方式發(fā)生。在執(zhí)行簡單二元認證的情況下,圖17所示的過程簡化為使事務(wù)引擎205直接將所提供的認證數(shù)據(jù)與標(biāo)識的用戶注冊數(shù)據(jù)相比較,如上文中參考圖10所述,并且將任何差異標(biāo)記為否定認證。
如圖17所示,在步驟1050中接收到數(shù)據(jù)之后的第一步驟是在步驟1710中事務(wù)引擎205確定此特定事務(wù)的肯定認證所要求的信任級別。此步驟可以由幾種不同方法之一來執(zhí)行。所要求的信任級別可以由認證請求者在做出認證請求時向信任引擎110指定。認證請求者還可預(yù)先設(shè)置優(yōu)選項,該優(yōu)選項被存儲在可由事務(wù)引擎205訪問的倉庫210或其他存儲裝置內(nèi)。然后每當(dāng)此認證請求者做出認證請求時,此優(yōu)選項可被讀取并使用。優(yōu)選項也可作為安全措施與特定用戶相關(guān)聯(lián),以使得想要認證該用戶則始終要求特定的信任級別,用戶優(yōu)選項被存儲在可由事務(wù)引擎205訪問的倉庫210或其他存儲介質(zhì)中。所要求的級別還可由事務(wù)引擎205或認證引擎215基于認證請求中提供的信息來導(dǎo)出,所述信息例如是要認證的事務(wù)的價值和風(fēng)險級別。
在一種操作模式中,在生成認證請求時使用的策略管理模塊或其他軟件被用于指定事務(wù)認證的所要求的信任度。這可用于基于策略管理模塊內(nèi)指定的策略來提供分配所要求的信任級別時要遵守的一系列規(guī)則。一種有利的操作模式是用于這樣一種模塊的該模塊將與銷售者的web服務(wù)器相合并,以便適當(dāng)?shù)卮_定利用銷售者的web服務(wù)器發(fā)起的事務(wù)的所要求的信任級別。通過這種方式,來自用戶的事務(wù)請求可根據(jù)銷售者的策略被分配所要求的信任級別,并且這種信息可以與認證請求一起被轉(zhuǎn)發(fā)到信任引擎110。
這種所要求的信任級別與以下確定度相關(guān)銷售者希望擁有的對于認證的個人實際上是他標(biāo)識他自己是的那個人的確定度。例如,如果由于貨物轉(zhuǎn)手因此事務(wù)是銷售者希望有相當(dāng)大的確定度的事務(wù),則銷售者可能要求85%的信任級別。對于銷售者只不過是認證用戶以允許他查看僅限成員的內(nèi)容或行使聊天室特權(quán)的情形,不利風(fēng)險可能足夠小,以至于銷售者只要求60%的信任級別。但是,為了進入價值數(shù)萬美元的產(chǎn)品合同,銷售者可能要求99%或更大的信任級別。
這種所要求的信任級別代表用戶為了完成事務(wù)必須認證自己到什么程度的量度。例如,如果所要求的信任級別是85%,則用戶必須向信任引擎110提供這樣的認證,這種認證足以使信任引擎110以85%的信心說該用戶是他聲稱他是的那個人。產(chǎn)生肯定認證(到銷售者滿意的程度)或信任仲裁概率的是這種所要求的信任級別和認證信心級別之間的平衡。
如圖17所示,在事務(wù)引擎205接收到所要求的信任級別之后,在步驟1720中,它將所要求的信任級別與認證引擎215為當(dāng)前認證計算的認證信心級別(參考圖16論述)相比較。如果在步驟1730中,認證信心級別高于事務(wù)的所要求的信任級別,則過程前進到步驟1740,在這里事務(wù)引擎205產(chǎn)生此事務(wù)的肯定認證。然后對于此效果的消息會被事務(wù)引擎205插入到認證結(jié)果中并被返回給銷售者,如步驟1055所示(參見圖10)。
但是,如果在步驟1730中,認證信心級別不滿足所要求的信任級別,則對于當(dāng)前認證存在信心差距,并且在步驟1750中進行信任仲裁。信任仲裁在下文中參考圖18更詳細描述。如上所述,此過程在信任引擎110的事務(wù)引擎205內(nèi)發(fā)生。由于為了執(zhí)行信任仲裁不需要認證或其他密碼操作(除了事務(wù)引擎205和其他組件之間的SSL通信所要求的那些以外),因此過程可以在認證引擎215之外執(zhí)行。但是,正如下文中將會論述的,對于認證數(shù)據(jù)或其他密碼或認證事件的任何重新評估都將會要求事務(wù)引擎205向認證引擎215重新提交適當(dāng)?shù)臄?shù)據(jù)。本領(lǐng)域的技術(shù)人員將會意識到信任仲裁過程也可被構(gòu)造成部分或全部發(fā)生在認證引擎215本身之內(nèi)。
如上所述,信任仲裁是這樣一個過程,在該過程中,信任引擎110調(diào)解銷售者和用戶之間的協(xié)商,以嘗試在適當(dāng)時確??隙ㄕJ證。如步驟1805所示,事務(wù)引擎205首先確定當(dāng)前情形是否適合于信任仲裁。這可以基于認證環(huán)境來確定,例如此認證是否已經(jīng)通過幾輪仲裁,以及基于銷售者或用戶的優(yōu)選項來確定,正如下文中將進一步論述的。
在不可能發(fā)生仲裁的情況下,過程前進到步驟1810,在這里事務(wù)引擎205生成否定認證,然后將其插入到認證結(jié)果中,認證結(jié)果在步驟1055中被發(fā)送到銷售者(見圖10)??捎欣赜糜诜乐拐J證不確定地待決的一個限制是設(shè)置從初始認證請求開始的超時時段。通過這種方式,任何在時間限制內(nèi)未被肯定認證的事務(wù)被拒絕進一步仲裁并被否定認證。本領(lǐng)域的技術(shù)人員將會意識到這種時間限制可以根據(jù)事務(wù)的環(huán)境以及用戶和銷售者的愿望而變化。也可對在提供成功認證時可進行的嘗試的次數(shù)施加限制。這種限制可由如圖5所示的嘗試限制器535來處理。
如果在步驟1805中未禁止仲裁,則事務(wù)引擎205隨后將會參與與進行事務(wù)的一方或兩方的協(xié)商。如步驟1820所示,事務(wù)引擎205將會向用戶發(fā)送消息,以請求某種形式的附加認證,以便提升所產(chǎn)生的認證信心級別。就最簡單的形式而言,這可以僅僅是指示認證不充分。還可發(fā)送以下請求請求產(chǎn)生一個或多個附加認證實例以提高認證的整體信心級別。
如果在步驟1825中用戶提供某些附加認證實例,則事務(wù)引擎205將這些認證實例添加到事務(wù)的認證數(shù)據(jù)中,并且將其轉(zhuǎn)發(fā)到認證引擎215,如步驟1015所示(參見圖10),并且基于此事務(wù)的預(yù)先存在的認證實例以及新提供的認證實例來重新評估認證。
可從信任引擎110請求另一種類型的認證,以在信任引擎110操作者(或受信任的合作者)與用戶之間進行某種形式的人對人聯(lián)系,例如通過電話呼叫進行聯(lián)系。此電話呼叫或者其他非計算機認證可用于提供與個人的個人聯(lián)系,以及用于進行某種形式的基于問卷的認證。這一點也提供了以下機會驗證主叫電話號碼并且在用戶呼叫進來時對用戶進行嗓音分析。即使不能提供附加的認證數(shù)據(jù),與用戶電話號碼相關(guān)聯(lián)的附加上下文也可提高認證上下文的可靠度?;诖穗娫捄艚械娜魏涡薷暮蟮臄?shù)據(jù)或環(huán)境被饋送到信任引擎110中,以用于考慮認證請求。
此外,在步驟1820中,信任引擎110可向用戶提供購買保險的機會,實際上也就是購買更確信的認證的機會。僅在認證的信心級別超過某個特定的開始閾值的情況下,信任引擎110的操作者有時才可能希望使這種選項可用。實際上,此用戶方保險是在認證符合信任引擎110的通常要求的認證信任級別但不符合銷售者對于此事務(wù)所要求的信任級別時,信任引擎110用來擔(dān)保用戶的方式。通過這種方式,用戶仍可成功認證到銷售者所要求的非常高的級別,即使他只具有產(chǎn)生對于信任引擎110來說足夠的信心的認證實例。
信任引擎110的這個功能允許了信任引擎110為被認證到信任引擎110滿意的程度而未認證到銷售者滿意的程度的某個人進行擔(dān)保。這與公證人在執(zhí)行以下操作時執(zhí)行的功能類似將其簽名添加到文檔,以向稍后閱讀該文檔者指示其簽名出現(xiàn)在文檔上的人實際上是簽署該文檔的人。公證人的簽名為用戶的簽署行為作證。通過相同的方式,信任引擎提供以下指示進行事務(wù)的那個人就是他聲稱他是的那個人。
但是,由于信任引擎110人工地提升用戶提供的信心級別,因此信任引擎110操作者有更大的風(fēng)險,因為用戶實際上沒有符合銷售者要求的信任級別。保險的成本被設(shè)計為抵銷錯誤肯定認證對于信任引擎110的風(fēng)險(信任引擎110可能實際上正在為用戶的認證進行公證)。用戶向信任引擎110操作者付出報酬,以承擔(dān)認證到比實際提供的更高的信心級別的風(fēng)險。
由于這種保險系統(tǒng)允許某人從效果上從信任引擎110購買更高的信心等級,因此在某些事務(wù)中,銷售者和用戶都可能希望防止使用用戶方保險。銷售者可能希望將肯定認證限制到他們知道實際認證數(shù)據(jù)支持他們要求的信心度的情況,并且因此可能向信任引擎110指示用戶方保險不被允許。類似地,為了保護其在線身份,用戶可能希望防止在其賬戶上使用用戶方保險,或者可能希望將其使用限制到?jīng)]有保險的認證信心級別高于某個限度的情況。這可以用作安全措施,以防止某人偷聽口令或竊取智能卡并使用它們來虛假地認證到低信心級別,然后購買保險來產(chǎn)生非常高的(虛假)信心級別。在確定是否允許用戶方保險時可評估這些因素。
如果在步驟1840中用戶購買了保險,則在步驟1845中,認證信心級別基于購買的保險而被調(diào)整,并且在步驟1730中,認證信心級別和所要求的信任級別再次被比較(參見圖17)。過程從該處繼續(xù),并且可能通向步驟1740中的肯定認證(見圖17),或者返回到步驟1750中的信任仲裁過程以便進行進一步仲裁(如果允許的話),或者返回步驟1810中的否定認證(如果禁止進一步仲裁的話)。
除了在步驟1820中向用戶發(fā)送消息外,在步驟1830中,事務(wù)引擎205也可向銷售者發(fā)送消息,以指示待決的認證目前處于所要求的信任級別之下。消息還可向銷售者提供關(guān)于如何繼續(xù)下去的各種選項。這些選項之一僅僅是通知銷售者當(dāng)前認證信心級別是什么,以及詢問銷售者是否希望保持其當(dāng)前的未被滿足的所要求的信任級別。這樣做可能是有益的,因為在某些情況下,銷售者可能具有用于認證事務(wù)的獨立裝置,或者可能使用了默認的要求集合,該默認要求集合一般導(dǎo)致初始指定的所要求的級別,該級別高于手邊的特定事務(wù)所實際需要的級別。
例如,標(biāo)準(zhǔn)做法是預(yù)期所有傳入的與銷售者的購買訂單事務(wù)都要符合98%的信任級別。但是,如果某個訂單最近已通過銷售者和長期顧客之間的電話而被討論,并且緊接那之后事務(wù)就被認證,但是僅被認證到93%的信心級別,則銷售者可能希望簡單地降低此事務(wù)的接受閾值,因為電話呼叫從效果上而言向銷售者提供了附加認證。在某些情況下,銷售者可能希望降低其所要求的信任級別,但是不是一直降低到當(dāng)前認證信心級別。例如,上述示例中的銷售者可能考慮訂單之前的電話呼叫可能值得所需信任度的4%的降低;但是這仍大于用戶所產(chǎn)生的93%的信心。
如果在步驟1835中銷售者確實調(diào)了其要求的信任級別,則在步驟1730中,認證所產(chǎn)生的認證信心級別以及所要求的信任級別被比較(見圖17)。如果現(xiàn)在信心級別超過所要求的信任級別,則在步驟1740中,在事務(wù)引擎205可肯定認證(見圖17)。如果否的話,則如果允許的話可以嘗試進一步仲裁,如上所述。
除了請求調(diào)整所要求的信任級別外,事務(wù)引擎205還可向請求認證的銷售者提供銷售者方保險。此保險的用途與以上對于用戶方保險所描述的類似。但是,在這里,成本不是對應(yīng)于信任引擎110認證所產(chǎn)生的高于實際認證信心級別時承擔(dān)的風(fēng)險,相反,保險成本對應(yīng)于銷售者在認證時接受較低信任級別時所承擔(dān)的風(fēng)險。
銷售者不是僅僅降低其實際要求的信任級別,而是可以選擇購買保險,以保護自己以避免承擔(dān)與認證用戶時的較低信任級別相關(guān)聯(lián)的附加風(fēng)險。如上所述,以下將會是有利的銷售者僅在現(xiàn)有認證已高于某個閾值時才考慮購買這種保險來覆蓋信任差距。
這種銷售者方保險的可用性允許了銷售者選擇直接降低其信任要求,這樣他沒有附加成本,自己承擔(dān)虛假認證的風(fēng)險(基于所要求的較低的信任級別);或者為認證信心級別和其要求之間的信任差距購買保險,這樣信任引擎110操作者承擔(dān)所提供的較低的信心級別的風(fēng)險。通過購買保險,銷售者實際上保持了他的高信任級別要求;因為虛擬認證的風(fēng)險被轉(zhuǎn)移到了信任引擎110操作者。
如果在步驟1840中銷售者購買了保險,則在步驟1730中認證信心級別和所要求的信任級別被比較(見圖17),并且過程繼續(xù)下去如上所述。
注意,還可能用戶和銷售者都對來自信任引擎110的消息做出響應(yīng)。本領(lǐng)域的技術(shù)人員將會有多種處理這種情形的方式。一種有利地處理可能的多個響應(yīng)的模式是就簡單地以先到先服務(wù)的方式來對待響應(yīng)。例如,如果銷售者以降低的要求信任級別做出響應(yīng),并且緊隨這之后用戶也購買了保險以提升其認證級別,則首先基于來自銷售者的降低的信任要求來重新評估認證。如果現(xiàn)在認證是肯定的,則用戶的保險購買被忽略。在另一種有利的操作模式中,可以只向用戶收取符合銷售者的新的降低后的信任要求所需的保險級別的費用(如果即使是在銷售者信任要求降低的情況下仍存在信任差距的話)。
如果在為認證設(shè)置的時間限制內(nèi),在步驟1850處的信任仲裁過程期間未接收到來自任一方的響應(yīng),則在步驟1805中仲裁被重新評估。這實際上是再次開始了仲裁過程。如果在步驟1805中,時間限制是最終的時間限制,或者其他環(huán)境阻止了進一步仲裁,則否定認證在步驟1810中被事務(wù)引擎205生成,并且在步驟1055中被返回到銷售者(見圖10)。如果否的話,則新的消息可被發(fā)送到用戶和銷售者,并且過程可根據(jù)需要被重復(fù)。
注意對于某些類型的事務(wù),例如以數(shù)字方式簽署不是事務(wù)的一部分的文檔,則不一定有銷售者或其他第三方;因此事務(wù)可能主要是在用戶和信任引擎110之間。在這種情況下,信任引擎110將會擁有其自己的要求信任級別,要生成肯定認證必須滿足此級別。但是,在這種情況下,通常不希望信任引擎110向用戶提供保險以便其能提升其自己的簽名的信任度。
上文中所描述的并且在圖16-18中示出的過程可利用上文中參考信任引擎110所描述的各種通信模式來實現(xiàn)。例如,消息可以是基于web的,并且是用信任引擎110和實時下載到運行在用戶或銷售者系統(tǒng)上的瀏覽器上的小應(yīng)用程序之間的SSL連接來發(fā)送的。在備選操作模式中,用戶和銷售者可使用某些專用應(yīng)用,這些專用應(yīng)用輔助這種仲裁和保險事務(wù)。在另一種備選操作模式中,安全電子郵件操作可用于調(diào)解上述仲裁,從而允許對認證的推遲評估和批處理。本領(lǐng)域的技術(shù)人員將會意識到可使用適合于環(huán)境和銷售者的認證要求的不同通信模式。
以下參考圖19進行的說明描述了集成了如上所述的本發(fā)明的各種方面的示例性事務(wù)。此示例示出了用戶和銷售者之間的由信任引擎110所調(diào)解的整個過程。雖然上文中詳細描述的各種步驟和組件可用于實現(xiàn)以下事務(wù),但是所示出的過程集中于信任引擎110、用戶和銷售者之間的交互。
在步驟1900中,當(dāng)用戶在在線查看網(wǎng)頁的同時填寫來自銷售者的網(wǎng)站的訂單表時,事務(wù)開始。用戶希望把這個用他的數(shù)字簽名簽署的訂單表提交給銷售者。為了完成這一點,在步驟1905中,用戶向信任引擎110提交訂單表以及他對簽名的請求。用戶還可提供認證數(shù)據(jù),該認證數(shù)據(jù)如上所述可用于認證他的身份。
在步驟1910中,如上所述,認證數(shù)據(jù)被信任引擎110與注冊數(shù)據(jù)相比較,并且如果產(chǎn)生肯定認證,則以用戶私鑰簽署的訂單表的散列和訂單表本身一起被轉(zhuǎn)發(fā)到銷售者。
在步驟1915中,銷售者接收到被簽署的表,然后在步驟1920中,銷售者將會生成與要進行的購買相關(guān)的發(fā)票或其他合同。在步驟1925中,此合同和對于簽名的請求一起被發(fā)送回用戶。在步驟1930中,銷售者還向信任引擎110發(fā)送對于此合同事務(wù)的認證請求,其中包括將會被雙方簽署的合同的散列。為了允許合同被雙方以數(shù)字形式簽署,銷售者還包括它自己的認證數(shù)據(jù),以便如果必要的話,合同上的銷售者簽名稍后可被驗證。
如上所述,信任引擎110然后驗證銷售者提供的認證數(shù)據(jù),以確認銷售者的身份,并且如果在步驟1935中數(shù)據(jù)產(chǎn)生肯定認證,則繼續(xù)進行步驟1955,此時從用戶接收到數(shù)據(jù)。如果銷售者的認證數(shù)據(jù)未與銷售者的注冊數(shù)據(jù)匹配到所需程度,則請求進一步認證的消息被返回到銷售者。如果必要的話,如上所述,在此處可執(zhí)行信任仲裁,以便銷售者能成功地向信任引擎110認證其自己。
當(dāng)在步驟1940中用戶接收到合同時,他審閱合同,如果合同可接受的話則在步驟1945中生成認證數(shù)據(jù)以簽署合同,然后在步驟1950中將合同的散列以及他的認證數(shù)據(jù)發(fā)送到信任引擎110。在步驟1955中,信任引擎110驗證認證數(shù)據(jù),并且如果認證良好,則繼續(xù)進行到處理合同,如上所述。正如以上參考圖17和18所論述的,適當(dāng)時可執(zhí)行信任仲裁,以閉合存在于認證信心級別和對于事務(wù)所要求的認證級別之間的任何信任差距。
在步驟1960中,信任引擎110利用用戶私鑰簽署合同的散列,并將此簽署后的散列發(fā)送回銷售者,從而代表它自己簽署整個消息,即包括以信任引擎110的私鑰510加密的整個消息(包括用戶的簽名)的散列。在步驟1965中,此消息被銷售者接收到。消息代表來自信任引擎110的已簽署的合同(利用用戶私鑰加密的合同散列)以及收據(jù)(消息的散列包括利用信任引擎110的私鑰加密的已簽署的合同)。
在步驟1970中,信任引擎110類似地利用銷售者的私鑰準(zhǔn)備合同的散列,并且將已由信任引擎110簽署的這個合同散列轉(zhuǎn)發(fā)給用戶。通過這種方式,在步驟1975中,用戶也接收到由銷售者簽署的合同復(fù)本,以及由信任引擎110簽署的關(guān)于已簽署的合同遞送的收據(jù)。
除了前述以外,本發(fā)明的另一個方面提供了密碼服務(wù)提供者模塊(SPM),它可被客戶端側(cè)應(yīng)用用作訪問上述由信任引擎110所提供的功能的裝置。一種有利的提供這種密碼SPM的服務(wù)的方式是轉(zhuǎn)接第三方應(yīng)用編程接口(API)和可經(jīng)由網(wǎng)絡(luò)或其他遠程連接訪問的信任引擎110之間的通信。示例性的密碼SPM在下文中參考圖20描述。
例如,在典型系統(tǒng)上,程序員可獲得多個API。每個API提供一個功能調(diào)用集合,該功能調(diào)用可由運行在系統(tǒng)上的應(yīng)用2000進行。提供適用于密碼功能、認證功能和其他安全性功能的編程接口的API的示例包括由Microsoft與其Windows操作系統(tǒng)一起提供的密碼API(CAPI)2010,以及由IBM、Intel和開放群組的其他成員贊助的公共數(shù)據(jù)安全體系結(jié)構(gòu)(CDSA)。在以下論述中,CAPI將會被用作典型安全性API。但是,所描述的密碼SPM可以與CDSA或現(xiàn)有技術(shù)已知的其他安全性API一起使用。
當(dāng)對密碼功能進行調(diào)用時,此API被用戶系統(tǒng)105或銷售者系統(tǒng)120所使用。這些功能中可以包括與執(zhí)行各種密碼操作相關(guān)聯(lián)的請求,所述密碼操作例如是利用特定鑰匙加密文檔、簽署文檔、請求數(shù)字證書、驗證已簽署的文檔上的簽名以及這里所描述的或本領(lǐng)域的技術(shù)人員已知的其他這種密碼功能。
這種密碼功能通常是在CAPI 2010所位于的系統(tǒng)上本地執(zhí)行的。這是因為一般被調(diào)用的功能要求使用本地用戶系統(tǒng)105的資源,例如指紋讀取器,或者使用利用在本地機上執(zhí)行的庫來編程的軟件功能。對于這些本地資源的訪問通常是由上文提到的一個或多個服務(wù)提供者模塊(SPM)2015、2020來提供的,這些模塊提供被用來實現(xiàn)密碼功能的資源。這種SPM可包括用于執(zhí)行加密或解密操作的軟件庫2015,或者能夠訪問專用硬件2025的驅(qū)動器和應(yīng)用2020,所述專用硬件2025例如是生物特征量度掃描設(shè)備。以與CAPI 2010提供可由系統(tǒng)105的應(yīng)用2000所使用的功能類似的方式,SPM 2015、2020向CAPI提供對較低級別的功能以及與系統(tǒng)上可用的服務(wù)相關(guān)聯(lián)的資源的訪問。
根據(jù)本發(fā)明,可以提供密碼SPM 2030,該密碼SPM 2030能夠訪問信任引擎110提供的密碼功能,并通過CAPI 2010使這些功能可供應(yīng)用2000所用。與CAPI 2020只能夠通過SPM 2015、2020訪問本地可用的資源的實施例不同,此處所描述的密碼SPM 2030將會能夠向位于遠程的、可經(jīng)由網(wǎng)絡(luò)訪問的信任引擎110提交對于密碼操作的請求,以便執(zhí)行所需操作。
例如,如果應(yīng)用2000需要密碼操作,例如簽署文檔,則應(yīng)用2000做出對適當(dāng)?shù)腃API 2010功能的功能調(diào)用。CAPI 2010依次執(zhí)行此功能,利用通過SPM 2015、2020和密碼SPM 2030而變得可供它所用的資源。在數(shù)字簽名功能的情況下,密碼SPM 2030將會生成適當(dāng)?shù)恼埱螅撜埱髮?jīng)由通信鏈路125被發(fā)送到信任引擎110。
在密碼SPM 2030和信任引擎110之間發(fā)生的操作與任何其他系統(tǒng)和信任引擎110之間可能發(fā)生的操作相同。但是,這些功能實際上是通過CAPI 2010而可供用戶系統(tǒng)105所用的,以使得它們看起來是在用戶系統(tǒng)105本身上本地可用的。但是,與普通SPM 2015、2020不同,所述功能在遠程信任引擎110上被實現(xiàn),并且響應(yīng)于適當(dāng)?shù)恼埱?,結(jié)果經(jīng)由通信鏈路125被傳遞到密碼SPM 2030。
此密碼SPM 2030使得多個操作可供用戶系統(tǒng)105或銷售者系統(tǒng)120可用,而這些操作在其他情況下是不可用的。這些功能包括但不限于文檔的加密和解密;數(shù)字證書的發(fā)布;文檔的數(shù)字簽署;數(shù)字簽名的驗證以及對于本領(lǐng)域的技術(shù)人員顯而易見的其他這種操作。
在另一個單獨的實施例中,本發(fā)明包括用于對任何數(shù)據(jù)集合執(zhí)行本發(fā)明的數(shù)據(jù)保護方法的完整系統(tǒng)。此實施例的計算機系統(tǒng)包括數(shù)據(jù)分割模塊,該模塊包括圖8所示的、此處所描述的功能。在本發(fā)明的一個實施例中,數(shù)據(jù)分割模塊包括解析器程序或軟件套組,該解析器程序或軟件套組包括數(shù)據(jù)分割、加密和解密、重新構(gòu)成或重新組裝功能。此實施例還可包括一個數(shù)據(jù)存儲設(shè)施或多個數(shù)據(jù)存儲設(shè)施。數(shù)據(jù)分割模塊或解析器包括跨平臺軟件模塊套組,該套組集成在電子基礎(chǔ)設(shè)施內(nèi),或作為任何要求其數(shù)據(jù)元素的根本安全性的應(yīng)用的附件。此解析過程對于任何類型的數(shù)據(jù)集合以及任何和所有文件類型進行操作,或者在數(shù)據(jù)庫中對該數(shù)據(jù)庫中的任何數(shù)據(jù)行、列或單元進行操作。
在一個實施例中,本發(fā)明的解析過程可以以模塊式分層方式來設(shè)計,并且任何加密過程都適用于本發(fā)明的過程中。本發(fā)明的解析過程的模塊式層次可以包括但不限于1)以密碼方式分割,被散布并被安全地存儲在多個位置中;2)加密,以密碼方式分割,被散布并被安全存儲在多個位置中;2)加密,以密碼方式分割,對每一份加密,然后被散布并且被存儲在多個位置中;以及4)加密,以密碼方式分割,利用與第一步驟中使用的不同類型的加密來對每一份加密,然后被散布并被安全地存儲在多個位置中。
在一個實施例中,所述過程包括根據(jù)生成的隨機數(shù)或鑰匙的內(nèi)容來分割數(shù)據(jù),并且對加密分割數(shù)據(jù)時使用的鑰匙進行同樣的密碼分割,所述加密根據(jù)請求者對隱私和安全性的需要,將要保護的數(shù)據(jù)分割成兩部分或更多部分的解析數(shù)據(jù),或者兩份或更多份的解析數(shù)據(jù),對所有部分加密,然后將這些部分分散并存儲回數(shù)據(jù)庫中,或者將它們重新定位到任何指定的固定或可移動設(shè)備,在一個實施例中,優(yōu)選地將要保護的數(shù)據(jù)分割成四部分或更多部分的解析數(shù)據(jù)?;蛘?,在另一個實施例中,加密可能發(fā)生在分割模塊或解析器分割數(shù)據(jù)集合之前。按此實施例中描述的方式被處理的原始數(shù)據(jù)被加密和打亂,并受到保護。如果需要的話,加密后的元素的實際上可以被散布到任何位置,包括但不限于單個服務(wù)器或數(shù)據(jù)存儲設(shè)備,或者散布在獨立數(shù)據(jù)存儲設(shè)施或設(shè)備之中。加密鑰匙管理在一個實施例中可以被包括在軟件套組中,或者在另一個實施例中可以被集成到現(xiàn)有基礎(chǔ)設(shè)施或任何其他所需要位置中。
以密碼方式進行的分割(密碼分割)將數(shù)據(jù)劃分成N份。劃分可以在任何大小的數(shù)據(jù)單元上進行,所述數(shù)據(jù)單元包括單個比特、多個比特、字節(jié)、千字節(jié)、兆字節(jié)或更大的單元,以及不論是預(yù)定的還是隨機生成的數(shù)據(jù)單元大小的任何樣式或組合?;陔S機或預(yù)定的值集合,單元也可具有不同大小。這意味著數(shù)據(jù)可以被看成是這些單元的序列。通過這種方式,數(shù)據(jù)單元本身的大小可以使數(shù)據(jù)更安全,例如是通過使用一個或多個預(yù)定的或隨機生成的數(shù)據(jù)單元大小樣式、序列或組合。然后單元被分布(或者是隨機的,或者按照預(yù)定值集合)到N份中。分布還可涉及打亂這些份中的單元的順序。本領(lǐng)域的普通技術(shù)人員易于看出,可以根據(jù)多種可能的選擇來執(zhí)行將數(shù)據(jù)單元分布到多份中,所述選擇包括但不限于預(yù)定大小,或預(yù)定的或隨機生成的數(shù)據(jù)單元大小的一個或多個組合、樣式或序列。
這個以密碼方式進行的分割過程、或者密碼分割的一個示例將會是考慮大小為23字節(jié)的數(shù)據(jù),其中數(shù)據(jù)單元大小被選擇為1字節(jié),份數(shù)被選擇為4。每個字節(jié)將會被分布到4份中的1份。假設(shè)是隨機分布,則將會獲得鑰匙以創(chuàng)建23個隨機數(shù)(r1、r2、r3至r23)的序列,每個隨機數(shù)的值在1到4之間,與四份相對應(yīng)。數(shù)據(jù)單元(在此示例中是數(shù)據(jù)的23個字節(jié))中的每一個與對應(yīng)于四份之一的23個隨機數(shù)之一相關(guān)聯(lián)。將數(shù)據(jù)的字節(jié)分布到四份中將會通過以下方式來發(fā)生、將數(shù)據(jù)的第一字節(jié)放置到第r1份中,將第二字節(jié)放置到第r2份中,將第三字節(jié)放置到第r3份中,一直到將數(shù)字的第23個字節(jié)放置到第r23份中。本領(lǐng)域的普通技術(shù)人員易于看出,多種其他可能的步驟或步驟組合或序列,包括數(shù)據(jù)單元的大小,可被用于本發(fā)明的密碼分割過程中,并且上述示例是密碼分割數(shù)據(jù)的一個過程的非限制性描述。為了創(chuàng)建原始數(shù)據(jù),將會執(zhí)行逆向操作。
在本發(fā)明的密碼分割過程的另一個實施例中,密碼分割過程的一個選項是在份中提供足夠的冗余性,以便要想將數(shù)據(jù)重新組裝或恢復(fù)到其原始或可用形式則只需要這些份的子集。作為非限制性示例,密碼分割可以被完成為“4中取3(3 of 4)”型密碼分割,以使得要將數(shù)據(jù)重新組裝或恢復(fù)到其原始或可用形式只需要四份中的三份。這也被稱為“N中取M密碼分割”,其中N是總份數(shù),M至少比N小1。本領(lǐng)域的普通技術(shù)人員易于看出,在本發(fā)明的密碼過程中,對于產(chǎn)生這種冗余性,有許多可能方式。
在本發(fā)明的密碼分割過程的一個實施例中,每個數(shù)據(jù)單元被存儲在兩份中,即主份和備用份中。利用上述“4中取3”密碼分割過程,可以缺少任何一份,而這對于重新組裝或恢復(fù)原始數(shù)據(jù)而不缺少數(shù)據(jù)單元來說已經(jīng)足夠了,這是因為只需要總共四份中的三份。如此處所述,生成與這些份之一相對應(yīng)的隨機數(shù)?;阼€匙使隨機數(shù)與數(shù)據(jù)單元相關(guān)聯(lián)并將其存儲在相應(yīng)份中。在此實施例中,使用了一個鑰匙來生成主份隨機數(shù)和備用份隨機數(shù)。正如這里針對本發(fā)明的密碼分割過程所描述的,生成與數(shù)據(jù)單元的數(shù)目相等的從0到3的隨機數(shù)(也稱為主份數(shù)字)集合。然后生成與數(shù)據(jù)單元的數(shù)目相等的從1到3的隨機數(shù)(也稱為備用份數(shù)字)的另一個集合?;蛘撸缮缮儆跀?shù)據(jù)單元數(shù)目的隨機數(shù)集合,并且重復(fù)隨機數(shù)集合,但是這可能會降低敏感數(shù)據(jù)的安全性。主份數(shù)字被用于確定將數(shù)據(jù)單元存儲到哪一份中。備用份數(shù)字與主份數(shù)字相結(jié)合,以產(chǎn)生0到3之間的第三份數(shù)字,并且此數(shù)字被用于確定將數(shù)據(jù)單元存儲到哪一份中。在此示例中,確定第三份數(shù)字的方程是(主份數(shù)字+備用份數(shù)字)MOD 4=第三份數(shù)字在上述實施例中,主份數(shù)字在0到3之間,備用份數(shù)字在1到3之間,確保了第三份數(shù)字與主份數(shù)字不同。這使得數(shù)據(jù)單元被存儲到兩個不同份中。本領(lǐng)域的普通技術(shù)人員易于看出,除了此處公開的實施例外,還有許多其他方法來執(zhí)行冗余密碼分割和非冗余密碼分割。例如,可以用不同算法來打亂每一份中的數(shù)據(jù)單元。這種數(shù)據(jù)單元打亂例如可以在原始數(shù)據(jù)被分割成數(shù)據(jù)單元時執(zhí)行,或者在數(shù)據(jù)單元被放置到份中之后執(zhí)行,或者在份滿之后執(zhí)行。
此處描述的各種密碼分割過程和數(shù)據(jù)打亂過程,以及本發(fā)明的密碼分割和數(shù)據(jù)打亂方法的所有其他實施例,都可以在任何大小的數(shù)據(jù)單元上執(zhí)行,包括但不限于小到單個比特、多個比特、字節(jié)、千字節(jié)、兆字節(jié)或更大。
將會執(zhí)行此處所描述的密碼分割過程的源代碼的一個實施例的示例是DATA[124]一具有要分割的數(shù)據(jù)的字節(jié)陣列SHARES
-2維陣列,其中每行代表一份
RANDOM[124]-0..3范圍內(nèi)的陣列隨機數(shù)S1=1;S2=1;S3=1;S4=1;For J=1 to 24 doBeginIF RANDOM[J[==0 thenBeginSHARES[1,S1]=DATA[J];S1=S1+1;EndELSE IF RANDOM[J[==1thenBeginSHARES[2,S2]=DATA[J];S2=S2+1;EndELSE IF RANDOM[J[==2thenBeginSHARES[3,S3]=DATA[J];S3=S3+1;EndElse beginSHARES[4,S4]=DATA[J];S4=S4+1;EndEND;將會執(zhí)行此處描述的密碼分割RAID過程的源代碼的一個實施例的示例是生成兩個數(shù)字集合,PrimaryShare為0到3,BackupShare為1到3。然后利用與上述密碼分割相同的過程,將每個數(shù)據(jù)單元放到share[primaryshare[1]]和share[(primaryshare[1]+backupshare[1])mod 4]中。此方法可以被縮放到任何大小N,其中要恢復(fù)數(shù)據(jù)只需要N-1份。
加密后的數(shù)據(jù)元素的檢索、重新組合、重新組裝或重新構(gòu)成可利用任意多種認證技術(shù),包括但不限于生物特征量度,例如指紋識別、面部掃描、手部掃描、虹膜掃描、視網(wǎng)膜掃描、耳部掃描、血管樣式識別或DNA分析。本發(fā)明的數(shù)據(jù)分割或解析器模塊可根據(jù)需要被集成到多種基礎(chǔ)設(shè)施產(chǎn)品或應(yīng)用中。
本領(lǐng)域中已知的傳統(tǒng)加密技術(shù)依賴于用于加密數(shù)據(jù)的一個或多個鑰匙并且如果沒有鑰匙的話則數(shù)據(jù)不可用。但是,數(shù)據(jù)保持完整無損,并且易遭受攻擊。在一個實施例中,本發(fā)明的解析器軟件套組通過以下方法來針對解決此問題將加密后的文件分割或解析成兩部分或更多部分或者兩份或更多份來針對解決此問題(在另一個實施例中優(yōu)選為四份或更多份),向每份數(shù)據(jù)添加另一層加密,然后將這些份存儲在不同物理和/或邏輯位置中。當(dāng)通過使用諸如數(shù)據(jù)存儲設(shè)備這樣的可移動設(shè)備、或通過將數(shù)據(jù)份置于另一方的控制之下來從系統(tǒng)中物理地移除一個或多個數(shù)據(jù)份時,則有效地去除了危害受保護數(shù)據(jù)的任何可能性。
本發(fā)明的解析器軟件套組的一個實施例的示例以及關(guān)于如何使用該套組的示例在圖21中示出,并在下文中描述。但是,本領(lǐng)域的普通技術(shù)人員易于看出,除了以下的非限制性示例外,還可用多種其他方式來利用本發(fā)明的解析器軟件套組。作為一種部署選項,在一個實施例中,可以用外部會話鑰匙管理或會話鑰匙的安全內(nèi)部存儲來實現(xiàn)解析器。在實現(xiàn)時,將會生成解析器主鑰(Parser Master Key),該解析器主鑰將會被用于保護應(yīng)用和加密目的。還應(yīng)當(dāng)注意,在產(chǎn)生的受保護數(shù)據(jù)中結(jié)合解析器主鑰允許了工作組、企業(yè)或擴展聽眾內(nèi)的個人共享受保護數(shù)據(jù)的靈活性。
如圖21所示,本發(fā)明的此實施例示出了解析器軟件套組在數(shù)據(jù)上執(zhí)行的以將會話主鑰與解析后的數(shù)據(jù)存儲在一起的過程的步驟1.生成會話主鑰并利用RS1流密碼來加密數(shù)據(jù)。
2.根據(jù)會話主鑰的樣式將產(chǎn)生的加密后的數(shù)據(jù)分割成四份解析數(shù)據(jù)或四部分解析數(shù)據(jù)。
3.在本發(fā)明的此實施例中,會話主鑰將與受保護的數(shù)據(jù)份一起被存儲在數(shù)據(jù)倉庫中。根據(jù)解析器主鑰的樣式分離會話主鑰,并將密鑰數(shù)據(jù)附加到經(jīng)加密的解析數(shù)據(jù)。
4.產(chǎn)生的四份數(shù)據(jù)將會包含原始數(shù)據(jù)的加密部分以及會話主鑰的部分。為四個數(shù)據(jù)份中的每一份生成流密鑰。
5.對每份加密,然后將加密鑰匙存儲在與加密數(shù)據(jù)部分或數(shù)據(jù)份不同的位置中第1份獲得鑰匙4,第2份獲得鑰匙1,第3份獲得鑰匙2,第4份獲得鑰匙3。
要恢復(fù)原始數(shù)據(jù)格式,則逆轉(zhuǎn)以上步驟。
本領(lǐng)域的普通技術(shù)人員易于看出,此處所描述的方法的某些步驟可以根據(jù)需要以不同順序來執(zhí)行,或者被重復(fù)多次。本領(lǐng)域的普通技術(shù)人員還易于看出,可以按不同方式來處理數(shù)據(jù)的部分。例如,可以僅對解析后的數(shù)據(jù)的一份執(zhí)行多個解析步驟??梢砸运枰姆绞轿ㄒ坏乇Wo解析后的數(shù)據(jù)的每個部分,只要數(shù)據(jù)可以被重新組裝、重新構(gòu)成、重新形成、解密或恢復(fù)到其原始形式或其他可用形式即可。
如圖22所示及此處所述,本發(fā)明的另一個實施例包括解析器軟件套組在數(shù)據(jù)上執(zhí)行的以將會話主鑰存儲在一個或多個單獨的鑰匙管理表中的過程的步驟1.生成會話主鑰并利用RS1流密碼來加密數(shù)據(jù)。
2.根據(jù)會話主鑰的樣式將產(chǎn)生的加密后的數(shù)據(jù)分割成四份解析數(shù)據(jù)或四部分解析數(shù)據(jù)。
3.在本發(fā)明的此方法實施例中,會話主鑰將被存儲在數(shù)據(jù)倉庫中的單獨的鑰匙管理表中。為此事務(wù)生成唯一的事務(wù)ID。將事務(wù)ID和會話主鑰存儲在單獨的鑰匙管理表中。根據(jù)解析器主鑰的樣式分離事務(wù)ID,并將數(shù)據(jù)附加到經(jīng)加密的解析數(shù)據(jù)或分離后的數(shù)據(jù)。
4.產(chǎn)生的四份數(shù)據(jù)將會包含原始數(shù)據(jù)的加密部分以及事務(wù)ID的部分。
5.為四個數(shù)據(jù)份中的每一份生成流密鑰。
6.對每份加密,然后將加密鑰匙存儲在與加密數(shù)據(jù)部分或數(shù)據(jù)份不同的位置中第1份獲得鑰匙4,第2份獲得鑰匙1,第3份獲得鑰匙2,第4份獲得鑰匙3。
要恢復(fù)原始數(shù)據(jù)格式,則逆轉(zhuǎn)以上步驟。
本領(lǐng)域的普通技術(shù)人員易于看出,此處所描述的方法的某些步驟可以根據(jù)需要以不同順序來執(zhí)行,或者被重復(fù)多次。本領(lǐng)域的普通技術(shù)人員還易于看出,可以按不同方式來處理數(shù)據(jù)的部分。例如,可以僅對解析后的數(shù)據(jù)的一份執(zhí)行多個單獨步驟或解析步驟。可以以所需要的方式唯一地保護解析后的數(shù)據(jù)的每個部分,只要數(shù)據(jù)可以被重新組裝、重新構(gòu)成、重新形成、解密或恢復(fù)到其原始形式或其他可用形式即可。
如圖23所示,本發(fā)明的這個實施例示出解析器軟件套組在數(shù)據(jù)上執(zhí)行的以將會話主鑰存儲與解析后的數(shù)據(jù)存儲在一起的過程的步驟1.訪問與已認證的用戶相關(guān)聯(lián)的解析器主鑰2.生成唯一會話主鑰3.從解析器主鑰和會話主鑰的異或函數(shù)得出中間鑰4.任選地,利用以中間鑰為鑰匙的現(xiàn)有或新加密算法來加密數(shù)據(jù)。
5.根據(jù)中間鑰的樣式,將產(chǎn)生的任選地加密后的數(shù)據(jù)分離成四份解析數(shù)據(jù)或四部分解析數(shù)據(jù)。
6.在本方法的此實施例中,會話主鑰將與受保護的數(shù)據(jù)份一起被存儲在數(shù)據(jù)倉庫中。根據(jù)解析器主鑰的樣式分離會話主鑰,并將鑰匙數(shù)據(jù)附加到經(jīng)任選地加密的解析數(shù)據(jù)份。
7.產(chǎn)生的多份數(shù)據(jù)將會包含原始數(shù)據(jù)的經(jīng)任選加密的部分以及會話主鑰的部分。
8.任選地,為四個數(shù)據(jù)份中的每一份生成加密鑰匙。
9.任選地,利用現(xiàn)有的或新的加密算法對每一份加密,然后將加密鑰匙存儲在與加密數(shù)據(jù)部分或數(shù)據(jù)份不同的位置中例如,第1份獲得鑰匙4,第2份獲得鑰匙1,第3份獲得鑰匙2,第4份獲得鑰匙3。
要恢復(fù)原始數(shù)據(jù)格式,則逆轉(zhuǎn)以上步驟。
本領(lǐng)域的普通技術(shù)人員易于看出,此處所描述的方法的某些步驟可以根據(jù)需要以不同順序來執(zhí)行,或者被重復(fù)多次。本領(lǐng)域的普通技術(shù)人員還易于看出,可以按不同方式來處理數(shù)據(jù)的部分。例如,可以僅對解析后的數(shù)據(jù)的一份執(zhí)行多個單獨步驟或解析步驟??梢砸运枰姆绞轿ㄒ坏乇Wo解析后的數(shù)據(jù)的每個部分,只要數(shù)據(jù)可以被重新組裝、重新構(gòu)成、重新形成、解密或恢復(fù)到其原始形式或其他可用形式即可。
如圖24所示及此處所述,本發(fā)明的另一個實施例包括解析器軟件套組在數(shù)據(jù)上執(zhí)行的以將會話主鑰存儲在一個或多個單獨的鑰匙管理表中的過程的步驟1.訪問與已認證的用戶相關(guān)聯(lián)的解析器主鑰2.生成唯一會話主鑰3.從解析器主鑰和會話主鑰的異或函數(shù)得出中間鑰4.任選地,利用以中間鑰為鑰匙的現(xiàn)有或新加密算法來加密數(shù)據(jù)。
5.根據(jù)中間鑰的樣式,將產(chǎn)生的任選地加密后的數(shù)據(jù)分離成四份解析數(shù)據(jù)或四部分解析數(shù)據(jù)。
6.在本發(fā)明的此方法實施例中,會話主鑰將會被存儲在數(shù)據(jù)倉庫中的單獨的鑰匙管理表中。為此事務(wù)生成唯一的事務(wù)ID。將事務(wù)ID和會話主鑰存儲在單獨的鑰匙管理表中,或者將會話主鑰和事務(wù)ID傳遞回外部管理的調(diào)用程序。根據(jù)解析器主鑰的樣式分離事務(wù)ID,并將數(shù)據(jù)附加到經(jīng)任選地加密的解析數(shù)據(jù)或分離后的數(shù)據(jù)。
7.產(chǎn)生的多份數(shù)據(jù)將會包含原始數(shù)據(jù)的經(jīng)任選加密的部分以及事務(wù)ID的部分。
8.任選地,為四個數(shù)據(jù)份中的每一份生成加密鑰匙。
9.任選地,對每一份加密,然后將加密鑰匙存儲在與加密后的數(shù)據(jù)部分或數(shù)據(jù)份不同的位置中。例如,第1份獲得鑰匙4,第2份獲得鑰匙1,第3份獲得鑰匙2,第4份獲得鑰匙3。
要恢復(fù)原始數(shù)據(jù)格式,則逆轉(zhuǎn)以上步驟。
本領(lǐng)域的普通技術(shù)人員易于看出,此處所描述的方法的某些步驟可以根據(jù)需要以不同順序來執(zhí)行,或者被重復(fù)多次。本領(lǐng)域的普通技術(shù)人員還易于看出,可以按不同方式來處理數(shù)據(jù)的部分。例如,可以僅對解析后的數(shù)據(jù)的一份執(zhí)行多個單獨步驟或解析步驟??梢砸运枰姆绞轿ㄒ坏乇Wo解析后的數(shù)據(jù)的每個部分,只要數(shù)據(jù)可以被重新組裝、重新構(gòu)成、重新形成、解密或恢復(fù)到其原始形式或其他可用形式即可。
正如本領(lǐng)域的技術(shù)人員易于看出的,有多種加密方法適合用于本發(fā)明的方法中。一次性密碼本(One Time Pad)算法常被看作是最安全的加密方法之一,并且適合用于本發(fā)明的方法中。使用一次性密碼本算法要求只要保護數(shù)據(jù)就生成鑰匙。在某些情況下,使用此方法可能不太符合需要,所述情況例如是由于要保護的數(shù)據(jù)的大小而導(dǎo)致生成和管理非常長的鑰匙的情況。在一次性密碼本(OTP)算法中,使用簡單的異或函數(shù)XOR。對于長度相同的二進制流x和y,x XOR y意味著x和y的按位異或。
在位級別上生成0 XOR 0=00 XOR 1=11 XOR 0=11 XOR 1=0此處針對要分割的n字節(jié)秘密s(或數(shù)據(jù)集合)來描述此過程的示例。該過程將會生成n字節(jié)隨機值a,然后設(shè)置b=a XOR s。
注意可經(jīng)由以下方程得出“s”s=a XOR b。
值a和b被稱為份或部分,并且被放置在分離的倉庫中。一旦將秘密s分割成了兩份或多份,就以安全的方式將其放置。
本發(fā)明的解析器軟件套組可利用此函數(shù),執(zhí)行結(jié)合多個不同的秘密鑰匙值的多個XOR函數(shù),所述多個不同密鑰值是K1、K2、K3、Kn、K5。在操作開始時,經(jīng)由第一加密操作傳遞要保護的數(shù)據(jù),安全數(shù)據(jù)=數(shù)據(jù)XOR秘密鑰匙5S=D XOR K5為了例如以四份S1、S2、S3、Sn安全地存儲產(chǎn)生的加密后數(shù)據(jù),根據(jù)K5的值,數(shù)據(jù)被解析成“n”段或“n”份。此操作產(chǎn)生原始加密數(shù)據(jù)的“n”個偽隨機份。然后可以利用剩余的秘密鑰匙值對每一份執(zhí)行后續(xù)XOR函數(shù),例如安全數(shù)據(jù)段1=加密數(shù)據(jù)份1XOR秘密鑰匙1SD1=S1 XOR K1SD2=S2 XOR K2SD3=S3 XOR K3SDn=Sn XOR Kn。
在一個實施例中,可能不希望任何一個倉庫包含足夠的信息以解密其中保存的信息,因此解密該份所需要的鑰匙被存儲在不同的數(shù)據(jù)倉庫中倉庫1SD1,Kn倉庫2SD2,K1倉庫3SD3,K2倉庫nSDn,K3。
另外,附加到每一份的可以是取回原始會話加密鑰匙K5所需要的信息。因此,在此處所描述的鑰匙管理示例中,原始會話主鑰被事務(wù)ID所引用,該事務(wù)ID根據(jù)取決于安裝的解析器主鑰的內(nèi)容被分割成“n”份(TID1、TID2、TID3、TIDn)倉庫1SD1,Kn,TID1倉庫2SD2,K1,TID2倉庫3SD3,K2,TID3倉庫nSDn,K3,TIDn。
在此處所描述的所結(jié)合的會話鑰匙示例中,會話主鑰根據(jù)取決于安裝的解析器主鑰被分割成“n”份(SK1、SK2、SK3、SKn)倉庫1SD1,Kn,SK1倉庫2SD2,K1,SK2倉庫3SD3,K2,SK3倉庫nSDn,K3,SKn。
根據(jù)此示例,除非取回了所有四份,否則無法重新組裝數(shù)據(jù)。即使捕捉了所有的四份,在不訪問會話主鑰和解析器主鑰的情況下,也不可能重新組裝或恢復(fù)原始信息。
此示例描述了本發(fā)明的方法的一個實施例,并且在另一個實施例中,還描述了用于將份放置在倉庫中以便來自所有倉庫的份可以被組合以形成秘密認證材料的算法。所需要的計算是非常簡單和迅速的。但是,利用一次性密碼本(OTP)算法,可以存在導(dǎo)致它不那么符合需要的情況,例如要保護大數(shù)據(jù)集合的情況,這是因為鑰匙大小與要存儲的數(shù)據(jù)的大小相同。因此,將會需要存儲和發(fā)送原始數(shù)據(jù)的約兩倍的量,這在某些情況下可能是不那么符合需要的。
流密碼RS1流密碼RS1分割技術(shù)與此處描述的OTP分割技術(shù)非常相似。取代n字節(jié)隨機值,一個n’=min(n,16)字節(jié)的隨機值被生成和用于作為RS1流密碼算法的鑰匙。RS1流密碼算法的優(yōu)點是從小得多的種子數(shù)生成偽隨機鑰匙。執(zhí)行RS1流密碼加密的速度也被估計為大概是本領(lǐng)域中公知的三倍DES(Triple DES)加密的速度的10倍,而不會危害安全性。RS1流密碼算法是本領(lǐng)域中公知的,并且可以用于生成XOR函數(shù)中使用的鑰匙。RS1流密碼算法可以與其他商業(yè)上可獲得的流密碼算法協(xié)同工作,并用適用于本發(fā)明的方法中,所述其他商業(yè)上可獲得的流密碼算法例如是RSA Security,Inc的RC4TM流密碼算法。
利用上述鑰匙記號,K1至K5現(xiàn)在是n’字節(jié)隨機值,并且我們設(shè)置SD1=S1 XOR E(K1)SD2=S2 XOR E(K2)SD3=S3 XOR E(K3)SDn=Sn XOR E(Kn)其中E(K1)至E(Kn)是來自由K1至Kn為鑰匙的RS1流密碼算法的輸出的前n’字節(jié)?,F(xiàn)在,如此處所描述的,這些份被放置在數(shù)據(jù)倉庫中。
在此流密碼RS1算法中,所需要的計算幾乎與OPT算法一樣簡單和迅速。這個使用RS1流密碼的示例的優(yōu)點是對于每一份,系統(tǒng)需要存儲和發(fā)送的大小只比要保護的原始數(shù)據(jù)的大小平均約大16字節(jié)。當(dāng)原始數(shù)據(jù)的大小大于16字節(jié)時,此RS1算法比OPT算法更高效,因為它更短。本領(lǐng)域的普通技術(shù)人員易于看出,多種加密方法或算法適合用于本發(fā)明中,包括但不限于RS1、OTP、RC4TM、三倍DES和AES。
比起傳統(tǒng)加密方法來,本發(fā)明的數(shù)據(jù)安全性方法和計算機系統(tǒng)提供了重大優(yōu)點。一個優(yōu)點是由于將數(shù)據(jù)份移動到可能處于不同邏輯、物理或地理位置中的一個或多個數(shù)據(jù)倉庫或存儲設(shè)備上的不同位置而獲得的安全性。例如,當(dāng)數(shù)據(jù)份被物理地分割并且在不同人員的控制之下時,危害到數(shù)據(jù)的可能性大大降低。
本發(fā)明的方法和系統(tǒng)提供的另一個優(yōu)點是組合本發(fā)明的用于保護數(shù)據(jù)的方法的步驟,以提供維護敏感數(shù)據(jù)安全性的綜合過程。數(shù)據(jù)被用安全鑰匙加密,并且根據(jù)安全鑰匙被分割成一份或多份,在一個實施例中是被分割成四份。安全鑰匙與引用指針安全地存儲在一起,該引用指針被根據(jù)安全鑰匙分割成四份。然后數(shù)據(jù)份被獨立加密,并且鑰匙與不同的加密份安全地存儲在一起。當(dāng)被組合時,根據(jù)此處公開的方法的用于保護數(shù)據(jù)的整個過程變成用于數(shù)據(jù)安全性的綜合包。
根據(jù)本發(fā)明的方法來保護的數(shù)據(jù)易于取回和恢復(fù)、重新構(gòu)成、重新組裝、解密或以其他方式返回其原始或其他適合使用的形式。為了恢復(fù)原始數(shù)據(jù),可利用以下項目1.數(shù)據(jù)集合的所有份或部分。
2.關(guān)于再現(xiàn)用于保護數(shù)據(jù)的方法的過程流程的知識,以及再現(xiàn)用于保護數(shù)據(jù)的方法的過程流程的能力。
3.對會話主鑰的訪問權(quán)限4.對解析器主鑰的訪問權(quán)限因此,可能希望計劃一種安全的安裝,其中以上元素中的至少一個可以與系統(tǒng)的其他成分從物理上相分離(例如在不同系統(tǒng)管理員的控制之下)。
可通過使用解析器主鑰,來加強調(diào)用數(shù)據(jù)保護方法應(yīng)用的針對欺詐應(yīng)用的保護。在本發(fā)明的這個實施例中,在采取任何動作之前,可能需要Secure ParserTM和應(yīng)用之間的相互認證握手。
系統(tǒng)的安全性規(guī)定不存在用于重新創(chuàng)建原始數(shù)據(jù)的“后門(backdoor)”方法。對于可能出現(xiàn)數(shù)據(jù)恢復(fù)問題的安裝,可增強SecureParserTM以提供四個份和會話主鑰倉庫的鏡像。在數(shù)據(jù)恢復(fù)計劃設(shè)定中,諸如RAID(冗余廉價磁盤陣列,用于在幾個磁盤上散布信息)這樣的硬件選項以及諸如復(fù)制這樣的軟件選項也能有所幫助。
鑰匙管理在本發(fā)明的一個實施例中,對于一個加密操作,數(shù)據(jù)保護方法使用三個鑰匙集合?;诎惭b,每個鑰匙集合具有各自的鑰匙存儲、檢索、安全性和恢復(fù)選項。可使用的鑰匙包括但不限于1.解析器主鑰此鑰匙是與數(shù)據(jù)解析器的安裝相關(guān)聯(lián)的個體鑰匙。它被安裝在部署所述解析器的服務(wù)器上。存在多種適用于保護此鑰匙的選項,例如包括但不限于智能卡、單獨硬件鑰匙存儲、標(biāo)準(zhǔn)鑰匙存儲、定制鑰匙存儲或存儲在受保護的數(shù)據(jù)表內(nèi)。
2.會話主鑰每次保護數(shù)據(jù)時可生成會話主鑰。會話主鑰被用于在解析操作之前對數(shù)據(jù)進行加密。它還可以被結(jié)合成為解析加密數(shù)據(jù)的手段(如果會話主鑰未被結(jié)合到解析數(shù)據(jù)中的話)。可以用多種方式來保護會話主鑰,例如包括但不限于標(biāo)準(zhǔn)鑰匙存儲、定制鑰匙存儲、單獨數(shù)據(jù)庫表或被保護在加密后的份內(nèi)。
3.份加密鑰匙對于創(chuàng)建的數(shù)據(jù)集合的每一份或每個部分,可生成各自的份加密鑰匙,以進一步對這些份進行加密。份加密鑰匙可以被存儲在與被加密的份不同的份中。
本領(lǐng)域的普通技術(shù)人員易于看出,本發(fā)明的數(shù)據(jù)保護方法和計算機系統(tǒng)可廣泛應(yīng)用于任何設(shè)置或環(huán)境中的任何類型的數(shù)據(jù)。除了在因特網(wǎng)上或顧客和銷售者之間進行的商業(yè)應(yīng)用外,本發(fā)明的數(shù)據(jù)保護方法和計算機系統(tǒng)還高度適用于非商業(yè)或私用設(shè)置或環(huán)境??梢杂么颂幟枋龅姆椒ê拖到y(tǒng)來保護需要被保護以免被未經(jīng)授權(quán)的用戶所危害的任何數(shù)據(jù)集合。例如,通過采用本發(fā)明的用于保護數(shù)據(jù)的方法和系統(tǒng),可將對公司或組織內(nèi)的特定數(shù)據(jù)庫的訪問僅限于被選中的用戶。另一個示例是文檔的生成、修改或訪問,其中需要限制選中的個體、計算機或工作站的群組之外的訪問或防止未經(jīng)授權(quán)的或意外的訪問或公開。本發(fā)明的數(shù)據(jù)保護方法和系統(tǒng)的方式的這些和其他示例適用于任何非商業(yè)或商業(yè)環(huán)境或設(shè)置,包括但不限于任何組織、政府機構(gòu)或公司。
在本發(fā)明的另一個實施例中,對于一個加密操作,數(shù)據(jù)保護方法使用三個鑰匙集合?;诎惭b,每個鑰匙集合具有各自的鑰匙存儲、檢索、安全性和恢復(fù)選項??墒褂玫蔫€匙包括但不限于1.解析器主鑰此鑰匙是與數(shù)據(jù)解析器的安裝相關(guān)聯(lián)的個體鑰匙。它被安裝在部署所述解析器的服務(wù)器上。存在多種適用于保護此鑰匙的選項,例如包括但不限于智能卡、單獨硬件鑰匙存儲、標(biāo)準(zhǔn)鑰匙存儲、定制鑰匙存儲或存儲在受保護的數(shù)據(jù)表內(nèi)。
2.會話主鑰每次保護數(shù)據(jù)時可生成會話主鑰。會話主鑰被用于結(jié)合解析器主鑰得出中間鑰??梢杂枚喾N方式來保護會話主鑰,例如包括但不限于標(biāo)準(zhǔn)鑰匙存儲、定制鑰匙存儲、單獨數(shù)據(jù)庫表或被保護在加密后的份內(nèi)。
3.中間鑰每次保護數(shù)據(jù)時可生成中間鑰。中間鑰被用于在解析操作之前對數(shù)據(jù)進行加密。它還可以被結(jié)合成為解析加密數(shù)據(jù)的手段。
4.份加密鑰匙對于創(chuàng)建的數(shù)據(jù)集合的每一份或每個部分,可生成各自的份加密鑰匙,以進一步對這些份進行加密。份加密鑰匙可以被存儲在與被加密的份不同的份中。
本領(lǐng)域的普通技術(shù)人員易于看出,本發(fā)明的數(shù)據(jù)保護方法和計算機系統(tǒng)可廣泛應(yīng)用于任何設(shè)置或環(huán)境中的任何類型的數(shù)據(jù)。除了在因特網(wǎng)上或顧客和銷售者之間進行的商業(yè)應(yīng)用外,本發(fā)明的數(shù)據(jù)保護方法和計算機系統(tǒng)還高度適用于非商業(yè)或私用設(shè)置或環(huán)境??梢杂么颂幟枋龅姆椒ê拖到y(tǒng)來保護需要被保護以免被未經(jīng)授權(quán)的用戶所危害的任何數(shù)據(jù)集合。例如,通過采用本發(fā)明的用于保護數(shù)據(jù)的方法和系統(tǒng),可將對公司或組織內(nèi)的特定數(shù)據(jù)庫的訪問僅限于被選中的用戶。另一個示例是文檔的生成、修改或訪問,其中需要限制選中的個體、計算機或工作站的群組之外的訪問或防止未經(jīng)授權(quán)的或意外的訪問或公開。本發(fā)明的數(shù)據(jù)保護方法和系統(tǒng)的方式的這些和其他示例適用于任何非商業(yè)或商業(yè)環(huán)境或設(shè)置,包括但不限于任何組織、政府機構(gòu)或公司。
工作組、項目、個體PC/筆記本電腦或交叉平臺數(shù)據(jù)安全性本發(fā)明的數(shù)據(jù)保護方法和計算機系統(tǒng)也可用于保護工作組、項目、個體PC/筆記本和任何其他平臺產(chǎn)生數(shù)據(jù),這些工作組、項目、個體PC/筆記本和任何其他平臺例如被用于商行、工作站、政府機構(gòu)或產(chǎn)生、處理或存儲敏感數(shù)據(jù)的任何設(shè)置。本發(fā)明提供了用于保護已知被諸如美國政府這樣的組織所尋求的數(shù)據(jù)的方法和計算機系統(tǒng),以便在整個政府組織上實現(xiàn)或在國家或聯(lián)邦級別上在政府間實現(xiàn)。
本發(fā)明的數(shù)據(jù)保護方法和計算機系統(tǒng)不僅提供了解析平面文本的能力,還提供了解析任何類型的數(shù)據(jù)字段、集合和/或表的能力。此外,在此過程下,能夠保護任何形式的數(shù)據(jù),包括但不限于文本、視頻、圖像、生物特征量度和語音數(shù)據(jù)。本發(fā)明的保護數(shù)據(jù)的方法的可縮放性、速度和數(shù)據(jù)吞量只受用戶可使用的硬件所限。
在本發(fā)明的一個實施例中,如下所述,數(shù)據(jù)保護方法被用于工作組環(huán)境中。在一個實施例中,如圖23所示和如下所述,本發(fā)明的工作組規(guī)模(Workgroup Scale)數(shù)據(jù)保護方法使用TrustEngine的私鑰管理功能來存儲用戶/群組關(guān)系以及用戶群組共享安全數(shù)據(jù)所必需的相關(guān)聯(lián)的私鑰(解析器群組主鑰)。根據(jù)解析器主鑰的部署方式,本發(fā)明的方法能夠為企業(yè)、工作組或個體用戶保護數(shù)據(jù)。
在一個實施例中,可提供附加鑰匙管理和用戶/群組管理程序,以使得利用單點管理和鑰匙管理來實現(xiàn)大規(guī)模工作組。鑰匙生成、管理和撤回由單個維護程序所處理,隨著用戶數(shù)目增大,這些都變得尤其重要。在另一個實施例中,也可跨一個或幾個不同系統(tǒng)管理員建立鑰匙管理,根據(jù)需要,這樣做可能不允許任何一個個人或群組控制數(shù)據(jù)。這允許了根據(jù)組織定義的角色、職責(zé)、成員身份、權(quán)利等等來管理受保護的數(shù)據(jù),并且對受保護數(shù)據(jù)的訪問可僅限于被允許或要求僅能訪問它們正在工作的那部分的那些人,而其他人,例如管理員或主管人員可以擁有對所有受保護數(shù)據(jù)的訪問權(quán)限。此實施例允許了在公司或組織內(nèi)的不同群組間共享受保護數(shù)據(jù),同時只允許某些選中的個體,例如具有授權(quán)和預(yù)定的角色和職責(zé)的個體從整體上察看數(shù)據(jù)。此外,本發(fā)明的此實施例和本發(fā)明的系統(tǒng)還允許了在如下組織之間共享數(shù)據(jù)這些組織例如是要求某種共享但不是任何一方都被允許訪問所有數(shù)據(jù)的單獨的公司、或單獨的公司部分或分部、或任何政府或組織的任何單獨的組織部門、群組、機構(gòu)或辦事處,或任何類型的任何單獨的組織部門、群組、機構(gòu)或辦事處。對本發(fā)明的這種方法和系統(tǒng)的需求和利用的特別明顯的示例例如是用于允許在政府區(qū)域、機構(gòu)和辦事處之間以及大公司的不同分部、部分或辦事處之間或任何其他組織之間進行共享,但保持安全性。
本發(fā)明的方法對于較小的規(guī)模的實用性的示例如下。解析器主鑰被用作對于組織的解析器連載(serialization)或標(biāo)記(branding)。由于使用解析器主鑰的規(guī)模從整個企業(yè)減小到了較小的工作組,因此此處所描述的數(shù)據(jù)保護方法被用于在用戶群組內(nèi)共享文件。
在圖25所示以及下文所述的示例中,定義了六個用戶以及他們在組織內(nèi)的頭銜或角色。側(cè)邊條代表用戶根據(jù)其角色可能屬于的五個群組。箭頭代表用戶在一個或多個群組中的成員身份。
當(dāng)配置SecureParser以用于此示例中時,系統(tǒng)管理員通過維護程序訪問來自操作系統(tǒng)的用戶和群組信息。此維護程序基于用戶在群組中的成員身份向用戶生成和分配解析器群組主鑰。
在此示例中,在高級職員群組中有三個成員。對于此群組,動作將會是1.訪問高級職員群組的解析器群組主鑰(如果鑰匙不可用則生成鑰匙);2.生成將CEO與高級成員群組關(guān)聯(lián)起來的數(shù)字證書;3.生成將CFO與高級成員群組關(guān)聯(lián)起來的數(shù)字證書;4.生成將Vice President,Marketing(副總裁,市場)與高級成員群組關(guān)聯(lián)起來的數(shù)字證書;對于每個群組和每個群組內(nèi)的每個成員,可完成相同的動作集合。當(dāng)維護程序完成時,解析器群組主鑰變成群組的每個成員的共享證書。當(dāng)從群組中去除用戶時,可通過維護程序自動完成已分配的數(shù)字證書的撤回,而不會影響群組的其他成員。
一旦定義了共享的證書,解析器過程就保持不變。當(dāng)要保護文件、文檔或數(shù)據(jù)元素時,用戶被提示保護數(shù)據(jù)時要使用的目標(biāo)群組。所產(chǎn)生的受保護數(shù)據(jù)只能由目標(biāo)群組的其他成員訪問。本發(fā)明的方法和系統(tǒng)的這個功能可與任何其他計算機系統(tǒng)或軟件平臺一起使用,并且例如可以被集成到現(xiàn)有應(yīng)用程序中,或被獨立用于文件安全性。
本領(lǐng)域的普通技術(shù)人員易于看出,加密算法中的任何一種或其組合都適用于本發(fā)明的方法和系統(tǒng)。例如,在一個實施例中,可重復(fù)加密步驟以產(chǎn)生多層加密方案。此外,不同的加密算法或加密算法的組織可用于重復(fù)的加密步驟中,以便不同的加密算法被應(yīng)用到多層加密方案的不同層。這樣,加密方案本身變成本發(fā)明的方法的成分,以用于保護敏感數(shù)據(jù)免遭未經(jīng)授權(quán)的使用或訪問。
此外,本領(lǐng)域的技術(shù)人員在考慮到此處的公開文本的情況下將會明顯看出其他組合、允許、替換和修改。因此,本發(fā)明不希望受優(yōu)選實施例的反應(yīng)所限,而是通過參考所附權(quán)利要求書來限定。
權(quán)利要求
1.一種方法,包括a)對數(shù)據(jù)集合進行加密以提供加密后的數(shù)據(jù)集合;b)將所述加密后的數(shù)據(jù)集合分離成兩部分或更多部分?jǐn)?shù)據(jù);c)對來自步驟b)的一部分或多部分?jǐn)?shù)據(jù)進行加密;并且d)將來自步驟c)的加密后的數(shù)據(jù)部分存儲在一個或多個數(shù)據(jù)倉庫上的一個或多個位置處。
2.如權(quán)利要求1所述的方法,其中步驟b)的所述分離將所述加密后的數(shù)據(jù)集合分離成四部分或更多部分?jǐn)?shù)據(jù)。
3.如權(quán)利要求2所述的方法,其中在步驟d)的所述存儲之前,步驟b)和步驟c)被重復(fù)一次或多次,并且,任選地,其中步驟c)的所述加密是用與步驟a)中的加密算法不同的加密算法來執(zhí)行的。
4.如權(quán)利要求1所述的方法,其中步驟d)的所述存儲是在相同數(shù)據(jù)倉庫的不同位置上的。
5.如權(quán)利要求1所述的方法,其中步驟d)的所述存儲是在不同數(shù)據(jù)倉庫上的。
6.如權(quán)利要求1所述的方法,其中步驟d)的所述存儲是在不同地理位置中的不同數(shù)據(jù)倉庫上的。
7.如權(quán)利要求1所述的方法,其中步驟c)的所述加密提供加密鑰匙,并且其中在步驟d)中所述加密鑰匙和步驟c)中利用所述加密鑰匙加密的數(shù)據(jù)被存儲在一起。
8.如權(quán)利要求1所述的方法,其中步驟c)中的所述加密提供加密鑰匙,并且其中在步驟d)中所述加密鑰匙和步驟c)中利用所述加密鑰匙加密的數(shù)據(jù)被分離地存儲。
9.如權(quán)利要求1所述的方法,其中步驟a)中的所述數(shù)據(jù)集合包括從以下群組中選擇的數(shù)據(jù),該群組由加密鑰匙數(shù)據(jù)、文本、視頻、音頻、圖像、生物特征量度和數(shù)字?jǐn)?shù)據(jù)組成。
10.一種方法,包括a)將數(shù)據(jù)集合分離成兩部分或更多部分?jǐn)?shù)據(jù);b)對來自步驟a)的一部分或多部分?jǐn)?shù)據(jù)進行加密;并且c)將來自步驟b)的一部分或多部分加密后的數(shù)據(jù)存儲在一個或多個數(shù)據(jù)倉庫上的一個或多個位置處。
11.如權(quán)利要求10所述的方法,其中步驟a)的所述分離將所述數(shù)據(jù)集合分離成四部分或更多部分?jǐn)?shù)據(jù)。
12.如權(quán)利要求10所述的方法,其中在步驟c)的所述存儲之前,步驟a)和步驟b)被重復(fù)一次或多次,并且,任選地,其中步驟b)的所述加密用不同的加密算法進行重復(fù)。
13.如權(quán)利要求10所述的方法,其中步驟c)的所述存儲是在相同數(shù)據(jù)倉庫的不同位置上的。
14.如權(quán)利要求10所述的方法,其中步驟c)的所述存儲是在不同數(shù)據(jù)倉庫上的。
15.如權(quán)利要求10所述的方法,其中步驟c)的所述存儲是在不同地理位置中的不同數(shù)據(jù)倉庫上的。
16.如權(quán)利要求10所述的方法,其中步驟b)的所述加密提供加密鑰匙,并且其中在步驟c)中所述加密鑰匙和步驟b)中利用所述加密鑰匙加密的數(shù)據(jù)被存儲在一起。
17.如權(quán)利要求10所述的方法,其中步驟b)中的所述加密提供加密鑰匙,并且其中在步驟c)中所述加密鑰匙和步驟b)中利用所述加密鑰匙加密的數(shù)據(jù)被分離地存儲。
18.如權(quán)利要求10所述的方法,其中步驟a)中的所述數(shù)據(jù)集合包括從以下群組中選擇的數(shù)據(jù),該群組由加密鑰匙數(shù)據(jù)、文本、視頻、音頻、圖像、生物特征量度和數(shù)字?jǐn)?shù)據(jù)組成。
19.如權(quán)利要求10所述的方法,其中步驟b)的所述加密是用從以下群組中選擇出的加密算法來執(zhí)行的,該群組由RS1、RS4TM和OTP組成。
20.一種方法,包括a)生成加密主鑰并且利用所述加密主鑰對數(shù)據(jù)集合進行加密;b)根據(jù)一個分離模式將所述加密主鑰和所述加密后的數(shù)據(jù)集合各自分離成兩部分或更多部分,并且將加密主鑰部分附加到加密后的數(shù)據(jù)集合部分;c)為來自步驟b)的所述數(shù)據(jù)部分生成一個或多個加密鑰匙,并且利用所述加密鑰匙對所述數(shù)據(jù)部分進行加密;并且d)將來自步驟c)的所述加密數(shù)據(jù)部分和來自步驟c)的所述加密鑰匙存儲在至少一個數(shù)據(jù)倉庫上。
21.如權(quán)利要求20所述的方法,其中步驟d)中的所述加密數(shù)據(jù)部分的存儲是在一個數(shù)據(jù)倉庫的兩個或更多個不同位置上的。
22.如權(quán)利要求20所述的方法,其中步驟d)中的所述加密數(shù)據(jù)部分的存儲是在兩個或更多個數(shù)據(jù)倉庫上的。
23.如權(quán)利要求20所述的方法,其中步驟d)中的所述加密鑰匙的存儲是在一個數(shù)據(jù)倉庫的兩個或更多個不同位置上的。
24.如權(quán)利要求20所述的方法,其中步驟d)中的所述加密鑰匙的存儲是在兩個或更多個不同數(shù)據(jù)倉庫上的。
25.如權(quán)利要求20所述的方法,其中根據(jù)步驟d),步驟c)中生成的所述加密鑰匙和步驟c)的所述加密數(shù)據(jù)被一起存儲在一個或多個數(shù)據(jù)倉庫的不同位置上。
26.如權(quán)利要求20所述的方法,其中根據(jù)步驟d),步驟c)中生成的所述加密鑰匙和步驟c)的利用所述加密鑰匙加密的所述加密數(shù)據(jù)被存儲在不同數(shù)據(jù)倉庫上。
27.如權(quán)利要求20所述的方法,其中步驟b)的所述加密后數(shù)據(jù)被分離成四個或更多個部分。
28.如權(quán)利要求20所述的方法,其中步驟b)的所述加密主鑰被分離成四個或更多個部分。
29.如權(quán)利要求20所述的方法,其中步驟b)和步驟c)被重復(fù)一次或多次,并且,任選地,其中步驟c)的所述加密是利用與步驟a)中使用的加密算法不同的加密算法來執(zhí)行的。
30.一種方法,包括a)生成加密主鑰并且利用所述加密主鑰對數(shù)據(jù)集合進行加密;b)根據(jù)一個分離模式將所述加密主鑰和所述加密后的數(shù)據(jù)集合各自分離成兩部分或更多部分,并且將加密主鑰部分存儲在一個或多個數(shù)據(jù)倉庫的一個或多個位置上;c)為步驟b)的所述加密后的數(shù)據(jù)集合部分生成一個或多個加密鑰匙,并且利用所述加密鑰匙對所述數(shù)據(jù)部分進行加密;并且d)將來自步驟c)的所述加密后的部分和來自步驟c)的所述加密鑰匙存儲在至少一個數(shù)據(jù)倉庫上的至少一個位置上,其中所述數(shù)據(jù)倉庫與步驟b)的所述數(shù)據(jù)倉庫不同。
31.如權(quán)利要求30所述的方法,其中步驟d)中的所述加密后數(shù)據(jù)部分的存儲是在一個數(shù)據(jù)倉庫的兩個或更多個不同位置上的。
32.如權(quán)利要求30所述的方法,其中步驟d)中的所述加密后數(shù)據(jù)部分的存儲是在兩個或更多個數(shù)據(jù)倉庫上的。
33.如權(quán)利要求30所述的方法,其中步驟d)中的所述加密鑰匙的存儲是在一個數(shù)據(jù)倉庫的兩個或更多個不同位置上的。
34.如權(quán)利要求30所述的方法,其中步驟d)中的所述加密鑰匙的存儲是在兩個或更多個不同數(shù)據(jù)倉庫上的。
35.如權(quán)利要求30所述的方法,其中根據(jù)步驟d),步驟c)中生成的并且在步驟c)中被用于對數(shù)據(jù)集合進行加密的所述加密鑰匙、和利用所述加密鑰匙加密的所述加密后數(shù)據(jù)集合被一起存儲在一個或多個數(shù)據(jù)倉庫上。
36.如權(quán)利要求30所述的方法,其中根據(jù)步驟d),步驟c)中生成的并且在步驟c)中被用于對數(shù)據(jù)集合進行加密的所述加密鑰匙被存儲在,不同于利用所述加密鑰匙加密的所述加密后數(shù)據(jù)所存儲的位置的,一個或多個數(shù)據(jù)倉庫的位置上。
37.如權(quán)利要求30所述的方法,其中步驟b)的所述加密后數(shù)據(jù)被分離成四個或更多個部分。
38.如權(quán)利要求30所述的方法,其中步驟b)的所述加密主鑰被分離成四個或更多個部分。
39.如權(quán)利要求30所述的方法,其中步驟b)和步驟c)被重復(fù)一次或多次,并且,任選地,其中步驟c)的所述加密是利用與步驟a)中使用的加密算法不同的加密算法來執(zhí)行的。
40.一種系統(tǒng),包括a)數(shù)據(jù)分割模塊;b)密碼處理模塊;以及c)數(shù)據(jù)組裝模塊。
41.如權(quán)利要求40所述的系統(tǒng),其中所述數(shù)據(jù)分割模塊將數(shù)據(jù)分離成兩個或更多個部分。
42.如權(quán)利要求40所述的系統(tǒng),其中所述密碼處理模塊在所述數(shù)據(jù)被所述數(shù)據(jù)分割模塊操作之前或之后對所述數(shù)據(jù)進行操作,并且執(zhí)行所述數(shù)據(jù)的加密。
43.如權(quán)利要求40所述的系統(tǒng),其中所述數(shù)據(jù)組裝模塊對已被所述數(shù)據(jù)分割模塊或所述密碼模塊操作的數(shù)據(jù)進行操作,以將所述數(shù)據(jù)恢復(fù)到其原始形式。
44.一種方法,包括a)對數(shù)據(jù)集合進行加密以提供加密后的數(shù)據(jù)集合;b)根據(jù)唯一鑰匙值的內(nèi)容,將所述加密后的數(shù)據(jù)集合分離成兩部分或更多部分?jǐn)?shù)據(jù);c)對來自步驟b)的一部分或多部分?jǐn)?shù)據(jù)進行加密;并且d)將來自步驟c)的加密后的數(shù)據(jù)部分存儲在一個或多個數(shù)據(jù)倉庫上的一個或多個位置處。
45.如權(quán)利要求44所述的方法,其中步驟b)的所述分離根據(jù)唯一鑰匙值的內(nèi)容將所述加密后的數(shù)據(jù)集合分離成四部分或更多部分?jǐn)?shù)據(jù)。
46.如權(quán)利要求45所述的方法,其中在步驟d)的所述存儲之前,步驟b)和步驟c)被重復(fù)一次或多次,并且,任選地,其中步驟c)的所述加密是用與步驟a)中的加密算法不同的加密算法來執(zhí)行的。
47.如權(quán)利要求44所述的方法,其中步驟d)的所述存儲是在相同數(shù)據(jù)倉庫的不同位置上的。
48.如權(quán)利要求44所述的方法,其中步驟d)的所述存儲是在不同數(shù)據(jù)倉庫上的。
49.如權(quán)利要求44所述的方法,其中步驟d)的所述存儲是在不同地理位置中的不同數(shù)據(jù)倉庫上的。
50.如權(quán)利要求44所述的方法,其中步驟c)的所述加密提供加密鑰匙,并且其中在步驟d)中所述加密鑰匙和步驟c)中利用所述加密鑰匙加密的數(shù)據(jù)被存儲在一起。
51.如權(quán)利要求44所述的方法,其中步驟c)中的所述加密提供加密鑰匙,并且其中在步驟d)中所述加密鑰匙和步驟c)中利用所述加密鑰匙加密的數(shù)據(jù)被分離地存儲。
52.如權(quán)利要求44所述的方法,其中步驟a)的所述數(shù)據(jù)集合包括從以下群組中選擇的數(shù)據(jù),該群組由加密鑰匙數(shù)據(jù)、文本、視頻、音頻、圖像、生物特征量度和數(shù)字?jǐn)?shù)據(jù)組成。
53.如權(quán)利要求44所述的方法,其中所述數(shù)據(jù)部分包括一個或多個數(shù)據(jù)比特。
54.一種方法,包括a)將數(shù)據(jù)集合分割成N個數(shù)據(jù)單元;b)選擇X份用于數(shù)據(jù)單元存儲;c)生成與所述X份相對應(yīng)的N個隨機數(shù);d)將所述隨機數(shù)分配給所述數(shù)據(jù)單元;并且e)將所述數(shù)據(jù)單元和所述隨機數(shù)存儲在與所述隨機數(shù)相對應(yīng)的份中。
55.如權(quán)利要求54所述的方法,其中所述數(shù)據(jù)單元至少包括一比特。
56.一種系統(tǒng),包括a)數(shù)據(jù)分割模塊;b)密碼處理模塊;以及c)數(shù)據(jù)組裝模塊,其中所述系統(tǒng)執(zhí)行如權(quán)利要求1所述的方法。
57.一種系統(tǒng),包括a)數(shù)據(jù)分割模塊;b)密碼處理模塊;以及c)數(shù)據(jù)組裝模塊,其中所述系統(tǒng)執(zhí)行如權(quán)利要求1所述的方法,并且,任選地,其中步驟c)的所述加密是利用與步驟a)中使用的加密算法不同的加密算法來執(zhí)行的。
58.一種系統(tǒng),包括a)數(shù)據(jù)分割模塊;b)密碼處理模塊;以及c)數(shù)據(jù)組裝模塊,其中所述系統(tǒng)執(zhí)行如權(quán)利要求10所述的方法。
59.一種系統(tǒng),包括a)數(shù)據(jù)分割模塊;b)密碼處理模塊;以及c)數(shù)據(jù)組裝模塊,其中所述系統(tǒng)執(zhí)行如權(quán)利要求10所述的方法,并且,任選地,其中步驟c)的所述加密是利用與步驟a)中使用的加密算法不同的加密算法來執(zhí)行的。
60.一種系統(tǒng),包括a)數(shù)據(jù)分割模塊;b)密碼處理模塊;以及c)數(shù)據(jù)組裝模塊,其中所述系統(tǒng)執(zhí)行如權(quán)利要求20所述的方法。
61.一種系統(tǒng),包括a)數(shù)據(jù)分割模塊;b)密碼處理模塊;以及c)數(shù)據(jù)組裝模塊,其中所述系統(tǒng)執(zhí)行如權(quán)利要求20所述的方法,并且,任選地,其中步驟c)的所述加密是利用與步驟a)中使用的加密算法不同的加密算法來執(zhí)行的。
62.一種系統(tǒng),包括a)數(shù)據(jù)分割模塊;b)密碼處理模塊;以及c)數(shù)據(jù)組裝模塊,其中所述系統(tǒng)執(zhí)行如權(quán)利要求30所述的方法。
63.一種系統(tǒng),包括a)數(shù)據(jù)分割模塊;b)密碼處理模塊;以及c)數(shù)據(jù)組裝模塊,其中所述系統(tǒng)執(zhí)行如權(quán)利要求30所述的方法,并且,任選地,其中步驟c)的所述加密是利用與步驟a)中使用的加密算法不同的加密算法來執(zhí)行的。
64.一種系統(tǒng),包括a)數(shù)據(jù)分割模塊;b)密碼處理模塊;以及c)數(shù)據(jù)組裝模塊,其中所述系統(tǒng)執(zhí)行如權(quán)利要求44所述的方法。
65.一種系統(tǒng),包括a)數(shù)據(jù)分割模塊;b)密碼處理模塊;以及c)數(shù)據(jù)組裝模塊,其中所述系統(tǒng)執(zhí)行如權(quán)利要求44所述的方法,并且,任選地,其中步驟c)的所述加密是利用與步驟a)中使用的加密算法不同的加密算法來執(zhí)行的。
66.一種系統(tǒng),包括a)數(shù)據(jù)分割模塊;b)密碼處理模塊;以及c)數(shù)據(jù)組裝模塊,其中所述系統(tǒng)執(zhí)行如權(quán)利要求54所述的方法。
67.一種系統(tǒng),包括a)數(shù)據(jù)分割模塊;b)密碼處理模塊;以及c)數(shù)據(jù)組裝模塊,其中所述系統(tǒng)執(zhí)行如權(quán)利要求54所述的方法,并且,任選地,其中步驟c)的所述加密是利用與步驟a)中使用的加密算法不同的加密算法來執(zhí)行的。
全文摘要
本發(fā)明提供了用于保護敏感數(shù)據(jù)免遭未經(jīng)授權(quán)的訪問或使用的方法和系統(tǒng)。本發(fā)明的方法和系統(tǒng)可用于多種設(shè)置中,其中包括公眾一般可獲得的商用設(shè)置,這種設(shè)置就用戶數(shù)目而言可能極大也可能極小。本發(fā)明的方法和系統(tǒng)還可用于更私用的設(shè)置中,例如用于公司或政府機構(gòu)中,以及用在公司、政府機構(gòu)或任何其他實體之間。
文檔編號G06F21/00GK1833398SQ200480022710
公開日2006年9月13日 申請日期2004年6月10日 優(yōu)先權(quán)日2003年6月11日
發(fā)明者里克·奧西尼, 約翰·萬扎特, 馬克·奧哈雷, 羅格·達文波特 申請人:安全第一公司