專利名稱:通過計算機設備上可信組件等驗證與計算機實體的人類交互的制作方法
技術領域:
本發(fā)明涉及一種結構和方法,用于向計算機實體驗證,結合計算設備進行的計算機請求是由人類發(fā)起的而不是由計算機應用程序等發(fā)起的。更具體地,本發(fā)明涉及這樣一種結構和方法,由此通過計算設備上運行的可信組件執(zhí)行驗證。
背景技術:
存在人類交互證據以向計算機實體證明,來自計算設備的對該實體的請求是由在該計算設備處的人類發(fā)起的,而不是由在該計算設備上運行的應用程序發(fā)起的。因而,這樣一個人類交互證據可以由例如網站使用來確認對站點ID的請求來自為可能合法的目的試圖獲得單一站點ID的人,且這樣的請求不是來自為可能非法或至少不受歡迎的目的試圖獲得多個站點ID的計算機應用程序。如可意識到的,在后者情況下,這樣的多個站點ID可能被例如希望躲在這樣的多個站點ID后面以便避免誠實地標識自己的惡意實體使用。
這樣一個人類交互證據還可被例如消息接收者使用來確認消息的發(fā)送者是為可能受歡迎的目的試圖向該接收者發(fā)送個人消息的人,且這樣的消息不是來自為可能不受歡迎的目的試圖發(fā)送多個非個人的成批消息的計算機應用程序。如可意識到的,在后者情況下,這樣的多個批量消息可以例如采用廣告或‘垃圾郵件’的形式,來自與該接收者沒有個人關系的惡意實體。
人類交互證據還可被例如在線廣告商使用,它向在線中介支付介紹費,每當由中介提供的鏈路被用戶選擇時。這里,證據確認消息來自希望經由鏈路訪問廣告商的人類選擇用戶,且這樣的消息不是來自試圖從中介或其代理發(fā)送多個非個人的批量消息給廣告商的計算機應用程序。如可意識到的,在后者情況下,這樣的多個批量消息例如可只被發(fā)送來生成介紹費,即使沒有涉及最終用戶,而且有時稱之為‘欺詐點擊(fraudulent click-through)’。如也可意識到的,這樣的欺詐點擊可發(fā)生在廣告環(huán)境中和在中介有動機生成這種消息的其它環(huán)境中。
更普遍地,要理解使用人類交互證據來防止不想要的批量發(fā)送消息、在廣告環(huán)境等中防止欺詐點擊、在在線拍賣網站上防止掠奪性砍價、在線購買的人類證據、帳戶建立的人類證據等。然后,這樣的人類交互證據可在請求或消息(下文為‘發(fā)送項目(send item)’)的接收者希望確保該發(fā)送項目是由在計算設備處執(zhí)行人類類型動作的人類而不只是由執(zhí)行編程化動作的計算設備發(fā)起的任何環(huán)境下使用。
每個這樣的人類交互證據基本上設計成要求發(fā)送上述發(fā)送項目的人類多少要花費些主動努力,其中所說的努力是具有計算設備可能無法完成的性質的動作。在人類交互證據的一個通用版本中,例如,預想接收者發(fā)送給預想發(fā)送者一個‘質詢(challenge)’,它包括可能容易地用一個詞語諸如狗、球、鉛筆等來描述的物品的圖片,且發(fā)送者必須與該發(fā)送項目一起發(fā)送一個詞語。有可能的是,如果發(fā)送者是人類,則這樣的發(fā)送者能夠容易地識別出質詢中的圖片化物品并提供該詞語。也有可能的是,如果發(fā)送者不是人類而是計算設備,則這樣的發(fā)送者不能輕易地識別圖片化物品并提供該詞語。在人類交互證據的另一個通用版本中,預想接收者發(fā)送給預想發(fā)送者一質詢,包括不希望根據可能由計算設備執(zhí)行的光學字符識別協(xié)議方便識別的詞語的圖片,但對人而言應易于識別,且再一次發(fā)送者必須與該發(fā)送項目一起發(fā)送該詞語。
無論如何,未能與發(fā)送項目一起提供詞語可能例如引起預想接收者根據發(fā)送者不是發(fā)送受歡迎發(fā)送項目的人的假設來忽略此消息。由于識別圖片或詞語和提供這一個詞語的努力不能夠輕易地由計算設備完成,因此人類交互證據在極大程度上確定請求或消息的發(fā)送者是人。
而且,即使要識別的努力不知何故由計算設備完成了,或者惡意實體可雇用人力來完成識別,該努力在計算設備或者作為發(fā)送者的勞動力雇員上強加了開銷,無論按照貨幣價值、容量、時間還是其它方面。例如,向一百萬個接收者發(fā)送電子郵件消息的計算設備,如果對一百萬條消息不要求人類交互證據,則根據當今技術可能相對很容易做到。但是,且值得注意地,如果對一百萬條消息要求唯一的人類交互證據,則同樣的向一百萬個接收者發(fā)送電子郵件消息的計算設備必須花費巨大的努力。那么,如可意識到的,要求計算設備或人力對許多發(fā)送項目的每一個進行人類交互證據可迅速成為嚴峻的障礙,尤其在計算設備或勞動力雇員試圖發(fā)送成百、成千或者甚至成百萬的這樣的發(fā)送項目的情況下。
然后,總結一下,人類交互證據防止了不想要的發(fā)送項目,諸如那些可由計算設備批量發(fā)送的發(fā)送項目,因為人類交互證據要求計算設備完成計算設備實際上不能完成的動作,否則就要求計算設備或人力在每個發(fā)送項目基礎上完成該動作并因此花費巨大努力。但是,人類交互證據注定要受到損害,因為這樣的證據要求人類為滿足這樣的證據而花費主動努力,而不計算人類在發(fā)送一個項目的自然過程中可能花費的被動努力。提出另一種方法,當前的人類交互證據沒有認識到人類在發(fā)送一個項目中花費計算機不會同樣花費的被動或自然努力,諸如例如在鍵盤上打字、通過鼠標設備移動光標等,以及通過檢測這種被動努力的花費,人類交互證據實際上不需要人類以‘跳過環(huán)(jumpingthrought a hoop)’方式花費主動或特定的努力。
那么,存在對一種人類交互證據(HIP)的需求,它實質上不要求人類花費主動努力,而是人類只花費被檢測的自然努力。具體而言,存在對一種結構和方法的需求,它實現這樣一種人類交互證據并以可信的方式向接收者驗證這種檢測到的自然努力,因此可以向接收者保證所檢測到的惡意實體實際上發(fā)生了并且不是由企圖欺騙接收者的惡意實體設計的。此外,存在對于這樣一種結構和方法的需求,通過它發(fā)送者的計算設備上的可信組件完成這樣的驗證。
發(fā)明概述上述需求至少部分由本發(fā)明滿足,本發(fā)明提供了一方法,描述與從計算設備的應用程序向接收者發(fā)送發(fā)送項目結合的用戶交互。計算設備在其上具有證明單元用于證明可信賴性。在該方法中,計算設備上的應用程序促進用戶構造發(fā)送項目,且應用程序和證明單元之一監(jiān)視可用來檢測用戶實際上是否正花費努力構造發(fā)送項目的預定標記。
證明單元認證應用程序以給予其信任,且應用程序和證明單元之一在用戶命令應用程序發(fā)送所構造的發(fā)送項目給接收者時,構造發(fā)送證明以伴隨發(fā)送項目。發(fā)送證明基于受監(jiān)視標記和對應用程序的認證,并從而描述了用戶交互。證明單元和應用程序之一打包所構造的發(fā)送證明與所構造的發(fā)送項目,且證明單元和應用程序之一將打包的發(fā)送項目和發(fā)送證明發(fā)送給接收者。
以上概述以及以下本發(fā)明實施例的詳細描述將在與附圖結合閱讀時得到更好的理解。為了說明本發(fā)明,附圖中示出了目前較佳的實施例。但是,如應該理解的,本發(fā)明不限于所示的精確方案與手段。在附圖中圖1是表示通用計算機系統(tǒng)的方框圖,其中可結合本發(fā)明的各方面和/或其部分;圖2是依照本發(fā)明的一個實施例示出具有發(fā)送應用程序和證明單元的、發(fā)送-發(fā)送項目和-發(fā)送證明給接收者的計算設備;圖3和4是依照本發(fā)明的一個實施例示出在圖2的計算設備(圖3)和接收者(圖4)處執(zhí)行的關鍵步驟的流程圖。
詳細說明計算機環(huán)境圖1及以下討論旨在提供本發(fā)明和/或其部分可在其中實現的合適計算環(huán)境的簡要描述。盡管不是必需,但本發(fā)明在由諸如客戶機工作站或服務器的計算機執(zhí)行的諸如程序模塊的計算機可執(zhí)行指令的通用上下文環(huán)境中描述。通常,程序模塊包括例程、程序、對象、組件、數據結構等,執(zhí)行特定任務或實現特定抽象數據類型。而且,應該理解本發(fā)明和/或其部分可用其它計算機系統(tǒng)配置實施,包括手持設備、多處理器系統(tǒng)、基于微處理器和可編程消費電子產品、網絡PC、小型機、主機計算機等。本發(fā)明還可在分布式計算環(huán)境中實施,其中任務由通過通信網絡連接的遠程處理設備完成。在分布式計算環(huán)境中,程序模塊可位于本地和遠程存儲器存儲設備。
如圖1所示,示例性通用計算設備包括常規(guī)的個人計算機120等,包括處理單元121、系統(tǒng)存儲器122和系統(tǒng)總線123(將包括系統(tǒng)存儲器在內的各種系統(tǒng)組件耦合到處理單元121)。系統(tǒng)總線123是任意若干類型的總線結構,包括存儲器總線或存儲器控制器、外圍總線和使用任何各種總線體系結構的局部總線。系統(tǒng)存儲器包括只讀存儲器(ROM)124和隨機存取存儲器(RAM)125?;据斎?輸出系統(tǒng)126(BIOS),包含諸如在起動時,幫助在個人計算機120內在元件之間傳送信息的基本例程,BIOS被存儲在ROM 124中。
個人計算機120還可包括用于讀寫硬盤(未示出)的硬盤驅動器127,用于讀或寫可移動磁盤129的磁盤驅動器128,和用于讀寫可移動光盤131如CD-ROM或其它光介質的光盤驅動器130。硬盤驅動器127、磁盤驅動器128和光盤驅動器130分別通過硬盤驅動器接口132、磁盤驅動器接口133和光盤驅動器接口134連接到系統(tǒng)總線123。驅動器及其相關聯的計算機可讀介質為個人計算機120提供計算機可讀指令、數據結構、程序模塊和其它數據的非易失性存儲。
盡管這里描述的示例性環(huán)境使用硬盤、可移動磁盤129和可移動光盤131,但應當意識到,存儲計算機能存取的數據的其它類型計算機可讀介質也可在示例性操作環(huán)境中使用。這樣的其它類型介質包括磁盒、閃存卡、數據視頻盤、Bernoulli盒、隨機存取存儲器(RAM)、只讀存儲器(ROM)等等。
許多程序模塊可存儲在硬盤、磁盤129、光盤131、ROM 124或RAM 125上,包括操作系統(tǒng)135、一或多個應用程序136、其它程序模塊137和程序數據138。用戶可通過輸入設備諸如鍵盤140和指點設備142輸入命令和信息到個人計算機120中。其它輸入設備(未示出)可包括話筒、游戲桿、游戲墊、衛(wèi)星天線等等。這些和其它輸入設備常常通過耦合到系統(tǒng)總線的串行口端口146連接到處理單元121,但也可通過其它接口如并行端口、游戲端口或通用串行總線(USB)連接。監(jiān)示器147或其它類型的顯示設備也通過接口如視頻適配器148連接到系統(tǒng)總線123。除監(jiān)示器147之外,個人計算機一般包括其它外圍輸出設備(未示出),諸如揚聲器和打印機。圖1的示例性系統(tǒng)還包括主機適配器155、小型計算機系統(tǒng)接口(SCSI)總線156和連接到SCSI總線156的外部存儲設備163。
個人計算機120可在使用到一個或多個遠程計算機如遠程計算機149的邏輯連接的網絡化環(huán)境中使用。遠程計算機149可以是另一個個人計算機、服務器、路由器、網絡PC、對等設備或其它公共網絡節(jié)點,并且一般包括上面相對于個人計算機120所述的許多或全部元件,盡管在圖1中只示出了存儲器存儲設備150。圖1所示的邏輯連接包括局域網(LAN)151和廣域網(WAN)152。這樣的網絡環(huán)境在辦公室、企業(yè)級計算機網絡、企業(yè)內部互聯網和因特網中很常見。
當在LAN網絡環(huán)境中使用時,個人計算機120通過網絡接口或適配器153連接到LAN 151。當在WAN網絡環(huán)境中使用時,個人計算機120一般包括用于在廣域網152如因特網上建立通信的調制解調器154或其它裝置。調制解調器154,可以是內置或外置的,通過串行端口146連接到系統(tǒng)總線123。在網絡化環(huán)境中,相對個人計算機120所述的程序模塊或其部分可存儲在遠程存儲器存儲設備中。將意識到,所示的網絡連接是示例性的并且可以使用在計算機之間建立通信鏈路的其它方法。
通過檢測被動努力驗證人類交互在本發(fā)明中,提供一種方法和系統(tǒng)來實現人類交互證據(HumanInteractive Proof),它驗證人類涉及了計算事務,通過該方法和系統(tǒng),這個人要發(fā)送項目給接收者。在該證據中,并且一般地所發(fā)送的項目伴隨著一個發(fā)送證明,它陳述實際檢測的與所發(fā)送的項目有關的足夠人類努力的效果,并且因此計算機不是簡單地基于在每發(fā)送項目基礎上不要求任何有效的人類努力的程序或應用程序來發(fā)送項目。檢測到的足夠的人類努力例如可包括鍵擊、鼠標點擊、鍵擊或鼠標點擊的最小數量、最小撰寫時間、接收者的最大數量的選擇、每單位時間交付的發(fā)送項目的最大數量等等。在本發(fā)明中,被動地檢測人類交互,因此人類不必結合發(fā)送證明發(fā)揮任何主動努力。因而,人類交互是基于人在構造和發(fā)送-發(fā)送項目給其接收者的過程中通常承擔的活動來檢測的。
為給予發(fā)送證明信任,現在轉到圖2,這樣的發(fā)送證明18是由或者代表在發(fā)送項目14的發(fā)送者的計算設備12上運行的安全計算環(huán)境10撰寫的,其中安全計算環(huán)境10是要由接收者16信任的。如可意識到的,發(fā)送項目14是由或者結合計算設備12構造的,諸如例如在運行于計算設備12的發(fā)送應用程序26的幫助下,并且發(fā)送證明18也是在計算設備12上撰寫的。安全計算環(huán)境10配置為在可信的基礎上提供發(fā)送證明18給接收者16以確認,關于相應發(fā)送項目14的構造,檢測到足夠的人類努力,再次在被動基礎上而不要求人類的任何主動卷入。在不同實施例中,發(fā)送項目14包括發(fā)送證明18作為附屬物等,或者發(fā)送證明18與發(fā)送項目14分開但鏈接到它,可能通過指針或其它引用。
發(fā)送者的計算設備12可以是不脫離本發(fā)明精神和范圍的任何適當的計算設備。例如,計算設備可以是個人計算機、便攜式通信設備、無線通信設備等等。這樣的計算設備12適當地通過適當的通信鏈路耦合到接收者16。這樣的鏈路可以是直接連接或者可以是網絡連接,諸如使用適當通信協(xié)議的網絡內部或之間的連接。
接收者16通常是運行于遠離計算設備12或者在其本地的服務器、計算機或其它計算設備上的應用程序。這樣的接收者16可提供服務給計算設備12處的發(fā)送者,基于來自它的請求,在本例中以發(fā)送項目14的形式。因而,發(fā)送項目14可以是對一段內容的請求、對用戶ID的請求、對網絡資源的請求等等。接收者16另外可接收在那里的用戶的消息,在本例中再次以發(fā)送項目14的形式。因而,發(fā)送項目14也可以是例如以郵件項目形式的網絡消息。然后,應當意識到,發(fā)送項目14適當地以相應的接收者16為目標。因此,這樣的發(fā)送項目14和相應的接收者16可以是不脫離本發(fā)明的精神和范圍的任何適當的發(fā)送項目14和接收者16。
在發(fā)送項目14的發(fā)送者的計算設備12上運行的安全計算環(huán)境10是如上所述的由接收者16信任的安全計算環(huán)境。因而,安全計算環(huán)境10應當能夠向接收者16證明這樣的信任,諸如例如通過能夠提供密鑰、數字簽名、數字證書等等。通常,這樣的數字證書包括引回到根信任當局的證書鏈,并且接收者16接受數字證書并基于它準予信任,如果接收者16識別和承兌這樣的證書的根信任當局。
如可意識到的,在發(fā)送者的計算設備12上運行的安全計算環(huán)境10應當免于由在其計算設備12上運行的其它實體的控制,或者免于由來自其它計算設備或人類形式的控制。因而,安全計算環(huán)境10應當不能被強制在不保證發(fā)送證明18的時候發(fā)出這樣的發(fā)送證明,諸如例如如果一個邪惡實體想要在沒有適當的人類交互的情況下發(fā)出發(fā)送項目14的時候。
這樣的安全計算環(huán)境10可以是不脫離本發(fā)明精神和范圍的、服從在此所述的約束過程的任何適當的安全計算環(huán)境。例如,安全計算環(huán)境10可以是在計算設備12上的操作系統(tǒng)的可信部分,其中這樣的操作系統(tǒng)的可信部分免于不適當的外部影響。安全計算環(huán)境10或者可自己檢測與發(fā)送項目14有關的足夠的人類努力,或者可在運行于其上的某應用程序和可能有關的硬件中給予信任以如此檢測,并且同樣或者可自己在適當的時候構造發(fā)送項目14的發(fā)送證明18,或者可在運行于其上的某應用程序中給予信任以如此構造。在本發(fā)明的一個實施例中,安全計算環(huán)境10實際上包括證明單元24作為在其上運行的應用程序和/或在其中運行的硬件以檢測上述足夠的人類努力和構造上述發(fā)送證明18。
證明單元24可以是不脫離本發(fā)明的精神和范圍的任何適當的硬件和/或軟件。例如,證明單元24可以被建立為在安全計算環(huán)境10的可信區(qū)域中運行的軟件,或者可以是在計算設備12上被設計為執(zhí)行在此所述的證明功能的一部分硬件。在任一情況下,這樣的證明單元24被保護不受在計算設備上運行的任何其它軟件或硬件監(jiān)視或影響,尤其是被保護不受諸如由企圖破壞證明單元24的功能的邪惡實體使用的攻擊。證明單元24于是應當被設計為防篡改,并且應當能夠以數字方式簽名、驗證簽名、加密、解密等等。這樣的證明單元24至少應當對于熟練技術人員是顯然的并且因此在此不必更詳細地描述。
注意,安全計算環(huán)境10和/或其證明單元24在檢測是否有可能已經花費了足夠的人類努力時必須接受從計算設備12上的硬件20得到的輸入、所述硬件是人類在構造發(fā)送項目14的過程中將使用的。例如,這樣的硬件20可包括觸摸屏、鍵盤、光標控制設備如鼠標等等。另外,安全計算環(huán)境10/證明單元24(在下文中,‘證明單元24’)可指計算設備12的其它資源22,諸如時鐘、存儲器、控制器等等。然后,每個這樣的一部分硬件20和每個這樣的資源22可變成一種途徑,邪惡實體可能通過它企圖不適當地破壞對與發(fā)送項目14有關的足夠的人類努力的花費的檢測。因此,在本發(fā)明的一個實施例中,每個這樣的一部分硬件20和每個這樣的資源22被構造為由證明單元24信任,并且還能夠向證明單元24證明這樣的信任,諸如例如通過能夠提供密鑰、數字簽名、數字證書等等。再次,這樣一個數字證書一般包括引回到根信任當局的證書鏈,并且安全計算環(huán)境10接受數字證書并且基于它準予信任,如果這樣的證明單元24識別并且承兌這樣的證書的根信任當局。
發(fā)送證明18本身可采用不脫離本發(fā)明的精神和范圍的任何適當形式。例如,發(fā)送證明18可基于某種形式可擴展標記語言(XML)構造為數字文檔并基于私鑰以數字方式簽名,并且按照可從上述安全計算環(huán)境10的數字證書得到的相應的公鑰是可驗證的。因而,這樣的發(fā)送證明18可包括這樣的數字證書,并且也可包含某種肯定陳述,它證明這樣的事實檢測到足夠的人類努力花費在構造相應發(fā)送項目14的過程中。另外,它可以是這樣一種情況,即發(fā)送證明18包括與這樣檢測到的所花費的人類努力有關的細節(jié),諸如例如鍵擊數、用于構造發(fā)送項目14的時間量、接收者16的數量等、在預先預定義時段內發(fā)送的發(fā)送項目14的數量,和/或與所使用的硬件20和/或資源22有關的細節(jié)。如可意識到的,有了這樣的細節(jié),接收者16可在決定是否承兌發(fā)送項目14的過程中執(zhí)行附加的過濾。
然后概括一下,在本發(fā)明中,發(fā)送一發(fā)送項目14給接收者16的發(fā)送用戶使用計算設備12,它具有硬件20,包括某種輸入設備諸如鍵盤、鼠標等;資源22,包括存儲器等;應用程序26,用于構造發(fā)送項目14;和受信托的證明單元24,在不會受用戶影響和能證明發(fā)送項目14的安全計算環(huán)境10中運行。接收者16在接收發(fā)送項目14并伴隨發(fā)送證明18時,只有當伴隨該發(fā)送項目14的發(fā)送證明18對于這樣的接收者16是可接受的時候才承兌該發(fā)送項目14?,F在轉到圖3,示出由和/或結合上述組件使用的方法。
首先,預期在計算設備12處的用戶通過發(fā)送應用程序26構造發(fā)送項目14(步驟301)。當然,如果發(fā)送項目14是消息,則應用程序26是消息-發(fā)送應用程序諸如電子郵件應用程序,而如果發(fā)送項目14是請求,則應用程序26是能夠撰寫請求的應用程序,諸如例如基于從接收者16接收的代碼的計算機瀏覽器。
結合在步驟301構造發(fā)送項目14,應用程序26和證明單元24之一監(jiān)視某些預定標記,它們可以用于檢測用戶實際上正在花費努力構造發(fā)送項目14(步驟303),以及應用程序26不是自己以沒有實際用戶卷入的自動化過程方式在構造發(fā)送項目14。這樣的標記可以是不脫離本發(fā)明精神和范圍的任何標記。例如,應用程序26或者證明單元24可監(jiān)視實際鍵盤活動和/或鼠標活動,用于構造發(fā)送項目14的最小構造時間、每單位時間發(fā)送的發(fā)送項目的最大數量、用于控制應用程序26活動的運行腳本的缺少等等。
明顯地,在步驟301已經構造發(fā)送項目14之前或之后,證明單元24認證應用程序26(步驟305)以給予它信任。由證明單元24對這類應用程序26的這類認證例如可發(fā)生在應用程序26在計算設備12上被實例化的時候,在應用程序26由用戶調用以構造發(fā)送項目14的時候,或者在發(fā)送項目14被構造和被發(fā)送到接收者16的時候。由證明單元24對應用程序26的這類認證可包括不脫離本發(fā)明精神和范圍的任何適當的認證。例如,這類認證可包括應用程序26為證明單元24提供數字證書,并且可能提供其它可使用的文檔以及可能提供關于在其內應用程序26正在運行的環(huán)境的信息?;谶@類信息證明單元24本身確??梢孕湃螒贸绦?6正確地運行,例如通過驗證數字證書和保證應用程序26正在預期的環(huán)境中基于操作的文檔在運行。
注意,盡管證明單元24可執(zhí)行步驟303的監(jiān)視,但應意識到,應用程序26本身更可能執(zhí)行這樣的監(jiān)視。注意,這么做在應用程序26監(jiān)視自己的范圍內更簡單,并且也因為證明單元24不是很了解應用程序26及其接口。無論如何,一旦證明單元24在步驟305信任應用程序26,這樣的信任就應當擴展到應用程序26在步驟303監(jiān)視自己的能力。
連同在步驟305認證應用程序26以給予其信任,證明單元24也可認證至少某些用于或者預期用于構造發(fā)送項目14的硬件20和/或資源22(步驟307)。再次,由證明單元24對這類硬件20和/或資源22的這類認證例如可發(fā)生在應用程序26在計算設備12上實例化的時候,在應用程序26由用戶調用以構造發(fā)送項目14的時候,或者在發(fā)送項目14被構造并且要被發(fā)送到接收者16的時候。與以前一樣,這類認證可包括不脫離本發(fā)明精神和范圍的任何適當的認證。例如,并且再次,這類認證可包括硬件20和/或資源22的若干部分的每一個為證明單元24提供數字證書,而且可能提供其它文檔和環(huán)境信息,并且基于這類信息,證明單元24向自己確保例如可以信任鍵盤正確地操作,可以信任存儲器正確地操作等等。
無論如何,假定用戶實際上已經在步驟303構造了發(fā)送項目,這樣的用戶隨后命令應用程序26實際發(fā)送所構造的發(fā)送項目14給接收者16(步驟309)。在這么做的時候,證明單元24確定所有有關要求是否已經滿足,基于步驟303所監(jiān)視的標記和步驟305和307的認證(步驟311),并且如果這樣,則證明單元24和/或應用程序26構造發(fā)送證明18以伴隨這樣的發(fā)送項目14(步驟313)。之后,證明單元24和/或應用程序26打包所構造的發(fā)送證明18與所構造的發(fā)送項目14(步驟315),并且應用程序26和/或證明單元24實際上發(fā)送打包的發(fā)送項目14和發(fā)送證明18給接收者16(步驟317)。
證明單元24可在步驟311以不脫離本發(fā)明精神和范圍的任何適當方式確定是否已經滿足所有有關要求。例如,證明單元可要求在步驟305和307的所有認證成功,并且還要求步驟303監(jiān)視的標記滿足某些預定的要求。這樣的要求例如可以由證明單元24或接收者16提出。在后者的情況下,可以是接收者在某個先前的時間交付這樣的要求給證明單元24。注意,在執(zhí)行步驟311時,證明單元可實際執(zhí)行整個確定的最少部分或者根本不執(zhí)行,并且將這類確定的剩余部分留給接收者16。在這樣的情況下,證明單元24在步驟313構造發(fā)送證明18以包括接收者16進行確定的剩余部分所必需的所有信息。
證明單元24和/或應用程序26可在步驟313以不脫離本發(fā)明精神和范圍的任何適當方式構造發(fā)送證明18。例如,在本發(fā)明的實施例中,所構造的發(fā)送證明18包括來自證明單元24的陳述描述應用程序26,并且可能包括所使用的硬件20和/或資源22,并且還可能包括與這樣的應用程序26、硬件20和/或資源22諸如例如其環(huán)境有關的相關信息。如可意識到的,這類相關信息可由接收者16在決定是否接受和承兌發(fā)送證明18時和/或在決定是否接受和處理發(fā)送項目14時使用。注意,所構造的發(fā)送證明18也可包括來自證明單元24的陳述,它關于上述應用程序26、硬件20和/或資源22確實是可信賴性的,不認為這樣的陳述是絕對必須的,尤其是因為這樣一個陳述隱含著這樣的事實,即證明單元24選擇發(fā)出描述應用程序26的陳述。
明顯地,所構造的發(fā)送證明18還包括一個陳述,描述發(fā)送項目14,并且還包括與發(fā)送項目14有關的相關信息。注意,這樣的陳述可來自證明單元24或應用程序26。在后者的情況下,來自證明單元24描述應用程序26的的陳述至少隱含地說明可以信任發(fā)出描述發(fā)送項目14的陳述的應用程序26。這里,在來自證明單元24或應用程序26的陳述中的、與發(fā)送項目14有關的相關信息有可能包括所監(jiān)視的數據諸如與用戶構造發(fā)送項目14有關的鍵盤敲擊數量和/或鼠標點擊數量、構造的時間長度、接收者16的數量等等。如可意識到的,并且再次,這類相關信息可由接收者16在決定是否接受并承兌發(fā)送證明18時和/或在決定是否接受并處理發(fā)送項目14時使用。再次注意,盡管所構造的發(fā)送證明18還可包括關于發(fā)送項目14確實是可信賴性的陳述,但不認為這樣的陳述是絕對必須的,尤其是因為這樣一個陳述隱含著這樣的事實,即證明單元24或者應用程序26選擇發(fā)出描述發(fā)送項目14的陳述。
證明單元24和/或應用程序26可在步驟315以不脫離本發(fā)明精神和范圍的任何適當方式將所構造的發(fā)送證明18與所構造的發(fā)送項目14的打包在一起。例如,在本發(fā)明的一個實施例中,發(fā)送證明18被添加到發(fā)送項目14,并且組合的發(fā)送項目14/發(fā)送證明18基于證明單元24的密鑰被簽名,以形成添加到組合的發(fā)送項目14/發(fā)送證明18的數字簽名。如已知的,這樣一個數字簽名可包括或者引用引回到假定接收者16已知并信任的根當局的證書鏈。
應用程序26和/或證明單元24可在步驟317以不脫離本發(fā)明精神和范圍的任何適當方式發(fā)送打包的發(fā)送項目14和發(fā)送證明18給接收者16。例如,在本發(fā)明的一個實施例中,證明單元24/應用程序26的計算設備12通過網絡如在內部網絡或網絡之間耦合到接收者16,在這種情況下包14/18可通過一或多個網絡包按照相互可接受的網絡通信協(xié)議來發(fā)送。
注意,盡管此前按照執(zhí)行各種動作的證明單元24來描述,但可以是這樣的情況,即證明單元24只是證明并且作出關于安全計算環(huán)境10的陳述,并且安全計算環(huán)境10執(zhí)行一些或全部這類動作。在這種情況下,發(fā)送證明18可包括描述和證明安全計算環(huán)境10的陳述。
現在轉到圖4,在接收具有發(fā)送項目14和發(fā)送證明18的包14/18時(步驟401),接收者16驗證包括在其中的每個簽名(步驟403),包括基于證明單元24并被添加到組合的發(fā)送項目14/發(fā)送證明18的任何簽名。之后,接收者16檢查來自證明單元24的、在來自在包14/18的發(fā)送證明18中闡述的陳述(步驟405)。特別地,接收者16決定是否承兌發(fā)送項目,尤其是基于在發(fā)送證明18中闡述的描述應用程序26的陳述和在發(fā)送證明18中闡述的描述發(fā)送項目14的陳述。
在本發(fā)明的一個實施例中,在發(fā)送證明18中闡述的這類陳述在步驟405中被檢查,鑒于由或者代表接收者16闡述的預定的策略。這樣的預定策略可以是不脫離本發(fā)明精神和范圍的任何適當策略。例如,這類策略可闡述所述應用程序26必須是特定類型或版本的,或者這樣描述的應用程序26不是特定類型或版本的。同樣,這類策略可指定一個在其中應用程序26正在運行的特定環(huán)境,在這樣的環(huán)境中不存在某一個元素,等等。
同樣,關于發(fā)送項目14本身,策略例如可闡述這樣的發(fā)送項目14的特定格式,特定編碼,關于這樣的發(fā)送項目的內容的限制,關于發(fā)送項目14的接收者的數量的限制,應當在發(fā)送項目中的詞語,不應當在發(fā)送項目中的詞語,等等。明顯地,并且關于發(fā)送項目14本身,策略可進一步闡述與發(fā)送項目14有關的,尤其是與可以是對發(fā)送項目14是否確實是基于所花費的人類努力構造的起決定作用的因素有關的某些參數。在這點上,并且如可意識到的,策略例如可闡述發(fā)送項目14的最小構造時間,鍵盤敲擊的最小數量,鼠標點擊的最小數量,每單位時間發(fā)送發(fā)送項目14的最大數量,等等。據推測,并且應當意識到的,為接收者16闡述的策略的每個方面可以針對從發(fā)送證明18中的陳述獲得的信息來測量。
在步驟405基于策略檢查發(fā)送證明18中的陳述之后,接收者16隨后基于策略是否實際上由發(fā)送證明18滿足來確定是否實際上承兌發(fā)送項目14(步驟407)。如應當意識到的,如果策略實際上由發(fā)送證明18滿足,則以任何被認為適當的方式承兌、接受發(fā)送項目14,并且對它行動(步驟409)。例如,如果發(fā)送項目14是與接收者16相關聯的用戶的消息,則這樣的發(fā)送項目14/消息被交付到該用戶等的接收區(qū)。同樣,如果發(fā)送項目14是對來自接收者16或有關實體的服務或對象的請求,這樣的發(fā)送項目14/請求被交付到可以處理它并提供服務或對象等的服務器等。
注意,如果策略實際上沒有被發(fā)送證明18滿足,則發(fā)送項目14被拒絕并且不被承兌、接受,并且不對它行動(步驟411)。在這樣一個情況下,接收者16可向在計算設備12處的發(fā)送者返回一個簡單的拒絕消息、說明拒絕的詳細消息等等(步驟413)。然而,并且尤其是在發(fā)送者是某種邪惡實體的情況下,會出現這樣的情況,即任何返回消息會帶來更多不想要的請求或者其它不想要的注意,并且在這樣的情況下這樣的返回消息有可能是不可取的。
接收者16還可在拒絕情況下將該情況通知一拒絕過濾器(步驟415)。如可意識到的,這樣的拒絕過濾器隨后可過濾掉來自被拒絕請求的發(fā)送者的更多請求。另外或者在替換方案中,接收者16也可在拒絕情況下將被拒絕請求的發(fā)送者添加到被拒絕發(fā)送者列表(步驟417)。這里,來自該發(fā)送者的更多請求將不被過濾掉,但基于在這樣的列表上而被不同地對待。
結論對于發(fā)送一發(fā)送項目14給接收者的任何適當的發(fā)送者,并假定這樣的發(fā)送者和接收者16被適當地配置,可實施本發(fā)明?,F在應當意識到,有了在此所述的本發(fā)明,可用使得發(fā)送項目14伴隨著詳述發(fā)送者所花費的人類努力的發(fā)送證明18的方式執(zhí)行將發(fā)送項目14發(fā)送給接收者。
實現結合本發(fā)明執(zhí)行的過程所需的編程是相對簡單的,并且對于有關編程技術人員應當是顯然的。因此,在本文中不附上這樣的編程。然后,可使用任何特定的編程來實現本發(fā)明而不脫離本發(fā)明的精神和范圍。
在上述說明中,可以看到本發(fā)明包括新的且有用的體系結構和方法用于實現人類交互證據(HIP),實質上不需要由人類花費主動努力,而是人類只花費被檢測的自然努力。這樣被檢測的自然努力由可信的證明單元24以可信方式向接收者16驗證,因此可以向接收者16保證所檢測的自然努力確實是實際發(fā)生的并且不是被企圖欺騙接收者16的惡意實體簡單地設計出來的。
應當意識到,可在不脫離本發(fā)明思想的情況下對上述實施例進行修改。更顯然地,要意識到,本發(fā)明不僅可被用于包括人類與發(fā)送項目14交互的標記,而且還包括與發(fā)送項目14有關的任何標記,如人類交互、機器交互等等。因而,例如這樣一種情況,使用本發(fā)明向接收者16證明發(fā)送應用程序26每單位時間沒有發(fā)送超過最大數量的發(fā)送項目14,無論涉及的任何人類交互。因此,一般應當理解,本發(fā)明不限于所揭示的特定實施例,而旨在覆蓋由所附權利要求書定義的本發(fā)明的精神和范圍內的修改方案。
權利要求
1.一種從計算設備的應用程序發(fā)送一發(fā)送項目到一接收者的方法,所述計算設備在其上具有一證明單元用于證明可信賴性,其特征在于,所述方法包括所述計算設備上的應用程序構造所述發(fā)送項目;所述應用程序和所述證明單元之一監(jiān)視能夠用來檢測實際上花費了最小努力來構造所述發(fā)送項目的預定標記;所述證明單元認證所述應用程序以給予其信任;所述應用程序和所述證明單元之一,基于發(fā)出將所構造的發(fā)送項目發(fā)送給所述接收者的命令,構造一發(fā)送證明來伴隨所述發(fā)送項目,所述發(fā)送證明基于所述受監(jiān)視標記和所述應用程序的認證,并從而描述了為構造所述發(fā)送項目所花費的努力;所述證明單元和所述應用程序之一將所構造的發(fā)送證明與所構造的發(fā)送項目打包在一起;以及所述證明單元和所述應用程序之一將打包的發(fā)送項目和發(fā)送證明發(fā)送給所述接收者。
2.如權利要求1所述的方法,描述了與從所述計算設備的應用程序發(fā)送所述發(fā)送項目到所述接收者有關的用戶交互,所述計算設備在其上具有用于證明可信賴性的所述證明單元,其特征在于,所述方法包括所述計算設備上的應用程序便于用戶構造所述發(fā)送項目;所述應用程序和所述證明單元之一監(jiān)視可用來檢測所述用戶實際上正為構造所述發(fā)送項目花費努力的預定標記;所述證明單元認證所述應用程序以給予其信任;所述應用程序和所述證明單元之一,基于所述用戶命令所述應用程序發(fā)送所構造的發(fā)送項目到所述接收者,構造一發(fā)送證明以伴隨所述發(fā)送項目,所述發(fā)送證明基于所述受監(jiān)視標記和所述應用程序的認證,并從而描述了所述用戶交互;所述證明單元和所述應用程序之一將所構造的發(fā)送證明與所構造的發(fā)送項目打包在一起;以及所述證明單元和所述應用程序之一將所打包的發(fā)送項目和發(fā)送證明發(fā)送給所述接收者。
3.如權利要求1所述的方法,其特征在于,包括所述計算設備上的電子郵件應用程序,構造要發(fā)送給所述接收者的電子郵件消息。
4.如權利要求1所述的方法,其特征在于,包括所述計算設備上的請求應用程序,構造要發(fā)送給所述接收者的請求。
5.如權利要求1所述的方法,其特征在于,包括所述應用程序和所述證明單元之一監(jiān)視受監(jiān)視標記,包括下列各項即鍵盤活動、寫字板活動、鼠標活動和缺少用于控制所述應用程序活動的運行腳本的至少之一。
6.如權利要求1所述的方法,其特征在于,包括所述應用程序和所述證明單元之一監(jiān)視預定標記,包括下列各項即構造所述發(fā)送項目的最小構造時間和每單位時間所發(fā)送的發(fā)送項目的最大數量的至少之一。
7.如權利要求1所述的方法,其特征在于,包括所述證明單元通過審查由所述應用程序提供的數字證書來認證所述應用程序。
8.如權利要求1所述的方法,其特征在于,所述計算設備包括硬件和資源,所述方法還包括所述證明單元至少認證用于構造所述發(fā)送項目的所述計算設備的一些硬件和資源。
9.如權利要求8所述的方法,其特征在于,包括所述證明單元通過審查由所述硬件和/或資源的每一部分提供的數字證書來認證它們。
10.如權利要求1所述的方法,其特征在于,包括所述應用程序和所述證明單元之一,根據所述受監(jiān)視標記確定預定要求是否已滿足,以及如果是則構造所述發(fā)送證明。
11.如權利要求1所述的方法,其特征在于,包括構造所述發(fā)送證明,以包括描述所述應用程序和相關于所述應用程序的信息的陳述;以及描述所述發(fā)送項目和與所述發(fā)送項目有關的信息的陳述,包括與所述受監(jiān)視標記至少一部分有關的信息。
12.如權利要求11所述的方法,其特征在于,所述計算設備包括硬件和資源,所述方法還包括所述證明單元至少認證用于構造所述發(fā)送項目的所述計算設備的一些硬件和/或資源,所述方法還包括構造所述發(fā)送證明以包括描述所述硬件和/或資源及與這類硬件和/或資源有關的信息的陳述。
13.如權利要求1所述的方法,其特征在于,包括將所構造的發(fā)送證明與所構造的發(fā)送項目打包,這是通過將所述發(fā)送證明附加到所述發(fā)送項目、根據所述證明單元的密鑰簽名打包的發(fā)送項目/發(fā)送證明以形成數字簽名、并將所述數字簽名附加到所述打包的發(fā)送項目/發(fā)送證明來完成的。
14.一種驗證與由一接收者從一計算設備的應用程序接收的發(fā)送項目有關的最小花費努力的方法,所述發(fā)送項目是在帶有一發(fā)送證明的包中,所述發(fā)送證明基于可用來檢測實際上花費了最小努力來構造所述發(fā)送項目的受監(jiān)視標記和對所述應用程序的認證,且從而描述了所述花費努力,其特征在于,所述方法包括接收帶有所述發(fā)送項目和所述發(fā)送證明的所述包;驗證包括在所述包內的至少一個簽名;鑒于決定是否承兌所述發(fā)送項目的預定策略檢查所述包的所述發(fā)送證明,所述策略詳述所述最小花費努力,由此策略的每個方面可針對從所述發(fā)送證明獲得的信息而被度量;以及如果所述策略實際上由所述發(fā)送證明滿足則承兌所述發(fā)送項目,且從而接受并對所述發(fā)送項目作出動作。
15.如權利要求14的方法,用于驗證與由所述接收者從所述計算設備的應用程序接收的所述發(fā)送項目有關的用戶交互,所述發(fā)送項目是在帶有一發(fā)送證明的包中,所述發(fā)送證明基于可用來檢測實際上花費了最小努力來構造所述發(fā)送項目的受監(jiān)視標記和對所述應用程序的認證,并從而描述了所述用戶交互,其特征在于,所述方法包括接收帶有所述發(fā)送項目和所述發(fā)送證明的所述包;驗證包括在所述包內的至少一個簽名;鑒于決定是否承兌所述發(fā)送項目的預定策略檢查所述包的所述發(fā)送證明,由此策略的每個方面可針對從所述發(fā)送證明獲得的信息而被度量;以及如果所述策略實際上被所述發(fā)送證明滿足則承兌所述發(fā)送項目,且從而接受并對所述發(fā)送項目作出動作。
16.如權利要求15所述的方法,其特征在于,包括接收帶有所述發(fā)送項目的所述包,所述發(fā)送項目包括通過要為此酬謝的中介發(fā)起的請求,且如果判定中介發(fā)送了不帶有已驗證用戶交互的請求,則不承兌所述發(fā)送項目。
17.如權利要求14所述的方法,其特征在于,還包括如果所述策略實際上未被所述發(fā)送證明滿足則不承兌所述發(fā)送項目,且從而不接收和不對所述發(fā)送項目采取行動,并返回給所述計算設備一拒絕消息。
18.如權利要求14所述的方法,其特征在于,還包括如果所述策略實際上未被所述發(fā)送證明滿足則不承兌所述發(fā)送項目,且從而不接收和不對所述發(fā)送項目采取行動,并通知拒絕過濾器有關相同的內容,由此所述拒絕過濾器隨后將過濾掉來自所述計算設備的其它發(fā)送項目。
19.如權利要求14所述的方法,其特征在于,還包括如果所述策略實際上未被所述發(fā)送證明滿足則不承兌所述發(fā)送項目,且從而不接收和不對所述發(fā)送項目采取行動,并將所述計算設備添加至拒絕列表,由此來自所述計算設備的其它發(fā)送項目將根據是否在這樣的列表中而被區(qū)別對待。
20.如權利要求14所述的方法,其特征在于,包括接收帶有包括電子郵件消息的所述發(fā)送項目的所述包。
21.如權利要求14所述的方法,其特征在于,包括接收帶有包括請求的所述發(fā)送項目的所述包。
22.如權利要求17所述的方法,其特征在于,包括接收帶有包括在所述發(fā)送項目構造期間監(jiān)視的標志的所述發(fā)送項目的所述包,所述標志包括下列各項即鍵盤活動、寫字板活動、鼠標活動和缺少用于控制所述應用程序活動的運行腳本中的至少一項。
23.如權利要求14所述的方法,其特征在于,包括接收帶有包括在所述發(fā)送項目構造期間監(jiān)視的標志的所述發(fā)送項目的所述包,所述標志包括下列各項即構造所述發(fā)送項目的最小構造時間和每單位時間發(fā)送的發(fā)送項目的最大數量中的至少一項。
24.如權利要求14所述的方法,其特征在于,包括接收帶有所述發(fā)送證明的所述包,包括描述所述應用程序和與所述應用程序有關的信息的陳述;以及描述所述發(fā)送項目和與所述發(fā)送項目有關的信息的陳述,包括與所述受監(jiān)視標記至少一部分有關的信息。
25.如權利要求24所述的方法,其特征在于,所述計算設備包括硬件和資源,所述方法接收帶有所述發(fā)送證明的所述包,還包括描述所述硬件和/或資源及與這類硬件和/或資源有關的信息的陳述。
26.如權利要求14所述的方法,其特征在于,包括接收帶有附加于所述發(fā)送項目的所述發(fā)送證明的所述包,以及基于打包的發(fā)送項目/發(fā)送證明而附加的數字簽名。
全文摘要
一方法,描述與從計算設備的應用程序發(fā)送—發(fā)送項目到接收者有關的用戶交互。該計算設備在其上具有證明單元用于證明可信賴性。該應用程序方便了用戶構造發(fā)送項目,并監(jiān)視預定標記,它能夠用于檢測實際上用戶是否正花費努力來構造發(fā)送項目。證明單元認證應用程序以給予其信任,且基于用戶命令應用程序發(fā)送,構造發(fā)送證明以伴隨發(fā)送項目。發(fā)送證明基于受監(jiān)視標記和應用程序認證,并從而描述了用戶交互。所構造的發(fā)送證明與構造的發(fā)送項目被打包,且將該包發(fā)送給接收者。
文檔編號H04L9/32GK1713197SQ20051007141
公開日2005年12月28日 申請日期2005年5月13日 優(yōu)先權日2004年6月15日
發(fā)明者C·A·米科, D·E·黑克曼, J·D·本納龍, J·T·古德曼, M·佩納多 申請人:微軟公司