Transport Layer Security (TLS) 1.2

Die Verwendung der neuesten Version von Transport Layer Security (TLS) ist wichtig, um sicherzustellen, dass die Kommunikation über das Anwendungsnetzwerk sicher ist.

Warnung

April 2018 – Aufgrund erhöhter Sicherheitsanforderungen, einschließlich PCI-Compliance, werden wichtige Cloudanbieter und Webserver voraussichtlich die Unterstützung von TLS-Versionen beenden, die älter als 1.2 sind. 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 arbeiten, sollten Sie Ihre Xamarin-Projekte so aktualisieren, dass sie die folgenden Einstellungen verwenden, und dann Ihre Apps für Ihre Benutzer neu erstellen und 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 "Android-Optionen für Project-Eigenschaften>" und dann auf die Schaltfläche "Erweitert":

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

Aktualisieren von Xamarin.iOS auf TLS 1.2

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

Diese Einstellung finden Sie in Project Properties > iOS Build:

Konfigurieren von 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 die HttpClient-Implementierungsoption in Project Options > Build Mac Build>, um TLS 1.2 in einer Xamarin.Mac-App zu aktivieren:

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 TLS 1.2-unterstützten Konfigurationen erläutert. Anwendungsentwickler sollten diese Alternativen nur berücksichtigen, wenn sie die Risiken der Verwendung verschiedener TLS-Unterstützungsebenen verstehen.

HttpClient-Implementierung

Xamarin-Entwickler konnten die systemeigenen Netzwerkklassen immer in ihrem Code verwenden. Es gibt jedoch auch eine Option, die bestimmt, welcher Netzwerkstapel von den HttpClient Klassen verwendet wird. Dies bietet eine vertraute .NET-API mit den Geschwindigkeits- und Sicherheitsvorteilen der systemeigenen Plattform.

Die Optionen sind:

  • Verwalteter Stapel – die 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 systemeigenen Optionen können schneller sein und eine bessere Sicherheit haben (einschließlich TLS 1.2), bieten jedoch 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
  • Native – TLS 1.2 unter Android.

Für neue Xamarin-Projekte wird standardmäßig die systemeigene Implementierung verwendet, die TLS 1.2 unterstützt (die für alle Projekte empfohlen wird), sie können jedoch aus Kompatibilitätsgründen wieder zum verwalteten Code wechseln.

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 die HttpClient- und SSL/TLS-Implementierung in Xamarin-Projekten erläutert. Die HttpClient-Implementierung kann auch dynamisch im Code festgelegt werden. Weitere Informationen finden Sie in den folgenden plattformspezifischen Leitfäden:

Zusammenfassung

Anwendungen sollten transport Layer Security (TLS) 1.2 verwenden, sofern möglich. Sie sollten die Einstellungen in vorhandenen Anwendungen entsprechend den Anweisungen in diesem Artikel aktualisieren und dann für Ihre Kunden neu erstellen und erneut bereitstellen.