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

Concluído

Transport Layer Security (TLS) é um protocolo criptográfico projetado para proteger as comunicações através de redes, fornecendo criptografia, autenticação e integridade de dados. Ele funciona estabelecendo um handshake seguro entre um cliente e um servidor, negociando pacotes de codificação e validando certificados emitidos por autoridades de certificação confiáveis. Esse processo garante que informações confidenciais, como credenciais e dados de aplicativos, sejam transmitidas de forma criptografada, protegendo-as de intercetaçã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, apertos de mão mais rápidos e privacidade aprimorada em comparação com iterações anteriores.

No contexto do Azure, o TLS desempenha um papel crítico na proteção de dados em serviços como Serviço de Aplicativo, Gerenciamento de API, Armazenamento do Azure e Banco de Dados SQL. Azure exige TLS para todas as conexões para garantir a criptografia durante a transmissão, mitigando riscos como ataques de interceptação. São necessárias versões modernas de TLS (1.2 ou superior). O Azure está alinhado com os padrões de segurança da indústria e oferece funcionalidades como Perfect Forward Secrecy e encriptação autenticada, que aumentam a resiliência face a ameaças em evolução. As versões mais recentes do TLS não só protegem os dados dos clientes, como também garantem o cumprimento dos requisitos regulamentares, tornando o TLS um componente fundamental da postura de segurança do Azure.

O que o Transport Layer Security faz por seus aplicativos

O Transport Layer Security (TLS) criptografa os dados que viajam entre clientes e servidores, evitando escutas e adulterações. Quando um usuário se conecta ao seu 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 intercetação.

As organizações modernas confiam no TLS para:

  • Cumprir requisitos regulamentares: Normas como PCI DSS, HIPAA e outras normas exigem encriptação para dados em trânsito.
  • Construa a confiança do cliente: Indicadores de segurança do navegador e avisos de certificados aumentam diretamente a confiança dos utilizadores.
  • Evite violações de dados: conexões não criptografadas expõem credenciais, tokens de sessão e dados corporativos a invasores de rede.

O TLS substitui o protocolo SSL (Secure Sockets Layer) obsoleto. Configure sempre os serviços para usar TLS 1.2 ou superior, sendo recomendado TLS 1.3 para segurança e desempenho ótimos.

Por que o TLS é importante no Azure

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

  • Autenticação: os certificados comprovam a identidade do seu serviço, evitando ataques man-in-the-middle em que os atacantes se fazem passar pelos seus endpoints.
  • Confidencialidade: A encriptação garante que apenas as partes autorizadas podem ler os dados transmitidos, mesmo quando o tráfego atravessa redes não fidedignas.
  • Integridade: As assinaturas criptográficas detetam qualquer adulteração de dados durante a transmissão.

Sem TLS, um invasor na mesma rede que seus usuários poderia capturar credenciais de entrada, chaves de API ou registros de clientes. O Azure inclui suporte TLS incorporado entre serviços de plataforma, mas tem de configurar versões mínimas e políticas de certificado para se alinharem com os seus requisitos de segurança.

Importante

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

Configurar TLS para o Serviço de Aplicativo do Azure

No código do aplicativo, você pode acessar os certificados públicos ou privados adicionados ao Serviço de Aplicativo do Azure. O código do aplicativo pode atuar como um cliente e acessar um serviço externo que exija autenticação de certificado. Também pode ser necessário 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 seu aplicativo estiver na camada Gratuito ou Compartilhado, você poderá incluir o arquivo de certificado no repositório do aplicativo.

Ao permitir que o Serviço de Aplicativo gerencie seus certificados TLS/Secure Sockets Layer (SSL), 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 Definições, selecione Configuração.
  3. Selecione a guia Configurações gerais .
  4. Defina a versão mínima do TLS para 1.2 ou 1.3 (recomenda-se a 1.3).
  5. Selecione Guardar para aplicar a alteração.

Os clientes que tentam se conectar com versões mais antigas do TLS recebem um erro de conexão, impedindo que os 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. Selecione Guardar.

O Azure redireciona automaticamente as 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 nos 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 pelo 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. Os certificados privados requerem renovação manual e recarregamento.

Configurar TLS para 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 + cifras.
  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 sua camada de serviço).
  5. Selecione Guardar.

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

Forçar HTTPS nos endpoints da API

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

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

Configurar a validação TLS do back-end

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

  1. Na API, selecione Design e escolha uma operação.
  2. Na seção Back-end , selecione o ícone de lápis para editar.
  3. Habilite Validar cadeia de certificados e Validar nome do certificado.
  4. Carregue certificados raiz confiáveis se o seu backend usar certificados privados ou autoassinados.

Verifique as conexões com backup 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.

Sugestão

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 gestão do ciclo de vida dos certificados simplifica os relatórios de conformidade.

Planeje sua configuração TLS

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

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

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

Principais conclusões

  • Configure a versão mínima do TLS para 1.2 ou superior em todos os serviços do Azure para evitar vulnerabilidades de criptografia fraca.
  • 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 do serviço.
  • Use o Azure Key Vault para gerenciamento centralizado de certificados e fluxos de trabalho de renovação automatizada.
  • Teste as alterações de configuração do TLS em ambientes de teste antes da implementação em produção para identificar problemas de compatibilidade do cliente.
  • Audite suas instâncias existentes do Serviço de Aplicativo do Azure e do Gerenciamento de API para identificar serviços que ainda permitem TLS 1.0 ou 1.1.
  • Crie um Cofre de Chaves do Azure e migre o armazenamento de certificados de uploads manuais para a gestão centralizada no cofre.
  • Configure alertas do Azure Monitor para expiração de certificado (30 dias antes do vencimento) e falhas de handshake TLS para evitar interrupções de serviço.