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 d’application.
Avertissement
Avril 2018 : en raison d’exigences de sécurité accrues, notamment la conformité PCI, les principaux fournisseurs de cloud et les serveurs web sont censés 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 par défaut utilisent des versions antérieures de TLS.
Pour vous assurer que vos applications continuent à 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 les options d’implémentation HttpClient et SSL/TLS pour activer la sécurité TLS 1.2.
Remarque
Nécessite Android 5.0 ou une version ultérieure.
Ces paramètres sont disponibles dans les options Android des propriétés > du projet, puis en cliquant sur le bouton Avancé :
Mettre à jour Xamarin.iOS vers TLS 1.2
Mettez à jour l’option Implémentation httpClient pour activer la sécurité TSL 1.2.
Ce paramètre se trouve dans la build iOS propriétés > du projet :
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 Implémentation httpClient dans la build Mac de build > Mac des options > de projet :
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 indiquées ci-dessus. Les développeurs d’applications ne doivent prendre en compte 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 de mise en 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 de la vitesse et de la 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 niveau de compatibilité le plus élevé avec le code .NET existant, mais elle peut être plus lente et entraîner une plus grande taille d’exécutable.
Les options natives peuvent être plus rapides et avoir 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 (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 décrit les paramètres au niveau du projet pour l’implémentation 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, consultez ces guides spécifiques à la plateforme :
Résumé
Les applications doivent utiliser le protocole TLS (Transport Layer Security) 1.2 dans la mesure du possible. Vous devez mettre à jour les paramètres dans les applications existantes en fonction des instructions de cet article, puis recréer et redéployer sur vos clients.
Liens connexes
- Sécurité de transport de l’application
- Environnement Xamarin.Android
- Xamarin Cycle 9 (février 2017)
- TLS (Wikipédia)
- Notes de publication mono 4.8 - Prise en charge de TLS 1.2
- BoringSSL
- HttpClient, HttpClientHandler et WebRequestHandler expliqués
- System.Net.HttpClient
- System.Net.HttpClientHandler
- System.Net.HttpMessageHandler
- System.Net.HttpWebRequest
- System.Net.WebClient
- System.Net.WebRequest
- java.net.URL Connecter ion
- Foundation.CFNetwork
- Foundation.NSUrl Connecter ion
- System.Net.WebRequest