天天看點

雲計算服務推動密碼破譯技術走向新時代

雲計算服務推動密碼破譯技術走向新時代

Jack zhai

<b>問題提出:</b>

密碼攻擊(就是破譯或盜取已知賬戶的密碼進行入侵)是黑客最直接也是最有效的方式,我們熟知的系統管理者賬戶上最容易被攻擊的。

密碼破譯最簡單的方式是暴力破解,就是周遊全部的密碼空間,一定可以發現要找的密碼。密碼的強度主要來自兩個方面:一是自身的複雜度,如長度與空間(字元集個數);二是身份認證的方式,如加密算法與認證過程等。大多數系統的密碼安全強度是建立在密碼長度基礎上的。暴力破解的原理也非常簡單,其實作的最大困難是計算能力的不足(在有限的時間内完成密碼空間的周遊),能擁有巨大計算資源的多數是國家機構或大型企業,除非是政治性的攻擊,才有可能利用這些資源來破譯密碼,這對于大多數攻擊者是難以想象的。

網格計算曾經讓攻擊者們興奮,這種技術可以利用手裡大量的“殭屍電腦”集中破譯,但實踐證明:一是管理複雜,容易被“殭屍電腦”發現,“殭屍電腦”損失嚴重;二是實效性不強,攻擊如同打仗,對時間的敏感是非常關鍵的。

雲計算服務的興起有可能從根本上解決這一難題,雲計算能夠提供強大計算能力的出租,而且價格便宜,最為重要的是,在網絡上租用服務,可以跨地域,跨國家,使用者的身份隐藏容易。這相當于攻擊者自己擁有了世界上最強大的計算機資源,與強大的國家資源對抗成為一種可能,這對于非組織性的攻擊者來說是夢寐以求的。

一方面是多年面臨的難題,一方面是正在走向我們的新型服務,需要的就是行動,使用者身份的安全再次受到強有力的挑戰,或許連雲計算服務的提供商也很難想象,他們賴以生存的“安全”身份認證模式也面臨同樣的問題……

<b>暴力破解方式:</b>

密碼的暴力破解分為線上破解與線下破解兩種方式。線上破解就是直接在目标系統上輸入,進行驗證,當然,目前大多系統都支援賬号鎖定,短時間内被連續3至5次密碼錯誤,就自動鎖定該賬号一段時間,是以線上破解方式不能連續工作,需要間隔一定時間,才能避免賬号被鎖定。線上方式主要用于密碼猜測,猜測密碼的數量越少越好,一般在幾百以内的疑似密碼時可采用自動探測,如一小時試一個,一天能實驗24個。

大多數的暴力破解是指線下破解,起碼是線上下先破解出可能疑似密碼(已經是百以内的),再通過線上方式去驗證。

線下破解需要得到一些與目标身份認證有關的資訊,如密文,或使用者公鑰等,作為破解計算時的比對驗證。如何獲得這些資訊,我們需要了解身份認證的過程。

<b>身份認證方式:</b>

常見的身份認證方式分為下面幾種:

1、  簡單驗證方式:

使用者直接把賬号與密碼送出給伺服器,明文傳輸或者是采用固定加密算法加密後傳輸,伺服器解密後比對(若是密碼散列可以直接比對),傳回認證結果。

攻擊方法:

a)         網絡監聽方式:監聽網絡封包,直接得到使用者認證過程中傳輸的賬号密碼。若是密文,可直接采用線下暴力破解

b)         木馬方式:先設法把木馬輸入到使用者終端上,監聽鍵盤輸入或網卡流量,直接擷取使用者登入過程中的密碼,若是密文可以線下破解

c)         “強權”方式:先入侵系統伺服器,擷取伺服器上的系統賬戶密碼檔案。常見的Windows、Unix系統都儲存使用者密碼檔案(或是密碼散列檔案),因為身份認證時要比對。有了這個檔案,是線下暴力破解的最了解狀态了

說明:對付簡單驗證方式,破譯的關鍵步驟是竊聽,破譯主要是針對散列方式,大多的公共破譯軟體就可以滿足需求,使用雲計算資源有些浪費,但對于稍大一些的系統就用得上了。

2、  一次性密碼方式:

一次性密碼(也稱動态密碼卡)是基于算法可産生固定的密碼序列,一般是標明一個随機數産生算法(或僞随機數算法)加“鹽”的方式。具體方式可以是伺服器産生一個密碼清單(紙質的)交給使用者儲存(使用完後再産生下一個清單),每次密碼認證成功就廢棄換該密碼,以便下一次換下一個新密碼;也可以是使用者持有動态密碼卡(電子器件),每次按下,産生不同的密碼(一般是每分鐘産生不同變化),在伺服器端采用同樣的算法,産生同樣的密碼序列,與使用者每次認證時使用的密碼相對應。

一次性密碼的優點是避免了被監聽,每次使用密碼不同,即使木馬監控也無法預知下一個密碼是什麼。缺點是使用者要保管一個動态密碼卡,紙的也好,電子的也好,都容易丢失或被人複制。

a)         破譯動态密碼産生算法,預測密碼産生序列(破譯這種算法很有趣,在行業内也不是特别的秘密,知情的“内部人士”有一定的數量)。每個系統采用的算法是一緻的,針對每個使用者,一般加入賬戶名等作為參數,産生不同密碼序列;随機算法不公開,還設有一些安裝時的使用者随機串(也稱“加鹽”處理)提高安全性。這種算法破譯方式在賭博機上曾經有人成功使用過

b)         盜取使用者儲存的密碼卡,進行複制。紙質的複制應該不難,電子的進行“實體拷貝”對于大批量生産的器件應該是可行的

說明:銀行系統與企業内部網絡采用一次性密碼的越來越多,由于該方法需要維護大量使用者手中的媒體,使用量越大,更新、更新越困難,而使用時間越長,被破譯的機率就越大。

針對一次性密碼的破譯辦法不多,很希望與業界的朋友多交流。

3、  非對稱加密密碼方式:

密碼在網絡上傳輸可以被竊聽,那是不是有不傳送密碼的認證方式呢?

非對稱加密算法(如RSA、橢圓算法等)的原理是每個使用者擁有一對密鑰,公鑰是大家都可以拿到的,私鑰是自己儲存的,通過公鑰很難推算出私鑰。

認證過程:使用者請求認證,伺服器産生随機串,使用者用自己的私鑰加密随機串,伺服器用使用者的公鑰解密,随機串還原則證明該使用者是真實的(擁有私鑰)。目前流行的雙向認證是增加使用者對伺服器的身份認證,方法相同,隻是換成伺服器的公鑰與私鑰即可。

非對稱加密密碼方式不在網絡上傳送密碼的相關資訊,隻是傳送随機串資訊,木馬竊聽就無能為力了。

a)         暴力破解:非對稱加密的安全性是破解者很難通過公鑰推算出私鑰,因為空間巨大,但不是說不能周遊,在足夠大的計算能力前提下,這是有可能的

b)         實體複制:非對稱加密密碼是很長的二進制串,人很難記憶,一般采用媒體儲存,如U盤、植入晶片等,盜取後進行實體複制是可行的

說明:非對稱加密密碼由于其破譯難度,逐漸成為身份認證高端使用者的首選,但這是建立在攻擊者計算能力不足的基礎上的,雲計算服務的出現,将使這一領域的未來充滿變數。

<b>利用雲計算服務:</b>

通過對身份認證方式的分析,我們知道:除了一次性密碼外,線下密碼暴力破解都可以作為攻擊的主要手段。

在利用雲計算服務資源之前,我們需要做一些準備工作:

1、             簡單驗證方式:我們可以通過入侵或監聽方式,獲得伺服器的密碼檔案(當然是加密的),或是一些密文。因為加密算法是知道的,對稱加密算法的加密與解密密鑰是相同的。我們可以編寫高效計算加密軟體,周遊密碼空間,核對與擷取的密文相同的就是我們要找的密碼

2、             非對稱加密密碼方式:公鑰是容易獲得的,算法是公開的。破譯的方向有兩個,一是直接破譯該使用者私鑰,用公鑰對随機串加密,周遊密鑰空間(決定因素是密鑰長度),能還原随機串的密鑰就是我們要找的;二是破譯該系統全部使用者,在獲得該使用者的私鑰後,利用加密算法的特點,例如RSA算法,可破譯還原出算法對應的p與q,則可以破解該系統所有使用者私鑰

接下來就是計算了,選擇多家雲服務商,租借雲計算資源,把破譯軟體運作起來,你就可以等待破解的結果了。

算法優化:切割密碼空間,把破譯計算分成若幹塊,分别租用不同的雲服務,可以并行破譯,加快時間。

<b>後記:</b>

雲計算是日益興起的新服務模式,它極大地提供了IT資源的使用率,讓越來越多的“草根”體驗到了使用巨型計算機的感覺,享受到了專業化的服務。但同時也由于網絡經濟模式的“虛拟化”與“國際化”,對使用者使用雲服務做什麼,是很難監控的。用它來做密碼破譯的工具,也許正好擊中了這麼多年來加密算法生存的“軟肋”。

“核技術”可以發電造福人類,也可以作為戰争工具毀滅人類,關鍵看它掌握在什麼人的手裡,以及掌握它的人如何利用它。

最近,網際網路上的内容安全成為資訊安全行業的讨論重點,我想對推動雲計算服務的政府官員、行業專家、使用者們說:雲計算服務要尊重使用者業務的“隐私”,但使用者業務内容對公衆安全的威脅同樣需要被關注;如何均衡使用者業務隐私與公共安全的關系,是整個産業鍊合理發展的基礎。

本文轉自 zhaisj 51CTO部落格,原文連結:http://blog.51cto.com/zhaisj/566230,如需轉載請自行聯系原作者

繼續閱讀