“你永遠不知道,網絡對面坐的一個人還是一隻狗”
--網友戲說
視頻、出行、購物等網站的使用者,就一定是人類嗎?會不會是僞裝成“人類”的計算機呢?
為了能夠識别人類和計算機,“驗證碼”應運而生。
今天,讓我們了解一下驗證碼的前世今生吧!
01
先了解什麼是“圖靈測試”
從1946年世界上第一台計算機出現開始,聰明的人類就已經考慮計算機發展到替代人類的可能性。艾倫·麥席森·圖靈,被稱為計算機科學之父、人工智能之父,專門設計了一個著名的“圖靈測試”,用來判定計算機能否在智力行為上表現得和人無法區分。
當主持人問了1個問題,然後無法從2個解答中分辨出誰是人類、誰是計算機時,就表明計算機的智能水平已經與人類沒有差異了。
“圖靈測試”是由人類來判斷:誰是計算機?誰是人類?
最重要的目的,是識别出計算機。
02
反過來的“圖靈測試” 就是驗證碼
那麼“驗證碼”,是由計算機來判斷:誰是人類?誰是計算機?
最重要的目的,是識别出人類。
這一點,可以從驗證碼的中英文全稱中看出來:CAPTCHA(Completely Automated Public Turing Test to Tell Computers and Humans Apart, 全自動區分計算機和人類的公開圖靈測試),又名HIP(Human Interaction Proof,人類交互行為證明)。
最典型的驗證碼,如下圖所示。
以目前的眼光來看,這個驗證碼确實略顯簡陋。
但是在計算機技術還不發達的年代,這樣的驗證碼,已經足以識别出人類:
-
隻有人類,才能識别出驗證碼中被嚴重扭曲的字母或者數字;
-
而計算機,則無法識别。
基于這樣的驗證碼,各種計算機系統(例如:網站、郵箱等)成功識别到真正的人類後,允許人類繼續操作,比如:登錄郵箱、投票等。
03
為“保護”而生的驗證碼
當各種計算機系統無法識别人類和計算機時,計算機技術也能給人類帶來麻煩,例如:
-
郵箱的泛濫注冊,導緻垃圾郵件滿天飛;
-
投票的野蠻刷票,導緻投票結果不公正;
-
車票的插件搶占,導緻返鄉車票買不到。
1999年一個網站發起的在線投票,推選全美計算機科學專業最好的學校時,按理來說是一個人投一張票。但是投票網站在設計的時候,沒有考慮太多,隻以投票者所在計算機的IP地址作為判斷依據。
于是有人編寫了計算機腳本進行批量刷票:每次投票完後更改一個IP地址,然後繼續投票。這樣的話,有成千上萬個IP地址就代表了成千上萬個不同的人,就可以投成千上萬票。
這樣的計算機技術,無疑是影響到了整個投票的公平性。
所以說,各種計算機系統,需要一個堅固的“盾”來保護自己。
實際上,第一種驗證碼(字符型)的出現,就是為了對抗“自動刷票”這種計算機技術的。
04
越來越堅固的“盾”
那麼你知道都有哪些千奇百怪的“驗證碼”嗎?
01
字符型
字符型驗證碼,是我們日常最經常見到的驗證碼。通常是一些字母、數字的組合,而且為了增加識别的難度,這些字符經常會被變形、被扭曲、被翻轉。
随着計算機技術的發展,字符型驗證碼的安全程度在降低,逐漸被其他類型驗證碼替代。
02
計算型
計算型驗證碼,通常是一些數學公式,需要人類發動聰明的大腦進行複雜的運算,才能得出正确的結果。
很遺憾,這種可以提供較高安全性的驗證碼,雖然計算機很難識别,但是大部分人類自己也覺得很難。所以計算型驗證碼,并沒有廣泛應用過。
03
點擊型
點擊型驗證碼的最大特點是:使用者隻需要通過鼠标進行點擊,不需要輸入任何東西。通過這種人類專屬的行為動作,以及使用者在浏覽器中的一些操作數據、浏覽數據等,共同識别出真正的人類。
點擊型驗證碼的安全性較高,而且用戶體驗較好。
在一些重要的計算機系統,例如:動車售票網站、大型購物網站、大型視頻網站等用戶量較大、數據安全要求高的地方,采用點擊型驗證碼,可以有效識别人類,避免其他計算機的攻擊。
04
滑動型
滑動型驗證碼通過收集使用者的動作,判斷是否為人類。例如:人類拖動滑塊的軌迹會是一個先快後慢的過程:先快速拖動,後慢慢對齊,再瞬間釋放。
這種驗證碼的用戶體驗較好,雖然被計算機技術突破的成功率也有60%以上,但是計算機技術模拟人類行為的成本較大,得不償失。
05
短信型
短信型驗證碼,是最常用的一種方式。各種APP一般會采用這種方式,簡單直接,通過運營商來發送短信,安全上有保障。
每個驗證碼與手機号碼相對應而且一般有效期僅為60秒~90秒,不留其他人鑽空子的機會。
06
掃碼型
掃碼型驗證碼,實際上就是首先确保在手機上已經成功登錄,然後通過掃描二維碼的方式在PC上繼續登錄。這是如今各大視頻網站、購物網站的常用方法。
讓人類自己去驗證人類自己,嘿,這方法真棒。
07
生物特征型
各種人臉識别、指紋識别、聲紋識别甚至虹膜識别,都可以算作是生物特征型驗證碼。使用起來更加簡單,而且因為這些生物特征在每個人類中的獨特性,猶如一把專屬鑰匙,具備較高的安全性。
05
越來越鋒利的“矛”
雖然“盾”很堅固,但是随着計算機技術的不斷進步,鋒利的“矛”也層出不窮。
為了突破驗證碼的保護,發展出了以下的計算機技術:
01
OCR技術
OCR (Optical Character Recognition,光學字符識别)技術,可以将圖片、照片上的文字内容,直接轉換為可編輯的文本。
2003年有人通過圖像識别算法(Shape Context)對簡單字符型的驗證碼進行自動化識别,可以達到93%的成功率。
OCR技術僅能攻破一些簡單的字符型驗證碼,稍微複雜一些(比如扭曲、翻轉)的字符,就需要花費更多時間,一般無法在字符型驗證失效前識别成功。
02
機器學習模型
2005年有人利用機器學習模型(CNN)對單個字符的驗證碼進行自動化識别,計算機的識别成功率竟然還比人類的成功率還高。
然而,要想使用機器學習模型來識别字符型驗證碼,需要先準備好多台高性能計算機和大量的訓練數據,因此模型識别的成本太高,一般人用不起。
03
僞裝的手機基站
要想破解短信型驗證碼,僞裝的手機基站需要首先屏蔽目标手機的信号,然後以這個手機号碼去嘗試登錄網站,還要能夠僞裝目标手機去接收短信。
各個環節都要在短時間内完成,簡直就是Mission Impossible,而且每一步都是違法違規,破解成本高到天際了。
04
終極的“僞裝”
“能打敗人類的,終将是人類自己”!
當人類擁有走出宇宙文明的計算機技術時,是否可以通過克隆出一個人類,讓這個複制出來的人類去破解各種各樣的驗證碼,豈不是手到擒來?!
當然,這僅僅是小編的一丢丢幻想,可能會在科幻片裡看到,各位粉絲不要當真哦!
好的,今天的内容就是這些啦,和小編一起回顧一下吧:
-
“圖靈測試”是為了分辨出誰才是計算機;
-
“驗證碼”是為了分辨出誰才是人類;
-
千奇百怪的“驗證碼”保護着各種計算機系統;
-
層出不窮的“計算機技術”不斷提高自己僞裝成人類的能力。
作為“盾”,驗證碼如何才能更安全、更易用?
作為“矛”,計算機技術如何才能突破驗證碼的嚴防死守?
這些問題,都需要交給聰明的人類、更加智能的計算機技術去解答。
可以預見,作為“人類與計算機的角鬥場”的驗證碼,将迎來更多的攻防機會,同時也會給我們的社會帶來更多的改變,讓我們拭目以待!
轉載内容僅代表作者觀點
不代表中科院物理所立場
來源:中興文檔
編輯:Garrett
,