12306圖片驗證1天內被破解 驗證安全出路在哪?
12306的驗證碼出發點是安全?用戶體驗?
那么,我們來談談12306的圖片驗證碼到底是個什么鬼。12306所采用的圖片式驗證碼的驗證形式,并不是什么首創,早在一些游戲網站上也采用過這樣的驗證形式,請看下圖。
這把人都能嚇懵的驗證碼還真出現過,而且很不幸的是,上了一陣子之后就被破解了。
現在12306推出的圖片驗證碼,首先從用戶體驗上來講,并沒有比之前的文字驗證碼好用多少。雖然用戶不再依靠鍵盤輸入,但是面對小且密集的8張圖片,選出“所有”正確的圖片,那必須把所有圖片仔細看一遍,這一過程帶來的不確認型其實是同用戶分辨G和9和心里過程是一樣的。不信你瞅瞅下面哪些是郵票?重要的是這一過程中帶來很大的不確認性,心理負擔略重。
用戶體驗這個標準,不好衡量,我們再來談談安全性。從一開始變成圖片驗證形式,事情就不會像今天新聞標題說的那樣,“刷票軟件將全部失效“(我本著好奇的態度,搜了一下相關新聞,基本上從2012年起,每次12306更換比較明顯的驗證碼,媒體都是這樣報道的),為什么呢?前面我們講到成熟的OCR技術導致英文字符驗證碼很難起作用,事實上,圖像識別的發展也是趨于成熟。所以,12306的圖片驗證碼被迅速破解也不是什么難事,反而將門檻降低。
下面的具體破解舉例引用知乎用戶王貓貓在問題“如何評價 12306 的最新版驗證碼?”下的回答。
(此圖來自知乎用戶王貓貓的回答)
直接將圖片處理后丟入google、百度的識圖接口,返回的數值讓人驚訝(第二張圖居然能精準識別到是沙縣小吃?)。后來根據王同學提供的代碼,我進行了下一步的處理工作,再次利用第三方軟件識別中文字符,然后將字符與圖片字符進行匹配,之后選擇圖片。整個測試圖片大概200張(只是模擬了登錄,沒有去刷掉一整車票),通過率在85%左右。所以,僅僅是技術愛好者動用一些公用接口就輕松能識別圖片類容,而且一旦識別后,還可以將這張出現過的圖片存庫,再次出現就更加快速準確的定位了。暫且不談圖像識別和機器學習這樣高大上的破解方法了。
圖片驗證碼之所以不安全,是因為目前的圖片識別技術也是相當的成熟。12306這些圖片如果是人工標記,無疑是將自己擺到一個愚公移山的悲壯位置;如果是機器識別,也一樣是可以被識別內容,即用圖片內容的識別作為驗證核心將毫無意義。
從12306這次更新來看,12306的驗證思路,還是在玩已經過時的技術,對驗證的視野和理解并不是很透徹,才會落到上線不到一天就被破解的尷尬局面。當然,12306有面對黃牛的進行創新的勇氣是可嘉的,但是方向走錯了,進行購票流程上的全面優化才能讓問題得到最終的解決,將賭注放在驗證碼身上,目前看來不太現實。
走在前面的依然是Google
那么,驗證安全的終極奧義是什么呢?我們可以回顧一下去年的關于google的No-CAPTCHA(No-Capthcha是Re-Capthcha的子項目)的文章,google提出了一個概念叫human behavior analysis,大意是將用戶的行為做為判斷人與計算機的準則。這個理念提出的意義在于,不再依靠圖靈測試即單一的答案來判斷人機,而是通過用戶一系列的上網行為來確定訪問者是人,還是機器。但是從google目前的前端代碼層和具體流程來看,目前只是試探性的的發展,如果這個理念能夠實際操作并完善,那么驗證碼的安全性將提高的一個史無前例的高水平,至少破解門檻不會低到僅僅調用一下公共接口就瞬間破解

責任編輯:大云網
-
發電電力輔助服務營銷決策模型
2019-06-24電力輔助服務營銷 -
繞過安卓SSL驗證證書的四種方式
-
網絡何以可能
2017-02-24網絡