請證明你是人:驗證碼輸入的遊戲化

請證明你是人:驗證碼輸入的遊戲化
請證明你是人:驗證碼輸入的遊戲化

去國外網站逛過的人幾乎應該都知道CAPTCHA—讓你輸入那些亂七八糟的驗證碼以便證明你是個人。

CAPTCHA的意思是完全自動的公共圖靈測試以分辨計算機和人(Completely Automated Public Turing test to tell Computers and Humans Apart)。

獲得spammer青睞的網站(論壇、社交網絡和評論)常常會使用CAPTCHA,在一個混亂的背景下提供一個難以辨認的單詞讓你指認。這些亂七八糟的驗證碼不僅影響了網站的人氣(誰都試過屢次辨認字符未果吧?),而且據安全研究機構Imperva的發現,這種方式也難不倒那些spammer。於是CAPTCHA的一些創辦者開始琢磨對付spammer的新辦法,同時還試圖為正常人添點樂子,那就是驗證碼輸入的遊戲化。

Imperva在一份研究報告中指出,黑客已經想出了若干辦法來擊敗CAPTCHA系統。

辦法之一是用“模式識別算法”在無需人類幫助的情況下破解CAPTCHA。此類程序有“PWNtcha”和“CAPTCHA Sniper”,目前已能破解60多種CAPTCHA程序。

不過spammer也會僱人專門來為其辨認各種的CAPTCHA(不就是多費點功夫嘛)。辨認CAPTCHA驗證碼現在都已經發展成一項業務了。這些黑客“僱員”收入的高低取決於辨認CAPTCHA的速度和精度(如每辨認1000個驗證碼支付1-3美元)。也有些精明的黑客不想給錢,他們的解決之道是用一張XXX圖片來刺激你辨認驗證碼(下圖)。

被擋住的地方只要你輸入正確的驗證碼就能去掉,這招真夠絕的
被擋住的地方只要你輸入正確的驗證碼就能去掉,這招真夠絕的

這種依靠人力的CAPTCHA破解服務給Web安全帶來威脅,並對整個CAPTCHA的概念帶來挑戰。不過現在已經有一些富於創意的公司出來迎接挑戰。

組合一張人臉對於人來說易於反掌,但機器就難了。
組合一張人臉對於人來說易於反掌,但機器就難了。

其中一種方式是遊戲化。這種方式不僅更加人性化,而 ​​且會給計算機造成更大的挑戰。此前我們曾報導過一家名為Are You a Human的公司,設計出遊戲化的手段來進行驗證。類似地,報告裡面也提到一家公司創建的CAPTCHA會讓你把各種面部特徵(如眼睛、鼻子、耳朵等)組合成一張臉(見上圖的上)。還有一種做法是提供一組圖片給你,每張圖片都分配有一個字母,然後CAPTCHA要求你按照特定的次序輸入給定圖片相應的字母。不過最終這種手段還是無法阻止靠人力進行的CAPTCHA破解服務,水軍隊伍這麼龐大,總會有人樂於玩玩這些遊戲來賺錢或者換點XXX圖片的,CAPTCHA的這個噩夢似乎是無法擺脫的了。

人類對圖像的識別技術比機器高超多了
人類對圖像的識別技術比機器高超多了

Imperva因此在報告中建議把CAPTCHA作為一種輔助的驗證手段,只有在用戶出現異常行為時才使用。報告建議根據活動來識別用戶是否屬於人類,這樣不僅有效而且也不會對人造成太大的干擾。

報告最後總結:

1)CAPTCHA並非對付自動化驗證碼辨認的銀彈

2)CAPTCHA應該輔以其他的反自動化辨認手段

3)CAPTCHA安全應該權衡一下用戶體驗

報告全文可到此處下載