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 :
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):
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):
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.
Pokrewne łącza
- Zabezpieczenia transportu aplikacji
- Środowisko Xamarin.Android
- Xamarin Cycle 9 (luty 2017)
- TLS (Wikipedia)
- Informacje o wersji mono 4.8 — obsługa protokołu TLS 1.2
- BoringSSL
- HttpClient, HttpClientHandler i WebRequestHandler — objaśnione
- System.Net.HttpClient
- System.Net.HttpClientHandler
- System.Net.HttpMessageHandler
- System.Net.HttpWebRequest
- System.Net.WebClient
- System.Net.WebRequest
- java.net.URL Połączenie ion
- Foundation.CFNetwork
- Foundation.NSUrl Połączenie ion
- System.Net.WebRequest