採訪/編輯:
棒!城市編輯部
更新時間:
2019-06-05 17:15
發佈時間:
2017-11-06 08:33
分享:
累積人次:
65

Windows Server 啟用TLS 1.1,TLS 1.2 並停用 TLS 1.0 相關作業處理

  • Windows Server 啟用TLS 1.1,TLS 1.2 並停用 TLS 1.0 相關作業處理

SSL(Security Socket Layer),最早起源於 1995 年發表的 SSL 2.0(1.0 不好,所以從沒公開過),隨後在 1996 推出 3.0 版,IETF 於 1999 年將 SSL 標準化,因版權考量改稱為 TLS(Transport Layer Security)。

就技術而言,TLS 1.0與 SSL 3.0 很相近,而 TLS 1.0 也支援降級改用 SSL 3.0。

之後 IETF 分別在 2006、2008 年再推出安全強度更高的 TLS 1.1與 TLS 1.2。

2014 年,Google 發現 SSL 3.0 存在致命安全漏洞,而攻擊者可藉由向 TLS 發送假的錯誤提示降級至 SSL 3.0,再利用 SSL 3.0 的漏洞竊取資訊,各家瀏覽器紛紛決定禁用 SSL 3.0。

因此大家常說的 SSL,其實早已經被 TLS 取代。

TLS 1.0 因 CBC 加密模式設計不良,可能遭受 BEAST 攻擊導致加密內容被解密,便落入與 SHA1 相同的命運-被業界宣判限期下架,於是,「停用 SSL 3.0 與 TLS 1.0」成為資安檢核項目之一,建議系統管理人員早日關閉。

要在 Windows 停用 TLS 1.0、啟用 TLS 1.1、TLS 1.2,只需修改 Registry 即可完成。

停用 TLS 1.0 後遠端桌面連不上

「用遠端桌面登入主機,設好 Registry 重開機後就再也連不進去了」
Windows 7 及 Windows 2008 R2 需先安裝更新,遠端桌面程式需更新到新版才支援 TLS 1.1/1.2 連線。

停用 TLS 1.0 後 SQL Server 起不來

「 資料庫主機停用 TLS 1.0 並重開機,SQL Server 就起不來了」
在事件檢視器可看到類似錯誤:  
A fatal error occurred while creating an SSL client credential. The internal error state is 10013. 
MVP Aaron Bertrand 各版本 SQL Server 要支援 TLS 1.2 需要的最小版號。

SQL Server 停用 TLS 1.0 後,.NET 程式無法連上資料庫

SQL 更新並停用 TLS 1.0 後,原本使用 SqlConnection 連線 SQL 的 .NET 程式可能出現以下錯誤訊息: 
使用 Integrated Security=SSPI 以 AD 登入 - A connection was successfully established with the server, but then an error occurred during the pre-login handshake. (provider: Shared Memory Provider, error: 0 - No process is on the other end of the pipe.) 
使用 SQL 帳號登入 - A connection was successfully established with the server, but then an error occurred during the pre-login handshake. (provider: TCP Provider, error: 0 - An existing connection was forcibly closed by the remote host.) 
ADO.NET 也得更新,依據使用的 .NET 版本安裝對應的更新。除了 .NET 4.6,.NET 2.0/3.5/4.0 到 4.5.2 都需更新才能以 TLS 1.2 連上 SQL。

連線 TLS 1.2 HTTPS

.NET 客戶端使用 WebClient、WCF 以 HTTPS 連線遠端主機,也會涉及 TLS 1.0/1.1/1.2 版本議題,不同版本 .NET 的處理方式不同: 
.NET 4.6 內建支援且預設使用 TLS 1.2 
.NET 4.5 內建支援,但需透過 ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12 設為預設協定 
.NET 4 本身不支援,但安裝 .NET 4.5 後即可使用 TLS 1.2,指定 TLS 1.2 的寫法為 ServicePointManager.SecurityProtocol = (SecurityProtocolType)3072; 
(註:若不想修改 .NET 4/4.5 程式,也可透過 Registry 修改預設安全協定) 
.NET 3.5 需安裝 Hotfix 才能支援 
    KB3154518 – Reliability Rollup HR-1605 – NDP 2.0 SP2 – Win7 SP1/Win 2008 R2 SP1 
    KB3154519 – Reliability Rollup HR-1605 – NDP 2.0 SP2 – Win8 RTM/Win 2012 RTM 
    KB3154520 – Reliability Rollup HR-1605 – NDP 2.0 SP2 – Win8.1RTM/Win 2012 R2 RTM 
    KB3156421 -1605 HotFix Rollup through Windows Update for Windows 10.

遠端登入改完 Registry 重開機,之後遠端桌面連不進去、連進去發現 SQL Server 起不來、把 SQL 救起來後發現連 SQL 的 .NET 程式壞光光… 

以上是目前我蒐集到停用 TLS 1.0 所需的配套更新,未來如有發現再陸續補充更新。

標籤