Planejar e implementar o TLS (Transport Layer Security) para aplicativos, incluindo o Serviço de Aplicativo do Azure e o Gerenciamento de API
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
- No portal do Azure, navegue até o recurso do Serviço de Aplicativo.
- Em Configurações, escolha Configuração.
- Selecione a guia Configurações Gerais.
- Defina a versão mínima do TLS como 1.2 ou 1.3 (1.3 recomendada).
- 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
- No recurso do Serviço de Aplicativo, selecione Configuração em Configurações.
- Selecione a guia Configurações Gerais.
- Defina HTTPS somente como Ativado.
- 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:
- Compre ou importe um certificado que corresponda ao seu nome de domínio.
- No Serviço de Aplicativo, selecione Certificados em Configurações.
- Selecione Adicionar certificado e siga o assistente para carregar seu certificado ou criar um certificado gerenciado do Serviço de Aplicativo.
- 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
- No portal do Azure, abra sua instância de Gerenciamento de API.
- Em Segurança, selecione Protocolos + criptografias.
- Desmarque as caixas de seleção para SSL 3.0, TLS 1.0 e TLS 1.1.
- Verifique se o TLS 1.2 está habilitado (o suporte ao TLS 1.3 depende da camada de serviço).
- 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
- Navegue até APIs em sua instância de Gerenciamento de API.
- Selecione a API que você deseja proteger.
- Em Configurações, localize a opção de esquema de URL .
- Selecione somente HTTPS.
- 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:
- Em sua API, selecione Design e escolha uma operação.
- Na seção Back-end , selecione o ícone de lápis a ser editado.
- Habilitar validação da cadeia de certificados e validar o nome do certificado.
- 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.
Próximas etapas recomendadas
- 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.