但,我必須要先說建議做法,因為我目前也準備這樣做,就是放棄使用 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 就要相反了
- 檢測網站
- https://www.ssllabs.com/ssltest/
- 2003 只會是 c 或以下,因為不支援 TLSv1.2 的都只會給 c ,但底下可以看看 Cipher
- https://www.htbridge.com/ssl/
- 這要求不高,單純你的憑證有效性和各協定下的 Cipher ,我是 A-
- https://sslanalyzer.comodoca.com/
- 這沒有評分,單純 report
*其實明明就要換 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
*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....
- ⓐ 停用 3DES Cipher,ⓑ 不停用 3DES Cipher
- Connection Driver 使用 SQL Server - 失敗
- Connection Driver 使用 ODBC Driver 11 for SQL Server - 失敗
- Connection Driver 使用 ODBC Driver 13 for SQL Server - 失敗
- ⓐ 不停用 3DES Cipher,ⓑ 停用 3DES Cipher
- Connection Driver 使用 SQL Server - 成功
- Connection Driver 使用 ODBC Driver 11 for SQL Server - 成功
- Connection Driver 使用 ODBC Driver 13 for SQL Server - 成功
- ⓐ、ⓑ 皆停用 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
- Ⓒ 停用 3DES Cipher ,ⓓ 不停用 3DES Cipher
- Connection Driver 使用 SQL Server - 失敗
- Ⓒ 不停用 3DES Cipher ,ⓓ 停用 3DES Cipher
- Connection Driver 使用 SQL Server - 失敗
- Ⓒ 停用 3DES Cipher ,ⓓ 停用 3DES Cipher
- Connection Driver 使用 SQL Server - 失敗
- Ⓒ 停用 3DES Cipher , ⓑ 不停用 3DES Cipher
- Connection Driver 使用 SQL Server - 成功
- Ⓒ 不停用 3DES Cipher , ⓑ 停用 3DES Cipher
- Connection Driver 使用 SQL Server - 成功
- Ⓒ 停用 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 則留言:
想問一下現在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 了…
不過我不確定這樣解釋是對還是不對,我是這樣理解的。
張貼留言