Segurança é uma preocupação constante em qualquer tipo de infraestrutura de rede. É preciso proteger clientes, servidores e os dados que trafegam entre eles de ataques, que podem ter origem externa ou dentro da própria rede.
Criminosos estão atrás das suas informações, sejam elas dados de cartão de crédito dos seus consumidores ou planos estratégicos do seu negócio, e vão aproveitar qualquer oportunidade para conseguir esse acesso.
As estratégias desses agentes mal-intencionados incluem o uso de técnicas como roubo de credenciais de acesso, interceptação de dados em trânsito (conhecidos como ataques “man-in-the-middle”), spoofing (quando um criminoso se passa por um componente legítimo da rede para roubar dados) e abuso de APIs (manipulando chamadas para gerar resultados inesperados e extrair dados), só para citar alguns exemplos.
Uma forma de se proteger contra essas e outras ameaças é implementar um esquema de autenticação mútua em sua infraestrutura: antes de iniciar uma conexão, clientes e servidores verificam sua identidade usando certificados digitais, e toda a comunicação entre eles é criptografada.
Esse esquema se chama mTLS (Mutual Transport Layer Security, ou “TLS mútuo”), e está disponível na Plataforma de Edge Computing da Azion. Neste artigo, vamos explicar como ele funciona e os benefícios que ele pode trazer.
O problema da confiança
Imagine uma aplicação simples composta por um front-end, como a vitrine de um e-commerce, e um servidor, onde os dados vindos do front-end são processados e armazenados. Para que ela opere de forma segura, é necessário garantir que:
- O cliente é quem diz ser, e tem autorização para acessar o servidor.
- O servidor é quem diz ser, e não um impostor.
- Os dados não poderão ser interceptados durante o trajeto entre o cliente e o servidor.
Uma forma de implementar segurança é com credenciais de acesso, como nome de usuário e senha. Nesse modelo, uma aplicação só consegue acessar os recursos de um servidor após apresentar credenciais válidas. Problema resolvido? Nem tanto…
Por si só, esse sistema tem múltiplos pontos de falha: senhas fracas podem ser descobertas usando um ataque de “força bruta”, e senhas fortes podem ser roubadas usando engenharia social ou outros métodos.
Além disso, ele assume que qualquer portador de credenciais válidas é um cliente legítimo. Isso significa que, de posse das credenciais, um malfeitor poderá se conectar ao servidor sem ser questionado. E sequer chegamos aos itens 2 e 3 da lista!
Como TLS e mTLS funcionam
Uma abordagem melhor é estabelecer uma cadeia de confiança usando certificados digitais. Você já usa esse sistema diariamente, mesmo que não perceba.
Ao acessar um website seguro (indicado pelo uso do protocolo HTTPS na URL), o servidor envia ao cliente (seu navegador) um certificado TLS (Transport Layer Security) emitido por uma autoridade certificadora (CA), que contém informações sobre a identidade do proprietário do certificado e uma data de validade.
O navegador verifica essas informações junto à CA, e assim pode garantir que o servidor realmente é quem diz ser, como uma loja virtual ou banco, e não um impostor que está tentando roubar suas informações.
O certificado também inclui uma chave criptográfica, que será usada para criptografar todos os dados em trânsito para evitar que sejam interceptados. Esse processo é conhecido como “TLS Handshake”, ou “aperto de mão TLS”.
Neste exemplo, apenas o servidor tem sua identidade verificada. mTLS é uma extensão desse conceito, onde tanto o servidor quanto o cliente trocam certificados para validar suas identidades. Só aí uma conexão é estabelecida e os dados podem trafegar.
Como uma conexão mTLS típica funciona. 1) O cliente (à esquerda) abre uma conexão com o servidor (à direita). 2) O servidor entrega seu certificado, 3) O cliente valida o certificado do servidor, e entrega o seu certificado. 4) O servidor valida o certificado do cliente, e estabelece a conexão. Imagem: Azion Technologies.
Vale mencionar que mTLS não é um novo protocolo. Ele é parte da especificação TLS, e qualquer servidor capaz de realizar autenticação TLS também é capaz de mTLS, bastando que seja configurado para isso.
Benefícios do mTLS
O mTLS atende a todo os requisitos de nosso exemplo anterior:
-
Garante a identidade do cliente, independentemente das credenciais de acesso. Mesmo que consiga descobrir quais são, um malfeitor não terá acesso à sua aplicação pois não tem um certificado válido. Isso impossibilita ataques baseados no roubo de credenciais.
-
Garante a identidade do servidor, evitando ataques de “spoofing”. Se o servidor apresentar um certificado inválido, a conexão sequer é estabelecida e qualquer tentativa de ataque é frustrada antes que possa começar.
-
Impede ataques man-in-the-middle. Os dados em trânsito são criptografados usando uma chave selecionada durante o aperto de mão inicial, e conhecida apenas pelo cliente e pelo servidor. Mesmo que sejam interceptados por um criminoso, sem a chave será impossível decodificá-los.
Estas características tornam o mTLS um recurso essencial em segmentos de mercado como o finance e e-commerce, onde a segurança das informações é vital. Também é um dos pilares para implementação de uma arquitetura de segurança “Zero Trust”, que tem como lema a expressão “nunca confie, sempre verifique”.
Ele também pode ser usado para autenticar estações de trabalho em uma rede corporativa, sensores em uma infraestrutura de “Internet das Coisas” (IoT), aplicações rodando no edge, ou qualquer outra situação onde a confiança mútua é necessária.
mTLS na Plataforma de Edge Computing da Azion
A Plataforma de Edge Computing da Azion tem suporte a mTLS. Ele é um pré-requisito para Open Banking, e pode ser necessário se sua Edge Application oferece serviços financeiros e pagamentos.
Para habilitar mTLS, sua aplicação deve estar operando com o protocolo HTTPS. Também é necessário um Certificado Digital com suporte para mTLS, gerado por uma Autoridade de Certificação terceira. Na Azion, chamamos esse certificado de Trusted CA. Vale lembrar que os certificados gratuitos, gerados internamente pela Azion (Azion [SAN]), não têm suporte para mTLS.
Para detalhes sobre como configurar o suporte a mTLS em sua aplicação, consulte nossa documentação.
Conclusão
mTLS é uma ferramenta essencial para proteger seus servidores e aplicações, garantindo a privacidade dos dados dos seus clientes e a compliance com padrões de segurança mundialmente reconhecidos.
Para saber mais sobre como os serviços da Azion podem ajudar a elevar o nível de segurança oferecido aos seus usuários e à sua organização, contate nossos experts.