CAPTCHA 如何運作? | CAPTCHA 是什麼意思?

CAPTCHA 和 reCAPTCHA 決定使用者事實上是否傀儡程式。儘管這些測試有助阻止惡意傀儡程式的活動,卻絕對不是萬無一失。

學習目標

閱讀本文後,您將能夠:

  • 了解 CAPTCHA 以及使用它們的原因
  • 了解 CAPTCHA 和 Google reCAPTCHA 之間的差別,以及不同類型的 reCAPTCHA
  • 了解使用 CAPTCHA 封鎖惡意傀儡程式的效益和缺點
  • 說明 CAPTCHA 如何與人工智慧 (AI) 專案結合

相關內容


想要繼續瞭解嗎?

訂閱 TheNET,這是 Cloudflare 每月對網際網路上最流行見解的總結!

請參閱 Cloudflare 的隱私權政策,了解我們如何收集和處理您的個人資料。

複製文章連結

何謂 CAPTCHA?

CAPTCHA 測試旨在決定線上使用者是否真實人類,而不是傀儡程式。CAPTCHA 一字,是「全自動區分電腦和人類的公開圖靈測試」的縮寫。使用者常常會在網際網路上碰到 CAPTCHA 和 reCAPTCHA 測試。儘管兩個方法都有其缺點,但仍用於管理傀儡程式活動

儘管 CAPTCHA 旨在封鎖自動化傀儡程式,它們本身也是自動作業。其編程設計於網站特定位置彈出,且能自動判斷使用者的測試通過或失敗。

電子書
最大化安全性與效能的 5 種方法
報告
閱讀 2023 年第四季 DDoS 威脅情勢報告

CAPTCHA 如何運作?

今天部份 Web 資產仍應用傳統的 CAPTCHA 資產,當中的設計要求使用者辨識英文字母。字母經過扭曲,因此傀儡程式無法辨識它們。為通過測試,使用者必須解讀扭曲的文字、將正確的英文字母鍵入表格欄位,然後提交表格。若字母不符,將導引使用者重試。登入表格、帳戶註冊表格、線上投標和電子商務結帳頁常用這些測試。

captcha 範例

其理念在於:類似傀儡程式的電腦程式無法解讀扭曲的英文字母,而人類則因習慣閱讀和詮釋各類境況內的字母,例如:不同字體、寫字風格等,因此通常都能辨識它們。

許多傀儡程式頂多只能輸入一些隨機的英文字母,因此從統計學來看,它們不太可能通過測試。換句話說,傀儡程式無法通過測試,進而被封鎖,不能和網站或應用程式互動,而真實的人手則可正常存取網站。

進階傀儡程式使用機器學習,以辨識這些扭曲字母,因此這些類型的 CAPTCHA 測試已被更複雜的測試取代。Google reCAPTCHA 已發展出一系列其他測試,可從傀儡程式中辨別人類使用者。

DDoS 防護
使用任何 Cloudflare 方案均可獲得 DDoS 防護

何謂 reCAPTCHA?

reCAPTCHA 是 Google 提供的免費服務,以取代傳統的 CAPTCHA。此技術是由卡內基美隆大學 (Carnegie Mellon University) 的研究員發展而成,並由 Google 於 2009 年購入。

reCAPTCHA 比一般 CAPTCHA 測試更先進。如同 CAPTCHA,部份 reCAPTCHA 要求使用者輸入電腦難以破解的文字圖像;而有別於常見 CAPTCHA,reCAPTCHA 從真實世界的圖像中搜尋文字,例如:街道地址照片、發行書籍的文字、舊報紙文字等。

recaptcha 示例

推行一段日子後, Google 擴展 reCAPTCHA 測試的功能,以致不再依賴辨識模糊或扭曲文字的過時做法。其他類型的 reCAPTCHA 測試包括:

  • 圖像識別
  • 勾選方塊
  • 一般使用者行為評估 (無需與使用者互動)

圖像識別 reCAPTCHA 測試如何運作?

圖像辨識 reCAPTCHA 測試通常會向使用者顯示 9 或 16 個方型圖像。圖像的大小也許一樣,也有可能互不相同。使用者需辨識內含特定物件的圖像,例如:動物、樹木或路標。如果他們的回覆與大部份其他已提交相同測試的使用者相符,則將認定其回覆為「正確」,以及使用者通過測試。

圖像 recaptcha

從模糊照片中挑出特定物件,是電腦難以解決的問題。即使是先進的人工智慧 (AI) 程式,也對此一籌莫展,當然機器人也不在話下。然而,由於人類使用者早已習慣於不同境況和狀況中感知日常物件,因此,我們應能輕鬆做到這一點。

如何利用單一勾選方塊進行 reCAPTCHA 測試?

部份 reCAPTCHA 測試只導引使用者勾選聲明旁邊的方塊:「我不是機器人」。但是,測試本身並非實際上點選勾選方塊的動作,而是引進點擊勾選方塊的前置作業。

不是機器人 captcha

使用者的游標接近勾選方塊時,reCAPTCHA 測試會考量其移動模式。從微觀層面而言,即使是最直接的人為動作,還是會涉及一定程度的隨機作業,而這些細微、潛意識的動作,絕對不是傀儡程式能輕易模仿。若游標動作內含部份此等無法預測的移位,測試決定使用者也許是合法。此外,reCAPTCHA 也許同時評估使用者裝置上瀏覽器所儲存的 Cookie,以及裝置的歷史記錄,判斷使用者是否有可能是傀儡程式。

若測試仍無法決定使用者是否人類,它可能會提出進一步的挑戰,例如:上述的圖像辨識測試。然而,使用者游標動作、Cookie 和裝置歷史記錄,就足以作出定論。

reCAPTCHA 如何不與使用者互動,就能運作?

最新版的 reCAPTCHA 能全面檢視使用者行為,以及網際網路上與內容互動的歷史記錄。程式大部份時間能根據這些因素,決定使用者是不是傀儡程式,而無需使用者面對待完成的挑戰。如果無法辨別,則使用者將接受典型的 reCAPTCHA 挑戰。

Google 提供了一個名為 reCAPTCHA Enterprise 的按月付費服務,該服務使用基於分數的偵測系統來區分人類和機器人。reCAPTCHA Enterprise 與客戶後端和網頁互動,觸發一系列 JavaScript、HTML 和權杖驗證事件。然後,系統得出訪客的風險「分數」(從 0.0 到 1.0),網站開發人員根據分數確定應採取什麼動作。

分數越低,「訪客」就越有可能是機器人。reCAPTCHA Enterprise 得分為 0.0 表示互動可能是欺詐性的且存在高風險,而 1.0 則表示互動很可能合法且風險較低。

什麼因素觸發 CAPTCHA 測試?

部份 Web 資產只不過是自動部署 CAPTCHA,以積極進行傀儡程式防護。但若使用者行為與傀儡程式行為類似,例如:若使用者已超出平均速度查詢網頁或點選超連結,則將觸發測試。

CAPTCHA 和 reCAPTCHA 足以阻止惡意的傀儡程式嗎?

有些傀儡程式能自行通過文字 CAPTCHA。曾有研究員示範撰寫程式的方法,以破解圖像辨識 CAPTCHA 的程式。此外,攻擊者可使用點擊農場通過測試:也就是:數千位低薪作業員代替傀儡程式,解決 CAPTCHA 挑戰。

除了 CAPTCHA 外,企業需要備妥其他策略,以阻擋不必要的傀儡程式 (例如:內容剽竊傀儡程式憑證填充傀儡程式垃圾郵件傀儡程式)。

使用 CAPTCHA 或 reCAPTCHA 來阻擋傀儡程式有什麼缺點?

不良使用者體驗:CAPTCHA 測試可能會中斷使用者想要進行的作業,讓他們對 Web 資產產生負面觀感,某些情況下,更促使他們放棄存取網頁。

視障者無法使用:CAPTCHA 的問題在於:極度依賴視覺感知。因此,法定的失明者幾乎不可能用此方法,甚至是視力嚴重障礙者,也都無法操作。

這些測試也可能會被傀儡程式愚弄:如前述, CAPTCHA 無法全面阻擋傀儡程式,因此不應依賴它來實行傀儡程式管理作業。

可以用什麼方法來取代 CAPTCHA 或 reCAPTCHA 嗎?

類似 Cloudflare 機器人管理超級機器人抵禦模式的機器人管理解決方案,可在不影響使用者體驗的情況下,根據機器人的行為辨識惡意機器人。此舉有助於減輕機器人的破壞力,同時無需強迫使用者完成 CAPTCHA。

Cloudflare 也提供 Turnstile,這是 CAPTCHA 的隱形替代品,使用免費程式碼片段。Turnstile 可供任何人使用——不需要成為 Cloudflare 客戶即可使用。

CAPTCHA 和 reCAPTCHA 如何與人工智慧 (AI) 結合?

正當數百萬使用者辨識難以閱讀的文字,並在模糊的圖像中挑選物件,這些資料都被輸入至 AI 電腦程式中,同時不斷改善此等任務。

電腦程式通常難以辨識不同內容下的物件和英文字母,因為真實世界裡,內容幾乎可以無限制的改變。舉例來說:停車標誌是紅底,外加「停車」(STOP) 白字的八邊型。電腦程序也許可以輕易辨識形狀和文字組合。但是,照片裡的停車標誌可能因境況 (比方說:照片的角度、光線、當天天氣等等) 的關係,與單純的敘述截然不同。

AI 程式可透過機器學習,更能克服這些限制。以停車標誌為例,程式設計員可輸入大量資料,說明哪些是、以及哪些不是停車標誌。為達成此效果,他們需要大量圖像資料,指出停車標誌和非停車標誌,然後再用人類使用者辨識它們,直到程式擁有能達成效率的充足資料。

reCAPTCHA 有助迎合此需要:它要求人類辨識物件和文字,以緩慢的步伐提供足夠的資料,進而建立可靠的 AI 程式。

何謂圖靈 (Turing ) 測試?圖靈測試如何和 CAPTCHA 測試相關?

圖靈測試評估電腦模仿人類行為的能力。亞倫.圖靈 (Alan Turing) 是早期開創運算技術的先鋒,於 1950 年發明了圖靈測試的概念。若無法分辨電腦程式於測試時與人類迥異 (也就是程式的行動如同人類一般) 的表現,則認定程式「通過」圖靈測試。測試的進行並非基於取得正確答案,而是「人類」如何回覆,而無視回覆的正確與否。

儘管 CAPTCHA 被視為「公開圖靈測試」,它實際上與此測試相反:它決定假設的人類使用者是否實際上是電腦程式 (傀儡程式),而不是試著決定電腦是否人類。為達成此目的,CAPTCHA 需要向人們指派擅長達成的簡單任務,而此任務卻是電腦難以達成的。辨識文字和圖像通常符合此條件要求。