Seguridad de la capa de transporte (TLS) 1.2

El uso de la versión más reciente de Seguridad de la capa de transporte (TLS) es importante para garantizar que las comunicaciones de red de aplicaciones sean seguras.

Advertencia

Abril de 2018: debido al aumento de los requisitos de seguridad, incluido el cumplimiento de PCI, se espera que los principales proveedores de nube y servidores web dejen de admitir versiones de TLS anteriores a la 1.2. Los proyectos de Xamarin creados en versiones anteriores de Visual Studio usan de forma predeterminada versiones anteriores de TLS.

Para asegurarse de que las aplicaciones sigan funcionando con estos servidores y servicios, debe actualizar los proyectos de Xamarin para que usen la configuración siguiente y, a continuación, volver a compilar y volver a implementar las aplicaciones para los usuarios.

Los proyectos deben hacer referencia al ensamblado System.Net.Http y configurarse como se muestra a continuación.

Actualización de Xamarin.Android a TLS 1.2

Actualice las opciones de implementación de HttpClient y SSL/TLS para habilitar la seguridad de TLS 1.2.

Nota:

Requiere Android 5.0 o posterior.

Esta configuración se puede encontrar en Project Propiedades de Android y, a continuación, hacer clic en el botón Avanzadas:

Configure HttpClient y TLS en Visual Studio dispositivos Android.

Actualización de Xamarin.iOS a TLS 1.2

Actualice la opción Implementación de HttpClient para habilitar la seguridad de TSL 1.2.

Esta configuración se puede encontrar en la Project propiedades de iOS:

Configure HttpClient y TLS en Visual Studio dispositivos i O S.

Actualización de Xamarin.Mac a TLS 1.2

En Visual Studio para Mac, para habilitar TLS 1.2 en una aplicación de Xamarin.Mac, actualice la opción Implementación de HttpClient en la compilación de Mac de Project Opciones de compilación:

Configuración de HttpClient en Visual Studio para Mac

Advertencia

La próxima versión de Xamarin.Mac 4.8 solo será compatible con macOS 10.9 o versiones posteriores. Las versiones anteriores de Xamarin.Mac son compatibles con macOS 10.7 o versiones posteriores, pero estas versiones anteriores de macOS carecen de infraestructura TLS suficiente para admitir TLS 1.2. Para macOS 10.7 o Mac OS 10.8 de destino, use Xamarin.Mac 4.6 o una versión anterior.

Opciones de configuración alternativas

En esta sección se de soluciones alternativas a las configuraciones compatibles con TLS 1.2 mostradas anteriormente. Los desarrolladores de aplicaciones solo deben considerar estas alternativas si comprenden los riesgos de usar distintos niveles de compatibilidad con TLS.

Implementación de HttpClient

Los desarrolladores de Xamarin siempre han podido usar las clases de red nativas en su código, pero también hay una opción que determina qué pila de redes usan las HttpClient clases. Esto proporciona una API de .NET conocida que tiene las ventajas de velocidad y seguridad de la plataforma nativa.

Las opciones son:

  • Pila administrada: la funcionalidad de red proporcionada por Mono o
  • Pila nativa: varias API de red proporcionadas por las plataformas subyacentes (Android, iOS o macOS).

La pila administrada proporciona el mayor nivel de compatibilidad con el código .NET existente, pero puede ser más lenta y dar lugar a un tamaño ejecutable mayor.

Las opciones nativas pueden ser más rápidas y tener una mayor seguridad (incluido TLS 1.2), pero es posible que no proporcionen toda la funcionalidad y las opciones de la HttpClient clase.

Implementación de SSL/TLS (Android)

Las opciones de proyecto de Android también permiten elegir qué implementación de SSL/TLS admitir:

  • Mono/Managed: TLS 1.1 en Android
  • Nativo: TLS 1.2 en Android.

Los nuevos proyectos de Xamarin tienen como valor predeterminado la implementación nativa que admite TLS 1.2 (que se recomienda para todos los proyectos), pero puede volver al código administrado si es necesario por motivos de compatibilidad.

Importante

La opción Mono/Managed se ha quitado de las opciones de proyecto de iOS y Mac.

La opción Nativo siempre se usa en plataformas iOS y Mac.

Detalles específicos de la plataforma

En el resumen anterior se explica la configuración de nivel de proyecto para la implementación de HttpClient y SSL/TLS en proyectos de Xamarin. La implementación de HttpClient también se puede establecer dinámicamente en el código. Consulte estas guías específicas de la plataforma para obtener más información:

Resumen

Las aplicaciones deben usar Seguridad de la capa de transporte (TLS) 1.2 siempre que sea posible. Debe actualizar la configuración de las aplicaciones existentes según las instrucciones de este artículo y, a continuación, volver a compilar y volver a implementar en los clientes.