專利名稱:覆蓋人類交互證明系統(tǒng)和技術(shù)的制作方法
覆蓋人類交互證明系統(tǒng)和技術(shù)
背景技術(shù):
許多基于計算機的應(yīng)用和/或服務(wù)具有區(qū)分訪問計算機可訪問資源的人類和計算機用戶(時常被稱為“機器人(bot)”)的需要。例如,具有許多允許用戶通過輸入某些基本信息來創(chuàng)建電郵帳戶的在線電郵服務(wù)。用戶隨后能夠使用電郵帳戶來發(fā)送和接收電郵。這種建立電郵賬戶的簡易性已允許垃圾郵件制作者(spammer)使用利用隨機生成的賬戶信息自動創(chuàng)建電郵賬戶的機器人(例如,計算機程序),并且采用電郵帳戶來發(fā)出數(shù)以千計的垃圾電郵。其他示例的基于計算機的應(yīng)用或服務(wù)給用戶提供便利方式來訂購商品或服務(wù), 并且容易受到由于偽裝成人類用戶的機器人而造成的安全和/或隱私侵犯。用戶測試(有時被稱為Completely Automated Public Turing tests to tellComputers and Humans Apart (全自動區(qū)分計算機和人類的公共圖靈測試)(“CAPTCHA”),并且一般也被稱為人類交互證明(human interactive proof) (“HIP”))可以被采用來區(qū)分人類和機器人。在采用HIP時,用戶僅在通過基于HIP的表明該用戶是人類的測試之后才被允許訪問某些資源。通常,HIP以機器人難以通過這些測試、但是人類發(fā)現(xiàn)通過這些測試是較容易的方式來設(shè)計。通過改進的字符識別以及圖像過濾和處理技術(shù),機器人在規(guī)避已知的基于文本和基于圖像的HIP方面已變得更為擅長。在一些情況中,機器人將以對于基于計算機的服務(wù)或應(yīng)用或其用戶而言可能不是可接受的速率通過HIP測試。持續(xù)需要開發(fā)對于可靠地區(qū)分人類和非人類用戶而言是有用的HIP。
發(fā)明內(nèi)容
在這里討論可用于區(qū)分人類與非人類用戶(在此被稱為“機器人”)的覆蓋人類交互證明系統(tǒng)(“0HIPS”)和技術(shù)。OHIPS接收用戶的對于經(jīng)由任何已知的或以后開發(fā)的基于計算機的應(yīng)用或服務(wù)可訪問的資源的訪問的請求,生成HIP,評估針對HIP的用戶響應(yīng),并基于用戶響應(yīng)來同意或拒絕對于資源的訪問。在示例的實現(xiàn)方式中,HIP通過識別一個或多個可視對象諸如文本、數(shù)字或一般內(nèi)容的圖像并且依照預(yù)定的放置方案在空間的定義區(qū)域內(nèi)安排(一個或多個)可視對象以形成解決圖像(solution image)而生成。解決圖像(例如,通過應(yīng)用遮罩(mask))被分成兩個或更多局部圖像,以形成HIP。這些局部圖像能夠在一個或多個預(yù)定對準(zhǔn)位置上進行對準(zhǔn)。額外信息可以被添加至某些局部圖像。這些局部圖像也可以進一步被分成子局部圖像(sub-partial image)的群組。這些局部圖像和/或子局部圖像可以通過平移、卷積移位(convolutional shift)、旋轉(zhuǎn)、覆蓋(overlay)或任何其他的已知的或以后開發(fā)的移動技術(shù)來移動。在提供多個對準(zhǔn)位置時,在任何指定的對準(zhǔn)位置上,用戶可能只能辨別一些視覺對象,而其他的視覺對象可能仍然被不正確對準(zhǔn)并且難以辨別。通過使用圖形用戶界面(“⑶I”)在一個或多個預(yù)定的對準(zhǔn)位置上重新裝配(reassemble)至少一些局部圖像,用戶能夠可視化(visualize)解決圖像的至少一部分,并且以啟用OHIPS來確定用戶有可能是人類還是機器人的方式來識別一個或多個視覺對象。在GUI中局部圖像相對于彼此的移動可能被限制。如果局部圖像以在任何給定的對準(zhǔn)位置上只有一些視覺對象是可辨別的方式來形成的話,那么可以指示用戶在多個正確的對準(zhǔn)位置上對準(zhǔn)局部圖像,以解決(solve) HIP (例如,在HIP中辨別所有的可視對象)。這樣,與機器人相比,人類區(qū)分未對準(zhǔn)的字符或?qū)ο笈c正確對準(zhǔn)的字符或?qū)ο蟮淖吭侥芰Ρ焕脕砜煽康貐^(qū)分人類和非人類用戶。在這里討論的OHIPS和技術(shù)啟用依靠HIP的基于計算機的服務(wù)或應(yīng)用來同意對資源的訪問,以實現(xiàn)更大的安全性和可靠性。提供這個概述部分來以簡化的形式介紹概念的選擇。在具體描述部分中進一步描述這些概念。除了在這個概述部分中所描述的那些元素或步驟之外的其他元素或步驟是可能的,并且沒有元素或步驟是一定需要的。這個概述部分并不打算標(biāo)識所請求保護的主題的關(guān)鍵特征或基本特征,也不打算用作輔助手段來確定所請求保護的主題的范圍。所請求保護的主題并不限于解決在這個文件的任何部分中注釋的任何或所有缺陷的實現(xiàn)方式。
圖I是示出其中可以實現(xiàn)或使用覆蓋人類交互證明系統(tǒng)(“0HIPS”)的示例通信系統(tǒng)架構(gòu)的簡化功能框圖。圖2是圖I所示的OHIPS可用于形成人類交互證明(“HIP”)以便于用戶訪問OHIPS保護的資源的示例可視對象的示意圖。圖3是圖I所示的OHIPS可用于形成HIP的解決圖像的簡化功能框圖。圖4是在圖3中顯示其簡化框圖的示例解決圖像的示意圖。圖5是由圖I所示的OHIPS形成的HIP的簡化功能框圖。圖6是由圖4所示的示例解決圖像形成的兩個示例局部圖像的示意圖。圖7是圖I所示的OHIPS可用于形成HIP的示例遮罩的示意圖。圖8是示出由圖4所示的示例解決圖像形成的若干示例局部圖像的形成的示意圖。圖9是在兩個不同的對準(zhǔn)位置中示出圖8所示的示例局部圖像的示意圖。圖10是使用圖I所示的OHIPS來生成和使用HIP以便響應(yīng)于對于訪問HIP保護的資源的用戶請求而確定用戶有可能是人類還是非人類的示例方法的流程圖。圖11是其中可以實現(xiàn)或使用圖I所示的OHIPS和/或圖10所示的(一種或多種)方法的各方面的示例操作環(huán)境的簡化功能框圖。
具體實施例方式在此描述的覆蓋人類交互證明系統(tǒng)(“0HIPS”)和技術(shù)結(jié)合任何已知的或以后開發(fā)的基于計算機的應(yīng)用或服務(wù)來操作,以便通過可靠地區(qū)分人類和非人類用戶來提供對于資源的安全訪問。OHIPS的示例操作參考包括采用文本字符的圖像的形式的可視對象的HIP來描述,然而將意識到具有可以利用來實現(xiàn)或使用在此描述的系統(tǒng)和技術(shù)的幾乎無限類型的已知的和以后開發(fā)的可視對象(包括但不限于數(shù)字和/或一般內(nèi)容的圖像)。現(xiàn)在轉(zhuǎn)到附圖,其中相同的數(shù)字標(biāo)示相同的組件。圖I是示出其中可以實現(xiàn)或使用OHIPS 101的各方面來管理針對HIP保護的資源106的訪問的示例通信架構(gòu)的簡化功能框圖。如所示的,HIP保護的資源106被實現(xiàn)為(一個或多個)服務(wù)器/ (一個或多個)服務(wù)104或者在(一個或多個)服務(wù)器/ (一個或多個)服務(wù)104內(nèi)實現(xiàn)并且經(jīng)由(一個或多個)網(wǎng)絡(luò)110 (其代表任何的現(xiàn)有或未來、公共或私有、有線或無線、廣域或局域、分組交換或電路交換的通信基礎(chǔ)結(jié)構(gòu)或技術(shù))來訪問。然而,將意識到任何已知的或以后開發(fā)的客戶端或網(wǎng)絡(luò)側(cè)資源可以利用OHIPS 101來保護。同樣地,OHIPS 101的各方面可以是基于網(wǎng)絡(luò)和/或基于客戶機的,并且OHIPS 101的不同功能可以利用不同的設(shè)備或程序和/或在不同的位置或網(wǎng)絡(luò)上執(zhí)行。HIP生成器105負(fù)責(zé)響應(yīng)于來自(顯示為操作電子設(shè)備102)人類用戶111或非人類用戶113 (在此也被稱為“機器人”)的對于訪問一個或多個HIP保護的資源106的請求而生成HIP 500。HIP 500包括一個或多個可視對象200 (在下文結(jié)合圖2進一步討論),其中這些可視對象被分成兩個或更多的局部圖像(下面結(jié)合圖5-8進一步討論HIP 500及其生成)。
用戶響應(yīng)管理器115負(fù)責(zé)評估由請求用戶輸入的有關(guān)HIP 500的信息以及同意或拒絕對于HIP保護的(一個或多個)資源的訪問。在示例的操作情景中,HIP 500與用戶輸入有關(guān)(一個或多個)可視對象200的信息的指令一起被顯示給用戶?;谟脩糨斎氲男畔?,能夠確定有可能該用戶是人類用戶111還是機器人113。通常,當(dāng)用戶精確地識別有關(guān)(一個或多個)可視對象的某些信息時,假定該用戶是人類。當(dāng)用戶不精確地識別該信息時,假定該用戶是機器人。繼續(xù)參考圖1,圖2是可用于形成HIP 500的示例可視對象200的示意圖。如所示的,可視對象200是字符“W”,這是在若干人類語言的字母表中找到的字符。人類從小就被訓(xùn)練辨別字母表中的字符,因此輸入與這樣的字符有關(guān)的信息的任務(wù)容易利用最少的指令被用戶明白。此外,每一個字符一般在諸如鍵盤之類的輸入設(shè)備上具有相應(yīng)的鍵,這有助于從各種各樣的設(shè)備中方便輸入與HIP 500有關(guān)的請求信息(例如,字符的識別和/或枚舉)。然而,將意識到具有可以實現(xiàn)或使用在此描述的系統(tǒng)和技術(shù)的幾乎無限類型的已知的和以后開發(fā)的可視對象(包括但不限于數(shù)字和/或一般內(nèi)容的圖像),并且取決于(一個或多個)可視對象200的性質(zhì),具有許多方式來請求用戶輸入信息以及不同類型的請求信息。再次轉(zhuǎn)到圖2,可視對象200具有與之相關(guān)聯(lián)的某些參數(shù),其包括但不限于寬度202、高度201、左邊距(margin) 210、右邊距208、頂邊距204和底邊距206。可能所希望的是修改這些參數(shù)之中的一個或多個參數(shù),以防止機器人使用光學(xué)字符識別來容易辨別字符類型可視對象。例如,可以減少邊距,以致于不同的字符相互接觸,并且可以改變字符維度,以致于字符看起來被扭曲或被翹曲(warp),和/或可以使用不同的字體或樣式(styIe)。人類一般具有比機器人更好的能力來正確地識別翹曲的、擁擠的(CiOwded)或以其他方式扭曲的字符。人類同樣具有比機器人更好的能力來區(qū)分未對準(zhǔn)的字符或?qū)ο笈c正確對準(zhǔn)的字符或?qū)ο蟆O鄳?yīng)地,下面結(jié)合圖3-9描述的示例HIP 500和生成技術(shù)對于可靠地區(qū)分人類和非人類用戶是非常有用的,其啟用依靠HIP 500的基于計算機的服務(wù)或應(yīng)用以安全且可靠的方式來同意對于HIP保護的資源106的訪問。繼續(xù)參考圖I和2,圖3是從中形成HIP 500的解決圖像300的簡化功能框圖。解決圖像300包括兩個或更多的區(qū)域310 (區(qū)域I和區(qū)域N被顯示)。一個或多個可視對象200被識別,諸如文本、數(shù)字或一般內(nèi)容的圖像,并且(一個或多個)可視對象依照預(yù)定的放置方案被安排在具有任何期望大小或幾何形狀的空間320的定義區(qū)域301內(nèi),以形成解決圖像300。如結(jié)合圖2所描述的,可視對象200可以相互接觸和/或被翹曲或以其他方式被扭曲(例如,利用不同的字體、樣式、旋轉(zhuǎn)或翹曲來繪制)。在示例的實現(xiàn)方式中,在空間320內(nèi)形成兩個區(qū)域310??臻g320的大小和幾何形狀以及可視對象200的數(shù)量和大小可以確定區(qū)域310的大小和幾何形狀。通常,區(qū)域310基于空間320的中心而是中心對稱的,并且在這些區(qū)域之間具有合適的邊距(margin)。區(qū)域310的位置可能是隨機的。在一個示例的放置方案中,視覺對象200以從頂?shù)降?、從左到右的方式被放置在這些區(qū)域中。在這個示例的放置方案中,在給定一個區(qū)域的大小以及可視對象的數(shù)量和大小的情況下,平均行數(shù)以及每一行中的字符數(shù)量(“NC”)被確定。緩沖器(被稱為“StkBD”)·可以用于存儲先前放置的字符的筆畫邊界信息。最初,StkBD是空的。當(dāng)前行數(shù)(“Row”)以及行中的當(dāng)前可視對象數(shù)量(“Col ”)最初也被設(shè)置成零。隨機地,選擇一個可視對象(Vi )。如果Col>=NC、Row〈=Row+l、Col〈=0,則沿著水平方向?qū)i與其先前的同胞(sibling) Vi-I放置在一起。如果Row>0,則嘗試沿著垂直方向移動Vi,以接觸上方的(一個或多個)可視對象(與此同時,水平位置也可以進行調(diào)整,以保持水平接觸)。在恰當(dāng)?shù)胤胖肰i時,StkBD被更新。然后,下一個可視對象200被提取,并且該處理被重復(fù),直至放置了每一個可視對象。圖4是使用這個示例的放置方案形成的示例解決圖像300的示意圖。在另一示例的放置方案中,視覺對象200可以在環(huán)形成(ring formation)中被放置在具有一個區(qū)域310的空間320中。在給定空間320的大小以及可視對象的數(shù)量和大小的情況下,環(huán)的半徑以及每一個可視對象在環(huán)中的位置角度theta (西塔)被確定。在計算角度theta時,添加隨機因素可能是所希望的。這些可視對象可以依照theta的遞增順序來放置。最初為空的緩沖器StkBD存儲與先前放置的可視對象相關(guān)的筆畫邊界信息。如果接觸對象是所希望的,則在Vi沒有接觸先前放置的對象的情況下,可以旋轉(zhuǎn)或縮放(scale)Vi0在恰當(dāng)放置可視對象時,StkBD被更新,并且該處理被重復(fù),直至放置了每一個可視對象。繼續(xù)參考圖1-4,圖5是由圖4所述的示例解決圖像300形成的HIP 500的簡化功能框圖。HIP 500通過將解決圖像300分成兩個或更多的局部圖像510 (局部圖像I和局部圖像N被顯示)來形成??梢蕴砑宇~外信息到一個或多個局部圖像,其中額外信息在局部圖像被正確對準(zhǔn)時通常不阻止人類正確地辨別底層圖像內(nèi)容,但是其具有迷惑機器人以使之更難以正確地重新裝配/對準(zhǔn)局部圖像的目的。例如,額外信息可能被位于包含該額外信息的局部圖像的頂部的局部圖像中包含的解決圖像中的信息所遮蔽(occlude)。HIP 500也可以包括任何的計算機可執(zhí)行指令或?qū)ζ涞囊?,這對于允許終端用戶相對于一個圖像來移動另一個圖像以確認(rèn)(ascertain)導(dǎo)致原始的解決圖像(以及其中的一個或多個可視對象)的至少一部分是可辨別的(一個或多個)預(yù)定對準(zhǔn)位置而言是所希望的。圖6是由圖4所示的示例解決圖像形成的包括HIP 500的兩個示例局部圖像即圖像C,601以及圖像b 602的示意圖。在一些情況中,可能希望HIP 500的局部圖像包括一個或多個可視對象的一些中斷筆畫(broken stroke)。圖像c’ 601和b 602示出這樣的中斷筆畫。每一個局部圖像包括圖4所示的解決圖像300中的字符的一些中斷筆畫。一個局部圖像中的中斷筆畫可能覆蓋另一個局部圖像中的中斷筆畫。在示例的實現(xiàn)方式中,可以生成遮罩,諸如圖7所示的遮罩700,以形成特定的解決圖像中的視覺圖像的中斷筆畫。在遮罩700的黑色區(qū)域中視覺對象的筆畫將被除去,并且在白色區(qū)域中的那些筆畫將保留在局部圖像內(nèi)。灰色區(qū)域是覆蓋區(qū)域,在該區(qū)域中筆畫將保留。遮罩700通常確保中斷筆畫均勻地分布在整個解決圖像300上。由于不將筆畫分成太多的碎片(piece)而能夠緩解由機器人進行的攻擊。在針對HIP 500生成最后的圖像時,也可能希望進一步將局部圖像分成子局部圖像的群組。在這方面可以使用分區(qū)(partitioning)技術(shù)。圖8示出在從解決圖像300中形成圖像c’ 601和b 602中所牽涉 的步驟。例如,如所示的,局部圖像802被分區(qū)成兩個圖像804和806,其中圖像804包括字符“ENBG”的中斷筆畫,而圖像806包括字符“R”和“A”的中斷筆畫。通常,取決于分區(qū)圖像的位置,分區(qū)圖像可以包括解決圖像的一個區(qū)域310的上半部分以及解決圖像的另一個區(qū)域310的下半部分,或者反之亦然。接下來,圖像804被旋轉(zhuǎn)并與圖像806進行組合,以形成圖6所示的圖像c’ 601。旋轉(zhuǎn)通常具有任意角度,同時在組合期間避免覆蓋兩個圖像中的字符。這樣,在一些對準(zhǔn)(旋轉(zhuǎn))位置上,解決圖像300內(nèi)的一些可視對象可以被正確對準(zhǔn)并因而是可辨別的,而在其他旋轉(zhuǎn)位置上,沒有一個可視對象能夠被辨別。減少在每一個正確對準(zhǔn)的旋轉(zhuǎn)角度上可辨別的可視對象的數(shù)量能夠幫助阻止由機器人進行的攻擊。通常,原始解決圖像中可視對象的接觸和翹曲不僅在防止機器人使用現(xiàn)代OCR技術(shù)來識別可視對象方面是重要的,而且接觸和翹曲對于防止機器人識別正確對準(zhǔn)的旋轉(zhuǎn)角度以及區(qū)分正確對準(zhǔn)的可視對象與未對準(zhǔn)的可視對象而言也是重要的。也有可能(例如,沿著中心)一起覆蓋局部圖像和/或平移這些局部圖像,以增加難度。圖9示出兩個特定的對準(zhǔn)位置902和904,其中在這些位置上圖6所示的HIP 500的圖像c’ 601和b 602可以采用圖4所示的解決圖像300內(nèi)的字符中的一些字符能夠被人類辨別的方式來旋轉(zhuǎn)。如所示的,在對準(zhǔn)位置902上能夠辨別“ENBG”,而在對準(zhǔn)位置904上能夠辨別“RA”。將意識到也可以生成不同數(shù)量的正確對準(zhǔn)的旋轉(zhuǎn)角度。例如,如果圖8所示的圖像802被分區(qū)成N個圖像,其中N-I個圖像任意地以不同的角度來旋轉(zhuǎn)并且隨后進行組合(但是在組合之后不被覆蓋)以形成圖像c’ 601,則在圖像c’ 601相對于圖像b 602進行旋轉(zhuǎn)時將具有N個正確對準(zhǔn)的旋轉(zhuǎn)角度。如果圖像802沒有被分區(qū),則將只有一個正確對準(zhǔn)的旋轉(zhuǎn)角度,即,在特定的旋轉(zhuǎn)角度上,所有的可視對象能夠被辨別。某些基于因特網(wǎng)的應(yīng)用可能不會有效地支持由正在使用Web (網(wǎng)絡(luò))瀏覽器⑶I的終端用戶進行的旋轉(zhuǎn)操作。作為上述的旋轉(zhuǎn)方案的替代或補充,也可以采用卷積圖像移位,其中假定移動圖像是空間上周期性的??臻g周期被恰當(dāng)?shù)剡x擇,以避免空間混疊。通常,它大于圍住(enclose)解決圖像中的所有可視對象的最小空間區(qū)域。如果在HIP中具有一個以上的移動圖像,那么對于所有的移動圖像而言,該周期是相同的。移位可以水平地、垂直地或以任何角度來執(zhí)行。在特定的移位位置上,某些可視對象能夠被辨別,而其他的可視對象不能被辨別。繼續(xù)參考圖1-9,圖10是生成和使用諸如HIP 500之類的人類交互證明來確定用戶有可能是人類還是非人類以響應(yīng)對于訪問HIP保護的資源諸如一個或多個HIP保護的資源106的用戶請求的示例方法的流程圖。
圖10所示的方法可以利用存儲在計算機可讀介質(zhì)(計算機可讀媒體1104結(jié)合圖11來顯示和討論)上并由一個或多個通用、多用途或單用途處理器(諸如也結(jié)合圖11顯示和討論的處理器1102)執(zhí)行的計算機可執(zhí)行指令(諸如也結(jié)合圖11顯示和討論的計算機可執(zhí)行指令1106)來實現(xiàn)。除非特別說明,否則這些方法或其步驟并不限制于特定的順序或序列。此外,這些方法或其步驟中的一些能夠同時發(fā)生或被執(zhí)行。該方法開始于方框1000,并且繼續(xù)于方框1002,其中一個或多個可視對象諸如(一個或多個)可視對象200被識別。在方框1004,識別具有許多區(qū)域的空間,諸如具有區(qū)域310的空間320。接下來,一個或多個可視對象被安排在多個區(qū)域中的每一個區(qū)域中,以形成諸如解決圖像300之類的解決圖像,如方框1006所示。在方框1008,解決圖像(例如,通過應(yīng)用遮罩)被分成許多局部圖像,諸如局部圖像510。每一個局部圖像包括被安排在一個或多個區(qū)域中的一個或多個可視對象。信息可以被添加到某些局部圖像。這些局部圖像也可以進一步被分成子局部圖像的群組。這些局部圖像和/或子局部圖像可以通過平移、卷積移位、旋轉(zhuǎn)、覆蓋或任何其他已知的或以后開發(fā)的移動技術(shù)來移動。通過在一個或多個預(yù)定 對準(zhǔn)位置上重新裝配至少一些局部圖像,有可能從至少一些局部圖像中再現(xiàn)(i^piOduce)解決圖像的至少一部分。在提供多個對準(zhǔn)位置時,在任何給定的對準(zhǔn)位置上,用戶可能只能辨別一些視覺對象,而其他的視覺對象可能仍然被不正確對準(zhǔn)并且難以辨別。諸如HIP 500之類的人類交互證明基于局部圖像來生成,如方框1010所示。在方框1012,人類交互證明被呈現(xiàn)給請求訪問HIP保護的資源的用戶。如方框1014所示,用戶被指示確認(rèn)至少一個對準(zhǔn)位置,其中在所述對準(zhǔn)位置上至少一些局部圖像能夠被裝配,以形成解決圖像的至少一部分。例如,可以給用戶提供圖形用戶界面,其中借助于該圖形用戶界面,用戶能夠相對于一個局部圖像移動(例如,使用鼠標(biāo)、鍵盤或其他輸入接口來旋轉(zhuǎn)、平移、移位等等)另一個局部圖像。限制局部圖像相對于彼此的運動可能是所希望的。在一個示例的情景中,局部圖像被安排成共享點,并且圖像能夠圍繞該點來旋轉(zhuǎn)。這樣的運動限制使人類更容易確認(rèn)(一個或多個)正確對準(zhǔn)位置?;谟脩舸_認(rèn)的(一個或多個)對準(zhǔn)位置,用戶被要求輸入與解決圖像的部分中的至少一個可識別的可視對象有關(guān)的信息,如方框1016所示。即,用戶被請求“解決”HIP。為了正確解決HIP,用戶通常需要在預(yù)定的對準(zhǔn)位置上正確對準(zhǔn)一個或多個局部圖像。在提供多個對準(zhǔn)位置時,用戶可能被要求在多個正確對準(zhǔn)位置中的每一個位置上對準(zhǔn)局部圖像。所請求的示例信息包括但不限于按照名稱或編號的可視對象的識別。然而,將意識到向用戶詢問的最恰當(dāng)?shù)男畔⑷Q于用于生成HIP的(一個或多個)可視對象的性質(zhì)以及對其應(yīng)用HIP的特定應(yīng)用。在菱形框1018,確定是否有可能用戶是人類用戶諸如用戶111或者是否有可能用戶是非人類用戶(例如,機器人)諸如非人類用戶113。如方框1020所示,如果確定用戶有可能是人類,則同意該用戶訪問所請求的(一個或多個)資源。如果確定用戶有可能是非人類用戶,則拒絕用戶訪問所請求的(一個或多個)資源,如方框1022所示。繼續(xù)參考圖1-10,圖11是可以利用來實現(xiàn)或使用OHIPS 101的各方面的示例操作環(huán)境1100的簡化功能框圖。操作環(huán)境1100表示各種各樣的通用、專用、基于客戶機或服務(wù)器的獨立的或聯(lián)網(wǎng)的計算環(huán)境。例如,操作環(huán)境1100可以是某種類型的計算機,諸如個人計算機、工作站、服務(wù)器、消費類電子設(shè)備或者現(xiàn)在已知的或以后開發(fā)的任何其他類型的獨立的或聯(lián)網(wǎng)的計算設(shè)備或其組件。例如,操作環(huán)境1100也可以是分布式計算網(wǎng)絡(luò)或基于因特網(wǎng)的服務(wù)。圖11所示的一個或多個組件可以利用各種方式一起或單獨進行包裝來(全部或部分)實現(xiàn)操作環(huán)境1100的功能。如所示的,(一條或多條)總線1121在計算環(huán)境1100或其組件內(nèi)運送數(shù)據(jù)、地址、控制信號和其他信息或者運送數(shù)據(jù)、地址、控制信號和其他信息至計算環(huán)境1100或其組件或者從計算環(huán)境1100或其組件中運送數(shù)據(jù)、地址、控制信號和其他信息。(一個或多個)通信接口1110是一個或多個增強操作環(huán)境1100經(jīng)由通信介質(zhì)從另一操作環(huán)境(未顯示)接收信息或者經(jīng)由通信介質(zhì)發(fā)送信息至另一操作環(huán)境(未顯示)的物理或邏輯元件。通信媒體的示例包括但不限于無線或有線信號;計算機可讀存儲媒體;計算機可執(zhí)行指令;通信硬件或固件;和通信協(xié)議或技術(shù)。專用硬件/固件1180代表實現(xiàn)操作環(huán)境1100的功能的任何硬件或固件。專用硬件/固件1180的示例包括圖像處理設(shè)備、專用集成電路、安全時鐘等等。 可以是一個或多個真實或虛擬處理器的(一個或多個)處理器1102通過執(zhí)行計算機可執(zhí)行指令1106 (下面進一步討論)來控制操作環(huán)境1100的功能。計算機可讀媒體1104代表任意數(shù)量和組合的采用任何形式、現(xiàn)在已知的或以后開發(fā)的能夠記錄、存儲或發(fā)送處理器1102可執(zhí)行的諸如指令1106 (下面進一步討論)之類的計算機可讀數(shù)據(jù)的本地或遠(yuǎn)程組件。如所示的,HIP/對準(zhǔn)位置記錄1160、解決圖像記錄1170以及(一個或多個)可視對象1171與計算機可執(zhí)行指令1106 —起被存儲在一個或多個計算機可讀媒體1104中。特別地,計算機可讀媒體1104可以是或者可以包括持久性存儲器(persistmemory)或主存儲器,并且可以采用以下形式半導(dǎo)體存儲器(例如,諸如只讀存儲器(“R0M”),任何類型的可編程ROM (“PR0M”),隨機存取存儲器(“RAM”)或閃存);磁存儲設(shè)備(諸如軟盤驅(qū)動器,硬盤驅(qū)動器,磁鼓,磁帶或磁光盤);光學(xué)存儲設(shè)備(諸如任何類型的光盤或數(shù)字多用盤);磁泡存儲器;高速緩存;磁芯存儲器;全息存儲器;記憶棒;或其任何組合。計算機可讀媒體1104也可以包括傳輸媒體以及與之相關(guān)聯(lián)的數(shù)據(jù)。傳輸媒體/數(shù)據(jù)的示例包括但不限于包含在任何形式的有線或無線傳輸中的數(shù)據(jù),諸如利用調(diào)制的載波信號運送的分組化或非分組化數(shù)據(jù)。計算機可執(zhí)行指令1106代表電子控制針對數(shù)據(jù)的預(yù)定操作的任何信號處理方法或存儲指令。通常,計算機可執(zhí)行指令1106根據(jù)眾所周知的用于基于組件的軟件開發(fā)的實踐而被實現(xiàn)為軟件程序并且在計算機可讀媒體(諸如一種或多種類型的計算機可讀存儲媒體1104)中被編碼。軟件程序可以采用各種方式來組合或分布。覆蓋HIP生成器1140和用戶響應(yīng)評估器1150被顯示。(一個或多個)用戶接口1116代表定義諸如社區(qū)成員之類的用戶與操作環(huán)境1100交互的方式的呈現(xiàn)(presentation)工具和控制器的組合。一種類型的用戶接口 1116是圖形用戶界面(“⑶I”)1111,然而任何已知的或以后開發(fā)類型的用戶接口是有可能的。呈現(xiàn)工具用于接收來自用戶的輸入或向用戶提供輸出。物理呈現(xiàn)工具的示例是顯示器,諸如監(jiān)視器設(shè)備。邏輯呈現(xiàn)工具的示例是數(shù)據(jù)組織技術(shù)(例如,窗口、菜單或其布局)。控制器有助于來自用戶的輸入的接收。物理控制器的示例是輸入設(shè)備,諸如遙控器、顯示器、鼠標(biāo)、筆、指示筆、軌跡球、鍵盤、麥克風(fēng)或掃描設(shè)備。邏輯控制器的示例是用戶可以利用來發(fā)布命令的數(shù)據(jù)組織技術(shù)(例如,窗口、菜單或其布局)。將意識到相同的物理設(shè)備或邏輯構(gòu)造可以充當(dāng)至用戶的輸入和來自用戶的輸出二者的接口。描述了用于實現(xiàn)OHIPS 101的各方面的操作環(huán)境和架構(gòu)/技術(shù)的各個方面。然而,將明白不必使用所有的描述元素,這些元素在被使用時也不一定同時存在。被描述成計算機程序的元素并不限于利用計算機程序的任何特定實施例的實現(xiàn)方式,并且反而是傳達或變換數(shù)據(jù)的處理,且通??梢岳糜布?、軟件、固件或其任何組合來實現(xiàn)或在硬件、軟件、固件或其任何組合中被執(zhí)行。
雖然在此的主題已利用特定于結(jié)構(gòu)特征和/或方法動作的語言進行描述了,但是也將明白在權(quán)利要求書中定義的主題不一定限于上述 的具體特征或動作。相反,上述的具體特征和動作被披露為實現(xiàn)這些權(quán)利要求的示例形式。進一步將明白在一個元素被指示為響應(yīng)于另一個元素時,這些元素可以直接地或間接地進行耦合。在此描述的連接在實踐中可以是邏輯或物理的,以便在元素之間實現(xiàn)耦合或通信接口。特別地,連接可以被實現(xiàn)為軟件處理之間的處理間通信或聯(lián)網(wǎng)的計算機之間的機器間通信。在此使用詞“示例的”來表示用作示例、實例或例證。在此被描述成“示例的”任何實現(xiàn)方式或其方面不一定被構(gòu)造為比其他的實現(xiàn)方式或其方面更優(yōu)選或有利。如所明白的,除了上述的具體實施例之外的其他實施例可以進行設(shè)計而不脫離所附的權(quán)利要求書的精神和范圍,其目的是在此的主題的范圍將利用隨后的權(quán)利要求書來管理。
權(quán)利要求
1.一種用于生成人類交互證明的系統(tǒng),包括 計算機可讀存儲介質(zhì);和 處理器,其響應(yīng)于計算機可讀存儲介質(zhì)以及響應(yīng)于存儲在計算機可讀存儲介質(zhì)中的一個或多個計算機程序,所述一個或多個計算機程序在被載入所述處理器時可操作來執(zhí)行包括以下的方法 識別多個可視對象, 識別具有多個區(qū)域的空間, 將一個或多個可視對象安排在多個區(qū)域中的每一個區(qū)域中,以形成解決圖像, 將解決圖像分成多個局部圖像,多個局部圖像中的每一個包括被安排在一個或多個區(qū)域中的一個或多個可視對象,解決圖像的至少一部分能夠通過在預(yù)定對準(zhǔn)位置上重新裝配多個局部圖像中的至少一些而從多個局部圖像中的至少一些局部圖像中進行再現(xiàn),至少一個可視對象能夠在預(yù)定對準(zhǔn)位置上被識別,以及基于多個局部圖像,生成人類交互證明, 人類交互證明能夠經(jīng)由圖形用戶界面而被呈現(xiàn)給用戶,用戶能夠經(jīng)由圖形用戶界面來移動多個局部圖像中的至少一個,以識別預(yù)定對準(zhǔn)位置和至少一個可視對象。
2.根據(jù)權(quán)利要求I的系統(tǒng),其中從包括文本對象、數(shù)字對象和一般圖像的群組中選擇可視對象。
3.根據(jù)權(quán)利要求I的系統(tǒng),其中可視對象根據(jù)名稱或數(shù)量或二者而是可識別的。
4.根據(jù)權(quán)利要求I的系統(tǒng),其中將一個或多個可視對象安排在多個區(qū)域中的每一個區(qū)域中包括以從包括以下的群組中選擇的方式來修改一個或多個可視對象中的至少一個修改字體;修改樣式;修改旋轉(zhuǎn)角度;和翹曲。
5.根據(jù)權(quán)利要求I的系統(tǒng),其中所述區(qū)域相對于所述空間是中心對稱的。
6.根據(jù)權(quán)利要求I的系統(tǒng),其中特定區(qū)域在所述空間內(nèi)的位置是隨機的。
7.根據(jù)權(quán)利要求I的系統(tǒng),其中將一個或多個可視對象安排在多個區(qū)域中的每一個區(qū)域中以形成解決圖像包括根據(jù)放置方案來安排一個或多個可視對象,從包括以下的群組中選擇所述放置方案從頂?shù)降追胖梅桨福粡淖蟮接曳胖梅桨?;以及環(huán)形放置方案。
8.根據(jù)權(quán)利要求I的系統(tǒng),其中將解決圖像分成多個局部圖像進一步包括 生成遮罩,用于分割解決圖像,以及 將所述遮罩應(yīng)用于解決圖像,以便將解決圖像分成多個局部圖像。
9.根據(jù)權(quán)利要求I的系統(tǒng),其中所述方法進一步包括 添加額外信息到至少一個局部圖像。
10.根據(jù)權(quán)利要求9的系統(tǒng),其中所述額外信息在解決圖像是完整無缺的時候至少部分被至少一個其他局部圖像遮蔽。
11.根據(jù)權(quán)利要求I的系統(tǒng),其中所述方法進一步包括 將多個局部圖像中的至少一個局部圖像分成子局部圖像的群組。
12.根據(jù)權(quán)利要求I的系統(tǒng),其中所述方法進一步包括 將多個局部圖像中的至少一個局部圖像相對于局部圖像中的至少一個其他局部圖像來移動。
13.根據(jù)權(quán)利要求12的系統(tǒng),其中從包括以下的群組中選擇移動平移;卷積移位;旋轉(zhuǎn) ;和覆蓋。
全文摘要
在這里描述的覆蓋人類交互證明系統(tǒng)(“OHIPS”)和技術(shù)結(jié)合任何已知的或以后開發(fā)的基于計算機的應(yīng)用或服務(wù)來操作,以便通過可靠地區(qū)分人類和非人類用戶來提供對于資源的安全訪問。人類通常具有區(qū)分未對準(zhǔn)的字符或?qū)ο笈c正確對準(zhǔn)的字符或?qū)ο蟮淖吭侥芰?。就此而論,OHIP將包括一個或多個視覺對象的圖像分成兩個或更多的局部圖像,以形成HIP。局部圖像也可以進一步被分成子局部圖像的群組,和/或局部圖像(或子局部圖像)可以被移動,以致于在任何給定的對準(zhǔn)位置上,用戶只能夠辨別一些視覺對象。用戶被指示使用GUI在一個或多個預(yù)定對準(zhǔn)位置上重新裝配局部圖像,以及用戶被要求識別與一個或多個可視對象有關(guān)的信息。
文檔編號G06F9/44GK102884509SQ201180024001
公開日2013年1月16日 申請日期2011年5月9日 優(yōu)先權(quán)日2010年5月14日
發(fā)明者李偉生, 朱斌, 徐寧, J.劉 申請人:微軟公司