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