一種自適應(yīng)的驗(yàn)證碼設(shè)計(jì)方法及系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)領(lǐng)域,尤其是涉及一種自適應(yīng)的驗(yàn)證碼設(shè)計(jì)方法及系統(tǒng)。
【背景技術(shù)】
[0002]在互聯(lián)網(wǎng)應(yīng)用中,為了防止惡意用戶(hù)通過(guò)程序進(jìn)行大量自動(dòng)提交的非法操作,大多數(shù)網(wǎng)站都采用了驗(yàn)證碼技術(shù)來(lái)防止系統(tǒng)被惡意攻擊,從而達(dá)到保護(hù)系統(tǒng)正常工作的目的。然而,隨著人工智能的發(fā)展以及計(jì)算機(jī)處理能力的提升,簡(jiǎn)單的圖片驗(yàn)證碼的識(shí)別成功率也越來(lái)越高。為了防止驗(yàn)證碼被機(jī)器人破解,驗(yàn)證碼的難度變得越來(lái)越高,這樣的確能防止機(jī)器人的自動(dòng)識(shí)別,但是,同時(shí)人肉眼識(shí)別的難度也會(huì)增加,嚴(yán)重影響用戶(hù)的體驗(yàn)。所以,如何兼顧用戶(hù)使用方便性和降低驗(yàn)證碼被機(jī)器人識(shí)別的概率就成為互聯(lián)網(wǎng)行業(yè)一個(gè)亟待解決的技術(shù)問(wèn)題。
[0003]目前,驗(yàn)證碼的設(shè)計(jì)根據(jù)是否具有不同的難度級(jí)別可以分為兩類(lèi):
[0004]—、沒(méi)有識(shí)別難度等級(jí)策略。也就是說(shuō)這樣的驗(yàn)證碼系統(tǒng)沒(méi)有難度識(shí)別等級(jí)的分另IJ,用戶(hù)使用請(qǐng)求驗(yàn)證時(shí)圖片出現(xiàn)的概率是隨機(jī)的,這里大致可分為以下幾類(lèi):
[0005](I)使用最基本的、最流行的是一種以隨機(jī)字符、數(shù)字作為圖片內(nèi)容的驗(yàn)證碼。在隨機(jī)字符的情況下可以根據(jù)需要添加相應(yīng)的干擾元素,比如:背景色、干擾線(xiàn)等,進(jìn)而生成驗(yàn)證碼。
[0006](2)以專(zhuān)業(yè)知識(shí)作為圖片內(nèi)容的驗(yàn)證碼。比如:數(shù)學(xué)專(zhuān)業(yè)性比較強(qiáng)的網(wǎng)站可以采用數(shù)學(xué)中常用的積分來(lái)作為驗(yàn)證碼內(nèi)容,驗(yàn)證碼需要積分的結(jié)果;電子類(lèi)專(zhuān)業(yè)性比較強(qiáng)的網(wǎng)站可以采用類(lèi)似“電流的單位是歐姆”,用戶(hù)只需要判斷正確性就行。
[0007](3)以復(fù)雜的圖像作為驗(yàn)證碼內(nèi)容。比如一幅完整的帶有圖案的圖片,中間對(duì)一個(gè)圓形區(qū)域做一定的旋轉(zhuǎn),驗(yàn)證時(shí)需要旋轉(zhuǎn)中間的區(qū)域使圖案復(fù)原成一幅完整的圖像;或者是一種帶有幾只小狗的圖案,用戶(hù)需要回答圖案中有幾只小狗等。
[0008](4)使用集中干擾的綜合體,比如,把采用陰影干擾、魚(yú)眼干擾、扭曲干擾等策略結(jié)合在一起組成一套驗(yàn)證碼系統(tǒng),用戶(hù)請(qǐng)求時(shí)隨機(jī)選出一種策略進(jìn)行服務(wù)。
[0009]二、具有識(shí)別難度等級(jí)策略。也就是說(shuō)驗(yàn)證碼會(huì)根據(jù)具體的業(yè)務(wù)需要以及用戶(hù)的使用情況去選擇相應(yīng)識(shí)別難度等級(jí)的圖片驗(yàn)證碼進(jìn)行處理相關(guān)的業(yè)務(wù)。
[0010]現(xiàn)有的具有驗(yàn)證碼等級(jí)區(qū)別的系統(tǒng)非常的少,而且這些系統(tǒng)都僅僅是把幾種干擾策略不同的驗(yàn)證碼結(jié)合到一塊,不同于(4)中的是這些系統(tǒng)賦予每一種驗(yàn)證碼一個(gè)識(shí)別等級(jí)即安全等級(jí),然后根據(jù)業(yè)務(wù)方需求和用戶(hù)使用情況進(jìn)行安全策略的選擇。
[0011]對(duì)于圖片驗(yàn)證碼,現(xiàn)有的看似較為復(fù)雜的干擾因素其實(shí)對(duì)機(jī)器人起到的干擾作用非常小,而某些看似簡(jiǎn)單的干擾因素計(jì)算機(jī)卻很難識(shí)別。對(duì)于傳統(tǒng)的驗(yàn)證碼系統(tǒng)來(lái)說(shuō),背景色所起到的作用幾乎可以忽略不計(jì),為了肉眼能較好的識(shí)別,字符的顏色肯定要和背景色明顯的區(qū)分開(kāi),如果不能很好的區(qū)分開(kāi),人肉眼識(shí)別的難度就會(huì)很大,影響用戶(hù)體驗(yàn),但是如果背景色容易區(qū)分的話(huà),那么那些看似復(fù)雜的背景色對(duì)于計(jì)算機(jī)來(lái)說(shuō)非常容易,這樣背景色就起不到應(yīng)有的作用,并且復(fù)雜的背景色對(duì)一些色弱、色盲用戶(hù)具有嚴(yán)重的干擾作用,不利于他們的使用;一些驗(yàn)證碼采用字符扭曲作為干擾因素,現(xiàn)有的扭曲都是采用字符旋轉(zhuǎn)的方式進(jìn)行的,由于每個(gè)字符選裝的方向不一樣,這樣肉眼識(shí)別的時(shí)候就會(huì)較為困難;對(duì)于專(zhuān)業(yè)性比較強(qiáng)的驗(yàn)證碼使用的局限性太大,畢竟太多人不具備較專(zhuān)業(yè)的知識(shí),即使具備相關(guān)專(zhuān)業(yè)知識(shí)的人也不愿意去使用太復(fù)雜的驗(yàn)證碼,而且有一些專(zhuān)業(yè)性比較強(qiáng)、相對(duì)簡(jiǎn)單的問(wèn)題在網(wǎng)上都能找到答案,這樣就不能達(dá)到驗(yàn)證碼應(yīng)該起到的作用。
[0012]對(duì)于一些采用更復(fù)雜因素的驗(yàn)證碼,的確能有效的防止機(jī)器識(shí)別的概率,但是每次需要驗(yàn)證碼的時(shí)候人肉眼識(shí)別的難度也會(huì)相應(yīng)的增加,尤其是對(duì)于一些具有色盲或色弱的人們他們識(shí)別復(fù)雜圖形的能力會(huì)更弱。
[0013]而且更為重要的是,現(xiàn)有的驗(yàn)證碼系統(tǒng)識(shí)別難度都是固定的,也就是說(shuō)不管是上述的哪一種驗(yàn)證碼系統(tǒng)采用的干擾策略都是一樣的,如果要保證人的體驗(yàn)就不能保障驗(yàn)證碼的低識(shí)別率,否則反之。這樣的話(huà)就不能同時(shí)兼顧保障系統(tǒng)安全和人的體驗(yàn)。
[0014]在現(xiàn)有的具有不同安全等級(jí)的驗(yàn)證碼系統(tǒng)中,驗(yàn)證碼難度等級(jí)升級(jí)策略一般是采用單一的指標(biāo)(比如請(qǐng)求次數(shù))來(lái)判斷用戶(hù)操作的頻繁度,然后將該指標(biāo)與系統(tǒng)中設(shè)定的不同難度等級(jí)的閾值進(jìn)行比較,以確定生成驗(yàn)證碼的相應(yīng)難度等級(jí)。但是現(xiàn)有驗(yàn)證碼系統(tǒng)中,閾值的設(shè)定大多是針對(duì)全部應(yīng)用而言的,也就是說(shuō)當(dāng)用戶(hù)在該系統(tǒng)中的一個(gè)應(yīng)用中的請(qǐng)求次數(shù)達(dá)到閾值時(shí),該用戶(hù)針對(duì)該系統(tǒng)中其他應(yīng)用的請(qǐng)求驗(yàn)證碼難度都會(huì)隨之升級(jí)。
[0015]另外,在現(xiàn)有的具有不同安全等級(jí)且能根據(jù)用戶(hù)行為等自動(dòng)升級(jí)的驗(yàn)證碼系統(tǒng)中都是采用IP進(jìn)行統(tǒng)計(jì)限制的,比如說(shuō)某個(gè)IP規(guī)定時(shí)間內(nèi)訪(fǎng)問(wèn)量大于了某個(gè)閾值,就對(duì)該IP使用更高識(shí)別難度級(jí)別的驗(yàn)證提供服務(wù),這樣的話(huà)影響范圍太大。因?yàn)橐话愕拇髮W(xué)或一些大的公司外網(wǎng)IP的數(shù)量是很少的,也就是說(shuō)內(nèi)網(wǎng)中的很多用戶(hù)在使用同一個(gè)外網(wǎng)IP進(jìn)行網(wǎng)絡(luò)的訪(fǎng)問(wèn),假如采用上述驗(yàn)證碼升級(jí)策略的話(huà),如果某一個(gè)用戶(hù)大量請(qǐng)求了某個(gè)服務(wù)而導(dǎo)致系統(tǒng)對(duì)該IP使用更高級(jí)別的驗(yàn)證服務(wù),其他人再去請(qǐng)求相同的服務(wù)時(shí)也會(huì)使用同樣安全等級(jí)的驗(yàn)證碼,而等級(jí)越高識(shí)別難度越高,這樣的話(huà)會(huì)嚴(yán)重影響用戶(hù)的體驗(yàn)。
[0016]由上述可知,現(xiàn)有的驗(yàn)證碼設(shè)計(jì)方法有如下缺點(diǎn):
[0017]1.現(xiàn)有驗(yàn)證碼干擾策略對(duì)機(jī)器的影響較小,反而大大地影響了人的識(shí)別,不能同時(shí)兼顧保障系統(tǒng)安全和人的體驗(yàn);
[0018]2.驗(yàn)證碼難度等級(jí)升級(jí)策略采用單一的指標(biāo)進(jìn)行,如果出現(xiàn)網(wǎng)速不好重復(fù)點(diǎn)擊提交請(qǐng)求,就會(huì)造成驗(yàn)證碼難度等級(jí)提高,影響用戶(hù)的積極性和體驗(yàn);
[0019]3.驗(yàn)證碼難度等級(jí)升級(jí)策略中的閾值設(shè)定大多是針對(duì)全部應(yīng)用而言的,用戶(hù)在系統(tǒng)的一個(gè)應(yīng)用中的驗(yàn)證碼難度升級(jí)會(huì)導(dǎo)致在其他應(yīng)用中的驗(yàn)證碼難度隨之增加,不能很好的保證用戶(hù)體驗(yàn);
[0020]4.現(xiàn)有的具有不同安全等級(jí)且能根據(jù)用戶(hù)行為等自動(dòng)升級(jí)的驗(yàn)證碼系統(tǒng)中都是采用IP進(jìn)行統(tǒng)計(jì)限制的,對(duì)于外網(wǎng)IP的數(shù)量是很少的大學(xué)或大公司來(lái)說(shuō),影響范圍太大,嚴(yán)重影響用戶(hù)操作。
【發(fā)明內(nèi)容】
[0021]有鑒于此,本發(fā)明提供一種自適應(yīng)的驗(yàn)證碼設(shè)計(jì)方法及系統(tǒng),既能保證用戶(hù)體驗(yàn),又能確保系統(tǒng)安全性。其在采用自動(dòng)升級(jí)策略應(yīng)對(duì)非法請(qǐng)求時(shí)盡可能的不去影響其他正常用戶(hù)。其是在現(xiàn)有的驗(yàn)證碼基礎(chǔ)上進(jìn)行了改進(jìn),采用根據(jù)用戶(hù)使用情況而采用相應(yīng)識(shí)別難度的驗(yàn)證碼生成策略,在保障系統(tǒng)安全性的同時(shí)能很好的保障用戶(hù)的體驗(yàn)度,提高了驗(yàn)證碼的驗(yàn)證效率,較好的體現(xiàn)了驗(yàn)證碼設(shè)計(jì)的初衷。
[0022]為實(shí)現(xiàn)上述目的,根據(jù)本發(fā)明的一個(gè)方面,提供了一種自適應(yīng)的驗(yàn)證碼設(shè)計(jì)方法。
[0023]一種自適應(yīng)的驗(yàn)證碼設(shè)計(jì)方法,包括:將用戶(hù)發(fā)出驗(yàn)證碼請(qǐng)求的業(yè)務(wù)所對(duì)應(yīng)的業(yè)務(wù)標(biāo)識(shí)符和用戶(hù)的唯一標(biāo)識(shí),經(jīng)過(guò)運(yùn)算得到固定長(zhǎng)度的字符串,生成會(huì)話(huà)標(biāo)識(shí)符;根據(jù)生成的所述會(huì)話(huà)標(biāo)識(shí)符,從緩存中讀取該會(huì)話(huà)標(biāo)識(shí)符的驗(yàn)證碼安全等級(jí),之后生成驗(yàn)證碼;根據(jù)所述會(huì)話(huà)標(biāo)識(shí)符和輸入的所述驗(yàn)證碼進(jìn)行驗(yàn)證,并反饋驗(yàn)證結(jié)果。
[0024]可選地,所述運(yùn)算為hash運(yùn)算。
[0025]可選地,所述用戶(hù)的唯一標(biāo)識(shí)包括:在能得到用戶(hù)名的情況下,所述用戶(hù)的唯一標(biāo)識(shí)為用戶(hù)的用戶(hù)名;在不能得到用戶(hù)名的情況下,所述用戶(hù)的唯一標(biāo)識(shí)為精確到納秒的當(dāng)前時(shí)間或當(dāng)前請(qǐng)求的線(xiàn)程號(hào)。
[0026]可選地,生成會(huì)話(huà)標(biāo)識(shí)符之前,還包括:對(duì)所述業(yè)務(wù)標(biāo)識(shí)符進(jìn)行校驗(yàn),如果合法就生成會(huì)話(huà)標(biāo)識(shí)符,如果不合法則不提供服務(wù)。
[0027]可選地,從緩存中讀取該會(huì)話(huà)標(biāo)識(shí)符的驗(yàn)證碼安全等級(jí)之前,還包括:根據(jù)該會(huì)話(huà)標(biāo)識(shí)符的相應(yīng)參數(shù)信息進(jìn)行驗(yàn)證碼安全等級(jí)判定。
[0028]可選地,所述相應(yīng)參數(shù)信息包括:相應(yīng)的請(qǐng)求次數(shù)和請(qǐng)求比例信息。
[0029]可選地,所述相應(yīng)參數(shù)信息包括如下中的幾種:未知業(yè)務(wù)標(biāo)識(shí)碼請(qǐng)求次數(shù)及比例;兩次驗(yàn)證碼請(qǐng)求小于最小時(shí)間間隔次數(shù)及比例;超過(guò)請(qǐng)求次數(shù)上限的次數(shù)及比例;驗(yàn)證碼驗(yàn)證錯(cuò)誤次數(shù)及比例;驗(yàn)證碼過(guò)期次數(shù)及比例;已請(qǐng)求驗(yàn)證碼次數(shù)及比例。
[0030]可選地,從緩存中讀取該會(huì)話(huà)標(biāo)識(shí)符的驗(yàn)證碼安全等級(jí)之前,還包括:判斷所述生成的會(huì)話(huà)標(biāo)識(shí)符是否合法;判斷緩存中是否存在所述合法的會(huì)話(huà)標(biāo)識(shí)符;以及如果緩存中存在所述合法的會(huì)話(huà)標(biāo)識(shí)符,將該會(huì)話(huà)標(biāo)識(shí)符對(duì)應(yīng)的參數(shù)信息進(jìn)行更新。
[0031]可選地,將該會(huì)話(huà)標(biāo)識(shí)符對(duì)應(yīng)的參數(shù)信息進(jìn)行更新的步驟包括:判斷該會(huì)話(huà)標(biāo)識(shí)符本次驗(yàn)證碼請(qǐng)求和上一次請(qǐng)求之間的時(shí)間間隔是否小于兩次請(qǐng)求間隔閾值,如果小于該閾值,將兩