View a markdown version of this page

Erzwingen Sie eine Mindestversion von TLS in der AWS SDK für .NET - AWS SDK für .NET (V4)

Version 4 (V4) von AWS SDK für .NET wurde veröffentlicht!

Informationen zu wichtigen Änderungen und zur Migration Ihrer Anwendungen finden Sie im Thema https://docs.aws.amazon.com/sdk-for-net/v4/developer-guide/net-dg-v4.html Migration.

Orange button with text "Click here for details".

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Erzwingen Sie eine Mindestversion von TLS in der AWS SDK für .NET

Um die Sicherheit bei der Kommunikation mit AWS Diensten zu erhöhen, sollten Sie die so konfigurieren, AWS SDK für .NET dass TLS 1.2 oder höher verwendet wird.

Der bestimmt AWS SDK für .NET anhand der zugrundeliegenden .NET-Laufzeit, welches Sicherheitsprotokoll verwendet werden soll. Standardmäßig verwenden aktuelle Versionen von .NET das zuletzt konfigurierte Protokoll, das vom Betriebssystem unterstützt wird. Ihre Anwendung kann dieses SDK-Verhalten überschreiben, dies wird jedoch nicht empfohlen.

TLS 1.3 ist die Voraussetzung für die Aktivierung der Post-Quanten-Kryptografie, für die möglicherweise zusätzliche Aktionen oder Konfigurationen erforderlich sind. Weitere Informationen finden Sie unter Enabling hybrid Post-Quantum TLS im Referenzhandbuch für AWS SDKs und Tools.

.NET Core

Standardmäßig verwendet .NET Core das zuletzt konfigurierte Protokoll, das vom Betriebssystem unterstützt wird. AWS SDK für .NET bietet keinen Mechanismus, um dies außer Kraft zu setzen.

Wenn Sie eine .NET Core-Version vor 2.1 verwenden, empfehlen wir dringend, dass Sie Ihre .NET Core-Version aktualisieren.

Weitere Informationen zu den einzelnen Betriebssystemen finden Sie im Folgenden.

Windows

Bei modernen Windows-Verteilungen ist die TLS 1.2-Unterstützung standardmäßig aktiviert. Wenn Sie Windows 7 SP1 oder Windows Server 2008 R2 SP1 verwenden, müssen Sie sicherstellen, dass die TLS 1.2-Unterstützung in der Registrierung aktiviert ist, wie unter #tls -12 beschrieben. https://learn.microsoft.com/en-us/windows-server/security/tls/tls-registry-settings Wenn Sie eine frühere Verteilung ausführen, müssen Sie Ihr Betriebssystem aktualisieren. Informationen zur TLS 1.3-Unterstützung unter Windows finden Sie in der aktuellen Microsoft-Dokumentation für die mindestens erforderlichen Client- oder Serverversionen.

macOS

Wenn Sie .NET Core 2.1 oder höher ausführen, ist TLS 1.2 standardmäßig aktiviert. TLS 1.2 wird von OS X Mavericks 10.9 oder höher unterstützt. .NET Core Version 2.1 und höher benötigen neuere Versionen von macOS, wie unter? beschrieben. https://learn.microsoft.com/en-us/dotnet/core/install/windows tabs=net80&pivots=os-macos.

Bei Verwendung von .NET Core 1.0 nutzt .NET Core OpenSSL unter macOS eine Abhängigkeit, die separat installiert werden muss. OpenSSL hat in Version 1.0.1 Unterstützung für TLS 1.2 und in Version 1.1.1 Unterstützung für TLS 1.3 hinzugefügt.

Linux

.NET Core ist unter Linux OpenSSL erforderlich, das mit vielen Linux-Verteilungen geliefert wird. Aber es kann auch separat installiert werden. OpenSSL hat in Version 1.0.1 Unterstützung für TLS 1.2 und in Version 1.1.1 Unterstützung für TLS 1.3 hinzugefügt. Wenn Sie eine moderne Version von .NET Core (2.1 oder höher) verwenden und einen Paketmanager installiert haben, wurde wahrscheinlich eine modernere Version von OpenSSL für Sie installiert.

Zur Sicherheit können Sie openssl version in einem Terminal ausführen und überprüfen, ob die Version höher als 1.0.1 ist.

.NET Framework.

Wenn Sie eine moderne Version von .NET Framework (4.7 oder höher) und eine moderne Version von Windows (mindestens Windows 8 für Clients, Windows Server 2012 oder höher für Server) ausführen, ist TLS 1.2 standardmäßig aktiviert und wird verwendet.

Wenn Sie eine .NET Framework-Laufzeit verwenden, die die Betriebssystemeinstellungen nicht verwendet (.NET Framework 3.5 bis 4.5.2), AWS SDK für .NET wird versucht, den unterstützten Protokollen Unterstützung für TLS 1.1 und TLS 1.2 https://github.com/aws/aws-sdk-net/blob/main/sdk/src/Core/Amazon.Runtime/Pipeline/HttpHandler/AmazonSecurityProtocolManager.cs hinzuzufügen. Bei Verwendung von .NET Framework 3.5 ist dies nur erfolgreich, wenn der entsprechende Hotpatch wie folgt installiert wird:

Warnung

Am 15. August 2024 AWS SDK für .NET wurde die Unterstützung für .NET Framework 3.5 eingestellt und die Mindestversion von .NET Framework auf 4.7.2 geändert. Weitere Informationen finden Sie im Blogbeitrag Wichtige Änderungen für .NET Framework 3.5- und 4.5-Ziele von. AWS SDK für .NET

Wenn Ihre Anwendung auf einem neueren .NET Framework unter Windows 7 SP1 oder Windows Server 2008 R2 SP1 ausgeführt wird, müssen Sie sicherstellen, dass die TLS 1.2-Unterstützung in der Registrierung aktiviert ist, wie unter https://learn.microsoft.com/en-us/windows-server/security/tls/tls-registry-settings #tls -12 beschrieben. Bei neueren Versionen von Windows ist es standardmäßig aktiviert.

Ausführliche Best Practices für die Verwendung von TLS mit.NET Framework finden Sie im Microsoft-Artikel unter. https://learn.microsoft.com/en-us/dotnet/framework/network-programming/tls

AWS -Tools für PowerShell

AWS -Tools für PowerShellverwenden Sie den AWS SDK für .NET für alle Aufrufe von AWS Diensten. Das Verhalten Ihrer Umgebung hängt wie folgt von der Version von Windows ab, die PowerShell Sie ausführen.

Windows PowerShell 2.0 bis 5.x

Windows PowerShell 2.0 bis 5.x werden unter.NET Framework ausgeführt. Sie können überprüfen, welche .NET-Runtime (2.0 oder 4.0) verwendet wird, PowerShell indem Sie den folgenden Befehl verwenden.

$PSVersionTable.CLRVersion
  • Wenn Sie .NET Runtime 2.0 verwenden, befolgen Sie die obigen Anweisungen in Bezug auf AWS SDK für .NET und .NET Framework 3.5.

    Warnung

    Am 15. August 2024 AWS SDK für .NET wurde die Unterstützung für .NET Framework 3.5 eingestellt und die Mindestversion von .NET Framework auf 4.7.2 geändert. Weitere Informationen finden Sie im Blogbeitrag Wichtige Änderungen für .NET Framework 3.5- und 4.5-Ziele von. AWS SDK für .NET

  • Wenn Sie .NET Runtime 4.0 verwenden, befolgen Sie die obigen Anweisungen in Bezug auf AWS SDK für .NET und .NET Framework 4+.

Windows PowerShell 6.0

Windows PowerShell 6.0 und neuer laufen unter.NET Core. Mit dem folgenden Befehl können Sie überprüfen, welche Version von .NET Core verwendet wird.

[System.Reflection.Assembly]::GetEntryAssembly().GetCustomAttributes([System.Runtime.Versioning.TargetFrameworkAttribute], $true).FrameworkName

Folgen Sie den Anweisungen, die Sie zuvor in Bezug auf die AWS SDK für .NET und die entsprechende Version von.NET Core gegeben haben.

Xamarin

Informationen zu Xamarin finden Sie in den Anweisungen unter. https://learn.microsoft.com/en-us/xamarin/cross-platform/app-fundamentals/transport-layer-security Zusammenfassend:

Für Android

  • Android 5.0 oder höher erforderlich.

  • Projekteigenschaften, Android-Optionen: Die HttpClient Implementierung muss auf Android und die SSL/TLS Implementierung auf Native TLS 1.2+ eingestellt sein.

Für iOS

  • iOS 7 oder höher erforderlich.

  • Projekteigenschaften, iOS Build: Die HttpClient Implementierung muss auf eingestellt sein NSUrlSession.

Für macOS

  • macOS 10.9 oder höher erforderlich.

  • Projektoptionen, Build, Mac Build: HttpClient Implementierung muss auf eingestellt sein NSUrlSession.

Unity

Sie müssen Unity 2018.2 oder höher verwenden und die .NET 4.x gleichwertige Skripting-Laufzeit verwenden. Sie können dies in den Projekteinstellungen, Konfiguration, Player festlegen, wie unter beschrieben https://docs.unity3d.com/2019.1/Documentation/Manual/ScriptingRuntimeUpgrade.html. Die .NET 4.x gleichwertige Skripting-Laufzeit ermöglicht die TLS 1.2-Unterstützung für alle Unity-Plattformen, auf denen Mono oder IL2CPP ausgeführt wird.

Browser (für Blazor WebAssembly)

WebAssembly läuft im Browser statt auf dem Server und verwendet den Browser für die Verarbeitung des HTTP-Verkehrs. Daher wird die TLS-Unterstützung durch die Browser-Unterstützung bestimmt.

Blazor WebAssembly wird in der Vorversion von ASP.NET Core 3.1 nur in Browsern unterstützt, die dies unterstützen WebAssembly, wie unter beschrieben. https://learn.microsoft.com/en-us/aspnet/core/blazor/supported-platforms Alle gängigen Browser unterstützten TLS 1.2 vor der Unterstützung. WebAssembly Wenn dies für Ihren Browser der Fall ist, kann Ihre App bei Ausführung über TLS 1.2 kommunizieren.

Weitere Informationen und Verifizierung finden Sie in der Dokumentation Ihres Browsers.