„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Wie kann ich die ausgehandelte TLS -Version in .NET bestimmen?

Wie kann ich die ausgehandelte TLS -Version in .NET bestimmen?

Gepostet am 2025-03-22
Durchsuche:210

How Can I Determine the Negotiated TLS Version in .NET?

Ermittlung der verhandelten TLS -Version in .NET -Anwendungen

. Net 4.7 standardmäßig zu tls 1.2 für HTTP -Anfragen; Die tatsächliche TLS -Version, die während der Verbindungseinrichtung verwendet wird, kann jedoch variieren. Dieser Leitfaden beschreibt zwei Methoden zur Ermittlung der ausgehandelten TLS -Version.

Methode 1: Reflexion

Diese Technik nutzt die Reflexion, um auf interne Eigenschaften und Felder zuzugreifen, um die SSL -Protokollversion zu erhalten. Beachten Sie, dass dies auf internen APIs beruht und sich mit zukünftigen .NET -Updates ändern könnte.

using System.IO.Compression;
using System.Net;
using System.Net.Security;
using System.Reflection;
using System.Security.Authentication;
using System.Security.Cryptography;
using System.Security.Cryptography.X509Certificates;

// ... other code ...

ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls | 
                                       SecurityProtocolType.Tls11 | 
                                       SecurityProtocolType.Tls12 | 
                                       SecurityProtocolType.Tls13;

// ... other code ...

Uri requestUri = new Uri("https://somesite.com");
var request = WebRequest.CreateHttp(requestUri);

// ... other code ...

using (var requestStream = request.GetRequestStream()) {
    // Request stream validated; now extract SSL protocol
    SslProtocols sslProtocol = ExtractSslProtocol(requestStream);
    if (sslProtocol != SslProtocols.None) {
        // Process the sslProtocol value
    }
}

// ... ExtractSslProtocol function (implementation would be provided here) ...

Methode 2: Secure Verbindungskontext -Attribute (erweitert)

Diese Methode greift über die Secur32.dll Bibliothek auf Verbindungskontextattribute zu. Dieser Ansatz beinhaltet die Arbeit mit nicht öffentlichen Griffen und Strukturen, wodurch er weniger tragbar und möglicherweise komplexer ist. (Detaillierte Implementierung durch Komplexität und potenzielle Instabilität weggelassen.)

Wichtige Überlegungen:

  • . Net Version: tls 1.3 Support erfordert .NET Framework 4.8 oder höher oder .Net Core 3.0.
  • remoteCertificateValidationCallback : Dieser Rückruf bietet Einblicke in die angewandten Sicherheitsprotokolle, die in der Identifizierung von TLS -Versionen hilft.
  • .
  • tcpclient : uw tcpclient erlauben das Abrufen von Tls Information vor webrequest Initialisierung, verabschiedete proaktive Tls -Versionsbestimmung.
Diese Informationen helfen Entwicklern, die von ihren .NET -Anwendungen verwendeten Sicherheitsprotokolle zu verstehen und zu verwalten. Denken Sie daran, die Auswirkungen und potenziellen Risiken sorgfältig zu berücksichtigen, die mit der Verwendung von Reflexion und Interaktion mit nicht verwalteten Bibliotheken verbunden sind.

Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3