為什麼最近會有很多資訊指出圖形認證的機制是不安全的?其實,圖形認證並不是完全沒破綻,更正確的說,沒有一個機制是絕對安全。圖形認證大致可歸類於三種破法,其中機器學習是目前最夯的方法。 在論壇留言、電商買東西、網銀做交易,認證都是必須而且必要的一環。但是除了密碼以外,你應該也看過一個圖片裡面有一堆歪七扭八的英文數字,或是很多圖片要你指出哪幾張裡面有車子跟招牌,這是所謂的圖形認證(或CAPTCHA, Completely Automated Public Turing test to tell Computer and Humans Apart)。 為什麼最近有很多資訊指出圖形認證的機制不安全? 機器學習與語音辨識破解法 圖形認證並不是完全沒破綻,更正確的說,沒有一個機制絕對安全。圖形認證破解法大致可歸類成三種。 第一類是人工破解。很多地方人力是很便宜的,而將CAPTCHA導到那些人手上直接破解是一個便宜又方便的方法。一個正常人在一個小時是可以連續破解上千個CAPTCHA。第二類是錯誤的使用方法。網站設計者的使用方法錯誤,導致CAPTCHA本身可以被繞過,或是把答案寫在網頁中,這也是最常見的一種錯誤。 第三類就是目前最夯的方法:機器學習。這是可以快速導入的方式之一。雖然網路上有很多教學,但是目前能破解的CAPTCHA有限,基本上是屬於有固定格式的Simple CAPTCHA圖形認證。 舉例來說,下圖中的CAPTCHA有背景干擾,有各式的字形跟數字要辨認,明眼人可以立刻看出來這串字是93D1b9 (圖一)。 那機器要怎麼辨識? 要機器辨識是很困難的,因為機器無法從背景的噪音中讀出這些字母,但是基本圖形機器可以看出來,由於每個字體的間格是固定的,因此可以用程式切割圖形字體,切成六個不同的圖(圖二)。 將字體切割後,再把每個字體送到辨識軟體中,機器就可以大概判讀給出答案。 因此現在的CAPTCHA系統也開始變化,除了修正背景噪音處理,也將字體扭曲跟間格再變化,加強辨識難度。 而Google還發展了新的CAPTCHA機制,用多張圖要使用者點選當中有車子、招牌或是建築物的reCAPTCHA。不過,辨識車子跟招牌的方式就真的安全了嗎?也未必! 除了圖形辨識外,一般的CAPTCHA為了要照顧到視力不好的使用者,也有語音辨識。方式是在大量噪音中播放一段文字聲音,再請使用者輸入,因此可以用語音辨識破解。 reCAPTCHA和其他的CAPTCHA系統也曾出現過同樣的問題,而Google的系統已有修復,但是其他的CAPTCHA系統修復後,使用者是否更新,又是另一個問題了。 圖形認證運作機制探秘 圖形認證的意義相當單純,不管用文字或是圖形,目的都是要在15到30秒間判定坐在螢幕前面的是人還是電腦。 現在網站所使用的圖形辨識都大多以文字型態為主,主要以三個方向進行辨識: 1.固定型態的辨識。人腦可以辨識出同一個字的無限量變化,但是電腦做不到這件事情,要教會電腦辨識無限量的變化是有困難度的。 2.分辨區隔。人腦對於辨識區隔是相當厲害的,即使兩個字之間幾乎沒有什麼空格,還是能夠分辨出他是兩個字而不是一個字,但電腦很難做到。 3.整個字的意義。簡單的說,即使今天一個在 CAPTCHA裡你無法分辨n, m, u等字母區別,但是當你看整個字的時,就會知道這個字怎麼拼或代表哪個字。 上面三個問題中任何一個問題對電腦來說都是難題,三者問題合併更是難上加難。就像下面這個圖例(圖三)。 基本保護沒做好,整個資料還是會被搬走 當然,沒有一個認證的方式絕對安全,圖形認證只是一種方法,但是有效的雙因子或多重密碼驗證加上圖形認證,才是最有效的方法。當然,若最基礎的網站安全都沒有做到的話,以上方法也是無效的。 人的驗證只是其中一環,基本網路以及伺服器保護沒做好,資料就不是一筆筆被偷,而是整個被搬走。 圖形認證只是保護機制的一環,基礎的系統架構安全,以及程式設計的基本安全措施,才是維護跟保護一個系統最重要的環節。基礎很重要,要確保網站上的架構與設備安全性,才能保障使用者的安全。
|
Categories
All
Archives
January 2021
|