風險降低:TLS 通訊協定

從 .NET Framework 4.6 開始,System.Net.ServicePointManagerSystem.Net.Security.SslStream 類別可以使用 Tls1.0、Tls1.1 或 Tls 1.2 這三種通訊協定之一。 不支援 SSL3.0 通訊協定與 RC4 編碼器。

影響

這項變更會影響:

風險降低

建議的緩和措施是將伺服器端應用程式升級至 Tls1.0、Tls1.1 或 Tls 1.2。 如果這並不可行,或是用戶端應用程式已中斷,則可使用 AppContext 類別搭配下列兩種方式之一,停用這項功能:

  • 以程式設計方式,利用如下所示的程式碼片段:

    const string DisableCachingName = @"TestSwitch.LocalAppContext.DisableCaching";
    const string DontEnableSchUseStrongCryptoName = @"Switch.System.Net.DontEnableSchUseStrongCrypto";
    AppContext.SetSwitch(DisableCachingName, true);
    AppContext.SetSwitch(DontEnableSchUseStrongCryptoName, true);
    
    Const DisableCachingName As String = "TestSwitch.LocalAppContext.DisableCaching"
    Const DontEnableSchUseStrongCryptoName As String = "Switch.System.Net.DontEnableSchUseStrongCrypto"
    AppContext.SetSwitch(DisableCachingName, True)
    AppContext.SetSwitch(DontEnableSchUseStrongCryptoName, True)
    

    因為 ServicePointManager 物件只能初始化一次,因此應用程式必須優先定義這些相容性設定。

  • 將下列程式行加入至 app.config 檔案的 <runtime> 區段:

    <AppContextSwitchOverrides value="Switch.System.Net.DontEnableSchUseStrongCrypto=true"/>  
    

但是請注意,我們並不建議您停用這項預設行為,因為這樣會讓應用程式較不安全。

另請參閱