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