[記錄] 弱點掃描:Insufficient Diffie Hellman Strength 問題

圖片來源:pakutasoフリー素材

看到這個標題就表示又是被折磨很久之後的紀錄 oDo3 

起因是這樣的,工作關係所以工作的產物都是網站,每隔一段時間就會做弱點掃描。除了偶爾因為沒檢查到被搜尋出來的 SQL Injection1)SQL 資料隱碼攻擊 SQL injection:可以參考這篇的解釋 問題外,印象中去年開始一直有出現的一個問題就是標題的這個:Insufficient Diffie Hellman Strength 問題2)可以參考的資料:迪菲-赫爾曼密鑰交換行政院國家資通安全會報HTTPS/SSL/TLS 概述,Diffie-Hellman 算法(金鑰交換)
要看原文的說明還有這篇:What is the Diffie–Hellman key exchange and how does it work?
,說起來複雜,總而言之就是原本這個資料傳輸的密鑰,在2015年的時候被發現漏洞。到現在2019年,當然微軟已經出了更新,讓伺服器/電腦對這個密鑰的支援提升到 1024bits 以上。

掃出的弱點就是現在又覺得 1024bits 又太弱了(電腦運算越來越強),所以不能低於 1024bits。

這廠商的報告其實很簡單好懂,列出你網站問題之後,其實都還會提供你建議修改方法。

廠商的弱點掃描報告書的附圖(範例)

如同上圖的附圖,認定這些資料交換協定只有 1024 bits ,不夠「強」。所以建議的修改方式是:停用 Diffie Hellman KeyExchangeAlgorithms 3)1. 執行regedit
2. 找到「HKEY_LOCAL_MACHINE SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\KeyExchangeAlgorithms」
3. 找到「Diffie Hellman」 sub key (如果沒有,請自行新增)
4. 按右鍵 → 新增 → DWORD 值,命名為 Enabled ,值設為 0
5. 改完後重新開機

但,我從去年到現在改了大概三四次都沒有用。照理說設定這個應該就關閉了這個方法,但下一次的弱點掃描結果它還是在列表上。其實我有點崩潰,因為我在網路上google也是建議這樣解決,或是不停用但設定它的最小 key 大於 10244)這篇有講到怎麼設定,不過應該是ServerMinKeyBitLength 。都沒有用 oDo3 。

只是也已經好幾次都出現這問題,業主也是希望趕快解決(這樣他們就不用收到報告 o◢U )。加上這幾天剛好有一個小空檔想趕快來解決(而且這是高等級的問題,所以需要在這週五解決完畢,為了怕自己來不及解決完,所以昨天星期四就排了整天去測試),這次一定要解決不可!

事前也查了一些資料,準備了一些方法,因為途中都要開關機,所以不是很敢試太多次。一路從上午測試到下午,覺得真的沒有招了,跑去找業主的資訊中心討論。本來要找的大哥正在開會,旁邊另一位資訊大哥問了我的來意之後,推薦了我一個小工具 – IIS Crypto

看名字就知道它是設定有關 IIS 的部份,支援 Windows Server,而且最佳的一點是:它有介面!雖然說身為資訊人員應該要用指令比較專業(?),但對我這個半路出家而且只會寫程式對系統還是一知半解的人來說,有簡單的操作介面真的感覺安全多了。

雖然說感覺安全,但還是會怕。因為這改的就是整台電腦的機碼,牽一髮動全身,何況你不知道它改了多少地方。所以執行前一定要先把整台電腦的機碼匯出,以備不時之需:有問題立刻倒回去恢復原狀!

這個軟體介面簡單使用也簡單,操作就參考以下幾個網頁就好:

簡單來說就是

  1. 打開軟體:它同時會掃描你的伺服器所有的 SChannel 跟 Cipher
  2. 不知道哪些要不要留,就點下面的「Best Practices」,看他的建議
  3. 增/減自己想要留/刪除的內容後,按下右下的「Reply」
  4. 重開機!結束!

而我就是要關閉「Diffie-Hellman」,所以把這個取消後,就緊張的重開機了!

開完機之後我再度使用 sslscan 進行測試!竟然成功了耶!

不再出現 1024 bits 的字樣!

真是太讓人開心了!至於這個拿去做掃描會不會又有別的限制出來,就要等廠商下一次的報告出來了 oDo3 總之就算下次再出現也不再是 Insufficient Diffie Hellman Strength 問題了!

如果你覺得這篇文章還不錯,請您花點時間註冊並幫按下方的Like。支持創作,正向交流:)
回饋由 (likecoin)基金會出資,關於註冊您可參考這篇文章參考新手村文章
分享這篇文章

參考   [ + ]

1.SQL 資料隱碼攻擊 SQL injection:可以參考這篇的解釋
2.可以參考的資料:迪菲-赫爾曼密鑰交換行政院國家資通安全會報HTTPS/SSL/TLS 概述,Diffie-Hellman 算法(金鑰交換)
要看原文的說明還有這篇:What is the Diffie–Hellman key exchange and how does it work?
3.1. 執行regedit
2. 找到「HKEY_LOCAL_MACHINE SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\KeyExchangeAlgorithms」
3. 找到「Diffie Hellman」 sub key (如果沒有,請自行新增)
4. 按右鍵 → 新增 → DWORD 值,命名為 Enabled ,值設為 0
5. 改完後重新開機
4.這篇有講到怎麼設定,不過應該是ServerMinKeyBitLength

寫點留言吧!

avatar
1000