專利名稱:驗證信息生成裝置及其方法、反自動機驗證裝置及其方法
技術領域:
本發(fā)明涉及電通信系統(tǒng)的信息驗證領域,特別涉及一種驗證信息生成裝置及方法與反自動機驗證裝置及其方法。
背景技術:
在網(wǎng)絡交互系統(tǒng)中,存在一種自動機裝置,該裝置可以自動完成某項功能,比如自動注冊機,可以自動填寫全部注冊信息,完成用戶注冊行為,從而注冊大量的用戶;再如自動回帖機,可以自動在論壇上回帖,增加用戶的積分。然而,由于自動機的大量重復注冊可能浪費服務提供商的資源,并影響正常用戶的服務質(zhì)量,因此,產(chǎn)生了反自動機驗證裝置,以防止自動機的惡意注冊。
所述反自動機驗證裝置,通常在客戶端會顯示一個驗證圖片,要求用戶輸入驗證圖片所示的文字。只有當用戶正確輸入該文字的時候,才能通過驗證。為了方便描述,我們將驗證圖片和驗證碼叫做一對“驗證圖碼”。現(xiàn)有技術中一種反自動機驗證裝置如圖1所示,由服務器端10和客戶端20兩部分組成,其中,服務器端10包括驗證碼生成裝置11、驗證圖片生成裝置12、驗證圖碼庫13、驗證圖碼選擇裝置14、驗證碼比較裝置15。
應用圖1所述反自動機驗證裝置進行用戶注冊驗證的過程如下首先是在服務器端10生成驗證圖片過程。驗證碼生成裝置11生成圖片文字和驗證碼,其中圖片文字是驗證圖片上顯示的文字,驗證碼是要求用戶輸入的文字?,F(xiàn)有的驗證碼生成裝置11產(chǎn)生的圖片文字和驗證碼是相同的,也就是說,驗證碼就是圖片所顯示的文字。驗證碼生成裝置11將圖片文字和驗證碼傳給驗證圖片生成裝置12,生成驗證圖片,所述驗證圖片包括圖片文字和驗證碼的信息,并將驗證圖片存入到驗證圖碼庫13中。通常人們使用GD函數(shù)庫來生成驗證圖片,所述GD庫是一個免費的、被廣泛使用的圖片生成函數(shù)庫。為了防止驗證圖片被自動機自動識別,驗證圖片生成裝置12需要調(diào)用GD庫的各種函數(shù)來實施干擾,加大自動識別的難度。所述干擾主要包括以下措施在圖片上添加圓圈、線條等背景噪音干擾;將驗證圖片中文字旋轉(zhuǎn)一定角度、扭曲;選擇不同的文字屬性,如字體、顏色、加粗或傾斜等。
然后是服務器端10響應客戶端20的驗證請求過程,包括步驟一,客戶端20向服務器端10提出驗證請求。
步驟二,服務器端10收到驗證請求后,驗證圖碼選擇裝置14從驗證圖碼庫13中隨機選擇一個驗證圖碼,將驗證圖碼發(fā)給客戶端20,并將驗證圖碼中的驗證碼加密之后保存在客戶端20的會話文件(Cookie)中。由于會話文件是保存在客戶端20,所以客戶端20可以很輕易地得到會話文件的信息,如果驗證碼不加密,則自動機只要讀取會話文件就可以繞過驗證圖片得到驗證碼,從而使反自動機驗證裝置失效。因此,驗證碼必須加密后才能保存在會話文件中,當然,加密的方法有很多,最通行的就是標準的MD5加密方法。
步驟三,客戶端20收到驗證圖碼后,根據(jù)驗證圖碼中的驗證圖片填入驗證碼,并傳回服務器端10。
步驟四,驗證碼比較裝置15得到用戶輸入的驗證碼,并從客戶端20的會話文件中提取加密的驗證碼并解密。將用戶輸入的驗證碼和會話文件中解密出來的驗證碼做比較,如果一致,則通過驗證,可以進行下一步操作;如果不一致,則驗證失敗,返回步驟二,進行重新驗證。
由于具備圖像識別能力的自動機可以從驗證圖片中識別出驗證碼,使反自動機驗證裝置失效。因此,需要對現(xiàn)有的反自動機驗證裝置進行改進,以提高驗證碼生成裝置或驗證圖片生成裝置生成的驗證碼/驗證圖片的識別難度。
現(xiàn)有技術的一種方法是應用英文或數(shù)字驗證碼生成裝置。這是應用最廣泛的驗證碼生成裝置。如圖2所示,該裝置包括一個英文或數(shù)字字庫21和一個文字選擇裝置22。文字選擇裝置22從字庫21(52個英文字母(大小寫)和10個阿拉伯數(shù)字)隨機選取若干個字符(通常是4個)作為驗證碼,然后將驗證碼傳給“驗證圖片生成裝置”生成驗證圖片,在客戶端20上的顯示如圖3所示。
然而,由于該字庫太小(共62個字母/數(shù)字),且這些符號筆畫簡單,利用現(xiàn)有的圖像識別技術能很好地識別,如現(xiàn)有的掃描儀自帶的各種OCR(Optical Character Recognition,光學字符識別)文字識別軟件,對加干擾的印刷體英文/字母,識別率高達20%。很難保證不被自動機識別。
針對應用英文或數(shù)字驗證碼生成裝置的缺點,改進生成中文驗證碼生成裝置,在客戶端20上的顯示如圖4所示。其結(jié)構(gòu)跟英文/數(shù)字驗證碼生成裝置的結(jié)構(gòu)是一樣的,也是由一個字庫和一個文字選擇裝置構(gòu)成,只不過其字庫是中文字庫。中文字庫由3000多個常用簡單漢字構(gòu)成。中文字庫比英文/數(shù)字字庫大得多,而且漢字筆畫復雜,因此,中文驗證碼生成裝置生成的驗證圖片比英文/數(shù)字驗證碼生成裝置生成的驗證圖片更難被自動識別,從而更有效防止自動機的惡意行為。
雖然中文圖像識別的難度要比英文/數(shù)字圖像識別的難度大,但本質(zhì)上,其仍是看見什么就輸入什么類型的驗證碼。隨著圖像識別技術的發(fā)展,如清華紫光文通公司的TH-OCR對不帶干擾的印刷體的中文識別率達到95%以上。由于對帶有干擾的中文圖片的識別效率和準確率會越來越高,因此,中文驗證圖片也會被破解,使反自動機驗證裝置失效。
發(fā)明內(nèi)容
本發(fā)明解決的問題是提供一種驗證信息生成裝置及其方法、反自動機驗證裝置及其方法,以解決現(xiàn)有技術中驗證碼容易被識別的缺陷。
為了解決上述問題,本發(fā)明公開了一種驗證信息生成裝置至少一個信息存儲單元,用于接收并存儲第一信息及該信息對應的第二信息;信息選擇單元,用于從所述信息存儲單元中選取第一信息及對應的第二信息;并將所述第一信息作為生成驗證圖片所需的信息,將所述第一信息對應的第二信息作為驗證碼。
還包括至少一個信息預生成單元,用于生成第一信息和該信息對應的第二信息。
所述信息預生成單元為題目生成單元,所述信息存儲單元為題庫單元,所述第一信息為題目,所述第二信息為所述題目對應的答案。
所述題目生成單元包括手動題目生成單元或自動題目生成單元。
所述題目生成單元為自動題目生成單元,包括資源庫子單元,用于存放信息存儲單元需要的數(shù)據(jù)參數(shù);資源選擇子單元,用于從所述資源庫子單元中選取參數(shù);組裝子單元,用于接收所述資源選擇子單元發(fā)來的參數(shù),并將所述參數(shù)組裝為題目和該題目對應的答案,發(fā)送到信息存儲單元。
所述信息存儲單元包括數(shù)學題庫或文字題庫。
所述信息預生成單元與所述信息存儲單元一一對應或多個信息預生成單元對應同一信息存儲單元。
本發(fā)明還公開了一種驗證信息生成方法,包括信息存儲步驟,接收并存儲第一信息及與該第一信息對應的第二信息;信息選擇步驟,選取第一信息及其對應的第二信息,并將所述第一信息作為生成驗證圖片所需的信息,將所述該第一信息對應的第二信息作為驗證碼。
還包括信息預生成步驟,生成第一信息及其該信息對應的第二信息。
所述信息預生成步驟為自動生成或手動生成。
所述自動預生成步驟進一步包括選取參數(shù)子步驟,從已有的資源庫中選取參數(shù);組裝子步驟,根據(jù)所選取參數(shù)組裝為第一信息及其對應的第二信息。
本發(fā)明還公開了一種反自動機驗證裝置,包括位于服務器端的驗證信息生成裝置、驗證圖片生成裝置、驗證圖碼庫、驗證圖碼選擇裝置、驗證碼比較裝置,所述驗證信息生成裝置生成第一信息及其對應的第二信息,所述第一信息作為驗證圖片所需的信息,所述第二信息作為驗證碼;所述驗證圖片生成裝置根據(jù)所述第一信息和驗證碼生成驗證圖碼,并存儲于所述驗證圖碼庫;所述驗證圖碼選擇裝置在驗證時,從所述驗證圖碼庫中選擇驗證圖碼,發(fā)送到客戶端;所述驗證碼比較裝置接收客戶端的輸入數(shù)據(jù),比較該輸入數(shù)據(jù)與驗證圖碼中的驗證碼,進行驗證。
本發(fā)明還公開了一種反自動機驗證方法,包括步驟根據(jù)第一信息及其對應的第二信息生成驗證圖碼,其中,第一信息作為生成驗證圖片所需的信息,第二信息作為驗證碼;選擇驗證圖碼發(fā)送給客戶端;接收客戶端反饋的輸入數(shù)據(jù),并對客戶端發(fā)來的輸入數(shù)據(jù)與驗證碼比較,如果相同,則通過驗證,否則驗證失敗。
與現(xiàn)有技術相比,本發(fā)明具有以下優(yōu)點本發(fā)明的驗證碼生成裝置與現(xiàn)有的驗證碼生成裝置不同。該驗證碼生成裝置及方法將生成的第一信息作為生成驗證圖片所需的信息,并將第一信息對應的第二信息作為驗證碼,采用“看見問題輸入答案”的方法進行用戶信息驗證,而不是現(xiàn)有的“輸入圖片所示的字符”方法進行用戶信息驗證,使自動機不能通過圖文識別技術得到驗證碼,因此,本發(fā)明的驗證碼生成裝置產(chǎn)生的驗證碼很難被破解。另外,本發(fā)明的反自動機驗證裝置及方法前述驗證碼生成裝置及方法,采用“看見問題輸入答案”的方法進行用戶信息驗證,可以克服現(xiàn)有技術中驗證碼容易被識別的缺陷。
圖1是反自動機驗證裝置的系統(tǒng)結(jié)構(gòu)圖;圖2是現(xiàn)有技術中一種驗證碼生成裝置的結(jié)構(gòu)圖;圖3是應用圖2所示驗證碼生成裝置時在客戶端的顯示圖;圖4是應用另一種驗證碼生成裝置時在客戶端的顯示圖;圖5本發(fā)明的反自動機驗證裝置結(jié)構(gòu)圖;圖6是本發(fā)明的驗證信息生成裝置的結(jié)構(gòu)圖;圖7是圖6中自動生成單元的結(jié)構(gòu)圖;圖8是本發(fā)明應用加法生成單元時客戶端的顯示圖;圖9是本發(fā)明一種驗證信息生成方法的流程圖;圖10是本發(fā)明一種反自動機驗證方法流程圖。
具體實施例方式
請參考圖5所示,一種反自動機驗證裝置,包括位于服務器端10的驗證信息生成裝置50、驗證圖片生成裝置12、驗證圖碼庫13、驗證圖碼選擇裝置14、驗證碼比較裝置15;所述驗證信息生成裝置50生成第一信息及其對應的第二信息,所述第一信息作為驗證圖片所需的信息,所述第二信息作為驗證碼;所述驗證圖片生成裝置12根據(jù)所述第一信息和驗證碼生成驗證圖碼,并存儲于所述驗證圖碼庫13;所述驗證圖碼選擇裝置14在驗證時,從所述驗證圖碼庫13中選擇驗證圖碼,發(fā)送到客戶端20;所述驗證碼比較裝置15接收客戶端20的輸入數(shù)據(jù),比較該輸入數(shù)據(jù)與驗證圖碼中的驗證碼,進行驗證。
所述驗證信息生成裝置50,包括信息預生成單元51,用于生成第一信息和該信息對應的第二信息;信息存儲單元52,用于接收并存儲第一信息及該信息對應的第二信息;信息選擇單元53,用于從所述信息存儲單元中選取第一信息及對應的第二信息,并將所述第一信息作為生成驗證圖片所需的信息,將所述第一信息對應的第二信息作為驗證碼。
本發(fā)明驗證信息生成裝置50的一個實施例如圖6所示,所述信息預生成單元51為題目生成單元,包括自動生成單元501、手動生成單元503;所述信息存儲單元52為題庫單元,包括自動題庫單元502、手動題庫單元504;所述信息選擇單元53為題目選擇單元505。所述第一信息為題目,所述第二信息為所述題目對應的答案,所述第一信息與所述第二信息不同。
自動生成單元501可以自動生成題目和相應的答案,并將該題目和答案插入到題庫單元502中;所述手動生成單元503由人工輸入題目和對應的答案,并將該題目和對應的答案插入手動題庫單元504中,主要用于輸入不規(guī)則的題目,如各種常識題。所述自動生成單元501包括加法自動生成單元、減法自動生成單元、乘法自動生成單元、除法自動生成單元、成語填空自動生成單元、拼音補字自動生成單元或常識自動生成單元等。
所述題目選擇單元505從自動題庫單元502、或手動題庫單元504中隨機選擇一個題庫,然后隨機選擇該題庫中的一個題目和該題目對應的答案,將選中的題目作為圖片文字生成驗證圖片,該題目對應的答案作為驗證碼。本發(fā)明還可以根據(jù)預先設定的選擇規(guī)則選取題目及對應的答案。
題庫單元502、504有很多種類,包括加法題庫(如表1所示)、減法題庫、乘法題庫、除法題庫、成語填空題庫、拼音補字題庫或常識題庫(如表2所示)等,且一個自動生成單元501與一個自動題庫單元502唯一對應,如加法自動生成單元生成的題目和答案只插入到加法題庫單元中;本發(fā)明也可以用多個驗證碼生成單元對應一個題庫單元。另外,不同的題庫的數(shù)據(jù)庫結(jié)構(gòu)可以相同,也可以不同。
表1加法題庫數(shù)據(jù)庫結(jié)構(gòu)
表2常識題庫數(shù)據(jù)庫結(jié)構(gòu)
本實施例中的自動生成單元501如圖7所示,包括資源庫子單元601、資源選擇子單元602和組裝子單元603。資源選擇子單元602從資源庫子單元601中隨機選取組裝子單元603需要的參數(shù),并將選中參數(shù)傳給組裝子單元603;組裝子單元603將輸入的參數(shù)組裝成一個題目和該題目對應的答案,并插入題庫單元502中。自動生成單元501或502可以看作一個函數(shù),當向該單元輸入一些參數(shù)后,該單元會輸出一個題目和該題目對應的答案,并插入到對應的題庫單元中。
下面以加法生成單元的工作過程進行說明。例如在資源庫子單元601中包括五個集合A∈{1~99,一~九九},B∈{+,加,加上,與…的和,與…相加,和…相加},C∈{1~99,一~九九},D∈{=,等于,結(jié)果等于,的結(jié)果等于,結(jié)果是,的結(jié)果是,得到,結(jié)果得到},E∈{?,多少,多少?,幾,幾?,什么,什么?}。資源選擇子單元602從資源庫子單元601中的ABCDE五個集合中,分別隨機選取一個元素,用組裝子單元Merge(其實際上是一個函數(shù))組合成加法表達式作為題目,同時將從A和C選出來的元素代表的數(shù)字相加得到題目的答案,并將題目和答案插入到加法題庫502中。比如,從ABCDE中分別選取”3”,”加”,”五”,”等于”,”多少”,然后Merge函數(shù)將其組合成“3加五等于多少”作為題目,并將A和C的元素(即”3”和”五”)代表的數(shù)字(即3和5)加起來,得到答案8,該驗證圖片在客戶端的顯示如圖8所示。
加法生成單元一共可以生成200*199*6*8*7=13372800種不同的加法表達式。減法生成單元、乘法生成單元和除法生成單元同理。而且有更豐富的表達,如在減法生成單元中可以生成“10個蘋果吃掉6個還剩幾個”等題目。另外,自動機要窮舉這么多題目,幾乎是不可能的。
除了四則運算自動生成單元,還可以有其它各種各樣的題目自動生成單元。如成語填空自動生成單元,在該單元中的資源庫中包含成語填空題和該題目對應的答案,要求用戶輸入對應的漢字作為驗證碼。
再如拼音補字自動生成單元,拼音補字自動生成單元的資源選擇子單元從詞語資源庫子單元中隨機選取一個詞語,然后組裝子單元隨機選擇其中一個字,從拼音資源庫子單元查找該字對應的拼音,并用拼音代替這個字,要求用戶輸入對應的漢字作為驗證碼。
另外,本發(fā)明提供了一種驗證信息生成方法,流程如圖9所示,包括題目生成步驟s101,生成題目和該題目對應的答案;題庫建立步驟s102,接收并存儲所述生成的題目和該題目對應的答案;題目選擇步驟s103,選取題目及該題目對應的答案,并將所述選擇題目作為驗證圖片中的圖片文字信息,將所述該題目對應的答案作為驗證碼。所述題目生成步驟為自動生成題目和該題目對應的答案或手動生成題目和該題目對應的答案。
所述自動題目生成步驟進一步包括選取參數(shù)子步驟,從已有的資源庫中選取參數(shù);組裝子步驟,根據(jù)所選取參數(shù)組裝為一個題目和該題目對應的答案。
本發(fā)明還提供了一種反自動機驗證方法,如圖10所示,包括步驟s201,生成題目和該題目對應的答案,作為驗證圖碼;步驟s202,隨機選擇一個驗證圖碼發(fā)送給客戶端;步驟s203,客戶端根據(jù)接收驗證圖碼中驗證圖片的題目得到該題目對應的答案;步驟s204,并將該答案發(fā)送給服務器服務器對客戶端發(fā)來的答案與驗證圖碼中驗證碼比較,如果相同,則步驟s205,通過驗證,否則步驟206,驗證失敗。
以上所述僅是本發(fā)明的優(yōu)選實施方式,應當指出,對于本技術領域的普通技術人員來說,在不脫離本發(fā)明原理的前提下,還可以作出若干改進和潤飾,這些改進和潤飾也應視為本發(fā)明的保護范圍。
權利要求
1.一種驗證信息生成裝置,其特征在于,包括至少一個信息存儲單元,用于接收并存儲第一信息及該信息對應的第二信息;信息選擇單元,用于從所述信息存儲單元中選取第一信息及對應的第二信息;并將所述第一信息作為生成驗證圖片所需的信息,將所述第一信息對應的第二信息作為驗證碼。
2.如權利要求1所述驗證信息生成裝置,其特征在于,還包括至少一個信息預生成單元,用于生成第一信息和該信息對應的第二信息。
3.如權利要求2所述驗證信息生成裝置,其特征在于,所述信息預生成單元為題目生成單元,所述信息存儲單元為題庫單元,所述第一信息為題目,所述第二信息為所述題目對應的答案。
4.如權利要求3所述驗證信息生成裝置,其特征在于,所述題目生成單元包括手動題目生成單元或自動題目生成單元。
5.如權利要求3所述驗證信息生成裝置,其特征在于,所述題目生成單元為自動題目生成單元,包括資源庫子單元,用于存放信息存儲單元需要的數(shù)據(jù)參數(shù);資源選擇子單元,用于從所述資源庫子單元中選取參數(shù);組裝子單元,用于接收所述資源選擇子單元發(fā)來的參數(shù),并將所述參數(shù)組裝為題目和該題目對應的答案,發(fā)送到信息存儲單元。
6.如權利要求1至5任一項所述驗證信息生成裝置,其特征在于,所述信息存儲單元包括數(shù)學題庫或文字題庫。
7.如權利要求2至5任一項所述驗證信息生成裝置,其特征在于,所述信息預生成單元與所述信息存儲單元一一對應或多個信息預生成單元對應同一信息存儲單元。
8.一種驗證信息生成方法,其特征在于,包括信息存儲步驟,接收并存儲第一信息及與該第一信息對應的第二信息;信息選擇步驟,選取第一信息及其對應的第二信息,并將所述第一信息作為生成驗證圖片所需的信息,將所述該第一信息對應的第二信息作為驗證碼。
9.如權利要求8所述驗證信息生成方法,其特征在于,還包括信息預生成步驟,生成第一信息及其該信息對應的第二信息。
10.如權利要求9所述驗證信息生成方法,其特征在于,所述信息預生成步驟為自動生成或手動生成。
11.如權利要求10所述驗證圖碼生成方法,其特征在于,所述自動預生成步驟進一步包括選取參數(shù)子步驟,從已有的資源庫中選取參數(shù);組裝子步驟,根據(jù)所選取參數(shù)組裝為第一信息及其對應的第二信息。
12.一種反自動機驗證裝置,包括位于服務器端的驗證信息生成裝置、驗證圖片生成裝置、驗證圖碼庫、驗證圖碼選擇裝置、驗證碼比較裝置,其特征在于,所述驗證信息生成裝置生成第一信息及其對應的第二信息,所述第一信息作為驗證圖片所需的信息,所述第二信息作為驗證碼;所述驗證圖片生成裝置根據(jù)所述第一信息和驗證碼生成驗證圖碼,并存儲于所述驗證圖碼庫;所述驗證圖碼選擇裝置在驗證時,從所述驗證圖碼庫中選擇驗證圖碼,發(fā)送到客戶端;所述驗證碼比較裝置接收客戶端的輸入數(shù)據(jù),比較該輸入數(shù)據(jù)與驗證圖碼中的驗證碼,進行驗證。
13.一種反自動機驗證方法,其特征在于,包括步驟根據(jù)第一信息及其對應的第二信息生成驗證圖碼,其中,第一信息作為生成驗證圖片所需的信息,第二信息作為驗證碼;選擇驗證圖碼發(fā)送給客戶端;接收客戶端反饋的輸入數(shù)據(jù),并對客戶端發(fā)來的輸入數(shù)據(jù)與驗證碼比較,如果相同,則通過驗證,否則驗證失敗。
全文摘要
本發(fā)明公開了一種驗證信息生成裝置,包括至少一個信息存儲單元,用于接收并存儲第一信息及該信息對應的第二信息;信息選擇單元,用于從所述信息存儲單元中選取第一信息及對應的第二信息;并將所述第一信息作為生成驗證圖片所需的信息,將所述第一信息對應的第二信息作為驗證碼。本發(fā)明的驗證碼生成裝置及方法將生成的第一信息作為生成驗證圖片所需的信息,并將第一信息對應的第二信息作為驗證碼,采用“看見問題輸入答案”的方法進行用戶信息驗證。另外,本發(fā)明的反自動機驗證裝置及方法前述驗證碼生成裝置及方法,采用“看見問題輸入答案”的方法進行用戶信息驗證,可以克服現(xiàn)有技術中驗證碼容易被識別的缺陷。
文檔編號H04L9/32GK1845489SQ20051003406
公開日2006年10月11日 申請日期2005年4月6日 優(yōu)先權日2005年4月6日
發(fā)明者羅道鋒 申請人:騰訊科技(深圳)有限公司