精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

驗證碼到底在驗證啥?聊一聊驗證碼是怎么為難我們人類的

dyquk4xk2p3d ? 來源:科技狐 ? 2023-08-12 10:25 ? 次閱讀

在文章開頭,老狐先給大家玩一個驗證碼的游戲,猜出圖中驗證碼字母。

f7ca94e4-38b4-11ee-9e74-dac502259ad0.png

請計算出圖中驗證碼的結果。

f7d6bc7e-38b4-11ee-9e74-dac502259ad0.png

好了,我們還是回到標題上來,聊一聊驗證碼是怎么為難我們人類的。

驗證碼的由來

2000年,雅虎當時還是全球最大的網絡郵箱服務商,雅虎郵箱的用戶經常收到許多垃圾和詐騙短信。

f81a939a-38b4-11ee-9e74-dac502259ad0.gif

這種經歷放在今天,就是你下班回到家,發現自己門口擺滿了快遞。

但注意,其中只有一個快遞是你自己購買的,其他的快遞都是別人發的垃圾。 你為了找到自己的快遞,只好拆了全部的快遞。

這時,你恐怕只會后悔自己有這一個快遞。

當時受到影響的不止雅虎,還有許多互聯網公司黑客們利用腳本機器人大量注冊賬戶,進行評論注水、黃牛搶票、撞庫掃號等影響互聯網企業運營的行為。

現如今,“ 天下苦驗證碼久矣 ”,而在二十年前,則是“ 天下苦腳本機器人久矣 ”。

后來雅虎找到在卡內基梅隆大學的路易斯·馮·安(驗證碼之父)等人,與他們合作。

他們利用當時的人機驗證機制,為雅虎設計了一套防御機器人的程序,并首次提出了“驗證碼”的概念。

驗證碼,更專業的名字是“全自動區分計算機和人類的圖靈測試”,簡稱 CAPTCHA。

驗證碼的作用是讓計算機區分人類和計算機。

大家熟知的圖靈測試是讓人區分人和計算機,與驗證碼作用剛好相反。

因此,有些人也將驗證碼叫做“反向圖靈測試”。

文本類驗證碼

然而,一切沒有那么容易。 早期的驗證碼非常簡單,只是普通的字母組合,干擾的信息很少,而文字識別技術( OCR )的應用甚至要比驗證碼早 30 年。 沒過多久,黑客利用 OCR 成功破解了驗證碼。

fea495da-38b4-11ee-9e74-dac502259ad0.png

于是,計算機科學家們繼續尋找更好的防御機制。 他們在驗證碼的字符中加入更多的干擾因素,將字符連接、變形、空心,變成動態,加入更復雜的背景。

總之,一切都是為了降低腳本機器人的識別成功率。

然而降低機器人識別正確率的效果是暫時的,降低用戶的識別成功率卻是永久的。

我經常遇到無法識別的驗證碼,要么需要刷新,要么輸入錯誤。

此時計算機對我的判定是:你不 是 個 人! 這句話聽起來是不是好像是在罵人。

2008 年,兩位英國紐卡斯爾大學的計算機研究人員發布了一篇論文。

在論文中,他們用新的字符分割法來識別微軟、雅虎和谷歌的驗證碼。

微軟和雅虎的驗證碼識別正確率超過 60%,谷歌的驗證碼識別率較低,為 8.7%。

ff6ab4a4-38b4-11ee-9e74-dac502259ad0.png

雖然谷歌這個數字看起來比雅虎和微軟優秀,但腳本機器人可以發動大量攻擊,100 萬次嘗試就將有 8.7 萬個驗證碼被破解。

因此,這個結果仍然是無法令人滿意的。

在這份論文中,研究人員還列出了用戶會混淆的幾個驗證碼:

ffca088c-38b4-11ee-9e74-dac502259ad0.png

比如:

f7ca94e4-38b4-11ee-9e74-dac502259ad0.png

開頭是字母 “ d ” 還是 “ cl ”?

004045e2-38b5-11ee-9e74-dac502259ad0.png

這是哪幾個字符? 別問我答案,我也不知道。 雖然變形扭曲的字符能提升攔截腳本機器人的效率,但真人用戶同樣難以辨別驗證碼,也被阻擋在外。

甚至有研究表明,通過卷積神經網絡模型( CNN ),機器識別扭曲字體的正確率還要高于人類。

驗證碼殺敵一千,自損一萬。

簡單文本內容的驗證碼已經無法滿足需要,于是,又出現了答題類的驗證碼。

00553812-38b5-11ee-9e74-dac502259ad0.png

驗證碼成了考題,用戶輸入正確的答案才能通過驗證,這種形式的驗證碼雖然能暫時有效阻擋腳本機器人,但卻對用戶不友好,受到許多吐槽。

因此,答題驗證碼并不常見。

畢竟,當你遇到文章開頭這種驗證碼,你可能不會愿意計算出答案,而是直接關閉頁面。

006cdd1e-38b5-11ee-9e74-dac502259ad0.png

文本類驗證碼面對腳本機器人的攻擊,漸漸招架不住,研究人員決定調轉方向,開發采用圖像選擇類的驗證碼。

圖像選擇類驗證碼

相比于文本類的驗證碼,圖像選擇類驗證碼對用戶友好很多,只需點擊圖像,不再依賴鍵盤輸入,而且圖像驗證碼趣味性更強。

例如根據題目要求在幾張照片中找出符合要求的照片即可,體驗起來像是玩連連看。

2007 年,研究人員提出了圖像選擇類驗證碼,之后迅速受到研究人員和用戶的歡迎。

畢竟,誰會喜歡考試而不喜歡游戲呢?

2015 年 3 月,12306 為了防止黃牛搶票引入了圖片驗證碼,引發熱議。 搶過火車票的小伙伴對此肯定不陌生,為了不被 12306 的驗證碼難住,不得不調鬧鐘提早登錄 12306。

剛開始,圖像選擇類驗證碼還能起到不錯的保護效果。 然而,隨著圖像識別技術的發展,特別是 AI 技術的進步,人們可以訓練機器學習分類圖片,破解圖像。

例如,國外的研究人員就利用 SVM 分類器和卷積神經網絡模型等方式,來破解部分圖像選擇驗證碼。

來自卡內基梅隆大學的一個團隊在 2017 年發布論文表示: 他們通過收集 260 萬個驗證碼和短語,以及 2100 萬張圖片,經過卷積神經網絡的訓練,最終可以使機器在 2 秒內以 77% 的正確率通過 12306 的驗證碼。 019b2650-38b5-11ee-9e74-dac502259ad0.png 為了阻擋腳本

機器人的攻擊,維護人員不得不制作更多新的驗證碼圖片,利用新的驗證碼圖片還未被機器學習,以此來降低機器的識別正確率。 于是更多奇怪的驗證碼被制作出來。

然而,我們普通用戶成了最大的受害者,各種奇葩的圖片驗證碼讓人難以區分,連登錄自己的賬戶,都變成了一件難事。

不過一些研究統計表明,在圖片驗證碼的正確率上,機器在某些方面的圖像感知能力也已經領先人類。

既然圖像選擇驗證碼也干不過機器,研究人員再次使出絕招:調轉方向!

行為軌跡類驗證碼

無論文本還是圖像都是以問答的形式來驗證人和腳本機器人,腳本機器人通過學習,表現比人類還要穩定。

于是,研究人員發明了行為軌跡類的驗證碼,而它的原理就是利用人類在行為軌跡上不如機器穩定。

以我們熟悉的滑動驗證碼為例: 當我們將左邊的滑塊向右拖動,后臺服務器不僅驗證用戶能否正確地將滑塊填進空缺位置,還要記錄用戶的鼠標位置,滑塊的移動軌跡等信息。

通常來說,相對于腳本機器人,人類的滑動軌跡都是非勻速的,不準確的。

尤其是像我這樣肢體不靈活的人,越接近空缺位置,速度越慢,直到合上滑塊。

這個過程有很多不穩定的因素,正是通過不穩定的軌跡,后臺服務器才會識別該操作來自于人,而不是穩定的腳本程序。

雖然滑動驗證碼相比之前的驗證碼是一個進步,但破解驗證碼的方式也在跟著進步。

2010 年,日本京都大學的研究人員向外界公布了滑動驗證碼,并于 2012 年投入商用。

2014 年,馬德里康普斯頓大學的研究人員就宣布他們破解了滑動驗證。

如今,加入了學習模型的智能腳本機器人也能通過學習人的滑動軌跡,通過做出變速,折返、抖動等行為軌跡來模仿人類,騙過服務器。

行為軌跡類的驗證碼還有更簡單無感的方式,點擊驗證,直接點擊按鈕,服務器通過收集檢測用戶的環境信息來判斷是真人還是腳本機器人。

這無疑是目前所有驗證碼中用戶體驗最好的,但它也并非絕對安全,而且還存在用戶隱私泄露的風險。

短信驗證和掃臉認證

現在,短信驗證已經成為最常見的驗證方式之一。 在老狐的手機短信中,兩類短信最多。

一類是驗證碼短信,一類是需要發送“ TD ”才能退訂,但退訂后又還能收到新短信的垃圾營銷短信,而最實用的快遞簽收短信只能排在第三。

短信驗證通過綁定手機號碼來確認該用戶是否是本人,跳出了網絡這一維度,調用了外部設備,安全程度比以上幾種驗證碼有所提升。

但驗證碼短信恰恰成了這種驗證方式的薄弱環節。

不法分子可以通過建立偽基站,截取用戶短信驗證碼,獲得登錄甚至交易權限。

又或者,通過詐騙獲取用戶的驗證碼。

另一方面,短信驗證碼又是最不友好的驗證方式之一,尤其是手機不在的時候,還要找手機,解鎖、記住驗證碼,再輸入驗證碼,這是我最討厭驗證碼的時刻。

如今,一些對安全要求較高的驗證通道已經卷向了掃臉驗證,需要對著手機前后移動,調整角度,眨動眼睛才能登錄。

然而這種看似安全的方式也不是絕對安全,百度搜索可看到許多掃臉認證被破解的信息。

驗證碼的另類敵人

這時老狐不禁想:我們普通用戶登錄個賬號怎么就這么麻煩。

本質上而言,驗證碼技術的戰爭是網站維護人員與黑客攻擊者之間的競爭。

雙方你追我趕,驗證碼的技術在 20 年里已經多次迭代。

從最簡單的輸入字母到需要調動用戶攝像頭的刷臉驗證,破解技術也從曾經的 OCR 發展到如今的 AI。 然而,最受傷的卻是我們這些普通用戶,驗證方式逐漸復雜,意味著我們要在驗證碼上花更多時間和更多手段。

驗證碼要面對的敵人,并不僅僅是腳本機器人或技術頂級的黑客,還有毫無技術含量的人類。

一些不法分子建立了驗證碼破解平臺,將驗證碼打包發送至平臺,以非常低廉的價格雇傭一批人。

人工輸入正確驗證碼答案,并建立數據庫,用來破解驗證碼,這個方法簡單粗暴卻有效。

AI 也學會了這一方式。 據媒體報道,一個測試 AI 的機構發現 OpenAI 的 GPT4 會假裝成一個視障人員,讓人類幫他輸入驗證碼。 沒錯,AI 甚至學會了欺騙人類免費幫它勞動。

面對越來越接近人類的 AI,區分人類和機器人將會變得越來越困難,驗證碼只會更加復雜繁瑣。

而作為一個普通的網絡用戶,老狐只希望輸入驗證碼的方式能簡單一點。





審核編輯:劉清

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 機器人
    +關注

    關注

    209

    文章

    27718

    瀏覽量

    203621
  • 計算機
    +關注

    關注

    19

    文章

    7056

    瀏覽量

    86674
  • OCR
    OCR
    +關注

    關注

    0

    文章

    141

    瀏覽量

    16241
  • 圖像識別技術

    關注

    1

    文章

    26

    瀏覽量

    6037
  • 卷積神經網絡

    關注

    4

    文章

    358

    瀏覽量

    11786

原文標題:變態的驗證碼,到底在驗證啥?

文章出處:【微信號:良許Linux,微信公眾號:良許Linux】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    西門子PLC實現動態加密計時催款功能的程序設計

    當調試人員項目調試完成后,設置個到計時天數,當天數到達后設備鎖機,HMI上跳出解鎖界面,這個時候點擊HMI上的生成解鎖按鈕,生成解鎖(解鎖
    的頭像 發表于 04-24 11:05 ?830次閱讀
    西門子PLC實現動態加密計時催款功能的程序設計

    fpga驗證和uvm驗證的區別

    FPGA驗證和UVM驗證芯片設計和驗證過程中都扮演著重要的角色,但它們之間存在明顯的區別。
    的頭像 發表于 03-15 15:00 ?880次閱讀

    鴻蒙實戰基礎(ArkTS)-窗口管理

    ; } }); }); } 創建驗證碼校驗子窗口 在這個章節中,我們需要完成驗證碼界面的編寫,并實現輸入用戶名和密碼后,點擊驗證碼按鈕,拉起
    發表于 01-12 17:51

    驗證碼滲透最全總結

    簡單測試方法,就是看到個登錄框,然后新建打開圖片鏈接,圖片鏈接中就有機會看到兩個參數值,個是 width,個是 length。這兩個參數是計算圖片
    的頭像 發表于 01-05 11:33 ?513次閱讀
    <b class='flag-5'>驗證碼</b>滲透最全總結

    鴻蒙原生應用/元服務開發-Serverless賬戶驗證碼的問題

    應用/元服務早期使用過程中,-Serverless賬戶驗證碼的格式是[AGC][應用/元服務名稱],如下圖。 但是,最近,[應用/元服務]名稱直接變成了【default】,用戶收到這種驗證
    發表于 12-27 15:55

    基于啟明6M5開發板的智能門鎖設計

    本項目是基于啟明6M5開發板設計個門鎖系統,通過板載ESP8266網絡將驗證碼發送至云端,用戶通過手機上接受到的驗證碼打開門鎖。項目功能演示如下:
    的頭像 發表于 12-18 12:30 ?1038次閱讀
    基于啟明6M5開發板的智能門鎖設計

    消息隊列技術選型的7種消息場景

    我們在做消息隊列的技術選型時,往往會結合業務場景進行考慮。今天來消息隊列可能會用到的 7 種消息場景。
    的頭像 發表于 12-09 17:50 ?1067次閱讀
    <b class='flag-5'>聊</b><b class='flag-5'>一</b><b class='flag-5'>聊</b>消息隊列技術選型的7種消息場景

    芯片設計的NDR是什么?

    今天突然想route相關的問題,講講NDR是什么,我也梳理總結下我對NDR的認識。
    的頭像 發表于 12-06 15:14 ?1259次閱讀

    簡單DPT技術-double pattern technology

    今天想來簡單DPT技術-double pattern technology,也就是雙層掩模版技術,目前先進工藝下,這項技術已經應用的很普遍了。
    的頭像 發表于 12-05 14:26 ?872次閱讀

    SpringBoot分布式驗證碼登錄方案

    傳統的項目大都是基于session交互的,前后端都在個項目里面,比如傳統的SSH項目或者些JSP系統,當前端頁面觸發到獲取驗證碼請求,可以將驗證碼里面的信息存在上下文中,所以登錄的
    的頭像 發表于 10-12 17:34 ?569次閱讀
    SpringBoot分布式<b class='flag-5'>驗證碼</b>登錄方案

    如何使用Verilog語言進行仿真驗證

    仿真驗證主要作用是搭建個測試平臺,測試和驗證程序設計的正確性,驗證設計是否實現了我們所預期的功能。其結構如下圖所示。
    的頭像 發表于 10-02 16:29 ?1312次閱讀
    如何使用Verilog語言進行仿真<b class='flag-5'>驗證</b>

    芯片驗證方法之極限驗證法簡析

    不管是做設計,還是驗證,相信大家都會有些review會議上被問些刁鉆的問題的經歷。當然,與會者問這些不那么容易回答的問題并非有意為難,大多數時候只是純粹的好奇心。
    的頭像 發表于 09-27 10:05 ?413次閱讀

    Java 中驗證碼的使用

    今天我們一下在 Java 中驗證碼的使用。 驗證碼生成 本效果是利用easy-captcha工具包實現,首先需要添加相關依賴到pom.xml中,代碼如下: com .github.w
    的頭像 發表于 09-25 11:11 ?716次閱讀
    Java 中<b class='flag-5'>驗證碼</b>的使用

    如何實現驗證MCU指令

    的。此外,設計不斷地重用,而驗證也希望能夠重用樣的驗證模塊,這就催生了層次化的驗證方法。Synopsys的 VMM驗證方法學提供了基于S
    的頭像 發表于 08-29 17:00 ?647次閱讀

    基于VMM驗證方法學的MCU驗證環境

    的。此外,設計不斷地重用,而驗證也希望能夠重用樣的驗證模塊,這就催生了層次化的驗證方法。Synopsys的 VMM驗證方法學提供了基于Sy
    的頭像 發表于 08-25 16:45 ?736次閱讀