Delen via


Risicobeperking: TLS-protocollen

Vanaf .NET Framework 4.6 mogen de System.Net.ServicePointManager en System.Net.Security.SslStream klassen een van de volgende drie protocollen gebruiken: Tls1.0, Tls1.1 of Tls 1.2. Het SSL3.0-protocol en RC4-codering worden niet ondersteund.

Impact

Deze wijziging is van invloed op:

  • Elke app die gebruikmaakt van SSL om te communiceren met een HTTPS-server of een socketserver met een van de volgende typen: , , , en SslStreamSmtpClient. FtpWebRequestHttpWebRequestHttpClient

  • Elke app aan de serverzijde die niet kan worden bijgewerkt ter ondersteuning van Tls1.0, Tls1.1 of Tls 1.2..

Oplossing

De aanbevolen oplossing is om de server-side-app te upgraden naar Tls1.0, Tls1.1 of Tls 1.2. Als dit niet haalbaar is of als client-apps zijn verbroken, kan de AppContext klasse worden gebruikt om deze functie op twee manieren uit te schakelen:

  • Programmatisch, met behulp van een codefragment als volgt:

    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)
    

    Omdat het object slechts eenmaal wordt geïnitialiseerd, moet het ServicePointManager definiëren van deze compatibiliteitsinstellingen het eerste zijn dat de toepassing doet.

  • Door de volgende regel toe te voegen aan de <runtimesectie> van uw app.config-bestand:

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

Houd er echter rekening mee dat het afmelden van het standaardgedrag niet wordt aanbevolen, omdat de toepassing hierdoor minder veilig wordt.

Zie ook