什么是驗證碼?
CAPTCHA 是一種挑戰-響應測試,作為網站、搜索引擎和 Web 應用程序的身份驗證機制,以確保用戶(有或沒有基于密碼的憑據)是人類,而不是試圖擠滿系統并導致網絡攻擊。
今天,訪問 Internet 的海量信息已成為所有用戶的必需。互聯網服務包括免費電子郵件帳戶創建、在線投票、在線支付、電子轉賬和其他數字社交和商業活動。
此外,這些站點經常受到機器人程序的攻擊,機器人程序是自動計算機程序。為了解決這個問題,創建了區分計算機和人類的全自動公共圖靈測試(通常縮寫為 CAPTCHA)以區分機器人和人類。
術語“圖靈測試”是驗證碼的核心。圖靈測試評估計算機模擬人類行為的能力。1950 年,計算和人工智能 (AI)的早期先驅 Alan Turing創建了圖靈測試。如果計算機程序在整個測試過程中的行為無法與人的行為區分開來,即如果它的行為與人類相同,則該計算機程序“通過”了圖靈測試。圖靈測試不是基于正確回答問題;相反,它關心的是反應看起來有多“人性化”,而不管它們是否準確。
有趣的是,雖然它被稱為“公共圖靈測試”,但驗證碼實際上是圖靈測試的逆過程。它識別據稱的人類操作員是否是計算機程序(機器人),而不是試圖確定計算機是否是人類。現在讓我們探索這種廣泛使用的唯一安全方法背后的基本原理。
理解驗證碼的含義
CAPTCHA 是一種防止機器人訪問在線服務的安全措施。它們的功能是為用戶提供解釋信息。傳統的驗證碼由扭曲或重疊的數字和字母組成,用戶必須將這些數字和字母輸入到表格或框中。字母失真使機器人無法理解文本,從而阻止訪問,直到字母和數字得到驗證。
這種類型的驗證碼側重于個人根據不同的先前經驗概括和檢測不熟悉模式的能力。相比之下,機器人通常只能遵循預先確定的模式或輸入隨機字符。此限制降低了機器人準確預測正確組合的可能性。
自從引入 CAPTCHA 以來,惡意玩家開發了基于學習的機器人(類似于機器人過程自動化或 RPA 中使用的機器人) 。使用經過模式識別訓練的算法,機器人可以識別傳統的驗證碼。作為這一進步的結果,現代驗證碼技術基于越來越復雜的測試。例如,reCAPTCHA 要求用戶點擊屏幕的特定區域并等待超時。
reCAPTCHA 是比標準 CAPTCHA 驗證更高級的 CAPTCHA 驗證。一些 reCAPTCHA,類似于 CAPTCHA,要求用戶提交難以理解的文本圖像。reCAPTCHA 與標準 CAPTCHA 不同,它從現實世界的材料中獲取內容,例如街道地址的照片、印刷書籍中的文字等。
卡內基梅隆大學的研究人員開發了 reCAPTCHA 技術,谷歌于 2009 年收購了該技術。
驗證碼的演變
1997 年,搜索引擎 Alta-Vista 尋求一種技術來防止自動統一資源定位器 (URL)輸入到其搜索引擎。這是第一次使用類似 CAPTCHA 的東西。
Alta Vista 的首席科學家安德烈·布羅德 (Andrei Broder) 開發了一個系統,可以隨機生成一張文字圖片,這是驗證碼方法的第一個例子。計算機無法識別它,但人們可以相對輕松地讀取并將其寫入文本字段。此后,大多數在線服務提供商都采用了這種創新技術。
2000 年,卡內基梅隆大學的專家進一步開發了該算法,并將由此產生的技術命名為 CAPTCHA。2001 年 4 月,Andrei Broder 和他的同事獲得了一項專利。從那時起,該領域一直在進行持續而深入的努力,但仍然需要新技術或對現有技術進行改進。
驗證碼的應用
所有希望防止自動訪問的網站都使用驗證碼。CAPTCHA 的一些常見插圖包括:
保護在線民意調查:通過驗證每張選票是否由個人投票,CAPTCHA 有助于防止民意調查出現偏差。雖然這不會限制投票總數,但會增加每次投票所需的時間,從而阻止重復投票。
將注冊限制為真實用戶:服務可以使用驗證碼來防止機器人淹沒注冊系統并生成虛假帳戶。限制帳戶的創建可以避免服務資源的浪費并降低欺詐風險。
保護基于需求的定價系統:使用驗證碼,票務系統可能會禁止黃牛獲取大量的通行證或門票進行轉售,從而導致價格上漲。它還可以用于防止欺詐性事件注冊。
驗證評論:CAPTCHA 可以防止機器人充斥互聯網論壇、反饋表和評論站點。CAPTCHA 所需的附加元素還可以通過給此類網絡威脅參與者帶來不便來幫助遏制在線濫用。
驗證碼的缺點
使用 CAPTCHA 時還應考慮一些陷阱。首先,CAPTCHA 評估可能會阻止用戶嘗試執行的操作,給他們留下對他們在在線域中的交互的不良印象,并且在某些情況下,迫使他們完全離開網頁。
大多數驗證碼對視障用戶不可用,因為它們需要視覺處理。這使得它們對于有視力障礙的人和任何視力嚴重受損的人來說幾乎是不可能的。但是有一些解決方法,我們稍后會討論。最后,CAPTCHA 并非萬無一失,由于一些固有的安全漏洞,不應依賴它來提供全面的機器人保護。