Introdução
O mTLS (Mutual Transport Layer Security) é uma extensão do protocolo TLS (Transport Layer Security) que garante autenticação mútua entre as partes de uma conexão.
Diferente do TLS tradicional, onde apenas o servidor apresenta um certificado digital, no mTLS tanto o cliente quanto o servidor se autenticam, cada um provando sua identidade por meio de certificados digitais válidos.
Essa abordagem é amplamente utilizada em ambientes de alta segurança, pois assegura que ambas as extremidades da comunicação são entidades legítimas e confiáveis.
Um ponto fundamental do mTLS é que o servidor define quais Autoridades Certificadoras (CAs) são consideradas confiáveis. Assim, apenas certificados emitidos ou assinados por essas CAs poderão ser aceitos durante o processo de autenticação, garantindo maior controle sobre quem pode se conectar.
Como funciona o mTLS
Durante o handshake TLS, ocorre a negociação inicial da conexão segura. Neste momento, ocorre a troca de certificados digitais de ambos os lados: o cliente (como um navegador ou aplicação) envia o seu certificado ao servidor e recebe o do servidor em troca.
Essa solicitação é iniciada pelo servidor, que informa a necessidade de autenticação mútua e envia seu próprio certificado.
Cada certificado contém informações como:
A chave pública associada;
O emissor (CA que o assinou);
O prazo de validade;
E outros atributos de identidade.
Se a validação for bem-sucedida e o certificado for confiável, a identidade é confirmada e a comunicação segura é estabelecida.
mTLS na GoCache
Na GoCache, é possível configurar a autenticação mútua entre a GoCache e o cliente.
Para isso, você deve inserir na GoCache seu certificado mTLS e também definir quais Autoridades Certificadoras (CAs) serão consideradas válidas por nós para a validação do certificado apresentado pelo cliente.
O procedimento de inserção do certificado e das CAs é recomendado via API, você pode ver mais sobre isso aqui.
É importante destacar que o processo de validação mTLS ocorre exclusivamente na comunicação entre a GoCache e o cliente, ou seja:
Na GoCache, você cadastra o certificado mTLS e as CAs confiáveis.
A GoCache é quem solicita e valida o certificado apresentado pelo cliente que tenta se conectar à borda.
Todo o processo de autenticação mTLS acontece dentro da CDN.
O servidor de origem não participa da validação mTLS, se for necessário solicitar algo a ele, a GoCache fará isso separadamente, sem repetir a autenticação mútua. Portanto, a GoCache não realiza mTLS com o servidor de destino, apenas com o usuário que acessa o site do cliente que trafega por nossa infraestrutura.
Além disso, para que a autenticação mTLS funcione corretamente, é necessário criar uma Smart Rule de Firewall com o critério sendo “Status mTLS”.
Essa regra é responsável por avaliar o resultado da autenticação e definir a ação correspondente (permitir ou bloquear a requisição).
Exemplo de regra:
Neste exemplo, caso a verificação de mTLS da GoCache informe que o certificado é inválido, não foi enviado ou foi invalidado pela CA a requisição será bloqueada pelo firewall, recebendo o status code 403.
Caso fique com dúvidas ou tenha algum problema, entre em contato com o nosso suporte. Teremos prazer em ajudá-lo!
E-mail: suporte@gocache.com.br.