常見的密碼學(xué)漏洞

密碼算法在使用過程中往往面臨著參數(shù)選擇問題,如果使用了不安全的選項或參數(shù),將導(dǎo)致嚴(yán)重的安全問題??赡軐?dǎo)致不安全參數(shù)的情況有:使用弱長度密鑰,使用低熵值隨機(jī)數(shù)。

在軟件開發(fā)方面,密碼學(xué)占據(jù)著重要的角色,在信息系統(tǒng)的保密性、完整性、可用性方面都提供了眾多的功能和服務(wù)。例如,開發(fā)者一般使用的hash算法保存用戶密鑰的摘要而不是明文,在一些站點和接口服務(wù)中,常用https替代http來增強(qiáng)信息在傳輸過程的安全。在一些銀行信息業(yè)務(wù)中,常用U盾等加密芯片來認(rèn)證用戶。以上所舉例子都是信息系統(tǒng)中密碼學(xué)應(yīng)用的常見案例。但是,如果對密碼學(xué)應(yīng)用不當(dāng),則可能造成嚴(yán)重的安全漏洞。本文將介紹在HACKERONE平臺上的密碼學(xué)相關(guān)的漏洞。

1.SSL相關(guān)攻擊

1.1 POODLE

POODLE漏洞貫穿于所有的SSLv3版本中,利用該漏洞,黑客可以通過中間人攻擊等類似的方式(只要劫持到的數(shù)據(jù)加密兩端均使用SSL3.0),便可以成功獲取到傳輸數(shù)據(jù)(例如cookies)。POODLE漏洞只對CBC模式的明文進(jìn)行了身份驗證,但是沒有對填充字節(jié)進(jìn)行完整性驗證,攻擊者竊取采用SSLv3版本加密通信過程中的內(nèi)容,對填充字節(jié)修改并且利用預(yù)置填充來恢復(fù)加密內(nèi)容,以達(dá)到攻擊目的。

1.2 Sweet 32

Sweet32攻擊是指在分組加密的過程中,CBC等鏈?zhǔn)絀V的加密模式更加容易遭受碰撞攻擊。尤其是當(dāng)分組密碼長度僅僅為64位時,簡單的生日攻擊就能夠應(yīng)用到碰撞上,再結(jié)合Beast攻擊,很容易就能夠碰撞出明文。

1.3 DROWN

DROWN全稱是Decrypting RSA with Obsolete and Weakened Necryption。是指利用過時的脆弱加密算法來對RSA算法進(jìn)破解,主要針對SSLv2協(xié)議漏洞來對TLS進(jìn)行跨協(xié)議攻擊。DROWN利用的不是某個特定漏洞,而是利用了所用協(xié)議和服務(wù)器配置組合中的漏洞。

1.4 SSL stripping

雖然在理論上,使用https能夠保證傳輸中的安全,但在實際應(yīng)用中,即使服務(wù)器端開啟了https,但由于考慮到客戶端可能并不支持https,服務(wù)端仍然可能會響應(yīng)http請求,所以攻擊者也可以使用SSL stripping技術(shù)強(qiáng)制轉(zhuǎn)換為http后再使用中間人攻擊。例如在github開源的sslstrip工具,就是用來將https強(qiáng)制轉(zhuǎn)換為http的中間人攻擊工具。

1.5 FREAK

FREAK攻擊的全稱是Factoring RSA Export Keys.指的是對RSA出口密鑰的分解攻擊。在上世紀(jì)90年代,美國限制出口高強(qiáng)度的加密算法,限制加密強(qiáng)度最大為40位,密鑰交換強(qiáng)度最大為512位。因為該限制,導(dǎo)致眾多站點依然使用密鑰長度為512位的RSA加密。隨著CPU和GPU算力的增強(qiáng),512位密鑰長度的RSA已經(jīng)很容易就被破解。中間人攻擊者進(jìn)行Freak攻擊的步驟如下:

MITM攻擊者篡改Client發(fā)出的Hello消息,改為請求“export RSA”

Server返回512比特位的出口級的RSA密鑰

由于OpenSSL/Secure傳輸漏洞,客戶端會接受這個存在漏洞的密鑰。

MITM攻擊者破解這個export RSA。

Client發(fā)送預(yù)主密鑰給Server時,攻擊者變解密預(yù)主密鑰并恢復(fù)出TLS主密鑰。

攻擊完成,MITM攻擊者已經(jīng)能夠監(jiān)聽并篡改所有的通信內(nèi)容。

1.6 BEAST

Beast attack指的是針對SSL3.0和TLS 1.0版本的選擇明文攻擊。主要是因為在分組加密的過程中,如果采用的是CBC等鏈?zhǔn)絀V的加密模式,且攻擊者擁有Blockwise攻擊的能力,那么就能夠進(jìn)行明文恢復(fù)攻擊。并且,如果攻擊者能夠隨意控制加密的明文,那么攻擊者就能夠進(jìn)行Blockwise attack的基礎(chǔ)上的選擇邊界攻擊。這種攻擊主要把需要猜解的數(shù)據(jù)按比特劃分依次猜解,通過構(gòu)造特殊的輸入,將要猜解的字節(jié)始終在加密分組的最后一個字節(jié)。如此,在一個分組中,除需要猜解的字節(jié)外,其他數(shù)據(jù)可視為已知。表現(xiàn)到公式是為:...

為了使,則需要。由于和已知,且和僅存在最后一個字節(jié)的差異,所以最多窮舉256次,就可以爆破出由此可見,beast攻擊在中間人攻擊中危害很大。

2.弱默認(rèn)參數(shù)

密碼算法在使用過程中往往面臨著參數(shù)選擇問題,如果使用了不安全的選項或參數(shù),將導(dǎo)致嚴(yán)重的安全問題??赡軐?dǎo)致不安全參數(shù)的情況有:使用弱長度密鑰,使用低熵值隨機(jī)數(shù)。例如,生成隨機(jī)數(shù)的熵值過低,導(dǎo)致隨機(jī)數(shù)能夠被攻擊者預(yù)測;使用512位長度的RSA,導(dǎo)致攻擊者可以在有限時間內(nèi)通過窮舉的方式分解大整數(shù);

3.HTTP/HTTPS混合使用

盡管https能夠保證http數(shù)據(jù)在傳輸時的安全,由于還有相當(dāng)多的站點https配置不完善,由https跳轉(zhuǎn)到http的情況普遍存在。這也將導(dǎo)致傳輸數(shù)據(jù)被竊聽、cookies被竊取等安全事故。

4.時序攻擊

時序攻擊(Timing attacks)屬于側(cè)信道攻擊的一種,在一些密碼驗證函數(shù)中,開發(fā)者出于性能或其他因素考慮,對密碼的驗證采用了按位驗證,當(dāng)遇到對應(yīng)位不同時,則立即結(jié)束驗證,返回錯誤。這種驗證規(guī)則使得攻擊者有機(jī)可乘。攻擊者可以通過按位窮舉的方式來重復(fù)的提交驗證并觀察響應(yīng)時間來判定當(dāng)前位是否正確。舉例說明:某信息系統(tǒng)中有一個口令驗證函數(shù)F,專用于驗證系統(tǒng)口令,系統(tǒng)口令為"password",F(xiàn)依次對輸入的口令按位進(jìn)行比較。當(dāng)首次遇到不匹配的位時直接返回錯誤。比如輸入為"pazzword",那F首先比較第一位'p',相同則進(jìn)入第二位'a'的匹配,相同則進(jìn)入第三位's'和'z'的匹配,發(fā)現(xiàn)不同則立刻返回錯誤。顯然,輸入"aassword"和"passworz"的驗證時間相差很大。前者只需要驗證第一個字符就返回錯誤,而后者需要驗證8個字符才返回錯誤。以上就是時序攻擊的一個簡單舉例。

5.密鑰硬編碼

硬編碼主要包括以下信息:密鑰或token硬編碼,用戶名硬編碼、私鑰硬編碼。在軟件開發(fā)過程中,缺乏信息安全意識的開發(fā)者極有可能將秘密信息保存到源碼中,在該信息系統(tǒng)上線后,攻擊者可以通過閱讀源碼(軟件開源的情況下)或通過各種滲透測試方式來獲取秘密信息。在得到密鑰后,攻擊者可以進(jìn)一步利用該密鑰攻破該信息系統(tǒng)。shiro反序列化攻擊,shiro是JAVA的一個安全框架,執(zhí)行身份驗證、授權(quán)、密碼、會話管理。shiro默認(rèn)使用了CookieRememberMeManager,其處理cookie的流程是:a.得到rememberMe的cookie值b.將cookie值進(jìn)行Base64解碼c.解碼后的數(shù)據(jù)進(jìn)行AES解密d.最后反序列化得到相關(guān)參數(shù)然而在步驟c)時,AES的密鑰是硬編碼的,攻擊者通過收集shiro各個版本的密鑰,得到了一個候選密鑰集合,再通過簡單窮舉的方式就能確認(rèn)最終的密鑰。確定密鑰后,攻擊者可以構(gòu)造惡意數(shù)據(jù)造成反序列化的RCE漏洞。

6.雜項

KRACK

KRACKK指的是針對WPA2協(xié)議的密鑰重裝攻擊(Key Reinstallation Attacks),發(fā)現(xiàn)與2017年。由于WPA2協(xié)議是絕大多數(shù)設(shè)備的WIFI協(xié)議,所以影響甚廣。WPA2協(xié)議規(guī)定通過四次握手來協(xié)商WIFI傳輸?shù)拿荑€。該漏洞在于WPA2協(xié)議中規(guī)定四次握手中第三個消息報文可以被篡改,攻擊者可以偽造釣魚WIFI,再通過KRACK攻擊重置客戶端加密密鑰,結(jié)合中間人攻擊,可對被害者流量進(jìn)行嗅探、劫持和篡改等。

Hash長度拓展攻擊

哈希長度拓展攻擊是針對采用了Merkle–Damgård結(jié)構(gòu)的哈希函數(shù)的攻擊手段,如MD5、SHA-1和SHA-2等。該攻擊可以偽造消息散列值,產(chǎn)生新的合法數(shù)字簽名,對數(shù)據(jù)的完整性和不可否認(rèn)性造成嚴(yán)重威脅。

THEEND

最新評論(評論僅代表用戶觀點)

更多
暫無評論