Transport Layer Security (TLS) 1.2

L'uso della versione più recente di Transport Layer Security (TLS) è importante per garantire la sicurezza delle comunicazioni di rete delle applicazioni.

Avviso

Aprile 2018 : a causa di requisiti di sicurezza maggiori, tra cui conformità PCI, principali provider di servizi cloud e server Web devono interrompere il supporto delle versioni TLS precedenti alla 1.2. Per impostazione predefinita, i progetti Xamarin creati nelle versioni precedenti di Visual Studio usano versioni precedenti di TLS.

Per garantire che le app continuino a funzionare con questi server e servizi, è necessario aggiornare i progetti Xamarin per usare le impostazioni seguenti, quindi ricompiolere e distribuire nuovamente le app agli utenti.

I progetti devono fare riferimento all'assembly System.Net.Http ed essere configurati come illustrato di seguito.

Aggiornare Xamarin.Android a TLS 1.2

Aggiornare le opzioni di implementazione httpClient e di implementazione SSL/TLS per abilitare la sicurezza TLS 1.2.

Nota

Richiede Android 5.0 o versione successiva.

Queste impostazioni sono disponibili in Project Properties > Android Options e quindi facendo clic sul pulsante Avanzate :

Configure HttpClient and TLS in Visual Studio for Android devices.

Aggiornare Xamarin.iOS a TLS 1.2

Aggiornare l'opzione Implementazione HttpClient per abilitare la sicurezza TSL 1.2.

Questa impostazione è reperibile in Project Properties iOS Build:This setting can be found in Project Properties > iOS Build:

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

Aggiornare Xamarin.Mac a TLS 1.2

In Visual Studio per Mac, per abilitare TLS 1.2 in un'app Xamarin.Mac, aggiornare l'opzione Implementazione HttpClient in Opzioni > progetto Build > Mac:

Configure HttpClient in Visual Studio for Mac

Avviso

La prossima versione di Xamarin.Mac 4.8 supporterà solo macOS 10.9 o versione successiva. Le versioni precedenti di Xamarin.Mac supportavano macOS 10.7 o versione successiva, ma queste versioni precedenti di macOS non dispongono di un'infrastruttura TLS sufficiente per il supporto di TLS 1.2. Per scegliere come destinazione macOS 10.7 o macOS 10.8, usare Xamarin.Mac 4.6 o versioni precedenti.

Opzioni di configurazione alternative

Questa sezione illustra le alternative alle configurazioni supportate da TLS 1.2 illustrate in precedenza. Gli sviluppatori di applicazioni devono prendere in considerazione queste alternative solo se comprendono i rischi derivanti dall'uso di diversi livelli di supporto TLS.

Implementazione di HttpClient

Gli sviluppatori Xamarin sono sempre stati in grado di usare le classi di rete native nel codice, ma esiste anche un'opzione che determina quale stack di rete viene usato dalle HttpClient classi. Ciò offre un'API .NET familiare che offre i vantaggi di velocità e sicurezza della piattaforma nativa.

Le opzioni sono:

  • Stack gestito: funzionalità di rete fornita da Mono o
  • Stack nativo: varie API di rete fornite dalle piattaforme sottostanti (Android, iOS o macOS).

Lo stack gestito offre il massimo livello di compatibilità con il codice .NET esistente, ma può essere più lento e comportare dimensioni eseguibili maggiori.

Le opzioni native possono essere più veloci e avere una maggiore sicurezza (incluso TLS 1.2), ma potrebbero non fornire tutte le funzionalità e le opzioni della HttpClient classe.

Implementazione SSL/TLS (Android)

Le opzioni del progetto Android consentono anche di scegliere l'implementazione SSL/TLS da supportare:

  • Mono/Gestito : TLS 1.1 in Android
  • Nativo : TLS 1.2 in Android.

Per impostazione predefinita, i nuovi progetti Xamarin sono l'implementazione nativa che supporta TLS 1.2 (consigliata per tutti i progetti), ma è possibile tornare al codice gestito, se necessario per motivi di compatibilità.

Importante

L'opzione Mono/Gestita è stata rimossa dalle opzioni del progetto iOS e Mac .

L'opzione Nativa viene sempre usata nelle piattaforme iOS e Mac.

Dettagli specifici della piattaforma

Il riepilogo precedente illustra le impostazioni a livello di progetto per l'implementazione httpClient e SSL/TLS nei progetti Xamarin. L'implementazione di HttpClient può essere impostata in modo dinamico anche nel codice. Per altre informazioni, vedere queste guide specifiche della piattaforma:

Riepilogo

Le applicazioni devono usare Transport Layer Security (TLS) 1.2 laddove possibile. È consigliabile aggiornare le impostazioni nelle applicazioni esistenti in base alle istruzioni riportate in questo articolo, quindi ricompirla e distribuirla nuovamente ai clienti.