Protokół Transport Layer Security (TLS) 1.2

Korzystanie z najnowszej wersji protokołu Transport Layer Security (TLS) jest ważne, aby zapewnić bezpieczeństwo komunikacji sieciowej aplikacji.

Ostrzeżenie

Kwiecień 2018 r. — ze względu na zwiększone wymagania dotyczące zabezpieczeń, w tym zgodność ze standardem PCI, oczekuje się, że główni dostawcy usług w chmurze i serwery internetowe przestaną obsługiwać wersje protokołu TLS starsze niż 1.2. Projekty Xamarin utworzone w poprzednich wersjach programu Visual Studio domyślnie używają starszych wersji protokołu TLS.

Aby upewnić się, że aplikacje będą nadal działać z tymi serwerami i usługami, należy zaktualizować projekty platformy Xamarin, aby używać poniższych ustawień, a następnie ponownie skompilować i ponownie wdrożyć aplikacje dla użytkowników.

Projekty muszą odwoływać się do zestawu System.Net.Http i być skonfigurowane, jak pokazano poniżej.

Aktualizowanie platformy Xamarin.Android do protokołu TLS 1.2

Zaktualizuj opcje implementacji protokołu HTTPClient i implementacji protokołu SSL/TLS, aby włączyć zabezpieczenia protokołu TLS 1.2.

Uwaga

Wymaga systemu Android 5.0 lub nowszego.

Te ustawienia można znaleźć w obszarze Właściwości > projektu Opcje systemu Android, a następnie kliknąć przycisk Zaawansowane :

Configure HttpClient and TLS in Visual Studio for Android devices.

Aktualizowanie platformy Xamarin.iOS do protokołu TLS 1.2

Zaktualizuj opcję Implementacja klienta HttpClient, aby włączyć zabezpieczenia TSL 1.2.

To ustawienie można znaleźć w temacie Project Properties iOS Build (Właściwości > projektu iOS Build):

Configure HttpClient and TLS in Visual Studio for i O S devices.

Aktualizowanie platformy Xamarin.Mac do protokołu TLS 1.2

W Visual Studio dla komputerów Mac, aby włączyć protokół TLS 1.2 w aplikacji Xamarin.Mac, zaktualizuj opcję Implementacja klienta HttpClient w obszarze Project Options Build Mac Build (Kompilowanie> komputerów Mac przy użyciu opcji > projektu):

Configure HttpClient in Visual Studio for Mac

Ostrzeżenie

Nadchodząca wersja platformy Xamarin.Mac 4.8 będzie obsługiwała tylko system macOS w wersji 10.9 lub wyższej. Poprzednie wersje platformy Xamarin.Mac obsługiwały system macOS w wersji 10.7 lub wyższej, ale starsze wersje systemu macOS nie posiadają odpowiedniej infrastruktury TLS do obsługi protokołu TLS 1.2. W przypadku systemu macOS 10.7 lub macOS 10.8 należy użyć platformy Xamarin.Mac w wersji 4.6 lub wcześniejszej.

Alternatywne opcje konfiguracji

W tej sekcji omówiono alternatywy dla konfiguracji obsługiwanych przez protokół TLS 1.2 przedstawionych powyżej. Deweloperzy aplikacji powinni rozważyć te alternatywy tylko wtedy, gdy rozumieją ryzyko korzystania z różnych poziomów obsługi protokołu TLS.

Implementacja klienta HttpClient

Deweloperzy platformy Xamarin zawsze mogli używać natywnych klas sieciowych w kodzie, jednak istnieje również opcja określająca, który stos sieciowy jest używany przez HttpClient klasy. Zapewnia to znany interfejs API platformy .NET, który ma zalety szybkości i zabezpieczeń platformy natywnej.

Dostępne opcje:

  • Zarządzany stos — funkcje sieci dostarczane przez mono lub
  • Stos natywny — różne interfejsy API sieci udostępniane przez platformy bazowe (Android, iOS lub macOS).

Zarządzany stos zapewnia najwyższy poziom zgodności z istniejącym kodem platformy .NET, jednak może być wolniejszy i powodować większy rozmiar pliku wykonywalnego.

Opcje natywne mogą być szybsze i mają lepsze zabezpieczenia (w tym TLS 1.2), ale mogą nie zapewniać wszystkich funkcji i opcji HttpClient klasy.

Implementacja protokołu SSL/TLS (Android)

Opcje projektu systemu Android umożliwiają również wybranie implementacji protokołu SSL/TLS do obsługi:

  • Mono/Managed — TLS 1.1 w systemie Android
  • Natywny — tls 1.2 w systemie Android.

Nowe projekty platformy Xamarin są domyślne dla natywnej implementacji obsługującej protokół TLS 1.2 (zalecany dla wszystkich projektów), ale w razie potrzeby można wrócić do kodu zarządzanego, jeśli jest to wymagane ze względów zgodności.

Ważne

Opcja Mono/Managed została usunięta z opcji projektu dla systemów iOS i Mac.

Opcja Natywna jest zawsze używana na platformach iOS i Mac.

Szczegóły specyficzne dla platformy

Powyższe podsumowanie wyjaśnia ustawienia na poziomie projektu dla implementacji protokołu HTTPClient i SSL/TLS w projektach platformy Xamarin. Implementację klienta HttpClient można również ustawić dynamicznie w kodzie. Aby uzyskać więcej informacji, zapoznaj się z tymi przewodnikami specyficznymi dla platformy:

Podsumowanie

Aplikacje powinny używać protokołu Transport Layer Security (TLS) 1.2 wszędzie tam, gdzie jest to możliwe. Ustawienia w istniejących aplikacjach należy zaktualizować zgodnie z instrukcjami w tym artykule, a następnie ponownie skompilować i wdrożyć ponownie dla klientów.