專利名稱:結(jié)合人類參與的安全數(shù)據(jù)存儲與檢索的制作方法
技術(shù)領(lǐng)域:
本技術(shù)領(lǐng)域一般涉及計(jì)算機(jī)處理,且更具體地涉及計(jì)算機(jī)安全。
北旦 冃牙、
典型的訪問控制機(jī)制不區(qū)分由人提供的輸入與由軟件提供的輸入。因此, 在系統(tǒng)上運(yùn)行的流氓軟件可模仿人類用戶的行為并且獲得對受保護(hù)資源的未 授權(quán)訪問。例如,擊鍵記錄程序可以捕捉用戶的帳戶名稱和口令并且稍后重放 它們作為訪問驗(yàn)證序列的一部分。同樣,典型的訪問控制機(jī)制容易受到諸如字 典式攻擊或者"中間人"攻擊等蠻力攻擊的影響。蠻力攻擊對于受口令保護(hù)的 加密數(shù)據(jù)的存儲特別不利。
概述
提供本概述以用簡化形式介紹下面在說明性實(shí)施例的詳細(xì)描述中進(jìn)一步 描述的一些概念。本概述不旨在標(biāo)識所要求保護(hù)的主題的關(guān)鍵特征或者必要特 征,也不旨在用于限制所要求保護(hù)的主題的范圍。
一種驗(yàn)證機(jī)制需要人類參與訪問驗(yàn)證序列。為訪問數(shù)據(jù),提供謎題。該謎 題的正確解答需要人類干預(yù)。選擇謎題,使得其解答在人類的能力范圍之內(nèi), 但卻超出計(jì)算機(jī)系統(tǒng)領(lǐng)域的現(xiàn)有技術(shù)。在一示例實(shí)施例中,使用驗(yàn)證機(jī)制來確 保以用戶口令加密的數(shù)據(jù)需要實(shí)際的人主體參與訪問底層明文數(shù)據(jù)的每次嘗試。
附圖簡述
以上概述以及以下詳細(xì)描述在結(jié)合附圖閱讀時(shí)能被更好地理解。為了例示 結(jié)合人類參與的安全數(shù)據(jù)存儲與檢索,在附圖中示出了其示例性結(jié)構(gòu);然而, 通過結(jié)合人類參與的安全數(shù)據(jù)存儲與檢索提供的功能不限于所公開的具體方 法和手段。
圖1是用于安全地存儲數(shù)據(jù)的示例事件序列的流程圖。
圖2是用于安全地檢索數(shù)據(jù)的示例事件序列的流程圖。
圖3示出結(jié)合人類參與的安全數(shù)據(jù)存儲與檢索的存儲序列的示例實(shí)現(xiàn)。
圖4示出結(jié)合人類參與的安全數(shù)據(jù)存儲與檢索的檢索序列的示例實(shí)現(xiàn)。
圖5是用于實(shí)現(xiàn)結(jié)合人類參與的安全數(shù)據(jù)存儲與檢索的示例性處理器的圖示。
圖6是其中可實(shí)現(xiàn)結(jié)合人類參與的安全數(shù)據(jù)存儲與檢索的示例的合適計(jì)
算環(huán)境的示圖。
說明性實(shí)施例的詳細(xì)描述
圖1和圖2描繪用于實(shí)現(xiàn)結(jié)合人類參與的安全數(shù)據(jù)存儲與檢索的示例事件 序列的順序流程圖。圖1描繪用于存儲安全數(shù)據(jù)的示例事件序列,而圖2描繪 用于檢索安全數(shù)據(jù)的示例事件序列。用于數(shù)據(jù)的安全存儲與檢索的密碼協(xié)議需 要來自人類授權(quán),以便執(zhí)行數(shù)據(jù)檢索操作。在一示例配置中,使用兩個(gè)代理來 實(shí)現(xiàn)該協(xié)議。如圖l所示,第一代理14 (即客戶機(jī))管理與人類用戶12的交 互。第二代理16 (即安全服務(wù)器)(稱為人類驗(yàn)證服務(wù)或者HVS)協(xié)調(diào)密碼 操作并用作受保護(hù)數(shù)據(jù)的儲存庫。為清楚起見,分開描繪客戶機(jī)代理14和HVS 服務(wù)器16。然而要理解的是,客戶機(jī)代理14和HVS服務(wù)器16可以包括分開 的處理器、同一處理器、或者其組合。例如,客戶機(jī)代理14和HVS服務(wù)器16 可在單個(gè)計(jì)算機(jī)系統(tǒng)上的分開的進(jìn)程中運(yùn)行,可在多計(jì)算機(jī)網(wǎng)絡(luò)中的分開的主 機(jī)上運(yùn)行,或者其組合。
如上所述,圖1是用于存儲安全數(shù)據(jù)的示例事件序列的流程圖。在步驟 18,客戶機(jī)代理14生成密鑰K。該密鑰可以包括任何適當(dāng)?shù)碾S機(jī)密鑰。在一 示例實(shí)施例中,密鑰K是對稱密鑰(例如根據(jù)高級加密標(biāo)準(zhǔn)AES的對稱密鑰)。 在步驟20,用密鑰K加密要存儲的數(shù)據(jù)的明文以生成加密數(shù)據(jù)。在步驟22, 客戶機(jī)代理14生成另一個(gè)密鑰K,。密鑰K,可以包括任何適當(dāng)?shù)拿荑€,諸如例 如對稱密鑰。要理解的是,在附圖中描繪的事件序列是示例性的并因而不限于 此。事件序列可以適當(dāng)?shù)匦薷摹@?,步驟22可以在步驟18或者步驟20之 前執(zhí)行。
7客戶機(jī)代理14在步驟24向用戶詢問秘密,諸如PIN、 口令等。在步驟26, 用戶用該用戶的秘密Su響應(yīng)詢問。在步驟28,客戶機(jī)代理14用密碼散列函數(shù) 對用戶的秘密Su進(jìn)行操作。散列函數(shù)是本領(lǐng)域已知的。散列函數(shù)是將可變大 小的輸入變換成固定大小的值的函數(shù)。通常,散列函數(shù)是單向的,意味著從輸 出(經(jīng)變換的)值來確定輸入值是不可行或者不可能的。向散列函數(shù)提供相同 的輸入將提供相同的輸出。輸入中的輕微變化通常在輸出中導(dǎo)致相當(dāng)大的改 變。示例散列函數(shù)包括MD2、 MD5、 SHA-1、 SHA-224、 SHA-256、 SHA-384 和SHA-512。
在步驟30,用密鑰K,來加密密鑰K。在步驟32,用密鑰K,來加密表示 用戶秘密的散列值Hash(Su)(散列(Su))。在一示例實(shí)施例中,用戶的秘密Su 在執(zhí)行散列函數(shù)之后沒有存儲在客戶機(jī)代理14中。這可以提供附加安全性, 因?yàn)橛脩舻拿孛躍u更不容易被盜。在步驟34,用安全服務(wù)器16的公鑰/私鑰 對中的公鑰來加密密鑰K,。利用公鑰/私鑰對的公鑰密碼學(xué)是本領(lǐng)域已知的。 使用一個(gè)密鑰進(jìn)行加密而使用另一個(gè)密鑰進(jìn)行解密。 一個(gè)密鑰的知識不提供另 一個(gè)密鑰的知識。通常一個(gè)密鑰保密,并且因而稱為私鑰。通常使另一個(gè)密鑰 公開。公鑰密碼學(xué)的一個(gè)示例是RSA公鑰密碼學(xué)。在步驟30、 32和33加密 的信息(在圖1中被稱為二進(jìn)制大對象)在步驟36被提供給安全服務(wù)器16。 即,在步驟36,客戶機(jī)代理14將用密鑰K,加密的密鑰K、用密鑰K,加密的 表示用戶的秘密的散列值Hash(Su)、以及用安全服務(wù)器16的公鑰/私鑰對中的 公鑰加密的密鑰K,提供給安全服務(wù)器16。
在步驟38,安全服務(wù)器16生成在圖1中被稱為檢索標(biāo)記的唯一標(biāo)記值, 以標(biāo)識在步驟36接收到的二進(jìn)制大對象。在步驟40,將該二進(jìn)制大對象存儲 在安全服務(wù)器的數(shù)據(jù)庫、存儲器等等之中。該二進(jìn)制大對象由檢索標(biāo)記來索引。 因而,可以通過檢索標(biāo)記來從數(shù)據(jù)庫、存儲器等等之中檢索該二進(jìn)制大對象。 在步驟42,安全服務(wù)器16提供檢索標(biāo)記給客戶機(jī)代理14。在步驟44,客戶機(jī) 代理14使用該檢索標(biāo)記作為索引來存儲在步驟20所生成的加密數(shù)據(jù)。S卩,客 戶機(jī)代理14在數(shù)據(jù)庫、存儲器等等之中存儲用密鑰K加密的明文,并且使用 檢索標(biāo)記來索引所存儲的加密數(shù)據(jù),以便可以使用該檢索標(biāo)記來從存儲中檢索 加密數(shù)據(jù)。圖2是用于安全地檢索數(shù)據(jù)的示例事件序列的流程圖。為檢索原始的明
文,客戶機(jī)代理14利用在存儲過程期間(在步驟38)所生成的檢索標(biāo)記來訪 問安全服務(wù)器16。在步驟46,在客戶機(jī)代理14與安全服務(wù)器16之間建立安 全信道??梢园凑杖魏魏线m的手段來建立安全信道。在步驟48,客戶機(jī)代理 14將檢索標(biāo)記和對謎題的請求發(fā)送到安全服務(wù)器16。
在步驟50,生成謎題和該謎題的正確解答。謎題可以包括需要人類干預(yù) 來獲得解答的任何適當(dāng)類型的謎題。在各實(shí)施例中,謎題可能需要用戶對視覺 呈現(xiàn)、音頻呈現(xiàn)、或其組合作出響應(yīng)。例如,謎題可能需要用戶輸入在失真圖 像(例如全自動(dòng)公開圖靈測試,GAPTCHA)中觀察到的字母。謎題可能需要 用戶回答在失真圖像中觀察到的問題。謎題可能需要用戶輸入在失真音頻中聽 到的字母。謎題可能需要用戶回答在失真音頻中聽到的問題。在各實(shí)施例中, 用戶的響應(yīng)可通過鍵盤、鼠標(biāo)、口述、或其組合來提供。選擇謎題以使得其解 答在人類的能力范圍內(nèi),但卻超出計(jì)算機(jī)系統(tǒng)領(lǐng)域的現(xiàn)有技術(shù)。謎題可由安全 服務(wù)器16、另一個(gè)處理器、或其組合來生成。在一示例實(shí)施例中,謎題是經(jīng)由 可插入謎題生成程序的庫來獲得的。隨著計(jì)算技術(shù)領(lǐng)域的現(xiàn)有技術(shù)使一些謎題 更容易受到機(jī)械解答的影響,該實(shí)施例允許替換謎題。在各實(shí)施例中,在每次 向安全服務(wù)器16提出請求時(shí),安全服務(wù)器16可生成謎題,該謎題可以是預(yù)定 的謎題,謎題類型(例如謎題類別)可以是預(yù)定的,或其組合。如果謎題是預(yù) 定的謎題或者謎題類型是預(yù)定的,則在步驟48可提供謎題或者謎題類型的指 示。
在步驟52,安全服務(wù)器16生成隨機(jī)密鑰K2。密鑰K2可以包括任何適當(dāng) 的密鑰,諸如例如對稱密鑰。在步驟54,用密鑰K2加密謎題的正確解答。在 一示例實(shí)施例中,正確的解答包括時(shí)間戳并用密鑰K2加密。在步驟56,安全 服務(wù)器16將加密的正確解答和可任選時(shí)間戳(稱為驗(yàn)證二進(jìn)制大對象)以及 謎題提供給客戶機(jī)代理14。在步驟58,客戶機(jī)代理14將謎題提供給用戶12。 在步驟60,用戶12結(jié)合人類參與來解答謎題并且將所提出的解答提供給客戶 機(jī)代理14。在步驟62,向用戶12詢問用戶的秘密。在步驟64,用戶12用用 戶的秘密Su響應(yīng)(步驟62的)詢問。在步驟66,客戶機(jī)代理14將(在步驟 60收到的)所提出的解答、表示用戶的秘密的散列值(Hash(Su))和驗(yàn)證二進(jìn)
9制大對象(在步驟54生成的加密的正確解答和可任選時(shí)間戳)發(fā)送至安全服 務(wù)器16。
在步驟68,安全服務(wù)器16使用檢索標(biāo)記來檢索經(jīng)索引的客戶機(jī)二進(jìn)制大 對象。g卩,安全服務(wù)器16使用在步驟38所生成的檢索標(biāo)記來檢索在步驟40 存儲的用密鑰K,加密的密鑰K、用密鑰K,加密的表示用戶的秘密的散列值 Hash(S。、和用安全服務(wù)器16的公鑰/私鑰對中的公鑰加密的密鑰K,。在步驟 70,用安全服務(wù)器16的公鑰/私鑰對中的私鑰PK"Hvs來解密用公鑰PKHVS (在 步驟34)加密的密鑰K,。在步驟72,用密鑰K,來解密加密的(在步驟32) 表示用戶的秘密的散列值(Hash(Su))。在步驟74,用密鑰K2來解密加密的 (在步驟54)驗(yàn)證二進(jìn)制大對象(生成正確解答和可任選時(shí)間戳)。
在步驟76執(zhí)行驗(yàn)證。如果驗(yàn)證成功,則允許訪問所存儲的數(shù)據(jù)(明文)。 如果驗(yàn)證不成功,則不允許訪問數(shù)據(jù)(明文)。在一示例實(shí)施例中,如果在步 驟64提供的表示用戶秘密的散列值不同于在步驟26提供的表示用戶秘密的散 列值,則驗(yàn)證失敗。即,如果在客戶機(jī)代理14初次詢問用戶12時(shí)所提供的用 戶秘密不同于與用戶提出的謎題解答一起提供的用戶秘密,則驗(yàn)證失敗。在一 示例實(shí)施例中,給予用戶12—段有限的時(shí)間來提供所提出的謎題響應(yīng)。因此, 如果當(dāng)前時(shí)間即安全服務(wù)器16正在執(zhí)行驗(yàn)證的時(shí)間與(在步驟54生成的)驗(yàn) 證二進(jìn)制大對象中的時(shí)間戳所指示的時(shí)間相差大于預(yù)定的時(shí)間量,則驗(yàn)證失 敗。例如,如果當(dāng)前時(shí)間與時(shí)間戳所指示的時(shí)間相差超過30秒,則驗(yàn)證將失 敗。如果用戶12 (在步驟60)提供的所提出的謎題解答不同于正確的解答, 則驗(yàn)證失敗。
圖3和圖4示出結(jié)合人類參與的安全數(shù)據(jù)存儲與檢索的示例實(shí)現(xiàn),該實(shí)現(xiàn) 使用無源通用串行總線(USB)設(shè)備90作為存儲管理應(yīng)用程序86的存儲。圖 3示出結(jié)合人類參與的安全數(shù)據(jù)存儲與檢索的存儲序列的示例實(shí)現(xiàn)。該實(shí)現(xiàn)包 括存儲管理應(yīng)用程序86 (例如客戶機(jī)代理)、人類驗(yàn)證服務(wù)(HVS) 88 (例如 安全HVS服務(wù)器)、存儲介質(zhì)90、以及存儲介質(zhì)92。存儲介質(zhì)90可包括任 何適當(dāng)?shù)拇鎯橘|(zhì),諸如例如盤、半導(dǎo)體存儲器、數(shù)據(jù)庫等等。如圖3所示, 在一示例實(shí)施例中,存儲介質(zhì)90包括USB存儲設(shè)備(例如鑰匙驅(qū)動(dòng)器)。存 儲設(shè)備90不需要特殊的密碼能力。存儲介質(zhì)92可包括任何適當(dāng)?shù)拇鎯橘|(zhì),
10諸如例如盤、半導(dǎo)體存儲器、數(shù)據(jù)庫等等。
為實(shí)現(xiàn)安全數(shù)據(jù)的存儲,存儲管理應(yīng)用程序86從用戶接受要存儲的用戶 數(shù)據(jù)-密鑰、口令和友好顯示名稱。用戶數(shù)據(jù)密鑰可包括保護(hù)敏感用戶數(shù)據(jù)的 任何適當(dāng)?shù)拿孛?。例如,?shù)據(jù)密鑰可包括口令、加密等等。顯示名稱用于向用 戶提示用戶數(shù)據(jù)密鑰的身份。顯示名稱不加密。在執(zhí)行如上所述的結(jié)合人類參 與的安全數(shù)據(jù)存儲與檢索的存儲序列之后,存儲管理應(yīng)用程序86擁有檢索標(biāo)
記和已經(jīng)用密鑰K加密的用戶數(shù)據(jù)密鑰的拷貝。存儲管理應(yīng)用程序86將檢索 標(biāo)記和用戶數(shù)據(jù)密鑰的拷貝兩者與數(shù)據(jù)密鑰的友好顯示名成一起存儲在USB 設(shè)備90上。
在執(zhí)行如上所述的結(jié)合人類參與的存儲與檢索的存儲序列之后,HVS 88 擁有密鑰K的拷貝和表示用戶秘密Su的散列值,這兩者都被使用密鑰K,加密。 HVS 88還擁有K,的加密拷貝,HVS 88可以通過使用HVS 88的私鑰來再現(xiàn) K,。這些項(xiàng)作為一個(gè)組來存儲并且用檢索標(biāo)記值來索引。合起來,該數(shù)據(jù)將允 許HVS 88重新構(gòu)建K的值和表示用戶秘密的散列值。
圖4示出結(jié)合人類參與的安全數(shù)據(jù)存儲與檢索的檢索序列的示例實(shí)現(xiàn)。當(dāng) 用戶想要再現(xiàn)數(shù)據(jù)密鑰時(shí),用戶再次執(zhí)行存儲管理應(yīng)用程序86。存儲管理應(yīng)用 程序86向用戶提供從USB設(shè)備90加載的友好顯示名稱列表。用戶可選擇顯 示名稱中的一個(gè)來再現(xiàn)相關(guān)聯(lián)的數(shù)據(jù)密鑰。在結(jié)合人類參與的安全數(shù)據(jù)存儲與 檢索的檢索序列期間,存儲管理應(yīng)用程序86提示用戶輸入口令等并且向用戶 提供需要人類參與以獲得解答的謎題。在收到用戶的響應(yīng)(例如用戶所提出的 謎題解答)后,存儲管理應(yīng)用程序86將用戶的響應(yīng)發(fā)送至HVS 88。 HVS 88 評估口令和用戶所提出的謎題解答。如果HVS確定口令正確并且用戶所提出 的謎題解答正確,則HVS 88返回原始密鑰K給存儲管理應(yīng)用程序88。存儲管 理應(yīng)用程序86使用密鑰K來解密來自USB存儲設(shè)備90的原始用戶數(shù)據(jù)密鑰。 在存儲序列或者檢索序列期間的任何時(shí)候,HVS 88都無權(quán)訪問用戶數(shù)據(jù)密鑰 的明文版本。
圖5是用于實(shí)現(xiàn)結(jié)合人類參與的安全數(shù)據(jù)存儲與檢索的示例性處理器94 的圖。處理器94包括處理部分96、存儲器部分98和輸入/輸出部分100。處理 部分96、存儲器部分98和輸入/輸出部分100耦合在一起(在圖5中未示出耦
11合)以允許它們之間的通信。輸入/輸出部分100能夠提供和/或接收用于實(shí)現(xiàn) 如上所述的結(jié)合人類參與的安全數(shù)據(jù)存儲與檢索的組件。例如,輸入/輸出部分 100能夠接收和/或提供對用戶秘密的詢問、用戶的秘密、加密信息、密鑰、經(jīng) 索引的信息、散列值、檢索標(biāo)記、謎題、所提出的謎題解答、或其組合。
處理部分96能夠?qū)崿F(xiàn)如上所述的結(jié)合人類參與的安全數(shù)據(jù)存儲與檢索。 例如,處理部分96能夠生成密鑰,執(zhí)行加密,執(zhí)行散列函數(shù),生成檢索標(biāo)記, 存儲經(jīng)索引的信息,建立安全信道,生成需要人類參與以獲得解答的謎題,檢 索經(jīng)索引的信息,執(zhí)行解密,執(zhí)行驗(yàn)證,確定當(dāng)前時(shí)間與時(shí)間戳所指示的時(shí)間 是否相差至少預(yù)定的時(shí)間量,確定第一用戶秘密是否不同于第二用戶秘密,確 定所提出的謎題解答是否正確,或其組合。
處理器94可以實(shí)現(xiàn)為客戶機(jī)處理器和/或服務(wù)器處理器。在一基本配置中, 處理器94可包括至少一個(gè)處理部分96和存儲器部分98。存儲器部分98可以 存儲結(jié)合實(shí)現(xiàn)結(jié)合人類參與的安全數(shù)據(jù)存儲與檢索所使用的任何信息。例如, 存儲器部分98可以存儲密鑰、用戶秘密、謎題、謎題解答、散列值、經(jīng)索引 的信息、檢索標(biāo)記、或其組合。取決于處理器的精確配置和類型,存儲器部分 98可以是易失性的(諸如RAM) 102、非易失性的(諸如ROM、閃存等)104、 或其組合。處理器94可以具有附加特征/功能性。例如,處理器94可以包括附 加存儲(可移動(dòng)存儲106和/或不可移動(dòng)存儲108),包括但不限于磁盤或光盤、 磁帶、閃存、智能卡、或其組合。諸如存儲器部分98、 102、 104、 106和108 等計(jì)算機(jī)存儲介質(zhì)包括以用于存儲諸如計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊
或其它數(shù)據(jù)等信息的任何方法或技術(shù)來實(shí)現(xiàn)的易失性和非易失性、可移動(dòng)和不 可移動(dòng)介質(zhì)。計(jì)算機(jī)存儲介質(zhì)包括但不限于,RAM、 ROM、 EEPROM、閃存 或者其它存儲器技術(shù),CD-ROM、數(shù)字多功能盤(DVD)或其它光學(xué)存儲、磁 盒、磁帶、磁盤存儲或者其它磁存儲設(shè)備、通用串行總線(USB)兼容存儲器、 智能卡、或者可用于存儲所需信息并且能由處理器94訪問的任何其它介質(zhì)。 任何這樣的計(jì)算機(jī)存儲介質(zhì)都可以是處理器94的一部分。
例如,處理器94還可包含允許處理器94與其它設(shè)備通信的通信連接114。 通信連接114是通信介質(zhì)的一個(gè)示例。通信介質(zhì)一般以諸如載波或其它傳輸機(jī) 制等已調(diào)制數(shù)據(jù)信號來體現(xiàn)計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其它數(shù)據(jù),并且包括任何信息傳輸介質(zhì)。術(shù)語"已調(diào)制數(shù)據(jù)信號"指的是其一個(gè)或多個(gè)特 征以在信號中編碼信息的方式被設(shè)置或更改變的信號。作為示例而非限制,通 信介質(zhì)包括有線介質(zhì),諸如有線網(wǎng)絡(luò)或者直接線連接,以及無線介質(zhì),諸如聲 學(xué)、RF、紅外和其它無線介質(zhì)。此處使用的術(shù)語計(jì)算機(jī)可讀介質(zhì)包括存儲介質(zhì) 和通信介質(zhì)兩者。處理器94還可具有諸如鍵盤、鼠標(biāo)、筆、語音輸入設(shè)備、
觸摸輸入設(shè)備等輸入設(shè)備112。還可包括輸出設(shè)備110,諸如顯示器、揚(yáng)聲器、
打印機(jī)等等。
圖6和下面的討論提供其中可實(shí)現(xiàn)結(jié)合人類參與的安全數(shù)據(jù)存儲與檢索
的示例的合適計(jì)算環(huán)境的簡要概括描述。盡管不是必要的,但是結(jié)合人類參與 的安全數(shù)據(jù)存儲與檢索的各方面能在由諸如客戶機(jī)工作站或服務(wù)器等計(jì)算機(jī) 執(zhí)行的諸如程序模塊等計(jì)算機(jī)可執(zhí)行指令的一般上下文中描述。通常,程序模 塊包括執(zhí)行特定任務(wù)或者實(shí)現(xiàn)特定抽象數(shù)據(jù)類型的例程、程序、對象、組件、 數(shù)據(jù)結(jié)構(gòu)等等。此外,結(jié)合人類參與的安全數(shù)據(jù)存儲與檢索的實(shí)現(xiàn)可用其它計(jì) 算機(jī)系統(tǒng)配置來實(shí)施,包括手持式設(shè)備、多處理器系統(tǒng)、基于微處理器的或者
可編程消費(fèi)電子產(chǎn)品、網(wǎng)絡(luò)PC、小型機(jī)、大型計(jì)算機(jī)等等。而且,通過結(jié)合
人類參與的安全數(shù)據(jù)存儲與檢索來提供功能也可在任務(wù)由通過通信網(wǎng)絡(luò)鏈接 的遠(yuǎn)程處理設(shè)備來執(zhí)行的分布式計(jì)算環(huán)境中實(shí)施。在分布式計(jì)算環(huán)境中,程序 模塊可以位于本地和遠(yuǎn)程存儲器存儲設(shè)備中。
計(jì)算機(jī)系統(tǒng)可以大致分為三個(gè)組件分組硬件組件,硬件/軟件接口系統(tǒng)
組件、以及應(yīng)用程序組件(也稱為"用戶組件"或者"軟件組件")。在計(jì)算
機(jī)系統(tǒng)的各實(shí)施例中,硬件組件可包括中央處理單元(CPU)521;存儲器(ROM 564和RAM 525兩者);基本輸入/輸出系統(tǒng)(BIOS) 566;和諸如鍵盤540、 鼠標(biāo)542、監(jiān)視器547和/或打印機(jī)(未示出)等各種輸入/輸出(I/O)設(shè)備。 硬件組件包括計(jì)算機(jī)系統(tǒng)的基本物理基礎(chǔ)結(jié)構(gòu)。
應(yīng)用程序組件包括各種軟件程序,包括但不限于編譯器、數(shù)據(jù)庫系統(tǒng)、文 字處理程序、商務(wù)程序、視頻游戲等等。應(yīng)用程序?yàn)楦鞣N用戶(機(jī)器、其它計(jì) 算機(jī)系統(tǒng)和/或最終用戶)提供利用計(jì)算機(jī)資源來解決問題、提供解決方案和處 理數(shù)據(jù)的手段。在一示例實(shí)施例中,應(yīng)用程序執(zhí)行與如上所述的結(jié)合人類參與 的安全數(shù)據(jù)存儲與檢索相關(guān)聯(lián)的功能。
13硬件/軟件接口系統(tǒng)組件包括(并且在一些實(shí)施例中可僅包括)操作系統(tǒng), 操作系統(tǒng)在大多數(shù)情形中本身包括外殼和內(nèi)核。"操作系統(tǒng)"(OS)是擔(dān)當(dāng)應(yīng) 用程序與計(jì)算機(jī)硬件之間的中介的特殊程序。硬件/軟件接口系統(tǒng)組件還可包括
虛擬機(jī)管理器(VMM)、公共語言運(yùn)行庫(CLR)或其功能等效物、java虛 擬機(jī)(JVM)或其功能等效物、或者作為對計(jì)算機(jī)系統(tǒng)中的操作系統(tǒng)的替換或 補(bǔ)充的其它這類軟件組件。硬件/軟件接口系統(tǒng)的目的是提供用戶可以在其中執(zhí) 行應(yīng)用程序的環(huán)境。
硬件/軟件接口系統(tǒng)通常在啟動(dòng)時(shí)被加載到計(jì)算機(jī)系統(tǒng)中,并且之后管理 計(jì)算機(jī)系統(tǒng)中的所有應(yīng)用程序。應(yīng)用程序通過經(jīng)由應(yīng)用程序接口 (API)請求 服務(wù)來與硬件/軟件接口系統(tǒng)交互。一些應(yīng)用程序允許最終用戶經(jīng)由諸如命令語 言或者圖形用戶界面(GUI)等用戶界面來與硬件/軟件接口系統(tǒng)交互。
硬件/軟件接口系統(tǒng)在傳統(tǒng)上在線用于應(yīng)用程序的各種服務(wù)。在其中多個(gè) 程序可同時(shí)運(yùn)行的多任務(wù)硬件/軟件接口系統(tǒng)中,硬件/軟件接口系統(tǒng)確定哪些 應(yīng)用程序應(yīng)當(dāng)以什么次序運(yùn)行以及在為輪流而切換到另一個(gè)應(yīng)用程序之前應(yīng) 當(dāng)允許每一應(yīng)用程序多長時(shí)間。硬件/軟件接口系統(tǒng)還管理多個(gè)應(yīng)用程序?qū)?nèi)部 存儲器的共享,并且處理來自諸如硬盤、打印機(jī)和撥號端口等附連硬件設(shè)備的 輸入以及對它們的輸出。硬件/軟件接口系統(tǒng)還向每一個(gè)應(yīng)用程序(并且在一些 情形中向最終用戶)發(fā)送關(guān)于操作的狀態(tài)和可能己經(jīng)發(fā)生的任何錯(cuò)誤的消息。 硬件/軟件接口系統(tǒng)還可以卸載批處理任務(wù)(例如打印)的管理,使得啟動(dòng)應(yīng)用 程序免于該工作并且可以繼續(xù)其它處理和/或操作。在可提供并行處理的計(jì)算機(jī) 上,硬件/軟件接口系統(tǒng)還管理劃分程序以使它同時(shí)在多于一個(gè)的處理器上運(yùn) 行。
硬件/軟件接口系統(tǒng)外殼(稱為"外殼")是對硬件/軟件接口系統(tǒng)的交互 最終用戶界面。(外殼也稱為"命令解釋程序"或者在操作系統(tǒng)中被稱為"操 作系統(tǒng)外殼")。外殼是可直接由應(yīng)用程序和/或最終用戶訪問的硬件/軟件接 口系統(tǒng)的外層。與外殼相反,內(nèi)核是直接與硬件組件交互的硬件/軟件接口系統(tǒng) 的最內(nèi)層。
如圖6所示,示例性通用計(jì)算系統(tǒng)包括常規(guī)計(jì)算設(shè)備560等,其包括處理 單元521、系統(tǒng)存儲器562和將包括系統(tǒng)存儲器在內(nèi)的各種系統(tǒng)組件耦合到處
14理單元521的系統(tǒng)總線523。系統(tǒng)總線523可以是若干類型的總線結(jié)構(gòu)中的任 何一種,這些總線結(jié)構(gòu)包括存儲器總線或者存儲器控制器、外圍總線、以及使 用各種總線體系結(jié)構(gòu)中的任一種的局部總線。系統(tǒng)存儲器包括只讀存儲器
(ROM) 564和隨機(jī)存取存儲器(RAM) 525?;据斎?輸出系統(tǒng)566 (BIOS) 存儲在ROM 564中,它包含幫助在諸如啟動(dòng)期間在計(jì)算設(shè)備560內(nèi)的各種元 件之間傳送信息的基本例程。計(jì)算設(shè)備560還可包括用于讀寫硬盤(未示出硬 盤)的硬盤驅(qū)動(dòng)器527、用于讀寫可移動(dòng)磁盤529 (例如軟盤、可移動(dòng)存儲) 的磁盤驅(qū)動(dòng)器528 (例如軟盤驅(qū)動(dòng)器)、以及用于讀寫諸如CDROM或其它光 學(xué)介質(zhì)等可移動(dòng)光盤531的光盤驅(qū)動(dòng)器530。硬盤驅(qū)動(dòng)器527、磁盤驅(qū)動(dòng)器528 和光盤驅(qū)動(dòng)器530分別通過硬盤驅(qū)動(dòng)器接口 532、磁盤驅(qū)動(dòng)器接口 533和光盤 驅(qū)動(dòng)器接口 534連接到系統(tǒng)總線523。這些驅(qū)動(dòng)器及其相關(guān)聯(lián)的計(jì)算機(jī)可讀介 質(zhì)為計(jì)算設(shè)備560提供對計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊和其它數(shù)據(jù)的 非易失性存儲。雖然此處所描述的示例性環(huán)境使用硬盤、可移動(dòng)磁盤529和可 移動(dòng)光盤531,但是本領(lǐng)域技術(shù)人員應(yīng)當(dāng)了解,在示例性操作環(huán)境中還可以使 用可存儲能由計(jì)算機(jī)訪問的數(shù)據(jù)的其它類型的計(jì)算機(jī)可讀介質(zhì),諸如磁帶盒、 閃存卡、數(shù)字視頻盤、伯努利盒式磁帶、隨機(jī)存取存儲器(RAM)、只讀存儲 器(ROM)等等。同樣,示例性環(huán)境還可包括諸如熱傳感器和安全或火警系統(tǒng) 等許多類型的監(jiān)視設(shè)備,以及其它信息源。
多個(gè)程序模塊可存儲在硬盤、磁盤529、光盤531、 ROM 564或RAM 525 中,包括操作系統(tǒng)535、 一個(gè)或多個(gè)應(yīng)用程序536、其它程序模塊537和程序 數(shù)據(jù)538。用戶可通過諸如鍵盤540和定點(diǎn)設(shè)備542 (例如鼠標(biāo))等輸入設(shè)備 將命令和信息輸入到計(jì)算設(shè)備560中。其它輸入設(shè)備(未示出)可包括話筒、 操縱桿、游戲鍵盤、衛(wèi)星天線、掃描儀等等。這些和其它輸入設(shè)備通常通過耦 合至系統(tǒng)總線的串行端口接口 546連接至處理單元521,但也可通過其它接口, 諸如并行端口、游戲端口或者通用串行總線(USB)連接。監(jiān)視器547或其它 類型的顯示設(shè)備也通過接口,諸如視頻適配器548連接至系統(tǒng)總線523。除了 監(jiān)視器547之外,計(jì)算設(shè)備一般包括其它外圍輸出設(shè)備(未示出),諸如揚(yáng)聲 器和打印機(jī)。圖6的示例性環(huán)境還包括主機(jī)適配器555、小型計(jì)算機(jī)系統(tǒng)接口
(SCSI)總線556和連接到SCSI總線556的外部存儲設(shè)備562。
15計(jì)算設(shè)備560可使用到諸如遠(yuǎn)程計(jì)算機(jī)549等一個(gè)或多個(gè)遠(yuǎn)程計(jì)算機(jī)的邏 輯連接在網(wǎng)絡(luò)化環(huán)境中操作。遠(yuǎn)程計(jì)算機(jī)549可以是另一個(gè)計(jì)算設(shè)備(例如個(gè) 人計(jì)算機(jī))、服務(wù)器、路由器、網(wǎng)絡(luò)PC、對等設(shè)備或者其它常見網(wǎng)絡(luò)節(jié)點(diǎn), 并且一般包括上文相對于計(jì)算設(shè)備560描述的許多或全部元件,盡管在圖6中 僅示出了存儲器存儲設(shè)備550 (軟盤驅(qū)動(dòng)器)。圖6所示的邏輯連接包括局域 網(wǎng)(LAN) 551和廣域網(wǎng)(WAN) 552。這樣的連網(wǎng)環(huán)境在辦公室、企業(yè)范圍 計(jì)算機(jī)網(wǎng)絡(luò)、內(nèi)聯(lián)網(wǎng)和因特網(wǎng)中是很常見的。
當(dāng)在LAN連網(wǎng)環(huán)境中使用時(shí),計(jì)算設(shè)備560通過網(wǎng)絡(luò)接口或適配器553 連接至LAN551。當(dāng)在WAN連網(wǎng)環(huán)境中使用時(shí),計(jì)算設(shè)備560可以包括調(diào)制 解調(diào)器554或用于通過諸如因特網(wǎng)等廣域網(wǎng)552來建立通信的其它裝置。調(diào)制 解調(diào)器554可以是內(nèi)置或外置的,其通過串行端口接口 546連接至系統(tǒng)總線 523。在網(wǎng)絡(luò)化環(huán)境中,相對于計(jì)算設(shè)備560描繪的程序模塊或者其部分可存 儲在遠(yuǎn)程存儲器存儲設(shè)備中??梢岳斫猓镜木W(wǎng)絡(luò)連接是示例性的并且可使 用在計(jì)算機(jī)之間建立通信鏈路的其它手段。
盡管可以想象,結(jié)合人類參與的安全數(shù)據(jù)存儲與檢索的眾多實(shí)施例尤其適 用于計(jì)算機(jī)化的系統(tǒng),但本文并不旨在將本發(fā)明限于這些實(shí)施例。相反,此處
使用的術(shù)語"計(jì)算機(jī)系統(tǒng)"旨在包含能夠存儲和處理信息和/或能夠使用所存儲 的信息來控制設(shè)備本身的行為或執(zhí)行的任何及所有設(shè)備,而不管這些設(shè)備本質(zhì) 上是電子的、機(jī)械的、邏輯的還是虛擬的。
此處描述的各種技術(shù)可結(jié)合硬件或軟件,或者在適當(dāng)?shù)臅r(shí)候以其組合來實(shí) 現(xiàn)。因而,用于實(shí)現(xiàn)提供結(jié)合人類參與的安全數(shù)據(jù)存儲與檢索的功能的方法和 裝置或者其某些方面或部分,可以采取包含在諸如軟盤、CD-ROM、硬盤驅(qū)動(dòng) 器或者任何其它機(jī)器可讀存儲介質(zhì)等有形介質(zhì)中的程序代碼(即指令)的形式, 其中當(dāng)程序代碼被加載到諸如計(jì)算機(jī)等機(jī)器并由其執(zhí)行時(shí),該機(jī)器成為用于提 供結(jié)合人類參與的安全數(shù)據(jù)存儲與檢索的功能的裝置。
如果需要,程序可以用匯編或者機(jī)器語言來實(shí)現(xiàn)。在任何情況下,語言可 以是編譯或解釋語言,并且與硬件實(shí)現(xiàn)相結(jié)合。用于實(shí)現(xiàn)結(jié)合人類參與的安全 數(shù)據(jù)存儲與檢索的方法和裝置還可以經(jīng)由以通過某種傳輸介質(zhì)傳輸?shù)某绦虼?碼的形式體現(xiàn)的通信來實(shí)現(xiàn),傳輸介質(zhì)諸如通過電線或電纜、通過光纖或者通
16過任何其它傳輸形式,其中當(dāng)程序代碼由諸如EPROM、門陣列、可編程邏輯
器件(PLD)、客戶機(jī)計(jì)算機(jī)等機(jī)器接收、加載并執(zhí)行時(shí)。當(dāng)在通用處理器上
實(shí)現(xiàn)時(shí),程序代碼與處理器相結(jié)合以提供一種用于調(diào)用結(jié)合人類參與的安全數(shù) 據(jù)存儲與檢索的功能的獨(dú)特裝置。另外,與結(jié)合人類參與的安全數(shù)據(jù)存儲與檢 索一起使用的任何存儲技術(shù)總是可以是硬件和軟件的組合。
盡管已經(jīng)結(jié)合各附圖的示例實(shí)施例描述了結(jié)合人類參與的安全數(shù)據(jù)存儲 與檢索,但要理解,可以使用其它類似的實(shí)施例,或者可以對所述實(shí)施例進(jìn)行 修改和添加,以執(zhí)行結(jié)合人類參與的安全數(shù)據(jù)存儲與檢索的相同功能而不背離 本發(fā)明。因此,此處所描述的結(jié)合人類參與的安全數(shù)據(jù)存儲與檢索不應(yīng)限于任 何單個(gè)實(shí)施例,而是應(yīng)當(dāng)根據(jù)所附權(quán)利要求書的廣度和范圍來解釋。
1權(quán)利要求
1.一種結(jié)合人類參與的計(jì)算機(jī)相關(guān)的安全方法,所述方法包括接收對存儲在存儲介質(zhì)中的數(shù)據(jù)的請求;響應(yīng)于所述請求,提供謎題,其中人類參與旨在獲得所述謎題的解答;接收所述謎題的所提出的解答;確定所提出的解答是否正確;以及如果所提出的解答正確,則允許訪問存儲在所述存儲介質(zhì)中的所述數(shù)據(jù)。
2. 如權(quán)利要求1所述的方法,其特征在于,還包括,如果提供所述謎題與接收所提出的解答之間的時(shí)間量大于預(yù)定的時(shí)間量,則不允許訪問所述數(shù)據(jù)。
3. 如權(quán)利要求1所述的方法,其特征在于,還包括在接收到所提出的解答之前,請求第一秘密;接收所述第一秘密;在接收到所述對數(shù)據(jù)的請求之后,請求第二秘密;接收所述第二秘密;將所述第一秘密與所述第二秘密相比較;以及如果所述第一秘密不匹配所述第二秘密,則不允許訪問所述數(shù)據(jù)。
4. 如權(quán)利要求1所述的方法,其特征在于所述謎題旨在可視地呈現(xiàn);以及所述謎題的解答旨在通過觀察所述謎題的可視呈現(xiàn)來獲得。
5. 如權(quán)利要求1所述的方法,其特征在于所述謎題旨在可聽地呈現(xiàn);以及所述謎題的解答旨在通過觀察所述謎題的音頻呈現(xiàn)來獲得。
6. 如權(quán)利要求1所述的方法,其特征在于,還包括從可插入謎題生成程序的庫中獲得所述謎題。
7. 如權(quán)利要求1所述的方法,其特征在于,還包括用第一密鑰加密所述數(shù)據(jù);用第二密鑰加密所述第一密鑰;在所述存儲介質(zhì)中存儲加密的數(shù)據(jù)和加密的第一密鑰;以及如果所提出的解答正確,貝IJ:用所述第二密鑰解密所述加密的第一密鑰;以及 提供經(jīng)解密的第一密鑰。
8. —種用于實(shí)現(xiàn)結(jié)合人類參與的計(jì)算機(jī)相關(guān)的安全的系統(tǒng),所述系統(tǒng)包括輸入/輸出部分,其被配置成接收對存儲在存儲器部分中的數(shù)據(jù)的請求;響應(yīng)于所述請求,提供謎題,其中人類參與旨在獲得所述謎題的解答;以及接收所述謎題的所提出的解答; 處理部分,其被配置成確定所提出的解答是否正確;以及如果所提出的解答正確,則允許訪問存儲在所述存儲器部分中的所述數(shù)據(jù);以及所述存儲器部分被配置成存儲所述數(shù)據(jù)。
9. 如權(quán)利要求8所述的系統(tǒng),其特征在于,所述處理部分還被配置成,如 果提供所述謎題與接收所提出的解答之間的時(shí)間量大于預(yù)定的時(shí)間量,則不允 許訪問所述數(shù)據(jù)。
10. 如權(quán)利要求8所述的系統(tǒng),其特征在于 所述處理部分還被配置成在接收到所提出的解答之前,請求第一秘密; 在接收到所述對數(shù)據(jù)的請求之后,請求第二秘密; 將所述第一秘密與所述第二秘密相比較;以及如果所述第一秘密不匹配所述第二秘密,則不允許訪問所述數(shù)據(jù);以及 所述輸入/輸出部分還被配置成 接收所述第一秘密;以及 接收所述第二秘密。
11. 如權(quán)利要求8所述的系統(tǒng),其特征在于 所述謎題旨在可視地呈現(xiàn);以及所述謎題的解答旨在通過觀察所述謎題的可視呈現(xiàn)來獲得。
12. 如權(quán)利要求8所述的系統(tǒng),其特征在于 所述謎題旨在可聽地呈現(xiàn);以及所述謎題的解答旨在通過觀察所述謎題的音頻呈現(xiàn)來獲得。
13. 如權(quán)利要求8所述的系統(tǒng),所述處理部分還被配置成從可插入謎題生 成程序的庫中獲得所述謎題。
14. 如權(quán)利要求8所述的系統(tǒng),其特征在于 所述處理部分還被配置成用第一密鑰加密所述數(shù)據(jù); 用第二密鑰加密所述第一密鑰;在所述存儲器部分中存儲加密數(shù)據(jù)和加密的第一密鑰;以及 如果所提出的解答正確,則用所述第二密鑰解密所述加密的第一密鑰;以及所述輸入/輸出部分還被配置成提供經(jīng)解密的第一密鑰。
15. —種在其上存儲計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀介質(zhì),所述計(jì)算機(jī)可 執(zhí)行指令用于通過執(zhí)行下列步驟來執(zhí)行結(jié)合人類參與的計(jì)算機(jī)相關(guān)安全接收對存儲在存儲介質(zhì)中的數(shù)據(jù)的請求; 響應(yīng)于所述請求,從可插入謎題生成程序的庫中獲得謎題; 提供所述謎題,其中人類參與旨在獲得所述謎題的解答; 接收所述謎題的所提出的解答; 確定所提出的解答是否正確;以及如果所提出的解答正確,則允許訪問存儲在所述存儲介質(zhì)中的所述數(shù)據(jù)。
16. 如權(quán)利要求15所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,還包括,如果提 供所述謎題與接收所提出的解答之間的時(shí)間量大于預(yù)定的時(shí)間量,則不允許訪 問所述數(shù)據(jù)。
17. 如權(quán)利要求15所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,還包括 在接收到所提出的解答之前,請求第一秘密; 接收所述第一秘密;在接收到所述對數(shù)據(jù)的請求之后,請求第二秘密; 接收所述第二秘密;將所述第一秘密與所述第二秘密相比較;以及如果所述第一秘密不匹配所述第二秘密,則不允許訪問所述數(shù)據(jù)。
18. 如權(quán)利要求15所述的計(jì)算機(jī)可讀介質(zhì),其特征在于所述謎題旨在可視地呈現(xiàn);以及所述謎題的解答旨在通過觀察所述謎題的可視呈現(xiàn)來獲得。
19. 如權(quán)利要求15所述的計(jì)算機(jī)可讀介質(zhì),其特征在于所述謎題旨在可聽地呈現(xiàn);以及所述謎題的解答旨在通過觀察所述謎題的音頻呈現(xiàn)來獲得。
20. 如權(quán)利要求15所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,還包括用第一密鑰加密所述數(shù)據(jù);用第二密鑰加密所述第一密鑰;在所述存儲介質(zhì)中存儲加密數(shù)據(jù)和加密的第一密鑰;以及如果所提出的解答正確,貝IJ:用所述第二密鑰解密所述加密的第一密鑰;以及提供經(jīng)解密的第一密鑰。
全文摘要
一種計(jì)算機(jī)相關(guān)的安全機(jī)制要求人類參與訪問驗(yàn)證序列。在請求訪問安全數(shù)據(jù)時(shí),向請求者提供謎題。謎題的正確解答需要人類參與。選擇謎題以使其解答在人類的能力范圍之內(nèi),但卻超出計(jì)算機(jī)系統(tǒng)領(lǐng)域的現(xiàn)有技術(shù)。謎題可以可視地和/或可聽地向用戶呈現(xiàn)。在一個(gè)配置中,經(jīng)由可插入謎題生成程序的庫來獲得謎題。隨著計(jì)算技術(shù)領(lǐng)域的現(xiàn)有技術(shù)的改進(jìn),可以替換庫中的謎題生成程序。
文檔編號G06F21/04GK101641702SQ200880009414
公開日2010年2月3日 申請日期2008年2月28日 優(yōu)先權(quán)日2007年3月23日
發(fā)明者A·H·貝克, A·S·特克, B·J·瓜拉希, G·梅德文斯基, T·杜塔 申請人:微軟公司