2014/10/16

Google在 SSL 3.0 中發現設計缺陷

今天 Facebook 登入的那段C#程式掛了,錯誤訊息是「要求已經中止: 無法建立 SSL/TLS 的安全通道。」

在網路上搜尋這個問題,所有的解都是說只要加入下列程式就能解決:

System.Net.ServicePointManager.ServerCertificateValidationCallback = delegate { return true; };

但我的程式裡早有這行,所以不是這個問題。

繼續找的結果是,因為我寫了一行程式:

System.Net.ServicePointManager.SecurityProtocol = System.Net.SecurityProtocolType.Ssl3;

把這行改成

System.Net.ServicePointManager.SecurityProtocol = System.Net.SecurityProtocolType.Tls;

或是直接把那行註解掉即可

為什麼這樣改就會好?

我查了一下發現是因為SSL3有缺陷,已經要被各大網站棄用啦!

以下節錄:
「2014年10月,Google發布在SSL 3.0中發現設計缺陷,建議禁用此一協議。Google在自己公司相關產品中陸續禁止回溯相容,強制使用TLS協議。計劃於11月25日發布的Firefox 34中,Mozilla 將徹底禁掉 SSL 3.0。」