2024年是時候拋棄驗證碼了
![](/Uploads/Article/202405/10/663daf4c72c1d.png)
驗證碼和印表機是一回事
前幾天,我在線上辦理了一些拖延已久的事務。其中之一是取消不再需要的新聞訂閱。這是那天的最後一個任務,我只剩下5分鐘來完成它。我用郵件中提供的連結前往公司網站。
要取消訂閱,我需要登入帳戶並勾選一個複選框以停用電子郵件訂閱。理論上這是一個五分鐘就能完成的完美任務。
但在登入頁面,一個驗證碼迎面而來,用來驗證我是人類。因為我很急,所以我快速點擊所有顯示人行道的照片。不幸的是,我漏掉了一個。於是我開始快速點擊照片,以便在去牙醫的約定之前完成這最後一個任務。
令我驚訝的是,越來越多的照片出現,儘管我不斷點擊人行道,我還是無法通過驗證。五分鐘過去了,我只好放棄。
這幾乎就像印表機一樣,驗證碼似乎能感覺到你很急迫的時候。
驗證碼的誕生與發展歷程頗具戲劇性
在電腦科學領域,人類基礎計算(Human-based Computation, HBC)與社群媒體是主要研究領域之一。驗證碼(CAPTCHA)就是HBC的一個實際應用,最初的概念是令人興奮的。根據維基百科的描述,HBC是一種電腦科學技術,它透過將某些步驟外包給人類來執行機器的功能,通常以微工作(microwork)的形式。
驗證碼的誕生很快就成為HBC的實際應用之一。從一方面來看,人們在照片上分類物品,這對於訓練AI執行相同任務非常有用。
另一方面,驗證碼也提供了一定程度的安全保護。因為當時人們認為機器人無法解決驗證碼問題。因此,在1997年,當Eran Reshef, Gili Raanan和Eilon Solan申請了驗證碼的專利時,這項技術被認為對所有人都有益處。這個想法非常棒,原始作者發明它是一個偉大的創舉。
但14年後的今天,我們可以看到驗證碼的發展方向已經改變了。現在,驗證碼不僅僅是安全措施,它的應用場景和技術實作都有了很大的進展和變化。儘管驗證碼最初是為了提高線上服務的安全性而設計,但隨著時間的推移,其複雜性增加,常常給用戶帶來不便,這也引發了對驗證碼未來發展方向的重新思考和討論。
因為驗證碼(CAPTCHA),每年大約有77600個家庭無法在美國建造自己的家。
這個數字來自一個驚人的計算:2021年,人類每天在解決驗證碼上浪費了500年的時間,相當於每年182,000年。如果把這個時間轉換成金錢,以平均美國收入計算,大約相當於320億美元。
這筆資金足以每年為77,600個家庭在美國建造房屋。這顯示了驗證碼在時間和金錢上的巨大浪費。這些數字可能因為不同的假設和平均值有所變動,但事實是,人類在驗證碼上的時間消耗是巨大的。雖然對於個人而言,解決一個驗證碼可能只需幾秒鐘到五分鐘,但累積起來的總時間是非常可觀的。
驗證碼已經不再有效地區分人類和機器人了
在2021年,尼古拉·潘科夫(Nikolay Pankov)寫了一篇文章,概括了驗證碼的問題,他指出:「CAPTCHA不再可靠地防止入侵者,並且它們讓真實用戶感到煩惱。總之,可能是時候放棄這種過時的機制了。
驗證碼的本意是保護線上資源不受機器人和不良行為者的侵害,目的是限制資源的使用。如果機器人造訪一個頁面,它會佔用寶貴的傳輸頻寬,而這是公司需要支付的。因此,我們不希望機器人造訪我們的網站。
不僅如此,驗證碼也無法防止DDoS攻擊,這種攻擊可能導致人們失去大量儲蓄。但我們知道,幾年來,驗證碼並沒有解決這個問題。機器人可以輕鬆解決驗證碼,無論是透過AI還是人工支援。此外,有些機器人甚至將解決驗證碼的任務外包給其他人。
例如,一個機器人想在一個網站上發表帶有連結的評論,但該網站要求它解決驗證碼。於是,機器人就將同樣的謎題展示給由駭客操作的一個中等實用的應用程式或網站的訪客。因此,駭客很快就利用HBC來解決HBC問題。
總的來說,驗證碼不再提供任何保護。它已經不能長時間地區分訪客是人還是機器人。
驗證碼歧視人類
有眾多報道稱驗證碼對某些人群有歧視。例如,盲人在解決音訊驗證碼時會遇到困難(如果這種驗證碼存在的話)。這其實並不是什麼新問題,我們早在2019年前就已經知道了。
驗證碼也可能基於國籍、種族、地理位置等因素歧視人群,這是一個鮮為人知的事實。例如,當你需要指出哪些圖片是計程車時,如果圖片中的計程車來自另一個國家,你可能會感到困難。
特倫斯·伊登(Terence Eden)在2017年這樣總結:
猜猜看,Google?在我的國家,計程車通常是黑色的。我看過足夠多的電影,知道美國的計程車都是黃色的。但在我訪問過的每一個其他國家,計程車都是五顏六色的混合體。
儘管有其缺陷,驗證碼仍被廣泛使用,這是為什麼?
公司使用驗證碼完全是為了自身利益。
這一切都歸結於金錢。驗證碼最初是作為一種基於人類的計算手段被發明出來,用以解決一個真實的問題(區分人類和機器人)。
儘管它在核心功能上失敗了,但它仍被用於基於人類的計算。
你看,AI模型並不知道人行道長什麼樣子。公司必須向AI提供大量的照片和描述…
透過數百萬次的重複,AI最終能夠區分人行道和貓。
為了做到這一點,建構AI模型的公司必須收集大量的分類資料來訓練這些AI模型。
總結一下:
- 驗證碼沒有解決問題(區分人類和機器人)
- 驗證碼對人類的成本極大(每年77600戶家庭)
- 只有提供驗證碼解決方案的公司從中受益
因此,2024年一個非常有意義的問題是,驗證碼是否應該繼續使用。