
注冊賬號、找回密碼、信息驗證……在互聯網世界免不了用到驗證碼。其中,滑動圖塊驗證碼只需要簡單一滑,就能完成驗證。這么簡單的滑動驗證碼,是怎么區分出人類和機器人的呢?
2023年的一項研究顯示,在破解各種類型驗證碼的速度和準確度上,機器人的表現幾乎都優于人類。最簡單的點擊識別,人類最快需要3.1秒,準確率最高為85%,而機器人只需1.4秒就能通過,且準確率高達100%。扭曲文本的識別,人類最快需要9秒,準確率最高也不過84%,而機器人不到1秒就能完成,準確率為99.8%。對于難度較大的圖片驗證,機器人的速度雖然稍有下降,但還是要比人類的快一些,準確度上也與人類的相當。而完成滑動驗證的時間,相比機器人花費的5.3秒,人類花的時間也多得多,平均是28~30秒。
既然和機器人比聰明比不過,科學家們另辟蹊徑,選擇和機器人比“蠢”。
從表面上看,滑動驗證碼的驗證方式是“滑塊是否被正確拖放到缺口處”,實際上其校驗的信息是“拖放軌跡是否符合真實用戶的行為特征”,因此有時滑塊和缺口雖沒有對齊,也能夠驗證成功。
對機器人來說,模擬鼠標畫出直線并不難,難的是模擬真實用戶的拖放軌跡。
人類難以快速地畫出規定長度的完美直線,在移動滑塊的過程中會手抖、速度變慢,因此呈現出的光標軌跡也會發生無規律的抖動。這種無規律性正是程序設定下的機器人難以模仿和出現的。所以,一旦滑塊的移動速度又快又均勻,用戶就可能被認定為是機器人,無法通過驗證。
除了“手抖”,注意力有限、反應延遲也是人類在滑動驗證過程中體現出獨特行為特征的原因。在背景圖片內容過多的情況下,既要確定缺口的位置,又要觀察滑塊的運動狀態,注意力會被分散,加之手、眼、腦協調能力有限,導致人類畫出的線條是抖動、扭曲的。
還有一個原因是,人類的手、眼、腦信號反饋系統有延遲。從眼睛觀察到光標偏離路線,發出修正信號,到大腦識別到信號并命令肌肉做出反應,這個過程中存在神經傳導信號帶來的時間延遲。人類雖然能夠通過后天訓練提高反應速度,但上升空間有限。
除了滑動圖塊,類似的驗證方式還有旋轉圖片、手勢軌跡驗證等,其本質與滑動驗證相同。這些驗證碼,通過運用人類的行為特征,讓機器人難以精確模仿,既安全又不容易誤判。
看到這里,下次在完成滑動驗證后,得到“打敗99%的人”的夸獎時,希望你還能感到開心:這起碼說明機器人目前還沒辦法完全取代人類。
(逸 士摘自微信公眾號“壹讀”,楊向宇圖)