一種基于社會工程學(xué)的網(wǎng)頁驗(yàn)證碼識別方法及系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及互聯(lián)網(wǎng)技術(shù)領(lǐng)域,尤其涉及一種基于社會工程學(xué)的網(wǎng)頁驗(yàn)證碼識別方法及系統(tǒng)。
【背景技術(shù)】
[0002]社會工程學(xué),是一種通過對被攻擊者心理弱點(diǎn)、本能反應(yīng)、好奇心、信任、貪婪等心理陷阱進(jìn)行信息攻擊的方法。社會工程學(xué)攻擊建立在使人決斷產(chǎn)生認(rèn)知偏差的基礎(chǔ)上。
[0003]驗(yàn)證碼技術(shù),全名為“全自動區(qū)分計(jì)算機(jī)和人類的圖靈測試,,(CAPTCHA, Completely Automated Public Turing test to tell Computers andHumans Apart),是一種區(qū)分用戶是計(jì)算機(jī)還是人的自動程序??梢苑乐蛊平饷艽a、刷票、論壇灌水等行為。從本質(zhì)上來說,一切以提出問題并要求給出答案來區(qū)分用戶是計(jì)算機(jī)還是人的表現(xiàn)形式都是驗(yàn)證碼技術(shù)的范疇,可稱為廣義驗(yàn)證碼技術(shù)。
[0004]在WEB系統(tǒng)中,驗(yàn)證碼主要用于防止用戶非法注冊和登錄網(wǎng)頁。通常在網(wǎng)站頁面上顯示一幅驗(yàn)證碼圖像,由用戶肉眼識別其中的驗(yàn)證碼,并將該驗(yàn)證碼輸入表單提交網(wǎng)站驗(yàn)證。驗(yàn)證碼也可以以給出問題并要求答案的方式出現(xiàn),而廣泛使用的、用于網(wǎng)頁驗(yàn)證的圖片、動畫與視頻文件等僅是其部分表現(xiàn)形式。
[0005]驗(yàn)證碼在工作時(shí),將一些隨機(jī)的字符或數(shù)字生成為一幅圖片,并在圖片中加入一些干擾性的圖形,例如一些點(diǎn)或波浪線,以防止通過光學(xué)字符識別(OCR,OpticalCharacter Recognit1n)自動識別驗(yàn)證碼,另一方面,每次刷新頁面都會隨機(jī)生成新的驗(yàn)證碼。這些特點(diǎn)使驗(yàn)證碼可以保證WEB系統(tǒng)不被自動程序惡意的使用。這些手段的使用,都給自動程序(機(jī)器人)識別驗(yàn)證碼造成了很大的技術(shù)難度。但對人類來說,這些驗(yàn)證碼卻可被輕易識別。
[0006]目前,為了防止惡意用戶利用自動識別工具破解密碼、自動注冊、登錄、灌水等,都采用了驗(yàn)證碼技術(shù)。但是在網(wǎng)絡(luò)安全領(lǐng)域,出于國家安全的考慮,一個新的防御技術(shù)的出現(xiàn)的同時(shí)必須為公安、國安等國家安全部門提供相應(yīng)的應(yīng)對技術(shù)和方法。目前現(xiàn)有的驗(yàn)證碼識別技術(shù)大多是基于計(jì)算機(jī)圖形學(xué)的思路,通過提取驗(yàn)證碼圖像并進(jìn)行圖像處理來完成驗(yàn)證碼的識別工作?;谶@種思路實(shí)現(xiàn)的驗(yàn)證碼識別方法受到驗(yàn)證碼中干擾圖形的影響較大,無法保證驗(yàn)證碼的識別率。
【發(fā)明內(nèi)容】
[0007]本發(fā)明目的在于克服現(xiàn)有技術(shù)的不足,提供了一種基于社會工程學(xué)的網(wǎng)頁驗(yàn)證碼識別方法及系統(tǒng),通過計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)結(jié)合社會工程學(xué)中欺騙和利用第三方來進(jìn)行信息攻擊的思想,實(shí)現(xiàn)網(wǎng)頁驗(yàn)證碼的高效、準(zhǔn)確識別。
[0008]為達(dá)到上述目的,本發(fā)明采用以下技術(shù)方案:
[0009]一種基于社會工程學(xué)的網(wǎng)頁驗(yàn)證碼識別方法,包括以下步驟:
[0010]第一步、獲取驗(yàn)證碼文件;
[0011]第二步、將驗(yàn)證碼發(fā)送至社會工程節(jié)點(diǎn);
[0012]第三步、通過社會工程網(wǎng)站節(jié)點(diǎn)引誘第三方用戶人工識別驗(yàn)證碼;
[0013]第四步、根據(jù)人工識別的結(jié)果,在原始網(wǎng)頁中填入驗(yàn)證碼識別結(jié)果或構(gòu)造登錄數(shù)據(jù)包,完成驗(yàn)證碼認(rèn)證。
[0014]進(jìn)一步地,第一步中獲取驗(yàn)證碼文件具體方法如下:
[0015]1.1使用捕獲與登錄客戶端自動或手工方式確定和獲取用戶登錄時(shí)輸入的用戶登錄/注冊信息以及網(wǎng)頁生成的驗(yàn)證碼的位置信息;
[0016]1.2捕獲與登錄客戶端根據(jù)獲取的驗(yàn)證碼信息,保存驗(yàn)證碼文件和用戶登錄/注冊信息。
[0017]進(jìn)一步地,使用捕獲與登錄客戶端確定用戶信息和驗(yàn)證碼位置信息的步驟具體為:
[0018]捕獲與登錄客戶端根據(jù)網(wǎng)頁中的特征信息包括用戶名、密碼和驗(yàn)證碼字段,自動匹配存在于HTML頁面中的登錄/注冊項(xiàng)的位置、名稱、缺省值以及驗(yàn)證碼的出現(xiàn)位置和在緩存中的位置。
[0019]進(jìn)一步地,使用手工方式確定用戶信息和驗(yàn)證碼位置信息的步驟具體為:
[0020]手工方式通過為網(wǎng)頁瀏覽器添加插件的方式來實(shí)現(xiàn);
[0021]用戶人工判斷頁面中與用戶登錄或注冊相關(guān)的網(wǎng)頁組件的位置,在頁面中劃出用戶名輸入框、口令輸入框和驗(yàn)證碼輸入框組件的位置;
[0022]瀏覽器插件根據(jù)用戶劃出的位置信息,找出以上組件對應(yīng)的代碼在整個頁面的HTML代碼中所處的位置,以及在緩存中的位置。
[0023]進(jìn)一步地,第二步中將驗(yàn)證碼發(fā)送至社會工程節(jié)點(diǎn)具體方法如下:
[0024]2.1根據(jù)社會工程學(xué)的思想,建立若干個不同類型的社會工程節(jié)點(diǎn),該若干個社會工程節(jié)點(diǎn)在提供各種不同類型網(wǎng)絡(luò)服務(wù)時(shí),需要顯示驗(yàn)證碼并要求對驗(yàn)證碼進(jìn)行識別;
[0025]2.2建立一個路由服務(wù)器,將下載的驗(yàn)證碼文件發(fā)送到該若干個社會工程節(jié)點(diǎn),在發(fā)送過程中,路由服務(wù)器根據(jù)各個社會工程節(jié)點(diǎn)的負(fù)載情況,自動進(jìn)行負(fù)載均衡,將驗(yàn)證碼文件發(fā)送至輕負(fù)載的社會工程節(jié)點(diǎn)。
[0026]進(jìn)一步地,第三步中通過社會工程網(wǎng)站節(jié)點(diǎn)引誘第三方用戶人工識別驗(yàn)證碼,具體步驟為:
[0027]3.1社會工程節(jié)點(diǎn)將路由服務(wù)器發(fā)送來的驗(yàn)證碼文件顯示在某個網(wǎng)絡(luò)服務(wù)的特定頁面里;
[0028]3.2第三方用戶在使用社會工程節(jié)點(diǎn)提供的網(wǎng)絡(luò)服務(wù)之前,必須先識別提供該網(wǎng)絡(luò)服務(wù)的頁面上顯示的驗(yàn)證碼,并將驗(yàn)證碼的內(nèi)容以文本形式輸入到社會工程節(jié)點(diǎn)中,路由服務(wù)器發(fā)送至社會工程節(jié)點(diǎn)的驗(yàn)證碼文件被第三方用戶在不知情的情況下人工識別出。
[0029]進(jìn)一步地,第四步中在原始網(wǎng)頁中填入驗(yàn)證碼識別結(jié)果或構(gòu)造登錄數(shù)據(jù)包,完成驗(yàn)證碼認(rèn)證具體步驟為:
[0030]4.1社會工程節(jié)點(diǎn)將人工識別出的驗(yàn)證碼文本發(fā)送回路由服務(wù)器;
[0031]4.2路由服務(wù)器對一定時(shí)間內(nèi)接收到的驗(yàn)證碼識別結(jié)果進(jìn)行判斷,將正確的識別結(jié)果發(fā)送至捕獲與登錄客戶端;
[0032]4.3捕獲與登錄客戶端根據(jù)返回的識別結(jié)果及登錄/注冊頁面的其他驗(yàn)證信息,構(gòu)造出模擬登錄/注冊的數(shù)據(jù)包,其中包括但不限于用戶名、密碼和識別出的驗(yàn)證碼文本,并將該數(shù)據(jù)包發(fā)送至登錄/注冊頁面的服務(wù)器,完成驗(yàn)證碼的認(rèn)證,進(jìn)入業(yè)務(wù)系統(tǒng)。
[0033]進(jìn)一步地,第四步中路由服務(wù)器對一定時(shí)間內(nèi)接收到的驗(yàn)證碼識別結(jié)果進(jìn)行判斷,若路由服務(wù)器收到的同一個驗(yàn)證碼的識別結(jié)果中,相同的結(jié)果數(shù)大于或等于某個閾值,則認(rèn)為該結(jié)果是正確的識別結(jié)果,將該識別結(jié)果發(fā)送至捕獲與登錄客戶端;
[0034]若路由服務(wù)器收到的識別結(jié)果中,相同的結(jié)果數(shù)小于該閾值,則認(rèn)為識別結(jié)果不正確,丟棄已收到的該驗(yàn)證碼的識別結(jié)果,重新接收社會工程節(jié)點(diǎn)發(fā)來的驗(yàn)證碼。
[0035]一種基于社會工程學(xué)的網(wǎng)頁驗(yàn)證碼識別系統(tǒng),包括捕獲與登陸客戶端、路由服務(wù)器和若干個社會工程節(jié)點(diǎn);
[0036]所述捕獲與登陸客戶端用于確定和獲取用戶登錄時(shí)輸入的用戶登錄/注冊信息以及網(wǎng)頁生成的驗(yàn)證碼的位置信息,并根據(jù)獲取的驗(yàn)證碼信息,保存驗(yàn)證碼文件和用戶登錄/注冊信息;捕獲與登錄客戶端還用于根據(jù)返回的識別結(jié)果及登錄/注冊頁面的其他驗(yàn)證信息,構(gòu)造出模擬登錄/注冊的數(shù)據(jù)包,并將該數(shù)據(jù)包發(fā)送至登錄/注冊頁面的服務(wù)器,完成驗(yàn)證碼的認(rèn)證;
[0037]所述路由服務(wù)器用于將驗(yàn)證碼文件發(fā)送到該若干個社會工程節(jié)點(diǎn);
[0038]所述社會工程學(xué)節(jié)點(diǎn)用于將路由服務(wù)器發(fā)送來的驗(yàn)證碼文件顯示在某個網(wǎng)絡(luò)服務(wù)的特定頁面里,被第三方用戶在不知情的情況下人工識別出,社會工程節(jié)點(diǎn)再將人工識別出的驗(yàn)證碼文本發(fā)送回路由服務(wù)器。
[0039]本發(fā)明提供了一種結(jié)合計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)和社會工程學(xué)方法進(jìn)行驗(yàn)證碼識別的方法,通過將驗(yàn)證碼識別需求匯集并通過網(wǎng)絡(luò)手段傳遞不知情的真實(shí)人類群體進(jìn)行處理,最后利用返回的識別結(jié)果對設(shè)置驗(yàn)證碼的系統(tǒng)進(jìn)行信息欺騙,從而實(shí)現(xiàn)對網(wǎng)頁驗(yàn)證碼的高效、準(zhǔn)確識別。本發(fā)明特別適合用于使用人工智能和技術(shù)手段難以保證工作效果的驗(yàn)證類應(yīng)用,通過對人類群體的有效組織使用來突破識別障礙,實(shí)現(xiàn)對特定系統(tǒng)的欺騙和攻擊目標(biāo)。
【附圖說明】
[0040]圖1為本發(fā)明實(shí)施例的驗(yàn)證碼識別方法的流程圖[0041 ] 圖2為本發(fā)明實(shí)施例的驗(yàn)證碼識別系統(tǒng)的結(jié)構(gòu)圖
【具體實(shí)施方式】
[0042]以下將結(jié)合附圖對本發(fā)明的技術(shù)方案進(jìn)行清楚、完整的描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明的一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動的前提下所得到的所有其它實(shí)施例,都屬于本發(fā)明所保護(hù)的范圍。
[0043]本申請使用的“模塊”、“系統(tǒng)”等術(shù)語旨在包括與計(jì)算機(jī)相關(guān)的實(shí)體,例如但不限于硬件、固件、軟硬件組合、軟件或者執(zhí)行中的軟件。例如,模塊可以是,但并不僅限于:處理器上運(yùn)行的進(jìn)程、處理器、對象、可執(zhí)行程序、執(zhí)行的線程、程序和/或計(jì)算機(jī)。舉例來說,計(jì)算設(shè)備上運(yùn)行的應(yīng)用程序和此計(jì)算設(shè)備都可以是模塊。一個或多個模塊可以位于執(zhí)行中的一個進(jìn)程和/或線程內(nèi),一個模塊也可以位于一臺計(jì)算機(jī)上和/或分布于兩臺或更多臺計(jì)算機(jī)之間。
[0044]下面結(jié)合附圖詳細(xì)說明本發(fā)明的技術(shù)方案。
[0045]本發(fā)明實(shí)例提供的基于社會工程學(xué)的網(wǎng)頁驗(yàn)證碼識別方法的流程圖如圖1所示,具體包括如下步驟。
[0046]步驟S101,捕獲與登錄客戶端對需要進(jìn)行驗(yàn)證碼識別的HTML頁面進(jìn)行自動分析,根據(jù)頁面中的一些登錄/注冊項(xiàng)的特征字段,例如“驗(yàn)證碼”、“賬號”、“用戶名”、“ID”等,自動匹配存在于HTML頁面中的登錄/注冊項(xiàng)的位置、名稱、