验证码

用于区分人类行为和机器行为的测试方式
(重定向自CAPTCHA

全自动区分计算机和人类的图灵测试(英語:Completely Automated Public Turing test to tell Computers and Humans Apart,簡稱CAPTCHA),又称验证码確認碼,是一种区分用户是機器人類的公共全自动程序。在CAPTCHA测试中,作为服务器的计算机会自动生成一个问题由用户来解答。这个问题可以由计算机生成并评判,但是必须只有人类才能解答。由于機器无法解答CAPTCHA的问题,回答出问题的用户即可視為人类。

早期的Captcha验证码 "smwm" ,由EZ-Gimpy程序产生,使用扭曲的字母和背景颜色梯度
一种更现代的CAPTCHA,其不使用扭曲的背景及字母,而是增加一条曲线来使得图像分割(segmentation)更困难。
另一种增加图像分割难度的方法为将符号彼此拥挤在一起,但其也使得真人用户比较难以识别
要求用户识别图片的验证方式,本图为模拟12306网站的验证界面

簡介

CAPTCHA这个词最早是在2002年由卡内基梅隆大学路易斯·馮·安、Manuel Blum、Nicholas J.Hopper以及IBM的John Langford所提出。卡内基梅隆大学曾试图申請此詞使其成为注册商标[1], 但该申请于2008年4月21日被拒绝[2]。一种常用的CAPTCHA测试是让用户输入一个扭曲变形的图片上所显示的文字或数字,扭曲變形是為了避免被光學字元識別之類的電腦程式自動辨識出圖片上的文數字而失去效果。由于这个测试是由计算机来考人类,而不是标准图灵测试中那样由人类来考计算机,人们有时称CAPTCHA是一种反向图灵测试。

為了無法看到圖像的身心障礙者,替代的方法是改用語音讀出文數字,為了防止語音辨識分析聲音,聲音的內容會有雜音或仍可以被人类接受的变声

根據CAPTCHA測試的定義,產生驗證碼圖片的算法必須公開,即使該算法可能有專利保護。這樣做是證明想破解就需要解決一個不同的人工智能難題,而非僅靠發現原來的(秘密)算法,而後者可以用逆向工程等途徑得到。

運用

CAPTCHA技術廣泛用於網站的留言板以及註冊帳號。許多網站為了防止有人利用電腦程式大量在留言板上張貼廣告或其他垃圾訊息,因此會放置CAPTCHA要求留言者必需輸入图片上所显示的文数字或是算術題才可完成留言。而一些網路上的交易系統(例如:訂票系統、網路銀行)為了避免被電腦程式以暴力破解大量嘗試交易也會有CAPTCHA的機制。

相關的技術有:

  • reCAPTCHA:是利用CAPTCHA技術來幫助典籍數位化的進行。
  • SolveMedia,captcha.tw[3] :等廣告聯播網利用驗證碼展示廣告。

破解

一些曾经或者正在使用中的验证码系统已被破解。这包括Yahoo验证码的一个早期版本 EZ-Gimpy[4]、PayPal[5]、LiveJournal和phpBB使用的验证码、很多金融机构(主要是银行)使用的网银验证码[6]以及很多其他网站使用的验证码[7][8][9]

俄罗斯的一个黑客组织使用一个自动识别软件在2006年破解了Yahoo的CAPTCHA。准确率大概是15%,但是攻击者可以每天尝试10万次,相对来说成本很低。[10]而在2008年,Google的CAPTCHA也被俄罗斯黑客所破解。攻击者使用两台不同的电脑来调整破解进程,可能是用第二台电脑学习第一台对CAPTCHA的破解,或者是对成效进行监视[11]

也有一种类似分布式的人工识别方法,多用于在自动化运行程序防止被反自动化机制拦截,如游戏自动外挂等,就是通过将需要验证的图片等数据转发到有人值勤的终端,由其他人类代为识别回答后再把答案转发回验证发送端回答。[12][13]Gmail郵箱註冊驗證系統的破解可能即是經由此方法[14]。已经有专门的公司提供专门的人员识别服务。[15]

也有一些使用新算法和AI结合的方式用于破解。[16]

参考文献

  1. ^ Computer Literacy Tests: Are You Human?. 時代雜誌. [2008-06-12]. (原始内容存档于2009-04-30). The Carnegie Mellon team came back with the CAPTCHA. (It stands for "completely automated public Turing test to tell computers and humans apart"; no, the acronym doesn't really fit.) The point of the CAPTCHA is that reading those swirly letters is something that computers aren't very good at. 
  2. ^ Latest Status of CAPTCHA Trademark Application. USPTO. 2008-04-21 [2008-12-21]. (原始内容存档于2012-04-23). 
  3. ^ 歡樂驗證碼. captcha.tw. (原始内容存档于2013-10-14). 
  4. ^ Greg, Mori,; Malik, Jitendra英语Jitendra Malik. Breaking a Visual CAPTCHA. Simon Fraser University. [2008-12-21]. (原始内容存档于2019-03-23). 
  5. ^ Kluever, Kurt. Breaking the PayPal CAPTCHA. Kloover.com. 2008-05-12 [2008-12-21]. (原始内容存档于2018-07-12). 
  6. ^ Li, Shujun; Syed Amier Haider Shah, Muhammad Asad Usman Khan, Syed Ali Khayam, Ahmad-Reza Sadeghi and Roland Schmitz. Breaking e-Banking CAPTCHAs. Proceedings of 26th Annual Computer Security Applications Conference (ACSAC 2010). New York, NY, USA: ACM: 171–180. 2010 [2012-05-20]. doi:10.1145/1920261.1920288. (原始内容存档于2016-03-13). 
  7. ^ Kluever, Kurt. Breaking ASP Security Image Generator. Kloover.com. 2008-02-28 [2008-12-21]. (原始内容存档于2017-12-21). 
  8. ^ Hocevar, Sam. PWNtcha - captcha decoder. Sam.zoy.org. [2008-12-21]. (原始内容存档于2005-09-11). 
  9. ^ Sergei, Kruglov. Defeating of some weak CAPTCHAs. Captcha.ru. [2008-12-21]. (原始内容存档于2021-04-17). 
  10. ^ Yahoo! CAPTCHA Cracked.. 0x000000 - THE HACKER WEBZINE. 2006 [2008-02-27]. (原始内容存档于2013-07-19). 
  11. ^ Google's CAPTCHA busted in recent spammer tactics. Websense Security Labs. 2008-02-22 [2008-02-27]. (原始内容存档于2008-02-28). 
  12. ^ 解析验证码人工破解内幕!什么是打码任务页面存档备份,存于互联网档案馆) 打码任务(captcha human bypass project)
  13. ^ 关于打码内幕 互联网档案馆存檔,存档日期2016-03-05.
  14. ^ [1]页面存档备份,存于互联网档案馆) Brad Taylor稱垃圾信息發送者採用了原始的"人肉破解",即花錢僱傭了大量來自第三世界的廉價勞動者,讓他們逐個對進行 CAPTCHA系統進行人手破解。
  15. ^ 验证码识别和代答题远程人工打码/软件识别云平台-知码网. (原始内容存档于2016-03-04). 
  16. ^ Ye Wang, etc. An optimized system to solve text-based CAPTCHA页面存档备份,存于互联网档案馆)[Ye Wang, etc. An optimized system to solve text-based CAPTCHA]