How CAPTCHAs work | What does CAPTCHA mean?

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

學習目標

閱讀本文後,您將能夠:

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

複製文章連結

何謂 CAPTCHA?

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

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

CAPTCHA 如何運作?

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

captcha 範例

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

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

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

何謂 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 挑戰。

什麼因素觸發 CAPTCHA 測試?

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

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

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

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

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

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

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

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

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

Bot management solutions such as Cloudflare Bot Management or Super Bot Fight Mode can identify bad bots without impacting the user experience, based on the behavior of the bot. This way, bots can be mitigated without forcing users to complete CAPTCHAs.

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

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

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

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

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

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

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

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