專利名稱:一種智能圖像驗證方法及系統(tǒng)的制作方法
技術領域:
本發(fā)明屬于網(wǎng)絡應用技術領域,特別是涉及一種圖像驗證碼生成方法及系統(tǒng),能夠自動識別客戶端用戶是人類還是機器,提高了網(wǎng)絡安全性。
背景技術:
全球化信息時代的到來,網(wǎng)絡電子娛樂文化的興起,政務信息的信息化,財經(jīng)金融的電子化,互聯(lián)網(wǎng)信息技術越來越廣泛地深入到社會各個領域,互聯(lián)網(wǎng)成為了傳統(tǒng)社會活動的新平臺,國家與人民對互聯(lián)網(wǎng)的依賴也越來越強烈,互聯(lián)網(wǎng)信息技術已經(jīng)成為社會生活中不可割斷的一個重要部分。隨之而來,安全問題也已成為網(wǎng)絡發(fā)展備受關注的話題。一些別有用心的人會利用機器人程序,大量地不當使用網(wǎng)絡免費資源,例如群發(fā)垃圾郵件等,使得服務器的效能大為降低。也有人利用程序不斷發(fā)出服務請求回應,進行DOS (Denialof Service)攻擊,以達到使服務癱瘓的目的。甚至還有人嘗試利用暴力破解等手段進行虛擬財產(chǎn)盜竊等。為避免上述惡意行為,設計一套能夠讓計算機自動分辨信息是來自人類或是非正當使用的機器人程序的工具,就顯得非常重要。CAPTCHA 的全稱是 Completely Automated Public Turing test to tellComputers and Humans Apart,即“全自動區(qū)分計算機和人類的圖靈測試”,其為卡耐基梅隆大學申請的商標。CAPTCHA俗稱驗證碼,是一種區(qū)分用戶是計算機和人的公共全自動程序。在CAPTCHA測試中,作為服務器的計算機會自動生成一個問題由用戶來解答。這個問題可以由計算機生成并評判,但是只有人類才能解答。由于計算機通常無法解答CAPTCHA的問題,所以回答出問題的用戶就可以被認為是人類。為了避免被程序自動識別,通常在CAPTCHA中將文字進行扭曲,同時加入一些噪聲,但是CAPTCHA驗證碼具有可用性差、誤識率聞、易受:攻擊等缺點。圖片驗證碼已成為網(wǎng)絡服務中身份認定的一種廣泛使用的工具。隨著人工智能和圖像理解技術的發(fā)展,通過0CR(Optical Character Recognition,光學字符識別)技術,機器對圖像中字符的識別能力越來越強。圖片驗證碼需要在保證人類視覺可辨認的前提下,不斷提高抗機器程序破解的能力。實踐證明,對于從圖像中分割出來的單字符,現(xiàn)有技術下機器識別率幾乎接近完美。增加了從圖片中分割字符的難度,成為防破解和提高安全性的重要手段?,F(xiàn)有的圖片驗證碼系統(tǒng)中,一般預先生成包含大量驗證碼圖片的圖片驗證碼庫,用戶每次提交驗證請求,驗證碼系統(tǒng)從圖片驗證碼庫中隨機選取一張驗證碼圖片下發(fā)給用戶。然而,現(xiàn)有技術的驗證碼系統(tǒng)中只采用單一種類的驗證碼,而單一種類的驗證碼具有有限的隨機性,隨著上線時間的增加,很容易遭到破解,這就給網(wǎng)絡安全帶來了隱患。綜上所述,現(xiàn)有的圖片驗證碼系統(tǒng)專注于如何提高算法和系統(tǒng)的安全性,通常采用復雜的紋理背景、背景噪聲、前景噪聲、字符遮擋、前景文字復雜形變等方法,這些方法在一定程度上提高了圖片驗證碼系統(tǒng)的安全性,但同時具有使得人類用戶可分辨性急劇下降,誤識率急劇增加,最終導致系統(tǒng)的可用性很差等缺點??梢哉J為目前的圖片驗證碼系統(tǒng)在可用性和安全性方面是一對不可調(diào)和的矛盾。
發(fā)明內(nèi)容
本發(fā)明的目的即在于克服現(xiàn)有技術的不足,提供一種智能圖像驗證方法及系統(tǒng),解決了現(xiàn)有圖片驗證碼系統(tǒng)可用性和安全性之間的矛盾,與CAPTCHA驗證碼相比,解決了CAPTCHA可用性差、誤識率高、易受攻擊等缺點,提高了網(wǎng)絡安全性。
本發(fā)明的目的是通過以下技術方案來實現(xiàn)一種智能圖像驗證方法,其特征在于它包括以下步驟
(I)服務器接收客戶端用戶發(fā)送的訪問請求,初始化客戶端用戶標志為機器;
(2 )服務器生成圖片驗證碼askCode,并發(fā)送給客戶端用戶,對客戶端進行驗證;
(3)服務器接收客戶端用戶輸入的應答驗證碼ansCode;
(4)判斷askCode與ansCode是否相等,如果兩者不相等,則轉到步驟(11);
(5)初始化系統(tǒng)誤分辨率,初始化客戶端用戶標志為人,初始化系統(tǒng)計時器;
(6)如果客戶端用戶標志不為人或者系統(tǒng)誤分辨率不滿足系統(tǒng)最大安全概率參數(shù),則轉到步驟(11);
(7)服務器以圖片驗證碼askCode和當前時間戳為種子,向客戶端用戶提供隨機提示碼和N幅圖像,該提示碼與M幅圖像相匹配;
(8)客戶端用戶根據(jù)提示碼選擇與之匹配的圖像序列;
(9)服務器接收客戶端用戶選擇的圖像序列,將該序列與基準圖像序列進行比較,如果比較結果不一致或者計時器超時,則認為該客戶端用戶是機器而不是人類,進而轉到步驟
(11),否則轉到步驟(10);
(10)更新系統(tǒng)誤分辨率和計時器,重復步驟(6)至(9),直至客戶端用戶被確認為機器或者系統(tǒng)誤分辨率滿足系統(tǒng)最大安全概率參數(shù)要求;
(II)服務器向客戶端發(fā)送驗證結果。所述的M為隨機數(shù),提示碼與M幅圖像之間的匹配關系取自驗證數(shù)據(jù)庫,該數(shù)據(jù)庫由服務器利用機器學習方法自動生成,其生成方法包括如下步驟
(1)隨機生成關鍵詞,產(chǎn)生J幅與該關鍵詞相關的圖像,對該關鍵詞和圖像文件名進行編號并建立索引后存入數(shù)據(jù)庫;
(2)利用(I)中產(chǎn)生的關鍵詞組成K句不重復語句,在數(shù)據(jù)庫中記錄這些語句與圖像文件名的關系;
(3)重復步驟(I)和(2),直至數(shù)據(jù)庫中包含L個不重復的關鍵詞,其中L的大小規(guī)??梢杂上到y(tǒng)參數(shù)設定;
(4)設定每隔T時間,數(shù)據(jù)庫按照特定模式自動更新匹配關系,相關參數(shù)可以由系統(tǒng)安全等級參數(shù)設定。所述的提示碼與N幅圖像生成方法包含如下步驟
(1)生成隨機整數(shù)RN1,以RNl為索引找到關鍵詞KWordRNl,再隨機生成整數(shù)RN2,以RN2為索引找到與關鍵詞KWordRNl相對應的提示碼ClueCode ;
(2)以提示碼ClueCode為索引找到對應的圖像文件集合ImageFile;
(3)生成隨機整數(shù)M,從圖像文件集合ImageFile中隨機選取M個不重復的文件FileM,然后從數(shù)據(jù)庫中隨機選取N-M個與文件FileM中文件不重復的文件,這N個文件即為生成的N幅圖像。所述的圖像驗證數(shù)據(jù)庫允許用戶手工增加和更新,用戶可以通過界面錄入關鍵詞并上傳圖像。所述的系統(tǒng)誤分辨率是指客戶端隨機選擇圖像而通過系統(tǒng)驗證的概率;
所述的系統(tǒng)最大安全概率參數(shù)是服務器根據(jù)應用系統(tǒng)類型設定的一個安全參數(shù),該參數(shù)是衡量系統(tǒng)識別客戶端到底為機器還是人的精確性的指標,通過系統(tǒng)誤分辨率與系統(tǒng)最大安全概率參數(shù)的關系判定,自動計算服務器向客戶端發(fā)送圖像進行驗證的輪數(shù)。一種智能圖像驗證系統(tǒng),它包括接收客戶端用戶的訪問請求,圖片驗證碼輸入以及圖像選擇序列的數(shù)據(jù)接收模塊;
生成并驗證圖片驗證碼的圖片碼生成驗證模塊;
對客戶端訪問進行計數(shù)和時效限制的計時器模塊;
隨機生成提示碼和對應的N幅圖像的圖像數(shù)據(jù)生成模塊;
處理關鍵詞、提示碼以及圖像文件名的存儲和索引訪問的數(shù)據(jù)庫模塊;
將接收到的客戶端用戶圖像選擇序列與圖像數(shù)據(jù)生成模塊生成的圖像序列進行比較的圖像驗證模塊;
向客戶端用戶傳輸圖片驗證碼、圖像驗證過程中生成的提示碼和N幅圖像,以及驗證結果的數(shù)據(jù)發(fā)送模塊。所述的客戶端包括iPhone、iPad類的移動設備,所述的客戶端還包括PC機、工作站,所述的客戶端用戶所選擇的圖像序列通過網(wǎng)絡傳送到服務器。本發(fā)明的有益效果是本發(fā)明提供一種智能圖像驗證方法及系統(tǒng),服務器接收到客戶端用戶發(fā)送的訪問請求后,首先生成一幅圖片驗證碼對客戶進行驗證,如果客戶端通過驗證,則使用該驗證碼和當前時間戳產(chǎn)生隨機數(shù)種子,向客戶端用戶提供提示碼和N幅不完全重復的圖像,其中M幅圖像與該提示碼相匹配,客戶端用戶根據(jù)提示碼選擇與之匹配的圖像序列;服務器接收客戶端用戶輸入的圖像選擇序列,將該序列與服務器后臺認證基準圖像序列進行比較,如果比較結果不一致,則認為該客戶端用戶是機器而不是人類。除此之外,本發(fā)明還可根據(jù)系統(tǒng)安全參數(shù),自動計算服務器向客戶端發(fā)送圖像進行驗證的次數(shù),每次驗證都可以由計時器進行時效控制。由此可見,本發(fā)明解決了現(xiàn)有圖片驗證碼系統(tǒng)可用性和安全性之間的矛盾,與CAPTCHA驗證碼相比,解決了 CAPTCHA可用性差、誤識率高、易受攻擊等缺點,能自動識別客戶端用戶是人類還是機器,提高了網(wǎng)絡安全性。
圖I為本發(fā)明的流程 圖2為本發(fā)明提示碼與驗證圖像生成流程 圖3為本發(fā)明的結構示意圖及模塊處理流程示意圖。
具體實施例方式下面結合附圖對本發(fā)明做進一步的描述,但本發(fā)明的保護范圍不局限于以下所述。如圖I所示,一種智能圖像驗證方法,它包括以下步驟(1)服務器接收客戶端用戶發(fā)送的訪問請求,初始化客戶端用戶標志為機器;
(2)服務器生成一個包含6位數(shù)字的圖片驗證碼askCode,并發(fā)送給客戶端用戶,對客戶端進行驗證;
(3)服務器接收客戶端用戶輸入的應答驗證碼ansCode;
(4)判斷askCode與ansCode是否相等,如果兩者不相等,則轉到步驟(11);
(5)初始化系統(tǒng)誤分辨率2為1,初始化客戶端用戶標志為人,初始化系統(tǒng)計時器為0,其中,;!是指客戶端隨機選擇圖像而通過系統(tǒng)驗證的概率;
(6)如果客戶端用戶標志不為人或者系統(tǒng)誤分辨率I不大于系統(tǒng)最大安全概率參數(shù)/S,則轉到步驟(11),其中,#是服務器根據(jù)應用系統(tǒng)類型設定的一個安全參數(shù),該參數(shù)是衡量系統(tǒng)識別客戶端到底為機器還是人的精確性的指標,通常用單位時間內(nèi)識別錯誤次數(shù)/所識別的總次數(shù)*100%來定義;如果\小于々,則轉到步驟(11),否則轉到步驟
(7)。通過入與#的關系判定,本發(fā)明可以自動完成對多輪圖像驗證的調(diào)用。;|的計算公
式如下
權利要求
1.ー種智能圖像驗證方法,其特征在于它包括以下步驟 (1)服務器接收客戶端用戶發(fā)送的訪問請求,初始化客戶端用戶標志為機器; (2 )服務器生成圖片驗證碼askCode,并發(fā)送給客戶端用戶,對客戶端進行驗證; (3)服務器接收客戶端用戶輸入的應答驗證碼ansCode; (4)判斷askCode與ansCode是否相等,如果兩者不相等,則轉到步驟(11); (5)初始化系統(tǒng)誤分辨率,初始化客戶端用戶標志為人,初始化系統(tǒng)計時器; (6)如果客戶端用戶標志不為人或者系統(tǒng)誤分辨率不滿足系統(tǒng)最大安全概率參數(shù),則轉到步驟(11); (7)服務器以圖片驗證碼askCode和當前時間戳為種子,向客戶端用戶提供隨機提示碼和N幅圖像,該提示碼與N幅圖像中的M幅圖像相匹配; (8)客戶端用戶根據(jù)提示碼選擇與之匹配的圖像序列; (9)服務器接收客戶端用戶選擇的圖像序列,將該序列與基準圖像序列進行比較,如果比較結果不一致或者計時器超時,則認為該客戶端用戶是機器而不是人類,進而轉到步驟(11),否則轉到步驟(10); (10)更新系統(tǒng)誤分辨率和計時器,重復步驟(6)至(9),直至客戶端用戶被確認為機器或者系統(tǒng)誤分辨率滿足系統(tǒng)最大安全概率參數(shù)要求; (11)服務器向客戶端發(fā)送驗證結果。
2.根據(jù)權利要求I所述的ー種智能圖像驗證方法,其特征在于所述的M為隨機數(shù),提示碼與M幅圖像之間的匹配關系取自驗證數(shù)據(jù)庫,該數(shù)據(jù)庫由服務器利用機器學習方法自動生成,其生成方法包括如下步驟 (O隨機生成關鍵詞,產(chǎn)生J幅與該關鍵詞相關的圖像,對該關鍵詞和圖像文件名進行編號并建立索引后存入數(shù)據(jù)庫; (2)利用(I)中產(chǎn)生的關鍵詞組成K句不重復語句,在數(shù)據(jù)庫中記錄這些語句與圖像文件名的關系; (3)重復步驟(I)和(2),直至數(shù)據(jù)庫中包含L個不重復的關鍵詞,其中L的大小規(guī)??梢杂上到y(tǒng)參數(shù)設定; (4)設定每隔T時間,數(shù)據(jù)庫按照特定模式自動更新匹配關系,相關參數(shù)可以由系統(tǒng)安全等級參數(shù)設定。
3.根據(jù)權利要求I所述的ー種智能圖像驗證方法,其特征在于所述的提示碼與N幅圖像生成方法包含如下步驟 Cl)生成隨機整數(shù)RNl,以RNl為索引找到關鍵詞KWordRNl,再隨機生成整數(shù)RN2,以RN2為索引找到與關鍵詞KWordRNl相對應的提示碼ClueCode ; (2)以提示碼ClueCode為索引找到對應的圖像文件集合ImageFile; (3)生成隨機整數(shù)M,從圖像文件集合ImageFile中隨機選取M個不重復的文件FileM,然后從數(shù)據(jù)庫中隨機選取N-M個與文件FileM中文件不重復的文件,這N個文件即為生成的N幅圖像。
4.根據(jù)權利要求2、3所述的ー種智能圖像驗證方法,其特征在于所述的圖像驗證數(shù)據(jù)庫允許用戶手工増加和更新,用戶可以通過界面錄入關鍵詞并上傳圖像。
5.根據(jù)權利要求I所述的ー種智能圖像驗證方法,其特征在于所述的系統(tǒng)誤分辨率是指客戶端隨機選擇圖像而通過系統(tǒng)驗證的概率;所述的系統(tǒng)最大安全概率參數(shù)是服務器根據(jù)應用系統(tǒng)類型設定的ー個安全參數(shù),該參數(shù)是衡量系統(tǒng)識別客戶端到底為機器還是人的精確性的指標,通過系統(tǒng)誤分辨率與系統(tǒng)最大安全概率參數(shù)的關系判定,自動計算服務器向客戶端發(fā)送圖像進行驗證的輪數(shù)。
6.ー種智能圖像驗證系統(tǒng),其特征在干它包括接收客戶端用戶的訪問請求,圖片驗證碼輸入以及圖像選擇序列的數(shù)據(jù)接收模塊; 生成并驗證圖片驗證碼的圖片碼生成驗證模塊; 對客戶端訪問進行計數(shù)和時效限制的計時器模塊; 隨機生成提示碼和對應的N幅圖像的圖像數(shù)據(jù)生成模塊; 處理關鍵詞、提示碼以及圖像文件名的存儲和索引訪問的數(shù)據(jù)庫模塊; 將接收到的客戶端用戶圖像選擇序列與圖像數(shù)據(jù)生成模塊生成的圖像序列進行比較的圖像驗證模塊; 向客戶端用戶傳輸圖片驗證碼、圖像驗證過程中生成的提示碼和N幅圖像,以及驗證結果的數(shù)據(jù)發(fā)送模塊。
7.根據(jù)權利要求1、6所述的ー種智能圖像驗證方法及系統(tǒng),其特征在于所述的客戶端包括iPhone、iPad類的移動設備,所述的客戶端還包括PC機、工作站,所述的客戶端用戶所選擇的圖像序列通過網(wǎng)絡傳送到服務器。
全文摘要
本發(fā)明公開了一種智能圖像驗證方法及系統(tǒng),其系統(tǒng)包括接收客戶端用戶訪問請求,圖片驗證碼輸入以及圖像選擇序列的數(shù)據(jù)接收模塊;生成并驗證圖片驗證碼的圖片碼生成驗證模塊;對客戶端訪問進行計數(shù)和時效限制的計時器模塊;隨機生成提示碼和對應的N幅圖像的圖像數(shù)據(jù)生成模塊;處理關鍵詞、提示碼以及圖像文件名的存儲和索引訪問的數(shù)據(jù)庫模塊;將接收到的客戶端用戶圖像選擇序列與圖像數(shù)據(jù)生成模塊生成的圖像序列進行比較的圖像驗證模塊;向客戶端用戶傳輸圖片驗證碼、圖像驗證過程中生成的提示碼和N幅圖像,以及驗證結果的數(shù)據(jù)發(fā)送模塊。本發(fā)明解決了現(xiàn)有系統(tǒng)中可用性和安全性之間的矛盾,自動識別客戶端用戶是否為機器,提高網(wǎng)絡安全性。
文檔編號H04L29/06GK102624705SQ20121003942
公開日2012年8月1日 申請日期2012年2月21日 優(yōu)先權日2012年2月21日
發(fā)明者孫先, 李平, 胡棟, 陳利學, 陳雁 申請人:西南石油大學