“我不是機器人”:驗證碼的歷史與未來

基本上上過網的人,都知道驗證碼是個什么東西。這些歪歪扭扭的字母、數字和漢字每天都在各種網站上不斷的刷新,挑戰著網友們的眼力。這玩意的歷史,其實比你想象的要短的多,但其誕生的短短十幾年時間里,已經經過了各種曲折而意想不到的發展。而今,借助現代IT技術的東風,驗證碼也踏上了一條全新的道路。

早期的嘗試

驗證碼的英文叫“CAPTCHA”,這是一個炫酷詞組的縮寫——“Completely Automated Public Turing test to tell Computers and Humans Apart”,直譯就是“用于區分計算機與人類的全自動公開圖靈測試”。圖靈測試大家都比較熟悉,是由圖靈提出的一個著名試驗,實驗者通過詢問一臺機器與一個人類一系列問題,如果實驗者無法分辨兩者的區別,那么這臺機器便通過的圖靈測試。

圖靈測試

驗證碼是圖靈測試的反向簡化版本,不是由人來判斷對方是不是機器,而是由機器來判讀對方是不是人。在互聯網的早年間,各個網站都是沒有驗證碼的,最多有一些黑客出于躲避敏感詞檢測的目的,故意把單詞用很怪的方式打出來。就像把XXX打成“氵工氵尺 民”這樣。到了21世紀初,隨著垃圾郵件和欺詐軟件的盛行,開始有公司利用驗證碼的思想來保護自己的網站。比如2001年PayPal就曾讓人類輸入類似驗證碼的扭曲字母。

驗證碼這個名詞真正被發明出來是在2003年,這比很多概念晚多了,比如神經網絡70年代就已經有很多人在研究。卡內基梅隆大學的Luis von Ahn,Manuel Blum, Nicholas J.Hopper等人首次提出了“CAPTCHA”這個詞。他們對驗證碼系統做的很深刻的研究,并且將其付諸程序化。自此大量的驗證碼開始被應用到網站中,有效的阻止了黃牛軟件的肆虐。時至今日,每天有過億的驗證碼被人們不斷地輸入著。

Luis von Ahn
Luis的的論文

Luis的腳步

Luis在2003年發明了驗證碼,兩年之后他完成了自己的博士論文,在其中他提出了結合人類與計算機的能力共同解決問題的概念。他認為,計算機強于大量數據的計算,而人類在感知圖像等方面的優勢是計算機仍難以勝任的,每天有如此之多的驗證碼被人輸入,不用來做點什么實在是太可惜了!

Luis那時候喊出的口號是:“stop spam, read books.”他做到了。2007年,他創立了reCAPTCHA工作室,提供了一種新型的驗證碼服務,成為“視覺單詞識別系統”(optical character recognition, 簡稱OCP)。他們把紙質書籍掃描下來,再用軟件切分成一個個的單詞,做成驗證碼和真的驗證碼捆綁在一起,由用戶輸入。當同一副圖片被多人標記為同樣的單詞時,軟件就會將其記錄下來,并和其他的單詞拼湊成一本完整的電子書。如果你見過那種紅色的驗證碼標志,并且碼文由兩段內容組成,大概很容易知道我說的是什么。

stop spam, read books.

這個點子實在很贊。這樣一來數以萬計的驗證碼就成功的被用來轉換那些實體書籍,而不用耗費昂貴的人工來打字。Google也發現了這個系統的絕妙之處,于是他們決定——收購他們。2009年,reCAPTCHA成為了谷歌旗下的一員,利用這個系統,Google電子化了大量的圖書,并把它們發布在了Google books上。到了2012年,除了圖書,reCAPTCHA還為谷歌街景翻譯了大量門牌號。可謂功勛卓著。下次遇到這種驗證碼的時候,你就知道自己在做一件多么酷的事兒。

各方面的挑戰

驗證碼很常見,但是幾乎每個人都煩他,畢竟是多了一道很麻煩的工序。實際上隨著信息技術的發展,驗證碼收到的挑戰也越來越多。

在早年間,破解驗證碼的方式非常簡單暴力,那就是靠人來解。有人專門在第三世界國家開辦血汗工廠式的公司,接收大量的驗證碼然后由人力輸入破解之,這種公司被稱為“驗證碼農場”。2010年,利用驗證碼農場來破解一百萬個驗證碼,只需要1000美元。這種方法理論上是無解的,畢竟對面是真的人,當然成本也是最高的。

另一方面,機器學習,圖像處理等技術近年來蓬勃發展了起來。計算機檢測圖片當中字母數字的能力越來越高了。為了應對這種威脅,驗證碼開始朝著獵奇的方向發展,扭曲文字,增加干擾線,把背景色與文字顏色相混等等,連濃眉大眼的reCAPTCHA也加了好幾條線上去。這起到了一定的效果,但是對使用者的干擾更大。輸入不成功的概率越來越大,大家紛紛想砸電腦。

更可怕的是,2014年的WOOT大會上,Bursztein展示一種通用的驗證碼破解程序,這種基于強化學習的算法對市面上大對數驗證碼效果都不錯。這證明靠扭曲文字的方式增加難度以及再也沒用了,受傷的只能是用戶。

你看這是啥?

但用戶們已經很抓狂了。更不必說有視覺障礙、認知障礙等等疾病的殘障人士,他們輸入一次驗證碼比登天還難。人們并不想要更復雜的驗證碼,而是想要簡化它。于是各種各樣的方案被開發出來,希望在簡化手段的同時攔住電腦。包括滑動式驗證碼、點擊式驗證碼等等。至于效果嘛……別的不說,12306絕對是大大的反例了……

未來:“我不是機器人”

還記得剛剛說的reCAPTCHA嗎,這次,他們換logo了!

不,這不是重點,重點是,他們徹底革了驗證碼的命。reCAPTCHA開發出了一種全新形式的驗證碼裝置。你只需要點擊一下那個方框,就完成了驗證工作。十分簡單,毫不繁瑣。連網站頁面都變得清爽了起來。而其攔截成功率比傳統的文字驗證碼高上好幾倍!

那么這種新reCAPTCHA是怎么工作的呢?簡單來說,當你進入了這個頁面的時候,軟件就開始收集你的各種信息,包括你的IP、cookies、時間、分辨率、鼠標的移動、鍵盤的操作和其他各種雜七雜八的數據,當你點擊完成時,這些信息被服務器處理并最終判斷你是不是一個真人。所以新reCAPTCHA所收集的信息比傳統文字驗證碼更多,也更難破解。

只需要戳一下喲

通常,這樣一個感知模型需要龐大的數據量支撐才能訓練成功,幸好reCAPTCHA有一個強大的后臺——Google公司。Google極力的促進的這項服務的開展,他們一點都不缺少用戶數據。而今,你已經可以在國外的各大網站上見到它的身影,包括youtube、facebook等等。

“Tough on bots,Easy on humans”,這是reCAPTCHA的口號,誠如所言。這項服務完全是免費的,只需要在他們的網站上注冊一下,就可以獲得接口使用。如果你想要,完全可以搞一個在自己的網站上玩。比用各種丑丑的驗證碼有趣多啦!

結語

驗證碼誕生至今不過15年左右,其身上已經烙上了信息時代技術大發展的烙印。Google致力開發的新型驗證碼讓我們看到了一個更為方便快捷的未來,更重要的是,技術發展的目標應當是讓人更加方便的生活,而非增添煩惱。相比之下,12306是不是應當羞愧一下下呢?

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容