Protokol TLS (Transport Layer Security) 1.2
Použití nejnovější verze protokolu TLS (Transport Layer Security ) je důležité k zajištění zabezpečení síťové komunikace aplikací.
Upozorňující
Duben 2018 – Kvůli zvýšeným požadavkům na zabezpečení, včetně dodržování předpisů PCI, očekává se, že hlavní poskytovatelé cloudu a webové servery přestanou podporovat verze TLS starší než 1.2. Projekty Xamarin vytvořené v předchozích verzích sady Visual Studio ve výchozím nastavení používají starší verze protokolu TLS.
Aby vaše aplikace dál fungovaly s těmito servery a službami, měli byste projekty Xamarin aktualizovat tak, aby používaly následující nastavení, a pak znovu sestavovat a znovu nasazovat aplikace pro uživatele.
Projekty musí odkazovat na sestavení System.Net.Http a musí být nakonfigurovány, jak je znázorněno níže.
Aktualizace Xamarin.Androidu na TLS 1.2
Aktualizujte implementaci HttpClient a možnosti implementace PROTOKOLU SSL/TLS a povolte zabezpečení protokolu TLS 1.2.
Poznámka:
Vyžaduje Android 5.0 nebo novější.
Tato nastavení najdete v možnostech Androidu vlastností > projektu a poté klikněte na tlačítko Upřesnit:
Aktualizace Xamarin.iOS na TLS 1.2
Aktualizujte možnost Implementace HttpClient tak, aby povolte zabezpečení TSL 1.2.
Toto nastavení najdete v sestavení vlastností > projektu pro iOS:
Aktualizace Xamarin.Mac na TLS 1.2
Pokud chcete v Visual Studio pro Mac povolit protokol TLS 1.2 v aplikaci Xamarin.Mac, aktualizujte možnost Implementace HttpClient v buildu Build > Mac v možnostech > projektu:
Upozorňující
Nadcházející verze Xamarin.Mac 4.8 bude podporovat jen macOS 10.9 nebo novější. Předchozí verze Xamarin.Mac podporují macOS 10.7 nebo vyšší, ale tyto starší verze macOS nemají dostatečnou infrastrukturu TLS pro podporu protokolu TLS 1.2. Pokud je cílem macOS 10.7 nebo macOS 10.8, použijte Xamarin.Mac 4.6 nebo starší.
Alternativní možnosti konfigurace
Tato část popisuje alternativy k výše uvedeným konfiguracím podporovaným protokolem TLS 1.2. Vývojáři aplikací by měli tyto alternativy zvážit pouze v případě, že chápou rizika použití různých úrovní podpory protokolu TLS.
Implementace HttpClient
Vývojáři Xamarinu vždy mohli používat nativní síťové třídy ve svém kódu, ale existuje také možnost, která určuje, který síťový zásobník třídy používají HttpClient
. Poskytuje známé rozhraní .NET API, které má výhody rychlosti a zabezpečení nativní platformy.
Možnosti jsou následující:
- Spravovaný zásobník – funkce mono-poskytované sítě, nebo
- Nativní zásobník – různá síťová rozhraní API poskytovaná podkladovými platformami (Android, iOS nebo macOS).
Spravovaný zásobník poskytuje nejvyšší úroveň kompatibility s existujícím kódem .NET, ale může být pomalejší a výsledkem je větší velikost spustitelného souboru.
Nativní možnosti můžou být rychlejší a mají lepší zabezpečení (včetně protokolu TLS 1.2), ale nemusí poskytovat všechny funkce a možnosti HttpClient
třídy.
Implementace SSL/TLS (Android)
Možnosti projektu androidu také umožňují zvolit, která implementace PROTOKOLU SSL/TLS podporuje:
- Mono/spravovaná – TLS 1.1 v Androidu
- Nativní – TLS 1.2 v Androidu.
Nové projekty Xamarin ve výchozím nastavení nativní implementace, která podporuje protokol TLS 1.2 (který se doporučuje pro všechny projekty), ale v případě potřeby z důvodu kompatibility můžete přepnout zpět na spravovaný kód.
Důležité
Možnost Mono/Managed byla odebrána z možností projektu iOS a Mac .
Nativní možnost se vždy používá na platformách iOS a Mac.
Podrobnosti specifické pro platformu
Výše uvedený souhrn vysvětluje nastavení na úrovni projektu pro implementaci HttpClient a SSL/TLS v projektech Xamarin. Implementaci HttpClient lze také dynamicky nastavit v kódu. Další informace najdete v těchto příručkách pro konkrétní platformu:
Shrnutí
Aplikace by měly používat protokol TLS (Transport Layer Security) 1.2, kdykoli je to možné. Nastavení v existujících aplikacích byste měli aktualizovat podle pokynů v tomto článku a pak znovu sestavit a znovu nasadit pro vaše zákazníky.
Související odkazy
- Zabezpečení přenosu aplikací
- Xamarin.Android Environment
- Xamarin Cycle 9 (únor 2017)
- TLS (Wikipedie)
- Poznámky k verzi Mono 4.8 – Podpora protokolu TLS 1.2
- BoringSSL
- Vysvětlení HttpClient, HttpClientHandler a WebRequestHandler
- System.Net.HttpClient
- System.Net.HttpClientHandler
- System.Net.HttpMessageHandler
- System.Net.HttpWebRequest
- System.Net.WebClient
- System.Net.WebRequest
- java.net.URL Připojení ion
- Foundation.CFNetwork
- Foundation.NSUrl Připojení ion
- System.Net.WebRequest