不得不感概,現(xiàn)在網(wǎng)上沖浪干個啥都需要驗證碼,難道我就這么像機器人嗎?機器人會上 xxxhub 嗎?甚至有些驗證碼的難度真人都認不出來,弄那么復(fù)雜是圖啥?
其實,隨處可見的驗證碼除了在驗證我們是不是人之外,還在讓用戶免費為其打工,并且人們還沒有意識到這個「騙局」。
驗證碼是一個低成本高收益的方案,它可以從根本上防止機器、腳本的惡意攻擊,因為它只要驗證你是不是一個真人,不是的話直接拒絕。并且它也可以復(fù)制到任何系統(tǒng)中,以致于現(xiàn)在任何地方你都能見到它,也分化出了各種有意思或者高血壓的驗證碼類型。
比如最簡單的數(shù)字、字母、文字,以及衍生出來的簡單數(shù)學(xué)計算,這些都算是字符識別類。
移動滑塊、旋轉(zhuǎn)圖像,可以歸為位置識別類。
識別物體、識別紅綠燈斑馬線這些屬于物體識別類。
甚至還有其他各種各樣歡迎大家補充。這些花樣繁多的驗證碼難到只是為了安全所需?不,還有一個隱藏目的:讓用戶免費為其打工。
21世紀信息時代剛剛來臨時,大量紙質(zhì)資料、書籍需要進行數(shù)字化,手工錄入肯定是不可能的,但機器掃描又很容易出現(xiàn)掃描不出來的情況。
面對這個問題, reCAPTCHA 的創(chuàng)始人之一提出了一個很好的想法:我們能不能利用驗證碼系統(tǒng)來讓人類幫助識別那些機器掃描不出來的文字?這樣就能結(jié)合人類與機器的長處,提高工作效率。
而同時,驗證碼又要滿足用于區(qū)分人機的最基本需求,所以就有了一個很巧妙的方法:用戶看到的驗證碼中有一部分是正常用于驗證的文字、而另一部分是機器無法識別的文字。
用戶輸對了用于驗證的部分,機器就會假設(shè)另一部分也正確識別,再結(jié)合多個用戶的交叉驗證,就成功幫助機器識別了那些不能識別的文字。也就是說,人們在輸驗證碼時,其實前半段就已經(jīng)完成驗證,而后面則是在義務(wù)勞動。
借助這個系統(tǒng),每天都能錄入幾億字符,大量書籍完成了數(shù)字化工作,可以說為人類文明做出了巨大貢獻。
那照這樣下去很快就沒有書籍需要數(shù)字化了吧?驗證碼騙局可不止這樣,恰逢人工智能和機器學(xué)習(xí)的發(fā)展,這套系統(tǒng)開始有了新的工作:輔助訓(xùn)練 AI 。
這下驗證碼也從字符識別發(fā)展成了更加復(fù)雜的物體識別,我們又在無形之中為 AI 的發(fā)展出了一份力。天天區(qū)分紅綠燈、斑馬線的無償勞動,谷歌自動駕駛出來是不是得一人發(fā)一輛車???
原來我在填驗證碼的時候,不僅僅是證明了我是一個人,同時也在輔助訓(xùn)練 AI 。這讓我不禁想到了一個問題:AI 學(xué)會了識別字符、圖片,那是不是可以用 AI 來破解驗證碼?
答案是可以的,并且還無法避免。Google 通過 API 本身向開發(fā)人員開放了 TensorFlow,意味著可以使用? TensorFlow 來欺騙訓(xùn)練 TensorFlow 的驗證碼系統(tǒng)。
這就好比,師父為了防止徒弟打開自己的寶箱而上了一把鎖,但是師父教給徒弟的技能就是去開這種鎖,最終徒弟也能打開師父的鎖,但師父最不能忍受的就是徒弟能打開自己的鎖。
矛盾吧?既然這樣,又要怎樣才能區(qū)分人和機器呢?
reCAPTCHA 推出了更加有效的驗證系統(tǒng),通過直接記錄識別用戶操作軌跡來區(qū)分人與機器,提高機器模擬成本。
相比于傳統(tǒng)驗證系統(tǒng),它并不需要用戶進行點圖片、輸文字驗證,它的工作機制是跟蹤用戶點擊驗證框之前、當時和之后的各種行為,比如在網(wǎng)頁上花費的時間、點擊滑動次數(shù),綜合分析給出評分,從而來判斷是否是人為操作。
但經(jīng)過訓(xùn)練的 AI 還是可以突破這道驗證,未來甚至?xí)懈嗟姆桨浮?/p>
只能說,AI 對抗訓(xùn)練 AI 的驗證碼系統(tǒng)是無法避免的,雖然可以不斷提高機器模擬成本來不斷延后這個結(jié)果,但最終對用戶來說,我們可能更難向服務(wù)器證明「我是人」了。現(xiàn)在的驗證碼,且用且珍惜。
驗證碼是防止機器人的一種手段,雖然我們是在幫忙打白工,但是在一定程度上還是可以保護網(wǎng)絡(luò)安全。隨著科技的發(fā)展希望可以有更好的驗證碼類型出現(xiàn)。
本文編輯:@ 小淙
?本文著作權(quán)歸電手所有,未經(jīng)電手許可,不得轉(zhuǎn)載使用。