萬盛學電腦網

 萬盛學電腦網 >> 網頁制作 >> 交互設計 >> 驗證碼的現在與未來

驗證碼的現在與未來

驗證碼的現在與未來 三聯教程

  一則有關驗證碼的笑話

  什麼是驗證碼

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

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

  驗證碼是否真的保護了計算機系統

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

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

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

  Decaptcha 能夠成功識別 66% Visa 支付網站 Authorize.net 上的驗證碼圖片,並可以順利攻陷暴雪娛樂網站上 70% 的驗證碼。而維基百科有四分之一的驗證碼可以辨識,在 CNET 以及 Digg.com 上這個數字降低到了五分之一。百度的驗證碼雖然僅有 5% 的辨識率,但是在測試過程中同樣的驗證碼出現的頻率竟高達 98% ,非常容易被攻擊者用窮舉法攻破。來自斯坦福的這個研究團隊隨後指出,任何可辨識率超過 1% 的驗證碼系統都不應該被繼續使用下去。

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

image

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

  如今的驗證碼

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

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

image

  新浪微博所使用的中文驗證碼范例——似乎沒有考慮到國際化的情形:

image

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

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

  展望驗證碼的未來

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

image

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

Dice Captcha

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

  要求用戶繪制圖形的驗證碼:

tumblr_lm8a5ecuS31qzrula

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

image

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

XH8DY

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

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

  總結

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

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

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

  文章來源:愛范兒

copyright © 萬盛學電腦網 all rights reserved