讓程序員互相傷害的「驗證碼」是什麼?

俗話說得好,「常在網上走,哪有不驗證」。咱們愛也好恨也罷,天天誰不抓耳撓腮輸入幾個驗證碼呢?ide

然而驗證碼說究竟是一種被動防護的對策,今天咱們快速梳理梳理驗證碼從無到有的發展歷程,而且介紹一種思路很是前沿的黑科技,改被動爲主動如絲般順滑的:不驗證的驗證碼——無感驗證。工具

undefined


1、 爲何要驗證

驗證碼是爲了反垃圾。早在90年代,雅虎郵箱就頻頻遭到機器產生的大量垃圾郵件騷擾,那時鑑別人/機的需求就已出現。路易斯·馮·安(Luis von Ahn)帶領團隊設計了一款被稱爲CAPTCHA的小工具,其背後的思路就是,人類能夠輕鬆識別,可是機器識別困難,從而能夠區分人類和機器。學習

undefined


2、 如何驗證

那麼,人類和機器到底有什麼區別呢?測試

undefined


所謂CAPTCHA,就是Completely Automated Public Turing Test To Tell Computers and Humans Apart,即「全自動區分計算機和人類的公開圖靈測試」(...說人話!)——驗證碼。圖靈測試在這裏成爲識別的關鍵,而簡單問答則是最經常使用的手段。ui

undefined


圖零測試一般是基於對人類知識的驗證(Knowledge-based authentication, KBA),這裏的知識主要指對圖形的識別和一些簡單的分析。spa

3、 ***愛恨情仇

然而隨着機器識別能力和對人類知識學習的不斷深刻,破解普通驗證碼的成功率愈來愈高,對於跳出「知識」識別思惟定式的需求愈來愈明顯。設計

undefined

若是一味追求「知識層面上的難度挑戰」,爲了應付愈來愈聰明的機器,驗證碼的難度也不斷升高,對於人類用戶來講打擾感也越發強烈,甚至不乏這種讓人徹底摸不着頭腦的「驗證碼」:3d

undefined


因此已經徹底有必要開拓新思路,從其餘的角度來辨別人類獨有的而機器難以模仿的特徵,那就是行爲。orm

undefined

谷歌在幾年前推出了一款跳出「知識」窠臼的「我不是機器人」驗證,整個驗證過程只須要用戶在頁面上「我不是機器人」前的一個複選框打鉤便可,其背後的原理就是谷歌經過收集分析大量真實用戶的鼠標行爲,來判斷究竟是人類操做仍是機器操做。blog

undefined


一樣利用機器難以模仿的人類行爲特徵,滑塊驗證碼近來引發了普遍關注,由於這種驗證過程一樣不須要用戶作過多思考(調用知識),並且適應了移動端沒有鼠標軌跡的客觀條件,經過分析用戶手指滑動速度、對齊位置等生物特徵來判斷操做者是人仍是模擬人類的機器。

4、 終極驗證:無感驗證

然而,驗證來驗證去,不管再怎麼輕鬆簡單,仍是會對用戶整個使用流程形成必定的打擾。就沒有什麼辦法可以......不驗證嗎?!

undefined


其實答案是確定的,如今已經有一些風控如頂象平臺推出了無需驗證便可判別使用者身份的驗證體系,其原理其實也很是簡單。風控引擎在用戶嘗試登錄或者作其餘傳統須要驗證的操做行爲前,就會對操做環境進行掃描,並對一些關鍵參數作分析,包括經常使用IP、地理位置、使用習慣、惡意特徵、設備指紋等。基於大量模型和數據的分析,風控引擎即可以對用戶身份作出一個預先的判斷。若是風控引擎認爲使用者是「好人」,便直接放行;若是斷定爲「機器」,則不予放行;若是存疑,便祭出驗證碼,您且滑一滑吧。

undefined


基於行爲的驗證過程配合風控決策,有明顯的幾個優點:

undefined

一、 阻斷機器垃圾

這也是驗證碼自己最本源的訴求了,識別出正常人類用戶後直接放行,而機器卻不能發佈垃圾信息。

二、用戶體驗好——無思考驗證

確需驗證的狀況下(好比首次使用),與傳統圖片驗證或語音認證等方式不一樣,用戶在進行滑塊驗證之時無需進行計算或思考,短期內便可順滑進入下一步操做,用戶體驗大幅提升。

三、智能風險阻斷

傳統驗證過程沒法徹底對抗模仿能力日益強勁的機器,可是滑塊驗證與風控決策緊密關聯,機器反覆嘗試也沒法經過驗證,能夠阻斷機器操做從而攔截非正經常使用戶,不只垃圾信息,其餘的多種機器有害行爲都會被攔截,包括爬取、盜用等。

相關文章
相關標籤/搜索