Da ich gerade festgestellt habe, dass für RFC 5425 TLS 1.2 erforderlich ist und .NET dies noch nicht unterstützt, frage ich mich, ob das TLS 1.2-Protokoll gemäß RFC 5246 möglicherweise Open Source implementiert ist.
Da ich gerade festgestellt habe, dass für RFC 5425 TLS 1.2 erforderlich ist und .NET dies noch nicht unterstützt, frage ich mich, ob das TLS 1.2-Protokoll gemäß RFC 5246 möglicherweise Open Source implementiert ist.
Antworten:
Genau festgestellt , dass .NET Framework 4.5 unterstützt jetzt TLSv1.2
http://msdn.microsoft.com/en-us/library/system.security.authentication.sslprotocols(v=vs.110).aspx
Ja, obwohl Sie TLS 1.2 unter System.Net.ServicePointManager.SecurityProtocol manuell aktivieren müssen
System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12 | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls; // comparable to modern browsers
var response = WebRequest.Create("https://www.howsmyssl.com/").GetResponse();
var body = new StreamReader(response.GetResponseStream()).ReadToEnd();
Ihr Client verwendet TLS 1.2, die modernste Version des Verschlüsselungsprotokolls
Aus der Box, wird WebRequest verwenden TLS 1.0 oder SSL 3 .
Ihr Client verwendet TLS 1.0, das sehr alt ist, möglicherweise für BEAST-Angriffe anfällig ist und nicht über die besten verfügbaren Chiffresuiten verfügt. Ergänzungen wie AES-GCM und SHA256 als Ersatz für MD5-SHA-1 sind für einen TLS 1.0-Client sowie für viele weitere moderne Cipher Suites nicht verfügbar.
Sie können die Registrierungseinstellung SchUseStrongCrypto verwenden, damit alle .NET-Anwendungen standardmäßig TLS 1.2 anstelle von 1.0 verwenden müssen.
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v4.0.30319]
"SchUseStrongCrypto"=dword:00000001
[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\v4.0.30319]
"SchUseStrongCrypto"=dword:00000001
Ich habe mein Problem behoben, indem ich auf das neueste .Net Framework umgestellt habe. Ihr Ziel-Framework legt also Ihr Sicherheitsprotokoll fest.
wenn Sie dies in Web.config haben
<system.web>
<httpRuntime targetFramework="4.5"/>
</system.web>
Sie erhalten dies standardmäßig:
ServicePointManager.SecurityProtocol = Ssl3 | Tls
wenn Sie dies in Web.config haben
<system.web>
<httpRuntime targetFramework="4.6.1"/>
</system.web>
Sie erhalten dies standardmäßig:
ServicePointManager.SecurityProtocol = Tls12 | Tls11 | Tls
Laden Sie einfach diesen Registrierungsschlüssel herunter und führen Sie ihn aus. Der erforderliche Schlüssel wird zur .NET Framework-Registrierung hinzugefügt. Weitere Informationen erhalten Sie unter diesem Link . Suchen Sie in '.NET 4.5 bis 4.5.2' nach 'Option 2'.
Die Registrierungsdatei hängt Folgendes an die Registrierung an:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v4.0.30319]
"SchUseStrongCrypto"=dword:00000001
[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\v4.0.30319]
"SchUseStrongCrypto"=dword:00000001
Dies ist der Teil der Seite, der nützlich ist, falls er kaputt geht:
Net.ServicePointManager.SecurityProtocol-Wert. ""
Wenn Sie mit älteren Versionen von .NET Framework arbeiten, ist die Unterstützung für TLS 1.2 in unserem SecureBlackbox-Produkt sowohl für Client- als auch für Serverkomponenten verfügbar . SecureBlackbox enthält eine eigene Implementierung aller Algorithmen, sodass es keine Rolle spielt, welche Version des .NET-basierten Frameworks Sie verwenden (einschließlich .NET CF) - Sie verfügen in allen Fällen über TLS 1.2 mit den neuesten Ergänzungen.
Beachten Sie, dass SecureBlackbox Framework-Klassen nicht auf magische Weise TLS 1.2 hinzufügt. Stattdessen müssen Sie SecureBlackbox-Klassen und -Komponenten explizit verwenden.
Die neueste Version von SSPI (im Lieferumfang von Windows 7 enthalten) enthält eine Implementierung von TLS 1.2, die in schannel.dll enthalten ist
.NET Framework 4.6 verwendet standardmäßig TLS 1.2.
Darüber hinaus sollte sich in .NET 4.6 nur die Host-Anwendung befinden. In älteren Versionen verbleiben möglicherweise referenzierte Bibliotheken.
Sie können TLS 1.2 in IIS aktivieren, indem Sie diese Anweisungen befolgen . Ich gehe davon aus, dass dies ausreichen würde, wenn Sie eine ASP.NET-basierte Anwendung haben, die auf IIS ausgeführt wird, obwohl es so aussieht, als würde sie Ihren Anforderungen nicht wirklich entsprechen.