2017-05-17

[補強文]如何關閉不安全的通訊加密協定(SSL)與加密方式(Cipher under 128bits) - for Windows Server 2003 R2 SP2

加強資安,由於 SSLv2 與 SSLv3 還有 Cipher 3DES, RC4 都已有明顯的問題存在,所以接下來要教育如何在 Windows Server 2003 R2 sp2 + iis6 的環境下將上述不安全的東西給停用掉…

但,我必須要先說建議做法,因為我目前也準備這樣做,就是放棄使用 2003 了,改用更安全(?)的 Windows Server …我目前是要改用 2012 r2

環境準備:Windows Server 2003 R2 sp2 並有完成做好所有的重大更新…
一定要安裝的更新:MS15-031, KB3046049, KB980436(這個不裝,停用3DES後443會無效)



來,開始了

  • 停止 iis6
  • 使用 IISCrypto(依 dotNET 版本下載) 停用 SSLv2, SSLv3 協定與不安全的 Cipher
    • (上圖是我的選擇) 選好後就按下 [Apply] ,然後重開機
    • 執行「regedit」
    • 到「[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers]」底下,你會看到跟圖片中「Ciphers Enabled」一樣的,可以檢查看看這一些勾勾被拿掉的項目的,DWord 叫 「Enabled」的是否為0,0才是 Disabled
    • 「[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocol]」底下可以看到 SSLv2, SSLv3 (註:2003 只支援到TLS1),再進到除了tls 以外的協定底下,每一個都會有「Client」與「Server」,進到「Server」,「DisableByDefault」要「1」,「Enabled」要「0」,但 tls 就要相反了
  • 檢測網站
*其實明明就要換 2012 r2 ,我本來是不想寫這一篇,但當初就是沒弄到 KB980436 的更新,我每次就是卡在 3DES 停用後 443 就沒效了,現在找到原因了,為了完美,所以寫下這一篇。
*3DES 的關閉會影響 ODBC Driver 使用 {SQL Server} 連線到 MSSQL 的狀態,我就算改用了 Microsoft ODBC Driver 11 for SQL Server 也不行,看來要在 MSSQL 這一方禁用 client 以 3DES 方式連線才行了,但手邊目前找不到環境可以測試
----
目前測試(2017-05-18)
我以 ⓐwindows server 2012 r2 + iis8.5 與 ⓑwindows server 2008 r2 + mssql 2008 r2 來測試,以使用 IISCrypto 將 ⓐ, ⓑ 的協定和 cipher 都用一樣,再來debug

  • 停掉 SSLv2、SSLv3,留下 TLSv1、TLSv1_1、TLSv1_2
  • 停用 NULL、DES、RC2、RC4 Cipher Suites,留下 AES 、 3DES
  • 停用 MD5,留下 SHA、SHA 256、SHA 384、SHA 512 (注:SHA 如果停用,IIS8.5 443 會自動停用)
debug....
  1. ⓐ 停用 3DES Cipher,ⓑ 不停用 3DES Cipher
    • Connection Driver 使用 SQL Server - 失敗
    • Connection Driver 使用 ODBC Driver 11 for SQL Server - 失敗
    • Connection Driver 使用 ODBC Driver 13 for SQL Server - 失敗
  2. ⓐ 不停用 3DES Cipher,ⓑ 停用 3DES Cipher
    • Connection Driver 使用 SQL Server - 成功
    • Connection Driver 使用 ODBC Driver 11 for SQL Server - 成功
    • Connection Driver 使用 ODBC Driver 13 for SQL Server - 成功
  3. ⓐ、ⓑ 皆停用 3DES Cipher
    • Connection Driver 使用 SQL Server - 成功
    • Connection Driver 使用 ODBC Driver 11 for SQL Server - 成功
    • Connection Driver 使用 ODBC Driver 13 for SQL Server - 成功
這時,回到原來的 Windows Server 2003 Ⓒ ,原本 Ⓒ 連線的 MSSQL 2008 R2 是安裝在 Windows Server 2003 上的,稱為 ⓓ
  • 停掉 SSLv2、SSLv3 (注意:Server 2003 最高只支援 TLSv1)
  • 停掉 NULL、DES、RC2、RC4 Cipher Suites,留下 AES 、 3DES
  1. Ⓒ 停用 3DES Cipher ,ⓓ 不停用 3DES Cipher
    • Connection Driver 使用 SQL Server - 失敗
  2. Ⓒ 不停用 3DES Cipher ,ⓓ 停用 3DES Cipher
    • Connection Driver 使用 SQL Server - 失敗
  3. Ⓒ 停用 3DES Cipher ,ⓓ 停用 3DES Cipher
    • Connection Driver 使用 SQL Server - 失敗
然後使用 Ⓒ 與 ⓑ 連線測一測
  1. Ⓒ 停用 3DES Cipher , ⓑ 不停用 3DES Cipher
    • Connection Driver 使用 SQL Server - 成功
  2. Ⓒ 不停用 3DES Cipher , ⓑ 停用 3DES Cipher
    • Connection Driver 使用 SQL Server - 成功
  3. Ⓒ 停用 3DES Cipher , ⓑ 停用 3DES Cipher
    • Connection Driver 使用 SQL Server - 成功
所以,依上而的測試,我的猜測是如果要讓 server 2003 上 3DES 停用後所有 ap 都依然正常,就是需要將 MSSQL 使用 2008 以上(因為可以支援 TLSv1 以上),然後將 MSSQL 安裝在 Windows Server 2008 r2 以上 (因為支援 TLSv1 以上)
-----
現在另一個難題,弱掃掃出 SERVER 2012 R2 上的 RDP (遠端桌面連線服務)會使用 SHA-1 的加密方式連線,但 SHA-1 在全球 ca 中已在 2016/01/01 停用,WINDOWS 會在 2017/01/01 停用,但直接停用 SHA-1 會造成 IIS8.5 的 443 服務停止,但又找不到方法讓 RDP 服務改用 SHA 2 以上…苦惱中…

2 則留言:

Unknown 提到...

想問一下現在WINDOWS SERVER 2012 R2 可以改用SHA2嗎

死狐狸 提到...

sha家族可以看編碼長度來定義是否使用 sha1, sha2, sha3

依 https://zh.wikipedia.org/wiki/SHA-3 上表示的,大於 160 以上的就已經是 sha2 和 sha3 了。

所以如果以使用 IISCrypto 2.0 的畫面來看的話,就只要勾選 SHA256, SHA384, SHA512 的就等於停用 SHA1 了…

不過我不確定這樣解釋是對還是不對,我是這樣理解的。