Planejar e implementar o TLS (Transport Layer Security) para aplicativos, incluindo o Serviço de Aplicativo do Azure e o Gerenciamento de API

Concluído

O TLS (Transport Layer Security) é um protocolo criptográfico projetado para proteger as comunicações por redes, fornecendo criptografia, autenticação e integridade de dados. Ele funciona estabelecendo um handshake seguro entre um cliente e um servidor, negociando conjuntos de criptografia e validando certificados emitidos por autoridades de certificação confiáveis. Esse processo garante que informações confidenciais, como credenciais e dados de aplicativo, sejam transmitidas em um formulário criptografado, protegendo-as contra interceptação ou adulteração durante o trânsito. O TLS evoluiu através de várias versões, com o TLS 1.2 e o TLS 1.3 oferecendo criptografia mais forte, handshakes mais rápidos e privacidade aprimorada em comparação com iterações anteriores.

No contexto do Azure, o TLS desempenha um papel fundamental na proteção de dados em serviços como Serviço de Aplicativo, Gerenciamento de API, Armazenamento do Azure e Banco de Dados SQL. O Microsoft Azure utiliza o TLS para todas as conexões para garantir a criptografia durante o trânsito, mitigando riscos como ataques do tipo "man-in-the-middle". As versões modernas do TLS (1.2 ou superior) são necessárias. O Azure se alinha aos padrões de segurança do setor e fornece recursos como o Perfect Forward Secrecy e a criptografia autenticada, que aprimoram a resiliência contra ameaças em evolução. Versões mais recentes do TLS não só protegem os dados do cliente, mas também garantem a conformidade com os requisitos regulatórios, tornando o TLS um componente fundamental da postura de segurança do Azure.

O que o Transport Layer Security faz para seus aplicativos

O TLS (Transport Layer Security) criptografa os dados que viajam entre clientes e servidores, impedindo a escuta e a adulteração. Quando um usuário se conecta ao aplicativo Web ou à API, o TLS cria um túnel criptografado que protege informações confidenciais, como tokens de autenticação, dados pessoais e transações comerciais, contra interceptação.

As organizações modernas dependem do TLS para:

  • Atender aos requisitos regulatórios: padrões como PCI DSS, HIPAA e outros padrões exigem criptografia para dados em trânsito.
  • Crie confiança do cliente: os indicadores de segurança do navegador e os avisos de certificado criam diretamente a confiança do usuário.
  • Evitar violações de dados: conexões não criptografadas expõem credenciais, tokens de sessão e dados de negócios para invasores de rede.

O TLS substitui o protocolo SSL (Secure Sockets Layer) preterido. Sempre configure serviços para usar o TLS 1.2 ou superior, com o TLS 1.3 recomendado para a segurança e o desempenho ideais.

Por que o TLS é importante no Azure

Os serviços do Azure lidam diariamente com milhões de solicitações de clientes em regiões globais. O TLS fornece três proteções críticas:

  • Autenticação: os certificados comprovam a identidade do serviço, impedindo ataques man-in-the-middle em que invasores usurpam a identidade dos seus pontos de extremidade.
  • Confidencialidade: a criptografia garante que somente as partes autorizadas possam ler dados transmitidos, mesmo quando o tráfego cruza redes não confiáveis.
  • Integridade: as assinaturas criptográficas detectam qualquer violação de dados durante a transmissão.

Sem o TLS, um invasor na mesma rede que os usuários pode capturar credenciais de entrada, chaves de API ou registros de clientes. O Azure inclui suporte interno do TLS em serviços de plataforma, mas você deve configurar versões mínimas e políticas de certificado para se alinhar aos seus requisitos de segurança.

Importante

O TLS protege apenas os dados em trânsito. Você deve criptografar dados em repouso separadamente usando a criptografia do Armazenamento do Azure, a criptografia de dados transparente do banco de dados ou o Azure Disk Encryption.

Configurar o TLS para o Serviço de Aplicativo do Azure

No código do aplicativo, você pode acessar os certificados públicos ou privados que você adiciona ao Serviço de Aplicativo do Azure. O código do aplicativo pode atuar como um cliente e acessar um serviço externo que requer autenticação de certificado. Também pode precisar executar tarefas criptográficas.

Essa abordagem para usar certificados em seu código usa a funcionalidade TLS (Transport Layer Security) no Serviço de Aplicativo, que exige que seu aplicativo esteja na camada Básica ou superior. Se o aplicativo estiver na camada Gratuita ou Compartilhada, você poderá incluir o arquivo de certificado no repositório do aplicativo.

Ao permitir que o Serviço de Aplicativo gerencie seus certificados SSL (TLS/Secure Sockets Layer), você pode manter os certificados e o código do aplicativo separadamente e proteger seus dados confidenciais.

O Serviço de Aplicativo do Azure fornece terminação TLS gerenciada com renovação automática de certificado. Você controla a versão mínima do TLS e pode impor HTTPS para todas as conexões.

Impor a versão mínima do TLS

  1. No portal do Azure, navegue até o recurso do Serviço de Aplicativo.
  2. Em Configurações, escolha Configuração.
  3. Selecione a guia Configurações Gerais.
  4. Defina a versão mínima do TLS como 1.2 ou 1.3 (1.3 recomendada).
  5. Selecione Salvar para aplicar a alteração.

Os clientes que tentam se conectar com versões TLS mais antigas recebem um erro de conexão, impedindo que sistemas herdados usem criptografia fraca.

Exigir conexões HTTPS

  1. No recurso do Serviço de Aplicativo, selecione Configuração em Configurações.
  2. Selecione a guia Configurações Gerais.
  3. Defina HTTPS somente como Ativado.
  4. Clique em Salvar.

O Azure redireciona automaticamente solicitações HTTP para HTTPS, garantindo que todo o tráfego use conexões criptografadas. As conexões criptografadas eliminam avisos de conteúdo misto em navegadores e simplificam as auditorias de conformidade.

Adicionar um certificado de domínio personalizado

Os aplicativos do Serviço de Aplicativo recebem um certificado gratuito *.azurewebsites.net . Para cargas de trabalho de produção usando domínios personalizados:

  1. Compre ou importe um certificado que corresponda ao seu nome de domínio.
  2. No Serviço de Aplicativo, selecione Certificados em Configurações.
  3. Selecione Adicionar certificado e siga o assistente para carregar seu certificado ou criar um certificado gerenciado do Serviço de Aplicativo.
  4. Associe o certificado ao seu domínio personalizado em domínios personalizados.

Os certificados gerenciados são renovados automaticamente antes da expiração. Certificados privados exigem renovação manual e recarregamento.

Configurar o TLS para o Gerenciamento de API do Azure

O Gerenciamento de API do Azure fica entre clientes e APIs de back-end, manipulando autenticação, limitação de taxa e transformação. Você configura o TLS nas camadas de gateway (voltado para o cliente) e back-end (serviço a serviço).

Definir a versão mínima do TLS para o gateway

  1. No portal do Azure, abra sua instância de Gerenciamento de API.
  2. Em Segurança, selecione Protocolos + criptografias.
  3. Desmarque as caixas de seleção para SSL 3.0, TLS 1.0 e TLS 1.1.
  4. Verifique se o TLS 1.2 está habilitado (o suporte ao TLS 1.3 depende da camada de serviço).
  5. Clique em Salvar.

Definir uma versão mínima do TLS impede que os clientes negociem versões de protocolo fracas. Teste com os consumidores de API antes de desabilitar o TLS 1.1 se você oferecer suporte a aplicativos móveis mais antigos ou sistemas herdados.

Exigir HTTPS para endpoints de API

  1. Navegue até APIs em sua instância de Gerenciamento de API.
  2. Selecione a API que você deseja proteger.
  3. Em Configurações, localize a opção de esquema de URL .
  4. Selecione somente HTTPS.
  5. Clique em Salvar.

O Gerenciamento de API rejeita solicitações HTTP com uma resposta 403 Proibido, protegendo contra a exposição acidental de pontos de extremidade não criptografados.

Configurar a validação do TLS de back-end

Quando o Gerenciamento de API chama serviços de back-end, verifique se essas conexões também usam TLS:

  1. Em sua API, selecione Design e escolha uma operação.
  2. Na seção Back-end , selecione o ícone de lápis a ser editado.
  3. Habilitar validação da cadeia de certificados e validar o nome do certificado.
  4. Carregue certificados raiz confiáveis se o back-end usar certificados privados ou autoassinados.

Verifique as conexões de back-end para impedir que o Gerenciamento de API aceite certificados inválidos ou expirados de serviços de back-end, mantendo a criptografia de ponta a ponta.

Dica

Use o Azure Key Vault para armazenar e girar certificados para o Serviço de Aplicativo e o Gerenciamento de API. Um processo centralizado de gerenciamento do ciclo de vida do certificado simplifica o relatório de conformidade.

Planejar a configuração do TLS

Antes de implantar alterações de TLS na produção:

  • Auditar clientes existentes: identifique todos os sistemas que usam o TLS 1.0 ou 1.1 e planeje suas atualizações.
  • Testar renovações de certificado: verifique se a renovação automatizada funciona para certificados gerenciados e documente os procedimentos de renovação manual para certificados privados.
  • Configurar o monitoramento: configurar alertas do Azure Monitor para falhas de handshake do TLS e avisos de expiração de certificado.
  • Mapeamentos de conformidade de documentos: registre quais configurações de TLS atendem a requisitos regulatórios específicos para trilhas de auditoria.

Desabilitar versões TLS mais antigas pode interromper a compatibilidade com clientes herdados. Coordene com os proprietários de aplicativos e planeje uma distribuição em fases com comunicação clara com os consumidores de API.

Principais conclusões

  • Configure a versão mínima do TLS como 1.2 ou superior em todos os serviços do Azure para evitar vulnerabilidades de criptografia fracas.
  • Imponha conexões somente HTTPS no Serviço de Aplicativo e no Gerenciamento de API para eliminar o tráfego não criptografado.
  • Habilite a validação de certificado de back-end no Gerenciamento de API para manter a criptografia de ponta a ponta entre os limites de serviço.
  • Use o Azure Key Vault para gerenciamento centralizado de certificados e fluxos de trabalho de renovação automatizados.
  • Teste as alterações de configuração do TLS em ambientes de teste antes da implantação em produção para identificar problemas de compatibilidade com clientes.
  • Audite as instâncias existentes do Serviço de Aplicativo do Azure e do Gerenciamento de API para identificar os serviços que ainda permitem o TLS 1.0 ou 1.1.
  • Crie um Azure Key Vault e migre o armazenamento de certificados de uploads manuais para o gerenciamento centralizado baseado em cofre.
  • Configure alertas do Azure Monitor para expiração do certificado (30 dias antes da expiração) e falhas de handshake do TLS para evitar interrupções de serviço.