close

”驗證碼“( CAPTCHA )其實並不是各位網友總是在不同網站上看到的難以辨認的字母組合的代名詞,而是“全自動區分電腦和人類的圖靈測試”的俗稱,顧名思義,它的作用是區分電腦和人類。

在 CAPTCHA 測試中,作為伺服器的電腦會自動生成一個問題由用戶來解答。這個問題可以由電腦生成並評判,但是必須只有人類才能解答。由於電腦無法解答 CAPTCHA 的問題,所以回答出問題的用戶就可以被認為是人類。 CAPTCHA 是由電腦來考人類,而不是標準圖靈測試中那樣由人類來考電腦,因此人們有時稱 CAPTCHA 是一種反向圖靈測試。

驗證碼是否真的保護了電腦系統

一隊來自斯坦福大學的研究人員指出很多驗證碼完全沒有發揮應有的作用。這些研究人員甚至設計了一個通用程式,這個程式能夠以極高的成功率識別出許多網站上的驗證碼,包括 Visa 旗下網站 Authorize.net ,暴雪官方網站, eBay ,以及維琪百科。

這種識別技術用到了機器人視覺領域的一種概念模型,它有助於機器人不受圖像噪點的干擾正確識別物體的外形。斯坦福這個名為 Decaptcha 的工具使用上述指導思想編寫的演算法能夠將扭曲變形且充滿噪點的圖片分割成可以通過光學識別技術( OCR )辨別的字母和數位。

”大多數驗證碼投入使用之前都沒有經過必需的驗證,也缺少可靠性測試。“ 來自斯坦福大學安全實驗室的研究人員 Elie Bursztein 博士後說:”我希望我們的研究能夠讓人們更為慎重的對待驗證碼的設計和使用。“

Decaptcha 能夠成功識別 66% Visa 支付網站 Authorize.net 上的驗證碼圖片,並可以順利攻陷暴雪娛樂網站上 70% 的驗證碼。而維琪百科有四分之一的驗證碼可以辨識,在 CNET 以及 Digg.com 上這個數字降低到了五分之一。來自斯坦福的這個研究團隊隨後指出,任何可辨識率超過 1% 的驗證碼系統都不應該被繼續使用下去。

各大網站的驗證碼識別率:

各大網站的驗證碼識別率 

隨後暴雪發表聲明說,他們明確的知道驗證碼技術並不具有足夠高的安全性。”我們僅在初級安全層使用驗證碼技術抵擋一些特定的攻擊,比如註冊環節。我們使用一些更為安全可靠的技術來保護我們的客戶與骨幹伺服器。“來自暴雪的 Shon Damron 這麼說。

如今的驗證碼

驗證碼技術在目前的網路世界中仍然十分重要,它有助於阻止自動機器人批量註冊網路郵箱並發送垃圾郵件,還能防止留言板被自動程式填塞廣告,甚至使投票系統更能反映真實情況。

各大網站所使用的驗證碼範例:

各大網站所使用的驗證碼範例  

到目前為止,只有 Google 的驗證碼完全阻擋了 Decaptcha 的辨識, Google 在 2009 年從卡耐基梅隆大學收購的 ReCaptcha 項目也表現出了極其高的可靠性。目前 ReCaptcha 已經被廣泛地使用在了近 10 萬網站上,這些網站包括 Twitter 、Facebook、Craigslist、TicketMaster (一個出售各類演唱會、體育比賽、歌劇以及藝術展覽門票的網站)以及微軟( Microsoft )

Bursztein 希望開發者能夠更加系統的設計和使用驗證碼技術,他舉了一個例子: 20 世紀 80 年代人們通常埋頭設計的自己的電腦程式演算法,但隨著時間的推移,大家發現對等測試和專業安全性評估也是非常重要的。

展望驗證碼的未來

較早前有報導指出, Google 正在測試一種新的驗證碼技術,這種驗證碼技術不像傳統驗證碼系統要求輸入文字,而是要求使用者將圖形旋轉到正確的方向:

要求使用者將圖形旋轉到正確的方向 

另一種基於圖像的驗證碼:

另一種基於圖像的驗證碼 

類似的驗證碼還有要求用戶輸入當前時間,所訪問的網站功能變數名稱,自己所在的時區,甚至美國總統姓名,人類第一顆登陸的地外星球等。這類驗證碼主要考慮到通常自動電腦程式沒有足夠的邏輯思考能力,不能辨識並解答邏輯問題。拼圖驗證碼,找不同驗證碼(比如從幾張貓的圖片中找出一張狗的圖片)的驗證碼從本質上來說也非常類似,但目前沒有大規模部署這類驗證碼的主要原因是沒有足夠的資源,難以抵擋窮舉攻擊(攻擊者多次刷新驗證碼後可能出現相同的問題)。

要求使用者繪製圖形的驗證碼:

要求使用者繪製圖形的驗證碼 

要求用戶完成複雜算術題的驗證碼——顯然過於複雜而顯得不友好:

要求用戶完成複雜算術題的驗證碼 

驗證碼也帶來了更多的可能性,比如通過廣告盈利的機遇,下面這則驗證碼示範了利用驗證碼展示廣告:

利用驗證碼展示廣告 

但遺憾的是由於其同樣不具有規模性,仍受到窮舉攻擊的威脅。

這些未來的驗證碼技術同時還應該考慮到協助工具。假如用戶有視力障礙,他應該可以選擇通過聆聽驗證碼音訊的方式完成驗證,這也是基於字元的驗證碼技術遲遲未能被取代的主要原因之一。

驗證碼技術是一種電腦技術發展下的矛盾產物,人類渴望電腦能夠通過自動化的過程完成更多的任務,卻同樣要防止電腦被利用在破壞與惡意的用途當中。隨著人工智慧領域的研究成果越來越先進,電腦將變得越來越通情達理(想想 Siri ,想想 IBM 最新的超級智慧電腦 Watson)。

圖靈當年設計圖靈測試時,旨在推動人工智慧的發展,並從哲學與電腦科學的角度上論證製造類人類機器人的可行性,但他恐怕永遠也想像不到有一天,人類將如此迫切的需要一種技術來將自己與電腦系統嚴格地區分開來。

如果有一天,電腦能夠通過驗證碼驗證,我們又該如何區分人類和電腦呢?

 

原文:http://www.seohouse.org/?p=962



arrow
arrow
    文章標籤
    驗證碼
    全站熱搜

    w3design 發表在 痞客邦 留言(1) 人氣()