Udostępnij za pośrednictwem


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 :

Skonfiguruj program HttpClient i protokół TLS w programie Visual Studio dla urządzeń z systemem Android.

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):

Skonfiguruj programy HttpClient i TLS w programie Visual Studio dla urządzeń z systemem i O S.

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):

Konfigurowanie klienta HttpClient w Visual Studio dla komputerów 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.