我不是機器人?為什麼到處都要勾選這個玩意?
相信各位在瀏覽網站的時候一定遇過下面這種情形:
正如圖片右方所顯示的,這是被稱作reCAPTCHA的驗證系統,其用處是來區分使用者是真人還是機器人。
reCAPTCHA?使用它有什麼好處?
在談到reCAPTCHA之前,必須先來說說何為CAPTCHA,所謂的CAPTCHA便是俗稱的驗證碼,由卡內基梅隆大學的Manuel Blum、Nicholas J.Hopper以及IBM的John Langford所提出,最開始的做法是透過人眼能辨別,但機器無法判斷的文字來進行活人與機器人的判別,並以此來防止憑證填充攻擊等暴力破解的手法。
除了防止駭客攻擊外,CAPTCHA也被用於幫助典籍數位化的進行,例如有些年代久遠的報章雜誌因為解析度之類的原因而讓人難以辨識,這時候便可以讓廣大的使用者透過CAPTCHA的技術在驗證活人的同時取得大量人工辨識的資料,這也就是reCAPTCHA這系統被人創作出來的目的。實際上reCAPTCHA演變至今已有三種版本了,以下請讓小編娓娓道來。
reCAPTHA的發展
reCAPTCHA v1:
上方這張圖片想必喚起不少人不好的回憶,這便是讓許多人覺得麻煩的reCAPTCHA v1,這一版本的驗證方式為其中一組是已知答案的驗證碼,而另外一組則是從難以辨認的文字檔中抽取,當用戶輸入正確的驗證碼後,系統會假設另一組文字檔也是輸入正確的,隨後便會將這資料傳回資料庫,然後與其它用戶輸入的內容進行交差比對以確保該文字檔的正確性,如此便可做到辨認活人與數位化書籍的工作能同時進行,此外Google也於2009年買下了reCAPTCHA的技術來幫助照片的辨識,這也是為何後期會有輸入門牌數字的原因。
然而科技日新月異,機器人辨識技術也隨著時間逐漸進化,為了對抗辨識率越來越高的機器人,reCAPTCHA的驗證碼也日益扭曲,但最終還是不敵有99.8%正確率的辨別技術,反而還影響了用戶的體驗,也因此有了下面版本的誕生。
reCAPTCHA v2:
為了能夠辨認活人與機器的區別,又要保有良好的用戶體驗,Google於2014年年底推出了「No CAPTCHA reCAPTCHA」的技術,也就是僅需要勾選「我不是機器人」的選項後便可進行判別的機制。至於為何僅需要打個勾就能進行驗證呢?推測是在打了勾後會根據打勾前滑鼠的移動軌跡以網路流量等資訊傳回系統來進行活人的判別。不過當系統無法判斷的時候還是得採用古老的做法了,這也是為何有時候明明勾選了選項後卻還是會跳出要求選擇各類情境圖或輸入驗證碼的原因。
reCAPTCHA v3:
隨著Google技術持續的突破,在去年也釋出了全新的版本,這一版本的驗證方式是透過使用者在網站的各種操作來計算分數並進行判斷,例如1.0分是可靠的用戶;而低於0.5分的則可能是機器人。與過去兩個版本不同,第三版的驗證是完全不影響用戶的,而是藉由放置於網站各個位置的reCAPTCHA v3去進行風險分析,並且網站管理者可透過分析後的結果去選擇該如何去設置分數閾值的判定及處理方式。由於臨時的網站與剛架設好的網站所分析的結果可能與真正的結果不同,因此Google建議可以先不採取動作,等流量的分析確定了以後再決定判定的閾值。此外為了能夠更精準的判定,Googel也建議最好能夠在網站的各個重要的部份去設置reCAPTCHA v3。
結語
以上便是reCAPTCHA的演變史,希望各位在看了這篇文章後能夠了解在各個地方充滿存在感的reCAPTCHA究竟是何物,而它又替我們做了什麼事情。至於眼尖的讀者肯定有注意到文中出現的專有名詞「憑證填充攻擊」,它究竟是什麼,又會有什麼危害,就等小編下次再為各位解答吧!