網路驗證碼的進化:從簡單圖文到無感驗證
2018年全國碩士研究生招生考試預報名的第一天,成都大學的一名大四女生,在網上報名時,竟出現了“別考”字樣的驗證碼,同時在驗證碼上邊顯示一行紅字:您輸入的使用者名稱或密碼有誤。專門負責全國研究生報名的“中國研究生招生資訊網”相關負責人回應說,驗證碼出現“別考”字樣純屬巧合。
據瞭解,研招網報名系統的驗證碼由漢字、字母+數字、數字計算三個類別組成,考生在輸入驗證碼時這三個類別都可能會遇到。“別考”字樣的驗證碼雖然只是隨機出現,卻讓人聯想到春運期間12306那些變態的驗證碼,似乎與“證明你媽是你媽”一樣無厘頭,驗證碼就是為了為難人類而存在的嗎?
12306網站驗證碼介面
驗證碼誕生於20年前
驗證碼的全名是“全自動區分計算機和人類的圖靈測試”,由卡內基梅隆大學的路易斯.馮.安於1997年提出,其初衷識別真人還是編寫的惡意程式。驗證碼主要體現方式:計算機會自動生成一個問題由使用者來解答,這個問題可以由計算機生成並評判,但必須只有人類才能解答,回答出問題的操作者就可以被認為是人類。
驗證碼之父:路易斯.馮.安
因此,驗證碼就是利用“人類可以用肉眼輕易識別圖片裡的文字資訊,而機器不能”的原理來抵禦惡意登入,透過識別、輸入這些互動,區分出機器人和真正的人類,防止惡意攻擊或者刷號情況的產生,是一種利用意識區分使用者是計算機還是人的公共全自動程式,在註冊、登入、網購、交易等各類場景中都發揮著巨大作用,並且在不斷進化中成為網路中始終不可或缺的技術。另外,英國醫學專家還發現驗證碼或可用於儘早發現痴呆症風險。
驗證碼的進化:從簡單圖文到無感驗證
早期的驗證碼就是網站提出一些問題,隨著安全防護與破解入侵兩方面的抗衡日益升級,驗證碼的難度在增加,形式也在多樣化。從簡單的字母數字、算術題,到扭曲的字元、模糊的圖片,這些被歸類為知識性驗證碼。
各式各樣的驗證碼
雖然驗證碼對網站平臺有很大的幫助作用,但並不是每個人都不喜歡驗證碼。路易斯.馮.安在2009年的報告中顯示:每天每個美國人要花費1.9秒的時間用來解決驗證碼難題。以美國當年人口3.09億計算,相當於每年要花去他們6795天的時間。
在國內驗證碼一直也是被吐槽的物件。不僅是全國碩士研究生招生考試預報名這樣令人啼笑皆非的驗證碼,還有被廣大網友吐槽的12306“變態”驗證碼。
Google的 reCAPTCHA
為了節省網友時間,提升操作體驗, Google、頂象技術等新一代的驗證碼已經開始向無知識型進化,例如Google的reCAPTCHA、頂象技術的無感驗證等。具體在體現就是需要點選或拖動滑條,甚至不需要任何操作,就能夠完成網路登入身份驗證。這種全新的驗證方式良好解決網站安全和使用者體驗兩端的矛盾。
基於人工智慧的頂象無感驗證有這四大特點
作為新一代的驗證碼Google reCAPTCHA、頂象無感驗證都是基於人工智慧,從傳統的識別驗證方式升級到了基於人的行為來進行判斷,透過收集使用者的行為以及環境資訊,結合模型和風控分析來區分人類還是機器。
頂象技術的“無感驗證”
以頂象技術的“無感驗證”為例,主要有以下四大特點:
體驗好:滑動驗證相對於傳統的驗證碼在體驗上已有了很大的改善,但是如果每次操作還是需要滑動依舊繁瑣。頂象無感驗證在驗證碼彈出前會先收集下當前使用者的環境資訊,結合後臺的風控和大資料,判斷當前操作環境和行為是否正常,如果正常行為就可以直接放行,也就無需滑動。
破解難:資料採集安全是驗證流程的一個安全前提,直白的說,就是傳到後臺的滑動行為資料必須是使用者滑動產生的。一般的做法是對採集的資料進行加密,對採集資料的javascript進行混淆。這種做法可以說是javascript的通用方案,有一定的安全性,但對“有心人”還不夠。頂象無感驗證的做法是短週期自動變更加密演算法+ H5安全防護。其基於AST,採用隨機拆分,動態加解密混淆演算法對JS程式碼進行混淆壓縮,並且定時自動化更新混淆演算法。相對於開源的混淆工具,會使嘗試逆向混淆後的javascript成本極高。再加上短週期自動變更資料加密演算法,即使當前的js指令碼被破解,但是由於快速的自動迭代,這個指令碼很快就會失效,攻擊者不得不再面對下一版完全不同的加密指令碼,從而大大增加破解成本。
識別準:行為驗證的核心是透過使用者滑動行為資料識別本次請求是來自於人還是機器。依託於頂象在現實業務攻防中積累下來的資料,經過特徵工程和深度學習演算法,可以得到大量的特徵。頂象無感驗證利用多種無監督學習模型發現可疑和異常行為並標記為黑樣本,其餘為白樣本。接下來,選取行為特徵和黑白樣本訓練有監督學習模型,用於線上的實時流量資料的識別。基於每日的增量資料,對無監督學習和有監督學習模型快速迭代訓練,可有效與快速變異的惡意行為進行強對抗。
有大腦:隨著人工智慧的發展,攻擊者利用人工智慧技術和打碼平臺可以很容易的透過傳統驗證碼。一旦攻破,傳統驗證碼就對攻擊無能為力了。
隨著人工智慧的發展,未來的驗證碼的人機對抗,一定是一個多維度、多層次、快速迭代的戰場。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69975717/viewspace-2706775/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 驗證碼的前世今生:從圖文識別到無感驗證
- 簡單的數字驗證碼破解
- 簡單幾步實現滑動驗證碼(後端驗證)後端
- 利用tesseract解析簡單數字驗證碼圖片
- TALK的網路驗證
- 圖形驗證碼
- 智慧無感驗證案例:神州優車
- Python實現簡單驗證碼的轉文字Python
- C# 滑動驗證碼|拼圖驗證|SlideCaptchaC#IDEAPT
- 網路模型的交叉驗證模型
- 圖形驗證碼無痕重新整理
- 驗證碼原理及驗證
- 網路驗證之授權碼使用
- 一文帶你看透簡訊驗證碼
- 表單驗證教程簡介
- 圖片驗證碼 CaptchaAPT
- 圖片驗證碼介面
- 【教程】無法驗證app需要網際網路連線以驗證是否信任開發者APP
- 一個簡單的身份證校驗
- Swift 超簡單的驗證框架ValidateSwiftSwift框架
- Javascript使用正則驗證身份證號(簡單)JavaScript
- 驗證碼---js重新整理驗證碼JS
- 簡單API介面簽名驗證API
- 計算機網路驗證性實驗計算機網路
- Django之圖形驗證碼Django
- golang 生成圖片驗證碼Golang
- Flutter 生成圖形驗證碼Flutter
- JavaScript驗證碼生成和驗證效果JavaScript
- app直播原始碼,登入時輸入驗證碼、簡訊驗證身份APP原始碼
- 行為式驗證碼家族再添一員 網易易盾推出推理拼圖驗證碼
- 利用js編寫一個簡單的html表單驗證,驗證通過時提交資料(附原始碼)JSHTML原始碼
- 無密碼驗證:客戶端密碼客戶端
- 簡單驗證碼識別及工具編寫思路
- 用onsubmit做簡單表單驗證(37)MIT
- 簡訊驗證碼測試項
- 簡訊驗證碼“最佳實踐”
- ACCESS 密碼驗證/文字驗證中的小坑密碼
- easy-captcha實現驗證碼驗證APT