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í.

Upozornění

Duben 2018 – Vzhledem ke zvýšeným požadavkům na zabezpečení, včetně dodržování předpisů PCI, se očekává, že hlavní poskytovatelé cloudu a webové servery přestanou podporovat verze protokolu TLS starší než 1.2. Projekty Xamarin vytvořené v předchozích verzích Visual Studio ve výchozím nastavení používají starší verze protokolu TLS.

Pokud chcete zajistit, aby vaše aplikace dál fungovaly s těmito servery a službami, měli byste aktualizovat projekty Xamarin tak, aby se uvedená nastavení uvedená níže, a pak aplikace znovu sestavit a znovu nasadit 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.Android na TLS 1.2

Aktualizujte implementaci HttpClient a možnosti implementace SSL/TLS, aby bylo možné povolit zabezpečení protokolu TLS 1.2.

Poznámka

Vyžaduje Android 5.0 nebo novější.

Tato nastavení najdete v části Project Vlastnosti Androidu a potom klikněte na tlačítko Upřesnit:

Nakonfigurujte HttpClient a TLS v Visual Studio pro zařízení s Androidem.

Aktualizace Xamarin.iOS na TLS 1.2

Aktualizujte možnost Implementace HttpClient a povolte zabezpečení TSL 1.2.

Toto nastavení najdete v části Project sestavení iOS:

Nakonfigurujte HttpClient a TLS v Visual Studio pro zařízení s iOS.

Aktualizace Xamarin.Mac na TLS 1.2

Pokud Visual Studio pro Mac povolit protokol TLS 1.2 v aplikaci Xamarin.Mac, aktualizujte možnost Implementace HttpClient v části Project Sestavení pro Mac:

Konfigurace HttpClient v Visual Studio pro Mac

Upozornění

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 při používání různých úrovní podpory protokolu TLS.

Implementace HttpClient

Vývojáři Xamarinu vždy mohli ve svém kódu používat nativní síťové třídy, existuje ale také možnost, která určuje, který síťový zásobník třídy HttpClient používají. To poskytuje známé rozhraní .NET API, které má výhody rychlosti a zabezpečení nativní platformy.

Možnosti:

  • Spravovaný zásobník – monofonní síťová funkce nebo
  • Nativní zásobník – různá síťová rozhraní API poskytovaná základní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 může mít za následek větší velikost spustitelného souboru.

Nativní možnosti mohou 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 pro Android také umožňují zvolit, kterou implementaci SSL/TLS chcete podporovat:

  • Mono/managed – TLS 1.1 v Androidu
  • Nativní – TLS 1.2 v Androidu.

Nové projekty Xamarin ve výchozím nastavení podporují nativní implementaci, která podporuje protokol TLS 1.2 (což se doporučuje pro všechny projekty), ale v případě potřeby můžete přepnout zpět na spravovaný kód.

Důležité

Možnost Mono/Managed byla z možností projektu pro iOS a Mac odebrána.

Možnost Native 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é nastavit dynamicky v kódu. Další informace najdete v těchto příručkách pro konkrétní platformu:

Souhrn

Kdykoli je to možné, aplikace by měly používat protokol TLS (Transport Layer Security) 1.2. Nastavení v existujících aplikacích byste měli aktualizovat podle pokynů v tomto článku a pak je znovu sestavit a znovu nasadit pro zákazníky.