當前位置:
首頁 > 最新 > 測試Apache使用Openssl及修改Openssl加密演算法執行順序

測試Apache使用Openssl及修改Openssl加密演算法執行順序

測試背景說明:

HTTPs和SSH等協議內部使用Openssl協議,Openssl在客戶端和伺服器做握手時,會協商一個雙方都支持的演算法。通過Openssl的Ciphers命令,可以看到Openssl支持的演算法列表。原理上Ciphers列表中的演算法在協商時是有優先順序的。例如客戶端在發送Hello握手消息時,會傳送client支持的SSL協議的版本號、隨機數、加密演算法列表,以及所需的其他信息。伺服器收到客戶端建立SSL連接的請求後,會發送Server Hello消息向客戶端傳送SSL協議的版本號、隨機數、會話ID、加密演算法的種類等信息。之後,進入認證階段。認證階段我們這裡測試時不關注。我們測試關注的是Client和服務端在協商加密演算法時,是否通過Ciphers中演算法列表順序做優先順序來匹配第一個雙方都匹配的演算法。以下是測試過程。

搭建環境:

1.生成證書

2.將生成的證書和私鑰拷貝到/usr/local/apache2/conf/下

3.修改Apache配置文件,打開SSL模塊

4.修改extra/ssl.conf文件

5.修改extra/httpd-vhosts.conf

6.重啟apache,環境搭建完成。

測試:

1.通過IE打開:https://192.168.44.25:8443,按F12查看頁面執行情況,可以看到使用了TLS1.2協議,使用ECDH_RSAwith P-256密鑰交換演算法,使用AES_256_GCM為分組加密演算法。

2.修改配置文件extra/ssl.conf,相當於修改服務端的Ciphers列表順序

3.重啟apache

4.關閉頁面,清理緩存,再打開googlechrome檢測:https://192.168.44.20,發現使用的加密演算法沒有改變。

5.修改服務端的CipherOrder並沒有引起加密演算法的改變,我們來修改客戶端的加密演算法測試一下。

6.命令行輸入「gpedit.msc」打開組策略,點擊「管理模板」->「網路」->「SSL配置」,找到「SSL密碼套件順序」。默認未配置。將配置改為已啟用。點擊「應用」

7.關閉goolechrome,重新打開google瀏覽器。

8.發現使用的演算法沒有改變。

9.再次修改「SSL密碼套件順序」,將「TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA_P256」複製到密碼套件的最後,去掉了幾個排名靠後的演算法。

10.重新打開google Chrome瀏覽器,還是一樣的演算法。來點小插曲,測試過程中,正好在播放時界杯,阿根廷對法國,Google瀏覽器播放世界盃正常。

11.修改演算法之後半小時,電腦上看世界盃顯示如下界面:

13.再次,使用google瀏覽器打開頁面測試。演算法還是沒有變化。

14.恢復「SSL密碼套件順序」為默認配置,世界盃播放正常,說明修改「SSL密碼套件演算法」還是影響了SSL傳輸和認證。

測試結論:

本次測試從結果上看應該是失敗的,跟原理上Ciphers順序會引起協商的加密演算法的改變不一致。可能是我對這一塊設置及演算法的理解還不透徹造成的。先記錄下來,以後,再理解清楚了,再做測試。


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 IT運維世界 的精彩文章:

TAG:IT運維世界 |