我正在努力減輕我們對(duì)Poodle SSL 3.0 Fallback攻擊的漏洞。我們的管理員已經(jīng)開(kāi)始禁用SSL,轉(zhuǎn)而使用TLS進(jìn)行服務(wù)器的入站連接。我們還建議我們的團(tuán)隊(duì)在其Web瀏覽器中禁用SSL。我現(xiàn)在正在查看我們的.NET代碼庫(kù),它通過(guò)System.Net.HttpWebRequest啟動(dòng)與各種服務(wù)的HTTPS連接。我相信如果這些連接允許從TLS回退到SSL,則它們可能容易受到MITM攻擊。這是我到目前為止所確定的。有人可以仔細(xì)檢查一下以確認(rèn)我是對(duì)的嗎?這個(gè)漏洞是全新的,所以我還沒(méi)有看到微軟如何在.NET中緩解它的任何指導(dǎo):System.Net.Security.SslStream類的允許協(xié)議(支持.NET中的安全通信)通過(guò)System.Net.ServicePointManager.SecurityProtocol屬性為每個(gè)AppDomain全局設(shè)置。.NET 4.5中此屬性的默認(rèn)值是Ssl3 | Tls(雖然我找不到支持它的文檔。)SecurityProtocolType是帶有Flags屬性的枚舉,因此它是這兩個(gè)值的按位OR。您可以使用以下代碼行在您的環(huán)境中進(jìn)行檢查:Console.WriteLine(System.Net.ServicePointManager.SecurityProtocol.ToString());在應(yīng)用程序中啟動(dòng)任何連接之前Tls,應(yīng)該將其更改為正好或者可能Tls12:System.Net.ServicePointManager.SecurityProtocol = System.Net.SecurityProtocolType.Tls;重要提示:由于該屬性支持多個(gè)按位標(biāo)志,因此我假設(shè)SslStream 在握手期間不會(huì)自動(dòng)回退到其他未指定的協(xié)議。否則,支持多個(gè)標(biāo)志會(huì)有什么意義?TLS 1.0與1.1 / 1.2的更新:根據(jù)Google安全專家Adam Langley的說(shuō)法,如果沒(méi)有正確實(shí)施,TLS 1.0后來(lái)被發(fā)現(xiàn)容易受到POODLE的影響,因此您應(yīng)該考慮專門(mén)轉(zhuǎn)移到TLS 1.2。
如何在.NET中禁用SSL回退并僅使用TLS進(jìn)行出站連接?
狐的傳說(shuō)
2019-08-30 17:08:11