對加密演算法的攻擊
1. 對稱密鑰的攻擊我們是知道的,對公鑰密碼是否還存在攻擊
對於公鑰密碼的原理我在另外一篇答案中曾有解釋 公鑰的原理
首先我們知道公鑰密碼演算法應滿足如下要求:
- 接收方B產生密鑰對(公開鑰PKB和秘密鑰SKB)是計算上容易的。
- 發送方A用收方的公開鑰對消息m加密以產生密文c,即c=EPKB[m]在計算上是容易的。
- 接收方B用自己的秘密鑰對c解密,即m=DSKB[c]在計算上是容易的。
- 竊聽者由B的公開鑰PKB求秘密鑰SKB在計算上是不可行的。
- 敵手由密文c和B的公開鑰PKB恢復明文在計算上是不可行的。
- 加、解密次序可換嘩旁,即EPKB[DSKB[m]]= DSKB[EPKB[m]]這一點雖然非常有用,但不是對所有的演算法都有要求。
對公鑰密碼的攻擊
和單鑰密碼體制一樣,如果密鑰太短,公鑰密碼也易受窮舉搜纖寬索攻擊,因此密鑰必須足夠長才能抵抗窮舉搜索攻擊,然而又由於公鑰密碼所使用的可逆函數的計算復雜性與密鑰長度常常不是線性關系,而是增大得更快,所以密鑰長度太大又會使得加解密演算法運算太慢而不實用。因此公亂豎橡鑰密碼目前主要用於密鑰管理和數字簽名。
對公鑰密碼演算法的第二種攻擊是尋找由公開鑰計算秘密鑰的方法。目前為止,對常用公鑰演算法還都未能證明這種攻擊是不可行的。
還有一種僅適用於公鑰密碼演算法的攻擊方法,稱為可能字攻擊。例如對56比特的DES密鑰用公鑰密碼演算法加密後發送,敵手用演算法的公開鑰對所有可能的密鑰加密後與截獲的密文相比較,如果一樣,則相應的明文即DES的密鑰就被找出。因此不管公鑰演算法的密鑰多長,這種攻擊的本質是對56比特DES密鑰的窮舉攻擊。抵抗方法是在欲發送的明文消息後添加一些隨機比特。
2. 常見的幾種SSL/TLS漏洞及攻擊方式
SSL/TLS漏洞目前還是比較普遍的,首先關閉協議:SSL2、SSL3(比較老的SSL協議)配置完成ATS安全標准就可以避免以下的攻擊了,最新的伺服器環境都不會有一下問題,當然這種漏洞都是自己部署證書沒有配置好導致的。
Export 加密演算法
Export是一種老舊的弱加密演算法,是被美國法律標示為可出口的加密演算法,其限制對稱加密最大強度位數為40位,限制密鑰交換強度為最大512位。這是一個現今被強制丟棄的演算法。
Downgrade(降級攻擊)
降級攻擊是一種對計算機系統或者通信協議的攻擊,在降級攻擊中,攻擊者故意使系統放棄新式、安全性高的工作方式,反而使用為向下兼容而准備的老式、安全性差的工作方式,降級攻擊常被用於中間人攻擊,講加密的通信協議安全性大幅削弱,得以進行原本不可能做到的攻擊。 在現代的回退防禦中,使用單獨的信號套件來指示自願降級行為,需要理解該信號並支持更高協議版本的伺服器來終止協商,該套件是TLS_FALLBACK_SCSV(0x5600)
MITM(中間人攻擊)
MITM(Man-in-the-MiddleAttack) ,是指攻擊者與通訊的兩端分別創建獨立的聯系,並交換其所有收到的數據,使通訊的兩端認為他們正在通過一個私密的連接與對方直接對話,但事實上整個對話都被攻擊者完全控制,在中間人攻擊中,攻擊者可以攔截通訊雙方的通話並插入新的內容。一個中間人攻擊能成功的前提條件是攻擊者能夠將自己偽裝成每個參與會話的終端,並且不被其他終端識破。
BEAST(野獸攻擊)
BEAST(CVE-2011-3389) BEAST是一種明文攻擊,通過從SSL/TLS加密的會話中獲取受害者的COOKIE值(通過進行一次會話劫持攻擊),進而篡改一個加密演算法的 CBC(密碼塊鏈)的模式以實現攻擊目錄,其主要針對TLS1.0和更早版本的協議中的對稱加密演算法CBC模式。
RC4 加密演算法
由於早期的BEAST野獸攻擊而採用的加密演算法,RC4演算法能減輕野獸攻擊的危害,後來隨著客戶端版本升級,有了客戶端緩解方案(Chrome 和 Firefox 提供了緩解方案),野獸攻擊就不是什麼大問題了。同樣這是一個現今被強制丟棄的演算法。
CRIME(罪惡攻擊)
CRIME(CVE-2012-4929),全稱Compression Ratio Info-leak Made Easy,這是一種因SSL壓縮造成的安全隱患,通過它可竊取啟用數據壓縮特性的HTTPS或SPDY協議傳輸的私密Web Cookie。在成功讀取身份驗證Cookie後,攻擊者可以實行會話劫持和發動進一步攻擊。
SSL 壓縮在下述版本是默認關閉的: nginx 1.1.6及更高/1.0.9及更高(如果使用了 OpenSSL 1.0.0及更高), nginx 1.3.2及更高/1.2.2及更高(如果使用較舊版本的 OpenSSL)。
如果你使用一個早期版本的 nginx 或 OpenSSL,而且你的發行版沒有向後移植該選項,那麼你需要重新編譯沒有一個 ZLIB 支持的 OpenSSL。這會禁止 OpenSSL 使用 DEFLATE 壓縮方式。如果你禁用了這個,你仍然可以使用常規的 HTML DEFLATE 壓縮。
Heartbleed(心血漏洞)
Heartbleed(CVE-2014-0160) 是一個於2014年4月公布的 OpenSSL 加密庫的漏洞,它是一個被廣泛使用的傳輸層安全(TLS)協議的實現。無論是伺服器端還是客戶端在 TLS 中使用了有缺陷的 OpenSSL,都可以被利用該缺陷。由於它是因 DTLS 心跳擴展(RFC 6520)中的輸入驗證不正確(缺少了邊界檢查)而導致的,所以該漏洞根據「心跳」而命名。這個漏洞是一種緩存區超讀漏洞,它可以讀取到本不應該讀取的數據。如果使用帶缺陷的Openssl版本,無論是伺服器還是客戶端,都可能因此受到攻擊。
POODLE漏洞(捲毛狗攻擊)
2014年10月14號由Google發現的POODLE漏洞,全稱是Padding Oracle On Downloaded Legacy Encryption vulnerability,又被稱為「貴賓犬攻擊」(CVE-2014-3566),POODLE漏洞只對CBC模式的明文進行了身份驗證,但是沒有對填充位元組進行完整性驗證,攻擊者竊取採用SSL3.0版加密通信過程中的內容,對填充位元組修改並且利用預置填充來恢復加密內容,以達到攻擊目的。
TLS POODLE(TLS捲毛狗攻擊)
TLS POODLE(CVE-2014-8730) 該漏洞的原理和POODLE漏洞的原理一致,但不是SSL3協議。由於TLS填充是SSLv3的一個子集,因此可以重新使用針對TLS的POODLE攻擊。TLS對於它的填充格式是非常嚴格的,但是一些TLS實現在解密之後不執行填充結構的檢查。即使使用TLS也不會容易受到POODLE攻擊的影響。
CCS
CCS(CVE-2014-0224) 全稱openssl MITM CCS injection attack,Openssl 0.9.8za之前的版本、1.0.0m之前的以及1.0.1h之前的openssl沒有適當的限制ChangeCipherSpec信息的處理,這允許中間人攻擊者在通信之間使用0長度的主密鑰。
FREAK
FREAK(CVE-2015-0204) 客戶端會在一個全安全強度的RSA握手過程中接受使用弱安全強度的出口RSA密鑰,其中關鍵在於客戶端並沒有允許協商任何出口級別的RSA密碼套件。
Logjam
Logjam(CVE-2015-4000) 使用 Diffie-Hellman 密鑰交換協議的 TLS 連接很容易受到攻擊,尤其是DH密鑰中的公鑰強度小於1024bits。中間人攻擊者可將有漏洞的 TLS 連接降級至使用 512 位元組導出級加密。這種攻擊會影響支持 DHE_EXPORT 密碼的所有伺服器。這個攻擊可通過為兩組弱 Diffie-Hellman 參數預先計算 512 位元組質數完成,特別是 Apache 的 httpd 版本 2.1.5 到 2.4.7,以及 OpenSSL 的所有版本。
DROWN(溺水攻擊/溺亡攻擊)
2016年3月發現的針對TLS的新漏洞攻擊——DROWN(Decrypting RSA with Obsolete and Weakened eNcryption,CVE-2016-0800),也即利用過時的、弱化的一種RSA加密演算法來解密破解TLS協議中被該演算法加密的會話密鑰。 具體說來,DROWN漏洞可以利用過時的SSLv2協議來解密與之共享相同RSA私鑰的TLS協議所保護的流量。 DROWN攻擊依賴於SSLv2協議的設計缺陷以及知名的Bleichenbacher攻擊。
通常檢查以下兩點伺服器的配置
伺服器允許SSL2連接,需要將其關閉。
私鑰同時用於允許SSL2連接的其他伺服器。例如,Web伺服器和郵件伺服器上使用相同的私鑰和證書,如果郵件伺服器支持SSL2,即使web伺服器不支持SSL2,攻擊者可以利用郵件伺服器來破壞與web伺服器的TLS連接。
aNULL 包含了非驗證的 Diffie-Hellman 密鑰交換,這會受到中間人(MITM)攻擊
eNULL 包含了無加密的演算法(明文)
EXPORT 是老舊的弱加密演算法,是被美國法律標示為可出口的
RC4 包含的加密演算法使用了已棄用的 ARCFOUR 演算法
DES 包含的加密演算法使用了棄用的數據加密標准(DES)
SSLv2 包含了定義在舊版本 SSL 標准中的所有演算法,現已棄用
MD5 包含了使用已棄用的 MD5 作為哈希演算法的所有演算法
Openssl Padding Oracle
Openssl Padding Oracle(CVE-2016-2107) openssl 1.0.1t到openssl 1.0.2h之前沒有考慮某些填充檢查期間的內存分配,這允許遠程攻擊者通過針對AES CBC會話的padding-oracle攻擊來獲取敏感的明文信息。
強制丟棄的演算法
3. 計算機三級題:對密碼系統的攻擊種類
對密碼系統的攻擊種類分為以下四種:
1、惟密文攻擊
在惟密文攻擊中,密碼分析者知道密碼演算法,但僅能根據截獲的密文進行分析,以得出明文或密鑰。由於密碼分析者所能利用的數據資源僅為密文,這是對密碼分析者最不利的情況。
2、已知明文攻擊
已知明文攻擊是指密碼分析者除了有截獲的密文外,還有一些已知的「明文—密文對」來破譯密碼。密碼分析者的任務目標是推出用來加密的密鑰或某種演算法,這種演算法可以對用該密鑰加密的任何新的消息進行解密。
3、選擇明文攻擊
選擇仿乎游明文攻擊是指密碼分析者不僅可得到一些「明文—密文對」,還可以選擇被加密的明備銷文,並獲得相應的密文。這時密碼分析者能夠選擇特定的明文數據塊去加密,並比頃罩較明文和對應的密文,已分析和發現更多的與密鑰相關的信息。
密碼分析者的任務目標也是推出用來加密的密鑰或某種演算法,該演算法可以對用該密鑰加密的任何新的消息進行解密。
4、選擇密文攻擊
選擇密文攻擊是指密碼分析者可以選擇一些密文,並得到相應的明文。密碼分析者的任務目標是推出密鑰。這種密碼分析多用於攻擊公鑰密碼體制。
4. rsa演算法的攻擊方法有哪些
1 密碼破譯者知道的信息
密文:可以通過竊聽來獲取。
數E和N:公鑰是公開的信息,因此密碼破譯者知道E和N。
2 密碼破譯者不知道的信息
明文:需要破譯的內容。
數D:私鑰至少D是不知道的信息。
其他:密碼破譯者不知道生成密鑰對時所使用的p、q和L
二 通過密文來求明文
RSA的加密過程如下。
密文=明文的E次方 mod N
由於密碼破譯者知道密文、E和N,那麼有沒有一種方法能夠用E次方 mod N之後的密文求出原來的明文呢?如果沒有 mod
N的話,即:
密文=明文的E次方
通過密文求明文的難度不大,因為這可以被看作是一個求對數的問題。
但是,加上 mod N之後,求明文就變成了求離散對數的問題,這是非常困難的,因為人類還沒有發現求離散對數的高效演算法。
三 通過暴力破解來找出D
只要知道數D,就能夠對密文進行解密。因此,可以逐一嘗試有可能作為D的數字來破譯RSA,也就是暴力破解法。暴力破解的難度會隨著D的長度增加而變大,當D足夠長時,就不可能在現實的時間內通過暴力破解找出數D。
現在,RSA中所使用的p和q的長度都在1024比特以上,N的長度為2048比特以上。由於E和D的長度可以和N差不多,因此要找出D,就需要進行2048比特以上的暴力破解。要在這樣的長度下用暴力破解找出D是極其困難的。
5. 旁路攻擊 是什麼
旁路攻擊[1] (Side Channel Attacks,SCA)
在密碼學中,旁路攻擊是指繞過對加密演算法的繁瑣分析,利用密碼演算法的頌鏈檔硬體實現的運算中泄露的信息,如執行時間、功耗、電磁輻射等,結合統計理論快速的破解密碼系統。
旁路攻擊條件
要成功對集成電路晶元進行旁路攻擊必須滿足兩條:
1.在泄漏的物理信號與處理野亂的數據之間建立聯系;
2.在信息泄漏模型中喚沒處理的數據與晶元中處理的數據之間建立聯系。
6. 通常攻擊密碼都有什麼方法
攻擊密碼系統的方法大概可以分為三種對密碼進行分析的嘗試稱為攻擊。Kerckhoffs最早在19世紀闡明密碼分析的一個基本假設,這個假設就是秘密必須完全寓於密鑰中。Kerckhoffs假設密碼分析者已有密碼演算法及其實現的全部詳細資料。
密碼分析者攻擊密碼系統的方法主要有以下三種。
窮舉攻擊
所謂窮舉攻擊是指密碼分析者採用依次試遍所有可能的密鑰,對所獲密文進行解密,直至得到正確的明文;或者用一個確定的密鑰對所有可能的明文進行加密,直至得到所獲得的密文。顯然,理論上對於任何實用密碼,只要有足夠的資源都可以用窮舉攻擊將其攻破。
窮舉攻擊所花費的時間等於嘗試次數乘以一次解密(加密)所需的時間。顯然可以通過增大密鑰量或者加大解密(加密)演算法的復雜性來對抗窮舉攻擊。當密鑰量增大時,嘗試的次數必然增大。當解密(加密)演算法的復雜性增大時,完成一次解密(加密)所需的時間增大,從而使窮舉攻擊在實際上不能實現。窮舉攻擊是對密碼的一種最基本的攻擊方法。
統計分析攻擊
所謂統計分析攻擊就是指密碼分析者通過分析密文和明文的統計規律來破譯密碼。統計分析攻擊在歷史上為破譯密碼做出過極大的貢獻。許多古典密碼都可以通過分析密文字母和字母組的頻率和其他統計參數而破譯。對抗統計分析攻擊的方法是設法使明文的統計特性不帶入密文。這樣密文不帶有明文的痕跡,從而使統計分析攻擊成為不可能。能夠抵抗統計分析攻擊已成為近代密碼的基本要求。
數學分析攻擊
所謂數學分析攻擊是指密碼分析者針對加解密演算法的數學基礎和某些密碼學特性,通過數學求解的方法來破譯密碼。數學分析攻擊是對基於數學難題的各種密碼的主要威脅。為了對抗這種數學分析攻擊,應當選用具有堅實數學基礎和足夠復雜的加解密演算法。
7. 什麼是密碼分析,其攻擊類型有哪些
答:密碼分析是指研漏稿究在不知道密鑰的情況下來恢復明文的科學。攻擊類型棚前有隻有密文的攻擊,已知明文的攻擊,選擇明文的攻擊,適應性選擇明文攻擊,選擇密文的攻擊,選擇密鑰的攻擊,橡皮管密碼攻擊。S盒是DES演算法的核心。其功能是把6bit數據變為4bit數據。返和孝