雲端計算服務推動口令破譯技術走向新時代

餘二五發表於2017-11-23
雲端計算服務推動口令破譯技術走向新時代
Jack zhai
 
問題提出:
口令攻擊(就是破譯或盜取已知賬戶的口令進行入侵)是黑客最直接也是最有效的方式,我們熟知的系統管理員賬戶上最容易被攻擊的。
口令破譯最簡單的方式是暴力破解,就是遍歷全部的口令空間,一定可以發現要找的口令。口令的強度主要來自兩個方面:一是自身的複雜度,如長度與空間(字符集個數);二是身份認證的方式,如加密演算法與認證過程等。大多數系統的口令安全強度是建立在口令長度基礎上的。暴力破解的原理也非常簡單,其實現的最大困難是計算能力的不足(在有限的時間內完成口令空間的遍歷),能擁有巨大計算資源的多數是國家機構或大型企業,除非是政治性的攻擊,才有可能利用這些資源來破譯口令,這對於大多數攻擊者是難以想象的。
網格計算曾經讓攻擊者們興奮,這種技術可以利用手裡大量的“肉雞”集中破譯,但實踐證明:一是管理複雜,容易被“肉雞”發現,“肉雞”損失嚴重;二是實效性不強,攻擊如同打仗,對時間的敏感是非常關鍵的。
雲端計算服務的興起有可能從根本上解決這一難題,雲端計算能夠提供強大計算能力的出租,而且價格便宜,最為重要的是,在網路上租用服務,可以跨地域,跨國家,使用者的身份隱藏容易。這相當於攻擊者自己擁有了世界上最強大的計算機資源,與強大的國家資源對抗成為一種可能,這對於非組織性的攻擊者來說是夢寐以求的。
一方面是多年面臨的難題,一方面是正在走向我們的新型服務,需要的就是行動,使用者身份的安全再次受到強有力的挑戰,或許連雲端計算服務的提供商也很難想象,他們賴以生存的“安全”身份認證模式也面臨同樣的問題……
 
暴力破解方式:
口令的暴力破解分為線上破解與線下破解兩種方式。線上破解就是直接在目標系統上輸入,進行驗證,當然,目前大多系統都支援賬號鎖定,短時間內被連續35次口令錯誤,就自動鎖定該賬號一段時間,所以線上破解方式不能連續工作,需要間隔一定時間,才能避免賬號被鎖定。線上方式主要用於口令猜測,猜測口令的數量越少越好,一般在幾百以內的疑似口令時可採用自動探測,如一小時試一個,一天能實驗24個。
大多數的暴力破解是指線下破解,起碼是線上下先破解出可能疑似口令(已經是百以內的),再通過線上方式去驗證。
線下破解需要得到一些與目標身份認證有關的資訊,如密文,或使用者公鑰等,作為破解計算時的比對驗證。如何獲得這些資訊,我們需要了解身份認證的過程。
 
身份認證方式:
常見的身份認證方式分為下面幾種:
1、  簡單驗證方式:
使用者直接把賬號與口令提交給伺服器,明文傳輸或者是採用固定加密演算法加密後傳輸,伺服器解密後比對(若是口令雜湊可以直接比對),返回認證結果。
攻擊方法:
a)         網路監聽方式:監聽網路報文,直接得到使用者認證過程中傳輸的賬號口令。若是密文,可直接採用線下暴力破解
b)         木馬方式:先設法把木馬輸入到使用者終端上,監聽鍵盤輸入或網路卡流量,直接獲取使用者登入過程中的口令,若是密文可以線下破解
c)         “強權”方式:先入侵系統伺服器,獲取伺服器上的系統賬戶口令檔案。常見的WindowsUnix系統都儲存使用者口令檔案(或是口令雜湊檔案),因為身份認證時要比對。有了這個檔案,是線下暴力破解的最理解狀態了
說明:對付簡單驗證方式,破譯的關鍵步驟是竊聽,破譯主要是針對雜湊方式,大多的公共破譯軟體就可以滿足需求,使用雲端計算資源有些浪費,但對於稍大一些的系統就用得上了。
2、  一次性口令方式:
一次性口令(也稱動態口令卡)是基於演算法可產生固定的口令序列,一般是選定一個隨機數產生演算法(或偽隨機數演算法)加“鹽”的方式。具體方式可以是伺服器產生一個口令清單(紙質的)交給使用者儲存(使用完後再產生下一個清單),每次口令認證成功就作廢換該口令,以便下一次換下一個新口令;也可以是使用者持有動態口令卡(電子器件),每次按下,產生不同的口令(一般是每分鐘產生不同變化),在伺服器端採用同樣的演算法,產生同樣的口令序列,與使用者每次認證時使用的口令相對應。
一次性口令的優點是避免了被監聽,每次使用口令不同,即使木馬監控也無法預知下一個口令是什麼。缺點是使用者要保管一個動態口令卡,紙的也好,電子的也好,都容易丟失或被人複製。
攻擊方法:
a)         破譯動態口令產生演算法,預測口令產生序列(破譯這種演算法很有趣,在行業內也不是特別的祕密,知情的“內部人士”有一定的數量)。每個系統採用的演算法是一致的,針對每個使用者,一般加入賬戶名等作為引數,產生不同口令序列;隨機演算法不公開,還設有一些安裝時的使用者隨機串(也稱“加鹽”處理)提高安全性。這種演算法破譯方式在賭博機上曾經有人成功使用過
b)         盜取使用者儲存的口令卡,進行復制。紙質的複製應該不難,電子的進行“物理拷貝”對於大批量生產的器件應該是可行的
說明:銀行系統與企業內部網路採用一次性口令的越來越多,由於該方法需要維護大量使用者手中的介質,使用量越大,升級、更新越困難,而使用時間越長,被破譯的概率就越大。
針對一次性口令的破譯辦法不多,很希望與業界的朋友多交流。
3、  非對稱加密口令方式:
口令在網路上傳輸可以被竊聽,那是不是有不傳送口令的認證方式呢?
非對稱加密演算法(RSA、橢圓演算法等)的原理是每個使用者擁有一對金鑰,公鑰是大家都可以拿到的,私鑰是自己儲存的,通過公鑰很難推算出私鑰。
認證過程:使用者請求認證,伺服器產生隨機串,使用者用自己的私鑰加密隨機串,伺服器用使用者的公鑰解密,隨機串還原則證明該使用者是真實的(擁有私鑰)。目前流行的雙向認證是增加使用者對伺服器的身份認證,方法相同,只是換成伺服器的公鑰與私鑰即可。
非對稱加密口令方式不在網路上傳送口令的相關資訊,只是傳送隨機串資訊,木馬竊聽就無能為力了。
攻擊方法:
a)         暴力破解:非對稱加密的安全性是破解者很難通過公鑰推算出私鑰,因為空間巨大,但不是說不能遍歷,在足夠大的計算能力前提下,這是有可能的
b)         物理複製:非對稱加密口令是很長的二進位制串,人很難記憶,一般採用介質儲存,如U盤、植入晶片等,盜取後進行物理複製是可行的
說明:非對稱加密口令由於其破譯難度,逐漸成為身份認證高階使用者的首選,但這是建立在攻擊者計算能力不足的基礎上的,雲端計算服務的出現,將使這一領域的未來充滿變數。
 
利用雲端計算服務:
通過對身份認證方式的分析,我們知道:除了一次性口令外,線下口令暴力破解都可以作為攻擊的主要手段。
在利用雲端計算服務資源之前,我們需要做一些準備工作:
1、             簡單驗證方式:我們可以通過入侵或監聽方式,獲得伺服器的口令檔案(當然是加密的),或是一些密文。因為加密演算法是知道的,對稱加密演算法的加密與解密金鑰是相同的。我們可以編寫高效計算加密軟體,遍歷口令空間,核對與獲取的密文相同的就是我們要找的口令
2、             非對稱加密口令方式:公鑰是容易獲得的,演算法是公開的。破譯的方向有兩個,一是直接破譯該使用者私鑰,用公鑰對隨機串加密,遍歷金鑰空間(決定因素是金鑰長度),能還原隨機串的金鑰就是我們要找的;二是破譯該系統全部使用者,在獲得該使用者的私鑰後,利用加密演算法的特點,例如RSA演算法,可破譯還原出演算法對應的pq,則可以破解該系統所有使用者私鑰
接下來就是計算了,選擇多家雲服務商,租借雲端計算資源,把破譯軟體執行起來,你就可以等待破解的結果了。
演算法優化:切割口令空間,把破譯計算分成若干塊,分別租用不同的雲服務,可以並行破譯,加快時間。
 
後記:
雲端計算是日益興起的新服務模式,它極大地提供了IT資源的利用率,讓越來越多的“草根”體驗到了使用巨型計算機的感覺,享受到了專業化的服務。但同時也由於網路經濟模式的“虛擬化”與“國際化”,對使用者使用雲服務做什麼,是很難監控的。用它來做口令破譯的工具,也許正好擊中了這麼多年來加密演算法生存的“軟肋”。
“核技術”可以發電造福人類,也可以作為戰爭工具毀滅人類,關鍵看它掌握在什麼人的手裡,以及掌握它的人如何利用它。
最近,網際網路上的內容安全成為資訊保安行業的討論重點,我想對推動雲端計算服務的政府官員、行業專家、使用者們說:雲端計算服務要尊重使用者業務的“隱私”,但使用者業務內容對公眾安全的威脅同樣需要被關注;如何均衡使用者業務隱私與公共安全的關係,是整個產業鏈合理發展的基礎
本文轉自 zhaisj 51CTO部落格,原文連結:http://blog.51cto.com/zhaisj/566230,如需轉載請自行聯絡原作者


相關文章