TLS (Transport Layer Security) 1.2

L’utilisation de la dernière version de TLS (Transport Layer Security) est importante pour garantir la sécurité des communications réseau des applications.

Avertissement

Avril 2018 : en raison d’exigences de sécurité accrues, notamment la conformité PCI, les principaux fournisseurs de cloud et serveurs web devraient cesser de prendre en charge les versions TLS antérieures à la version 1.2. Les projets Xamarin créés dans les versions précédentes de Visual Studio utilisent par défaut des versions antérieures de TLS.

Pour vous assurer que vos applications continuent de fonctionner avec ces serveurs et services, vous devez mettre à jour vos projets Xamarin pour utiliser les paramètres ci-dessous, puis recréer et redéployer vos applications sur vos utilisateurs.

Les projets doivent référencer l’assembly System.Net.Http et être configurés comme indiqué ci-dessous.

Mettre à jour Xamarin.Android vers TLS 1.2

Mettez à jour l’implémentation HttpClient et les options d’implémentation SSL/TLS pour activer la sécurité TLS 1.2.

Notes

Nécessite Android 5.0 ou version ultérieure.

Ces paramètres se trouvent dans Options Android des propriétés > du projet , puis en cliquant sur le bouton Avancé :

Configurez HttpClient et TLS dans Visual Studio pour les appareils Android.

Mettre à jour Xamarin.iOS vers TLS 1.2

Mettez à jour l’option d’implémentation HttpClient pour activer la sécurité TSL 1.2.

Ce paramètre se trouve dans Propriétés > du projet, build iOS :

Configurez HttpClient et TLS dans Visual Studio pour les appareils iO S.

Mettre à jour Xamarin.Mac vers TLS 1.2

Dans Visual Studio pour Mac, pour activer TLS 1.2 dans une application Xamarin.Mac, mettez à jour l’option d’implémentation HttpClient dans Project Options > Build > Mac :

Configurer HttpClient dans Visual Studio pour Mac

Avertissement

La prochaine version de Xamarin.Mac (4.8) prendra uniquement en charge macOS 10.9 ou ultérieur. Les versions précédentes de Xamarin.Mac prenaient en charge macOS 10.7 ou ultérieur, mais l’infrastructure TLS des anciennes versions de macOS n’était pas suffisante pour prendre en charge TLS 1.2. Pour cibler macOS 10.7 ou macOS 10.8, utilisez Xamarin.Mac 4.6 ou antérieur.

Autres options de configuration

Cette section décrit les alternatives aux configurations prises en charge par TLS 1.2 ci-dessus. Les développeurs d’applications ne doivent envisager ces alternatives que s’ils comprennent les risques liés à l’utilisation de différents niveaux de prise en charge TLS.

Implémentation de HttpClient

Les développeurs Xamarin ont toujours été en mesure d’utiliser les classes réseau natives dans leur code, mais il existe également une option qui détermine la pile réseau utilisée par les HttpClient classes. Cela fournit une API .NET familière qui présente les avantages en matière de vitesse et de sécurité de la plateforme native.

Les options sont :

  • Pile managée : la fonctionnalité réseau fournie par Mono, ou
  • Pile native : différentes API réseau fournies par les plateformes sous-jacentes (Android, iOS ou macOS).

La pile managée offre le plus haut niveau de compatibilité avec le code .NET existant, mais elle peut être plus lente et entraîner une taille d’exécutable plus importante.

Les options natives peuvent être plus rapides et offrir une meilleure sécurité (y compris TLS 1.2), mais peuvent ne pas fournir toutes les fonctionnalités et options de la HttpClient classe.

Implémentation SSL/TLS (Android)

Les options de projet Android vous permettent également de choisir l’implémentation SSL/TLS à prendre en charge :

  • Mono/Géré – TLS 1.1 sur Android
  • Natif : TLS 1.2 sur Android.

Les nouveaux projets Xamarin sont par défaut l’implémentation native qui prend en charge TLS 1.2 (qui est recommandé pour tous les projets), mais vous pouvez revenir au code managé si nécessaire pour des raisons de compatibilité.

Important

L’option Mono/Managed a été supprimée des options de projet iOS et Mac.

L’option Native est toujours utilisée sur les plateformes iOS et Mac.

Détails spécifiques à la plateforme

Le résumé ci-dessus explique les paramètres au niveau du projet pour l’implémentation de HttpClient et SSL/TLS dans Xamarin Projects. L’implémentation de HttpClient peut également être définie dynamiquement dans le code. Pour plus d’informations, reportez-vous à ces guides spécifiques à la plateforme :

Résumé

Les applications doivent utiliser TLS (Transport Layer Security) 1.2 dans la mesure du possible. Vous devez mettre à jour les paramètres dans les applications existantes conformément aux instructions de cet article, puis recréer et redéployer vos clients.