999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

一種手繪軌跡驗(yàn)證碼的仿真實(shí)現(xiàn)

2022-05-25 04:48:06徐寶林
現(xiàn)代計(jì)算機(jī) 2022年6期
關(guān)鍵詞:程序文本

徐寶林

(廣東白云學(xué)院大數(shù)據(jù)與計(jì)算機(jī)學(xué)院,廣州 510450)

0 引言

隨著互聯(lián)網(wǎng)的飛速發(fā)展,基于Web服務(wù)的各種分布式信息處理得到了廣泛應(yīng)用。但同時(shí),隨著Web服務(wù)使用量的不斷增加,機(jī)器人惡意攻擊系統(tǒng)的機(jī)會(huì)也越來(lái)越多。

基于Web的應(yīng)用系統(tǒng)本質(zhì)上都是分布式系統(tǒng),分布式系統(tǒng)從軟件架構(gòu)上看分為客戶端和服務(wù)器端。在基于多層架構(gòu)的應(yīng)用系統(tǒng)中,為了防止惡意機(jī)器程序通過(guò)客戶端對(duì)服務(wù)器端進(jìn)行攻擊,通常會(huì)采用一種名為“驗(yàn)證碼”的網(wǎng)絡(luò)安全機(jī)制,而驗(yàn)證碼的設(shè)計(jì)必須基于全自動(dòng)開放式人機(jī)區(qū)分圖靈測(cè)試。

全自動(dòng)開放式人機(jī)區(qū)分圖靈測(cè)試(completely automated public turing test to tell computers and humans apart,CAPTCHA),又稱為人機(jī)交互驗(yàn)證(human interactive proof,HIP),它能自動(dòng)產(chǎn)生并評(píng)估一個(gè)測(cè)試,這個(gè)測(cè)試能被幾乎所有人類用戶通過(guò),而現(xiàn)有的計(jì)算機(jī)程序不能通過(guò)。

通常在客戶端設(shè)置的第一道安全屏障就是驗(yàn)證碼。在諸多驗(yàn)證碼形式當(dāng)中,基于圖形繪制的文本驗(yàn)證碼是最簡(jiǎn)單也是最常用的一種。但實(shí)驗(yàn)證明,基于圖形繪制的傳統(tǒng)文本驗(yàn)證碼極易被機(jī)器程序識(shí)別,這無(wú)疑給客戶端惡意程序攻擊服務(wù)器端提供了機(jī)會(huì)。

為了解決以上安全問(wèn)題,本文提出了一種“手繪軌跡引導(dǎo)的圖形文本驗(yàn)證碼”解決方案,該方案將傳統(tǒng)固有空間順序的字符放置在隨機(jī)手繪曲線軌跡的特定位置上,從而通過(guò)提高空間復(fù)雜度來(lái)達(dá)到難以被機(jī)器程序識(shí)別的目的。

1 手繪軌跡驗(yàn)證碼的提出

1.1 關(guān)于傳統(tǒng)圖形文本驗(yàn)證碼

業(yè)界已經(jīng)提出了多種驗(yàn)證碼實(shí)施方案,例如圖像標(biāo)記、文本識(shí)別、對(duì)象識(shí)別、音頻識(shí)別、解謎以及視頻識(shí)別。由于基于圖形繪制的文本驗(yàn)證碼實(shí)現(xiàn)成本較低,所以文本驗(yàn)證碼仍然應(yīng)用非常廣泛。基于圖形繪制的文本驗(yàn)證碼通常由放在前面的字母、數(shù)字字符圖像及失真背景圖像組成,從而使光學(xué)字符識(shí)別(OCR)程序無(wú)法識(shí)別這些圖像。對(duì)基于圖形繪制的文本驗(yàn)證碼來(lái)說(shuō),驗(yàn)證碼字符通常隱藏在圖形中。將扭曲字符與混淆背景組合在一起是應(yīng)用較廣泛的一種文本驗(yàn)證碼解決方案。

圖1所示的樣例就是具有代表性的傳統(tǒng)基于圖形繪制的文本驗(yàn)證碼圖。

圖1 基于圖形繪制的文本驗(yàn)證碼

1.2 典型圖形文本驗(yàn)證碼的安全性測(cè)試

對(duì)于形如圖1所示的圖形驗(yàn)證碼,由于字符空間順序默認(rèn)是從左至右排列的,其空間復(fù)雜度相對(duì)較低,很容易被機(jī)器人程序識(shí)別。研究人員使用“超級(jí)鷹”(一款在線驗(yàn)證碼識(shí)別程序:http://www.chaojiying.com/demo.html)對(duì)若干傳統(tǒng)圖形文本驗(yàn)證碼進(jìn)行了識(shí)別測(cè)試,其識(shí)別率見表1。

表1 傳統(tǒng)圖形文本驗(yàn)證碼識(shí)別測(cè)試

從表1中的不完全測(cè)試數(shù)據(jù)可知,傳統(tǒng)圖形文本驗(yàn)證碼極易被機(jī)器程序識(shí)別,識(shí)別率高達(dá)90%以上。由此可見,傳統(tǒng)圖形文本驗(yàn)證碼的安全性相對(duì)較低,不建議使用。

1.3 手繪軌跡驗(yàn)證碼的提出

不妨假設(shè):若增加圖形驗(yàn)證碼的空間復(fù)雜度,機(jī)器程序識(shí)別難度將加大。

先考慮一種極端情況,即無(wú)法判斷字符順序的情況,如圖2所示。

圖2 無(wú)序圖

由于圖2是無(wú)序圖,機(jī)器程序不知道哪個(gè)字符是起點(diǎn)、哪個(gè)字符是終點(diǎn),因此,無(wú)論是人還是機(jī)器程序都無(wú)法識(shí)別驗(yàn)證碼序列。很顯然,無(wú)序圖不能作為驗(yàn)證碼應(yīng)用。

但如果在圖2的基礎(chǔ)上加上手繪軌跡,則情況會(huì)發(fā)生很大改變。圖3不妨命名為“手繪軌跡引導(dǎo)驗(yàn)證碼圖”。

圖3 手繪軌跡引導(dǎo)驗(yàn)證碼

對(duì)于圖3而言,若沿著曲線軌跡從一個(gè)端點(diǎn)遍歷到另一個(gè)端點(diǎn),則人的視覺較容易識(shí)別出驗(yàn)證碼是“5XTmn”或“nmTX5”;但對(duì)機(jī)器程序來(lái)說(shuō),由于空間復(fù)雜度的加大而變得難以識(shí)別。實(shí)驗(yàn)證明,在表1的基礎(chǔ)上將取自網(wǎng)易郵箱、新浪郵箱、21CN郵箱的30幅圖經(jīng)手繪軌跡引導(dǎo)處理后再由“超級(jí)鷹”識(shí)別程序進(jìn)行識(shí)別,結(jié)果無(wú)一識(shí)別,即在本次不完全統(tǒng)計(jì)中其識(shí)別率為0%。

考慮到圖3中的字符缺乏背景干擾,實(shí)際應(yīng)用中可加一些背景字符進(jìn)行干擾,圖4即是加了背景干擾字符的“手繪軌跡引導(dǎo)驗(yàn)證碼圖”示例。

圖4 字符干擾的手繪軌跡驗(yàn)證碼

在圖4中,人類相對(duì)容易識(shí)別出驗(yàn)證字符序列是“DA8J4”或“4J8AD”,但機(jī)器程序較難識(shí)別。因此,“手繪軌跡引導(dǎo)驗(yàn)證碼圖”符合驗(yàn)證碼設(shè)計(jì)目標(biāo),是一種較好的圖形文本驗(yàn)證碼解決方案。

但接下來(lái)的問(wèn)題是:手繪軌跡是人工操作,效率低下,而實(shí)際應(yīng)用中需快速、實(shí)時(shí)呈現(xiàn)驗(yàn)證碼圖像,因此,必須使用計(jì)算機(jī)程序仿真實(shí)現(xiàn)“手繪軌跡引導(dǎo)驗(yàn)證碼圖”才能滿足分布式信息處理的高效率需求。

2 解決方案設(shè)計(jì)

2.1 設(shè)計(jì)思路

新的設(shè)計(jì)方案必須克服“驗(yàn)證碼字符空間復(fù)雜度低”這一弊端,因此,提出如下設(shè)計(jì)思路。

(1)機(jī)器程序難以識(shí)別驗(yàn)證碼字符位置關(guān)系(即字符先后順序);

(2)但人類可根據(jù)軌跡提示較容易識(shí)別驗(yàn)證碼字符位置關(guān)系(即字符先后順序);

(3)字符的位置是隨機(jī)的,每個(gè)隨機(jī)位置處輸出的字符是隨機(jī)的,兩個(gè)位置坐標(biāo)之間的連接曲線形狀也是隨機(jī)的;

(4)驗(yàn)證碼字符相比干擾背景字符字體稍粗一些。

2.2 驗(yàn)證碼圖形生成過(guò)程設(shè)計(jì)

從前面的分析可知,為了不讓機(jī)器程序輕易識(shí)別出字符的先后順序,需要加大字符的空間復(fù)雜度。

以包含5個(gè)字符的驗(yàn)證碼為例,其解決方案是:在指定區(qū)域內(nèi),隨機(jī)確定5個(gè)坐標(biāo)點(diǎn),在已確定的5個(gè)坐標(biāo)處,輸出隨機(jī)字符。

但這樣生成的隨機(jī)字符是無(wú)序的,沒有實(shí)際意義。但若在兩個(gè)順序相鄰的字符之間用隨機(jī)形狀的曲線連接即可形成曲線軌跡暗示。通過(guò)軌跡暗示,人類較容易識(shí)別字符順序,但機(jī)器程序難以識(shí)別。

綜合以上分析,驗(yàn)證碼圖形生成過(guò)程可描述如下(以包含5個(gè)字符的驗(yàn)證碼圖形為例):

①在特定平面區(qū)域內(nèi),生成隨機(jī)坐標(biāo)點(diǎn)1(1,1),并在該點(diǎn)處輸出隨機(jī)字符1及干擾字符;

②在平面區(qū)域內(nèi),生成隨機(jī)坐標(biāo)點(diǎn)2(2,2),并在該點(diǎn)處輸出隨機(jī)字符2及干擾字符;

③以1為起點(diǎn)、2為終點(diǎn),在起點(diǎn)與終點(diǎn)之間用隨機(jī)形狀曲線連接;

④在平面區(qū)域內(nèi),生成隨機(jī)坐標(biāo)點(diǎn)3(2,2),并在該點(diǎn)處輸出隨機(jī)字符3及干擾字符;

⑤以2為起點(diǎn)、3為終點(diǎn),在起點(diǎn)與終點(diǎn)之間用隨機(jī)形狀曲線連接;

⑥在平面區(qū)域內(nèi),生成隨機(jī)坐標(biāo)點(diǎn)4(4,4),并在該點(diǎn)處輸出隨機(jī)字符4及干擾字符;

⑦以3為起點(diǎn)、4為終點(diǎn),在起點(diǎn)與終點(diǎn)之間用隨機(jī)形狀曲線連接;

⑧在平面區(qū)域內(nèi),生成隨機(jī)坐標(biāo)點(diǎn)5(5,5),并在該點(diǎn)處輸出隨機(jī)字符5及干擾字符;

⑨以4為起點(diǎn)、5為終點(diǎn),在起點(diǎn)與終點(diǎn)之間用隨機(jī)形狀曲線連接。

很容易發(fā)現(xiàn):步驟①、②、③與步驟④、⑤、⑥以及步驟⑦、⑧、⑨的抽象邏輯是一樣的,假定該抽象邏輯為。

則抽象邏輯可描述如下:

①在平面區(qū)域內(nèi),生成隨機(jī)起點(diǎn)并在起點(diǎn)處輸出隨機(jī)驗(yàn)證碼字符及干擾字符;

②在平面區(qū)域內(nèi),生成隨機(jī)終點(diǎn)并在終點(diǎn)處輸出隨機(jī)驗(yàn)證碼字符及干擾字符;

③在起點(diǎn)與終點(diǎn)之間用隨機(jī)形狀曲線連接。

因此,在具體程序設(shè)計(jì)時(shí),只要循環(huán)執(zhí)行抽象邏輯L就可以仿真生成“手繪軌跡引導(dǎo)驗(yàn)證碼圖”。

3 手繪軌跡引導(dǎo)驗(yàn)證碼圖的仿真軟件實(shí)現(xiàn)

3.1 軟件架構(gòu)選擇

在基于Web環(huán)境下,從軟件架構(gòu)的角度來(lái)看,隨機(jī)驗(yàn)證碼圖形的實(shí)現(xiàn)有兩種方案。

第一種:由后臺(tái)服務(wù)程序生成隨機(jī)圖形并保存為圖形文件,再將圖形文件加載到客戶端讓用戶識(shí)別。

第二種:將存儲(chǔ)在后臺(tái)的可生成隨機(jī)圖形的邏輯代碼加載到客戶端,代碼在客戶端執(zhí)行后生成可供用戶識(shí)別的驗(yàn)證碼圖形。

基于課題研究需要,研究人員的設(shè)計(jì)初衷是希望在web環(huán)境下由客戶端程序產(chǎn)生隨機(jī)圖形并呈現(xiàn)在網(wǎng)頁(yè)上,很顯然,這一設(shè)計(jì)目標(biāo)與第二種軟件架構(gòu)方案吻合。另外,第二種軟件架構(gòu)方案相對(duì)第一種軟件架構(gòu)方案來(lái)說(shuō),其實(shí)現(xiàn)成本更低。

綜合考慮,選擇第二種軟件架構(gòu)方案來(lái)進(jìn)行仿真測(cè)試。

3.2 隨機(jī)驗(yàn)證碼圖形的實(shí)現(xiàn)

實(shí)驗(yàn)證明,HTML5框架下的canvas元素具備在網(wǎng)頁(yè)上繪制圖像及輸出圖形文本的功能。canvas擁有多種繪制路徑、矩形、圓形、字符以及添加圖像的方法。canvas元素本質(zhì)上是一個(gè)對(duì)象,其getContext()方法可繪制二維圖形。getContext()方法的可選參數(shù)是“2d”、“3d”。當(dāng)前,唯一支持的參數(shù)是“2d”,它返回一個(gè)CanvasRenderingContext2D對(duì)象,該對(duì)象實(shí)現(xiàn)了一個(gè)畫布所使用的大多數(shù)方法。CanvasRenderingContext2D.fillText()用來(lái)填充文字,是Canvas繪制文本的主力方法;CanvasRendering-Context2D.bezierCurveTo()方法可在網(wǎng)頁(yè)畫布上繪制曲線。CanvasRenderingContext2D.bezierCurveTo()是Canvas 2D API繪制三次貝賽爾曲線路徑的方法,該方法需要三個(gè)點(diǎn):第一、第二個(gè)點(diǎn)是控制點(diǎn),第三個(gè)點(diǎn)是結(jié)束點(diǎn)。若控制點(diǎn)的坐標(biāo)是隨機(jī)的,則生成的曲線形狀必然是隨機(jī)的。

fillText(text,,)表示在坐標(biāo)(,)處繪制文本“text”參數(shù)所指定的內(nèi)容,fillText()方法在調(diào)用前是可以指定字體的。實(shí)驗(yàn)表明,若字體指定為“Script MT”或“Freestyle Script”,則輸出的字符較接近手寫體,考慮到“Script MT”字體較“Freestyle Script”字體粗些,將驗(yàn)證碼字符設(shè)為“Script MT”字體,而將干擾字符設(shè)為“Freestyle Script”字體。基于這種思想,研究人員使用JavaScript編寫了自動(dòng)化程序并生成了如圖5所示的驗(yàn)證碼圖形。

圖5 隨機(jī)產(chǎn)生的文本驗(yàn)證碼

從圖5可看出,每個(gè)干擾字符串中有一個(gè)字體較粗的字符。但問(wèn)題是驗(yàn)證碼字符串中的字符是有順序的,因此,在實(shí)現(xiàn)代碼中規(guī)定了起點(diǎn),起點(diǎn)處繪制了一段半圓弧來(lái)標(biāo)識(shí),如圖5中,因字符“4”旁邊有一段半圓弧,所以為起點(diǎn)。根據(jù)以上規(guī)定,圖5中的正確驗(yàn)證碼序列應(yīng)為“4D57A”。

實(shí)驗(yàn)用自動(dòng)化程序生成100個(gè)仿真“手繪軌跡引導(dǎo)驗(yàn)證碼圖”,并交由“超級(jí)鷹”驗(yàn)證碼識(shí)別平臺(tái)識(shí)別,結(jié)果沒有一個(gè)識(shí)別成功,這顯然符合CAPTCHA的“人類可識(shí)別但機(jī)器程序難以識(shí)別”的設(shè)計(jì)初衷。

特別要說(shuō)明的是:JavaScript代碼是以明文形式呈現(xiàn)在客戶端的,這本身就存在安全隱患。為了克服JavaScript代碼在前端為明文的特點(diǎn),可利用JavaScript代碼混淆器對(duì)其進(jìn)行處理。

4 結(jié)語(yǔ)

傳統(tǒng)的圖形文本驗(yàn)證碼,由于其空間復(fù)雜度較低且字符序列默認(rèn)從左至右,容易被驗(yàn)證碼識(shí)別程序識(shí)別,因此存在較大安全隱患。實(shí)踐證明,只要在特定區(qū)域隨機(jī)分布字符并加上曲線軌跡引導(dǎo),則會(huì)較大程度地增加字符空間復(fù)雜度,從而大大提升圖形文本驗(yàn)證碼的安全保障作用。

實(shí)驗(yàn)數(shù)據(jù)表明:“手繪軌跡引導(dǎo)驗(yàn)證碼圖”難以被機(jī)器程序識(shí)別且較容易被人類識(shí)別,這符合驗(yàn)證碼的設(shè)計(jì)目標(biāo)。

考慮到手繪驗(yàn)證碼圖形因其效率低而無(wú)實(shí)際應(yīng)用價(jià)值,所以用計(jì)算機(jī)程序仿真實(shí)現(xiàn)“手繪軌跡引導(dǎo)驗(yàn)證碼圖”。通過(guò)HTML5的canvas技術(shù)不僅能實(shí)現(xiàn)字符手寫仿真且能實(shí)現(xiàn)曲線軌跡手繪仿真。實(shí)驗(yàn)證明,通過(guò)仿真實(shí)現(xiàn)的“手繪軌跡引導(dǎo)驗(yàn)證碼圖”具有良好的安全性,達(dá)到了圖形文本驗(yàn)證碼的設(shè)計(jì)目標(biāo),是一種有效的圖形文本驗(yàn)證碼解決方案。

猜你喜歡
程序文本
初中群文閱讀的文本選擇及組織
甘肅教育(2020年8期)2020-06-11 06:10:02
在808DA上文本顯示的改善
試論我國(guó)未決羈押程序的立法完善
基于doc2vec和TF-IDF的相似文本識(shí)別
電子制作(2018年18期)2018-11-14 01:48:06
失能的信仰——走向衰亡的民事訴訟程序
“程序猿”的生活什么樣
英國(guó)與歐盟正式啟動(dòng)“離婚”程序程序
文本之中·文本之外·文本之上——童話故事《坐井觀天》的教學(xué)隱喻
論《柳毅傳》對(duì)前代文本的繼承與轉(zhuǎn)化
人間(2015年20期)2016-01-04 12:47:10
創(chuàng)衛(wèi)暗訪程序有待改進(jìn)
主站蜘蛛池模板: 国产精品欧美激情| 狠狠色香婷婷久久亚洲精品| 欧美国产日本高清不卡| 国产精品亚洲日韩AⅤ在线观看| 91黄色在线观看| 日韩国产欧美精品在线| 亚洲欧洲日韩久久狠狠爱| julia中文字幕久久亚洲| 欧美www在线观看| 国产免费黄| 日韩不卡免费视频| 污网站免费在线观看| 亚洲精品777| 国产视频只有无码精品| 亚洲资源在线视频| 国产精选小视频在线观看| 亚洲国产精品VA在线看黑人| 在线观看视频99| 亚洲日本www| 996免费视频国产在线播放| 亚洲av无码成人专区| 999精品在线视频| 又黄又湿又爽的视频| 亚洲男人在线| 无码有码中文字幕| 国产尤物视频在线| 人妻无码一区二区视频| 亚洲成年人网| 欧美a级在线| 日韩欧美中文在线| 2022国产91精品久久久久久| 日本成人在线不卡视频| 奇米精品一区二区三区在线观看| 五月婷婷综合网| 国产小视频a在线观看| 老熟妇喷水一区二区三区| a色毛片免费视频| 四虎永久免费网站| a毛片在线播放| 日韩精品亚洲一区中文字幕| 18禁高潮出水呻吟娇喘蜜芽| 中文字幕 日韩 欧美| 婷婷六月综合网| 亚洲欧美另类视频| 一级毛片在线播放免费观看| 亚洲aⅴ天堂| 老司国产精品视频91| 国产一区免费在线观看| 国产精品成人啪精品视频| 又爽又大又黄a级毛片在线视频| 久久夜色精品| 国产二级毛片| 熟妇丰满人妻av无码区| 免费在线一区| 国产91色在线| 亚洲系列无码专区偷窥无码| 3344在线观看无码| 国产视频入口| 香蕉eeww99国产在线观看| 国产人成网线在线播放va| 一级黄色网站在线免费看| 在线观看热码亚洲av每日更新| 久热这里只有精品6| 欧美不卡视频在线| 精品精品国产高清A毛片| 久久国产乱子伦视频无卡顿| 无遮挡国产高潮视频免费观看| 2020亚洲精品无码| 日韩中文无码av超清| 视频二区亚洲精品| 免费黄色国产视频| 国产精品自拍露脸视频| 亚洲天堂免费| yjizz视频最新网站在线| 在线精品视频成人网| 色噜噜狠狠狠综合曰曰曰| 国产爽爽视频| www.亚洲一区| 在线看AV天堂| www.精品视频| 亚洲毛片在线看| 欧美成人综合在线|