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