CA5397: gebruik geen afgeschafte SslProtocols-waarden
Eigenschappen | Weergegeven als |
---|---|
Regel-id | CA5397 |
Titel | Gebruik geen afgeschafte SslProtocols-waarden |
Categorie | Beveiliging |
Oplossing is brekend of niet-brekend | Niet-brekend |
Standaard ingeschakeld in .NET 9 | Nee |
Oorzaak
Deze regel wordt geactiveerd wanneer aan een van de volgende voorwaarden wordt voldaan:
- Er is verwezen naar een afgeschafte System.Security.Authentication.SslProtocols waarde.
- Een geheel getal dat een afgeschafte waarde vertegenwoordigt, is toegewezen aan een SslProtocols variabele, gebruikt als SslProtocols retourwaarde of gebruikt als argument SslProtocols .
Afgeschafte waarden zijn:
- Ssl2
- Ssl3
- Tls
- Tls10
- Tls11
Beschrijving van regel
Transport Layer Security (TLS) beveiligt de communicatie tussen computers, meestal met Hypertext Transfer Protocol Secure (HTTPS). Oudere protocolversies van TLS zijn minder veilig dan TLS 1.2 en TLS 1.3 en hebben waarschijnlijk nieuwe beveiligingsproblemen. Vermijd oudere protocolversies om het risico te minimaliseren. Zie Het oplossen van het TLS 1.0-probleem, de 2e editie, voor hulp bij het identificeren en verwijderen van afgeschafte protocolversies.
Schendingen oplossen
Gebruik geen afgeschafte TLS-protocolversies.
Wanneer waarschuwingen onderdrukken
U kunt deze waarschuwing onderdrukken als:
- De verwijzing naar de afgeschafte protocolversie wordt niet gebruikt om een afgeschafte versie in te schakelen.
- U moet verbinding maken met een verouderde service die niet kan worden bijgewerkt voor het gebruik van beveiligde TLS-configuraties.
Een waarschuwing onderdrukken
Als u slechts één schending wilt onderdrukken, voegt u preprocessorrichtlijnen toe aan uw bronbestand om de regel uit te schakelen en vervolgens opnieuw in te schakelen.
#pragma warning disable CA5397
// The code that's violating the rule is on this line.
#pragma warning restore CA5397
Als u de regel voor een bestand, map of project wilt uitschakelen, stelt u de ernst none
ervan in op het configuratiebestand.
[*.{cs,vb}]
dotnet_diagnostic.CA5397.severity = none
Zie Codeanalysewaarschuwingen onderdrukken voor meer informatie.
Voorbeelden van pseudocode
Schending van opsommingsnaam
using System;
using System.Security.Authentication;
public class ExampleClass
{
public void ExampleMethod()
{
// CA5397 violation for using Tls11
SslProtocols protocols = SslProtocols.Tls11 | SslProtocols.Tls12;
}
}
Imports System
Imports System.Security.Authentication
Public Class TestClass
Public Sub ExampleMethod()
' CA5397 violation for using Tls11
Dim sslProtocols As SslProtocols = SslProtocols.Tls11 Or SslProtocols.Tls12
End Sub
End Class
Schending van gehele waarde
using System;
using System.Security.Authentication;
public class ExampleClass
{
public void ExampleMethod()
{
// CA5397 violation
SslProtocols sslProtocols = (SslProtocols) 768; // TLS 1.1
}
}
Imports System
Imports System.Security.Authentication
Public Class TestClass
Public Sub ExampleMethod()
' CA5397 violation
Dim sslProtocols As SslProtocols = CType(768, SslProtocols) ' TLS 1.1
End Sub
End Class
Oplossing
using System;
using System.Security.Authentication;
public class TestClass
{
public void Method()
{
// Let the operating system decide what TLS protocol version to use.
// See https://learn.microsoft.com/dotnet/framework/network-programming/tls
SslProtocols sslProtocols = SslProtocols.None;
}
}
Imports System
Imports System.Security.Authentication
Public Class TestClass
Public Sub ExampleMethod()
' Let the operating system decide what TLS protocol version to use.
' See https://learn.microsoft.com/dotnet/framework/network-programming/tls
Dim sslProtocols As SslProtocols = SslProtocols.None
End Sub
End Class
Gerelateerde regels
CA5364: gebruik geen afgeschafte beveiligingsprotocollen