Transport Layer Security (TLS) 1.2

Die Verwendung der neuesten Version von Transport Layer Security (TLS) ist wichtig, um sicherzustellen, dass die Netzwerkkommunikation von Anwendungen sicher ist.

Warnung

April 2018 – Aufgrund erhöhter Sicherheitsanforderungen, einschließlich PCI-Compliance, wird erwartet, dass die Unterstützung von TLS-Versionen, die älter als 1.2 sind, von großen Cloudanbietern und Webservern eingestellt wird. Xamarin-Projekte, die in früheren Versionen von Visual Studio erstellt wurden, verwenden standardmäßig ältere Versionen von TLS.

Um sicherzustellen, dass Ihre Apps weiterhin mit diesen Servern und Diensten funktionieren, sollten Sie Ihre Xamarin-Projekte so aktualisieren, dass sie die unten angegebenen Einstellungen verwenden, und dann Ihre Apps neu erstellen und für Ihre Benutzer erneut bereitstellen.

Projekte müssen auf die System.Net.Http-Assembly verweisen und wie unten dargestellt konfiguriert werden.

Aktualisieren von Xamarin.Android auf TLS 1.2

Aktualisieren Sie die HttpClient-Implementierungs - und SSL/TLS-Implementierungsoptionen , um die TLS 1.2-Sicherheit zu aktivieren.

Hinweis

Erfordert Android 5.0 oder höher.

Diese Einstellungen finden Sie unter Projekteigenschaften > Android-Optionen , und klicken Sie dann auf die Schaltfläche Erweitert :

Konfigurieren Sie HttpClient und TLS in Visual Studio für Android-Geräte.

Aktualisieren von Xamarin.iOS auf TLS 1.2

Aktualisieren Sie die Option HttpClient-Implementierung , um TSL 1.2-Sicherheit zu aktivieren.

Diese Einstellung finden Sie unter Projekteigenschaften > iOS-Build:

Konfigurieren Sie HttpClient und TLS in Visual Studio für i O S-Geräte.

Aktualisieren von Xamarin.Mac auf TLS 1.2

Aktualisieren Sie in Visual Studio für Mac, um TLS 1.2 in einer Xamarin.Mac-App zu aktivieren, die HttpClient-Implementierungsoption unter Projektoptionen > Mac-Build > erstellen:

Konfigurieren von HttpClient in Visual Studio für Mac

Warnung

Die anstehende Version Xamarin.Mac 4.8 unterstützt nur macOS 10.9 oder höher. Ältere Versionen von Xamarin.Mac unterstützen macOS 10.7 oder höher, aber diese älteren Versionen von MacOS verfügen nicht über ausreichende TLS-Infrastruktur zur Unterstützung von TLS 1.2. Für macOS 10.7 oder macOS 10.8 sollten Sie Xamarin.Mac 4.6 oder niedriger verwenden.

Alternative Konfigurationsoptionen

In diesem Abschnitt werden Alternativen zu den oben gezeigten, von TLS 1.2 unterstützten Konfigurationen erläutert. Anwendungsentwickler sollten diese Alternativen nur in Betracht ziehen, wenn sie die Risiken der Verwendung verschiedener TLS-Unterstützungsebenen kennen.

HttpClient-Implementierung

Xamarin-Entwickler waren schon immer in der Lage, die nativen Netzwerkklassen in ihrem Code zu verwenden. Es gibt jedoch auch eine Option, die bestimmt, welcher Netzwerkstapel von den HttpClient Klassen verwendet wird. Dadurch wird eine vertraute .NET-API bereitgestellt, die über die Geschwindigkeits- und Sicherheitsvorteile der nativen Plattform verfügt.

Die Optionen sind:

  • Verwalteter Stapel – die von Mono bereitgestellte Netzwerkfunktionalität, oder
  • Nativer Stapel : verschiedene Netzwerk-APIs, die von den zugrunde liegenden Plattformen (Android, iOS oder macOS) bereitgestellt werden.

Der verwaltete Stapel bietet die höchste Kompatibilitätsebene mit vorhandenem .NET-Code, kann jedoch langsamer sein und zu einer größeren ausführbaren Größe führen.

Die nativen Optionen können schneller sein und eine bessere Sicherheit aufweisen (einschließlich TLS 1.2), bieten aber möglicherweise nicht alle Funktionen und Optionen der HttpClient -Klasse.

SSL/TLS-Implementierung (Android)

Mit den Android-Projektoptionen können Sie auch auswählen, welche SSL/TLS-Implementierung unterstützt werden soll:

  • Mono/Managed – TLS 1.1 unter Android
  • nativ – TLS 1.2 unter Android.

Neue Xamarin-Projekte verwenden standardmäßig die native Implementierung, die TLS 1.2 unterstützt (was für alle Projekte empfohlen wird). Sie können jedoch zurück zum verwalteten Code wechseln, wenn dies aus Kompatibilitätsgründen erforderlich ist.

Wichtig

Die Option Mono/Verwaltet wurde aus den iOS- und Mac-Projektoptionen entfernt .

Die native Option wird immer auf iOS- und Mac-Plattformen verwendet.

Plattformspezifische Details

In der obigen Zusammenfassung werden die Einstellungen auf Projektebene für httpClient und die SSL/TLS-Implementierung in Xamarin-Projekten erläutert. Die HttpClient-Implementierung kann auch dynamisch im Code festgelegt werden. Weitere Informationen finden Sie in diesen plattformspezifischen Leitfäden:

Zusammenfassung

Anwendungen sollten nach Möglichkeit TLS (Transport Layer Security) 1.2 verwenden. Sie sollten die Einstellungen in vorhandenen Anwendungen gemäß den Anweisungen in diesem Artikel aktualisieren und dann neu erstellen und für Ihre Kunden erneut bereitstellen.