Protocolo TLS 1.2

Usar a versão mais recente do TLS (Transport Layer Security) é importante para garantir que as comunicações de rede de aplicativos sejam seguras.

Aviso

Abril de 2018 – Devido ao aumento dos requisitos de segurança, incluindo conformidade com PCI, espera-se que os principais provedores de nuvem e servidores Web parem de oferecer suporte a versões TLS anteriores à 1.2. Projetos Xamarin criados em versões anteriores do Visual Studio padrão para usar versões mais antigas do TLS.

Para garantir que seus aplicativos continuem a funcionar com esses servidores e serviços, você deve atualizar seus projetos Xamarin para usar as configurações abaixo e, em seguida, recriar e reimplantar seus aplicativos para seus usuários.

Os projetos devem fazer referência ao assembly System.Net.Http e ser configurados conforme mostrado abaixo.

Atualizar Xamarin.Android para TLS 1.2

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

Observação

Requer Android 5.0 ou mais recente.

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

Configure HttpClient e TLS no Visual Studio para dispositivos Android.

Atualizar Xamarin.iOS para TLS 1.2

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

Essa configuração pode ser encontrada em Project Properties > iOS Build:

Configure HttpClient e TLS no Visual Studio para dispositivos i O S.

Atualizar Xamarin.Mac para TLS 1.2

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

Configurar 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 para as configurações suportadas pelo 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 a TLS.

Implementação do 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 mais alto nível de compatibilidade com o código .NET existente, no entanto, pode ser mais lenta e resultar em um tamanho maior do executável.

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

Implementação SSL/TLS (Android)

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

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

Novos projetos Xamarin padrão para a implementação nativa que suporta TLS 1.2 (que é recomendado para todos os projetos), no entanto, você pode voltar para o código gerenciado se necessário por razões de compatibilidade.

Importante

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

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

Detalhes específicos da plataforma

O resumo acima explica as configurações de nível de projeto para implementação de HttpClient e SSL/TLS em projetos Xamarin. A implementação 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 Transport Layer Security (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, recriar e reimplantar para seus clientes.