Protocolo TLS 1.2

O uso da versão mais recente do Protocolo TLS é importante para garantir que as comunicações de rede do aplicativo sejam seguras.

Aviso

Abril de 2018 – Devido ao aumento dos requisitos de segurança, incluindo conformidade com PCI, os principais provedores de nuvem e servidores Web devem parar de dar suporte a versões TLS anteriores à 1.2. Os projetos do Xamarin criados em versões anteriores do Visual Studio usam versões mais antigas do TLS.

Para garantir que seus aplicativos continuem funcionando com esses servidores e serviços, você deve atualizar seus projetos do Xamarin para usar as configurações abaixo e, em seguida, compilar novamente e implantar novamente seus aplicativos para seus usuários .

Os projetos devem referenciar o assembly System.Net.Http e ser configurados conforme mostrado abaixo.

Atualizar o Xamarin.Android para o TLS 1.2

Atualize as opções de implementação de HttpClient e SSL/TLS para habilitar a segurança do TLS 1.2.

Observação

Requer o Android 5.0 ou mais recente.

Essas configurações podem ser encontradas em Propriedades do Projeto Opções > do Android e, em seguida, clicando no botão Avançado :

Configure HttpClient e TLS no Visual Studio para dispositivos Android.

Atualizar o Xamarin.iOS para o TLS 1.2

Atualize a opção Implementação de HttpClient para habilitar a segurança do TSL 1.2.

Essa configuração pode ser encontrada no Build do iOS de Propriedades > do Projeto:

Configure o HttpClient e o TLS no Visual Studio para dispositivos iO S.

Atualizar o Xamarin.Mac para o TLS 1.2

Em Visual Studio para Mac, para habilitar o TLS 1.2 em um aplicativo Xamarin.Mac, atualize a opção Implementação de HttpClient em Opções > do Projeto Compilar > Build do Mac:

Configurar o HttpClient no Visual Studio para Mac

Aviso

A próxima versão do Xamarin.Mac 4.8 dará suporte somente a macOS 10.9 ou posterior. As versões anteriores do Xamarin.Mac eram compatíveis com macOS 10.7 ou superior, mas essas versões mais antigas do macOS não têm infraestrutura TLS suficiente para dar suporte ao TLS 1.2. Para macOS 10.7 ou macOS 10.8, use o Xamarin.Mac 4.6 ou anterior.

Opções de configuração alternativas

Esta seção discute alternativas às configurações com suporte do TLS 1.2 mostradas acima. Os desenvolvedores de aplicativos só devem considerar essas alternativas se entenderem os riscos de usar diferentes níveis de suporte ao TLS.

Implementação de HttpClient

Os desenvolvedores do Xamarin sempre foram capazes de usar as classes de rede nativas em seu código, no entanto, também há uma opção que determina qual pilha de rede é usada pelas HttpClient classes. Isso fornece uma API .NET familiar que tem as vantagens de velocidade e segurança da plataforma nativa.

As opções são:

  • Pilha gerenciada – a funcionalidade de rede fornecida pelo Mono ou
  • Pilha nativa – várias APIs de rede fornecidas pelas plataformas subjacentes (Android, iOS ou macOS).

A pilha gerenciada fornece o nível mais alto de compatibilidade com o código .NET existente, no entanto, pode ser mais lenta e resultar em um tamanho executável maior.

As opções nativas podem ser mais rápidas e ter melhor segurança (incluindo o TLS 1.2), mas podem não fornecer todas as funcionalidades e opções da HttpClient classe.

Implementação de SSL/TLS (Android)

As opções de projeto do Android também permitem que você escolha qual implementação de SSL/TLS oferecer suporte:

  • Mono/Gerenciado – TLS 1.1 no Android
  • Nativo – TLS 1.2 no Android.

Novos projetos Xamarin assumem como padrão a implementação nativa que dá suporte ao TLS 1.2 (que é recomendado para todos os projetos), no entanto, você pode alternar de volta para o código gerenciado, se necessário, por motivos de compatibilidade.

Importante

A opção Mono/Managed foi removida das opções de projeto do iOS e mac .

A opção Nativo é sempre usada em plataformas iOS e Mac.

Detalhes específicos da plataforma

O resumo acima explica as configurações no nível do projeto para a implementação de HttpClient e SSL/TLS em projetos do Xamarin. A implementação de HttpClient também pode ser definida dinamicamente no código. Consulte estes guias específicos da plataforma para obter mais informações:

Resumo

Os aplicativos devem usar o protocolo TLS 1.2 sempre que possível. Você deve atualizar as configurações em aplicativos existentes de acordo com as instruções neste artigo e, em seguida, compilar novamente e implantar novamente em seus clientes.