Estou feliz em compartilhar isso Gateway de aplicativo do Azure agora suporta segurança da camada de transporte mútuo (mTLS) e protocolo de standing de certificado on-line (OCSP). Essa foi uma das principais perguntas de nossos clientes, pois eles procuravam opções de comunicação mais seguras para as cargas de trabalho na nuvem. Aqui, abordo o que é mTLS, como funciona, quando considerá-lo e como verificá-lo no Utility Gateway.
O que é mTLS?
A segurança da camada de transporte mútuo (TLS) é um processo de comunicação em que ambas as partes verificam e autenticam os certificados digitais uma da outra antes de configurar uma conexão TLS criptografada. O mTLS é uma extensão do protocolo TLS padrão e fornece uma camada adicional de segurança sobre o TLS. Com o TLS tradicional, o servidor é autenticado, mas o cliente não. Isso significa que qualquer pessoa pode se conectar ao servidor e iniciar uma conexão segura, mesmo que o cliente ou usuário não esteja autorizado a fazê-lo. Ao usar o mTLS, você pode garantir que o cliente e o servidor se autentiquem antes de estabelecer a conexão segura, o que garantirá que não haja acesso não autorizado possível em nenhum dos lados. O mTLS funciona na estrutura de confiança zero – nunca confie, sempre verifique. Essa estrutura garante que nenhuma conexão seja confiável automaticamente.
Como funciona o mTLS?
O mTLS funciona usando uma combinação de certificados digitais seguros e chaves privadas para autenticar o cliente e o servidor. O cliente e o servidor possuem, cada um, seu próprio certificado digital e chave privada, que são usados para estabelecer confiança e uma conexão segura. O cliente verifica o certificado do servidor e o servidor verifica o certificado do cliente — isso garante que ambas as partes sejam quem afirmam ser.
Como o TLS e o mTLS são diferentes?
Os protocolos TLS e mTLS são usados para criptografar a comunicação de rede entre o cliente e o servidor. No protocolo TLS apenas o cliente verifica a validade do servidor antes de estabelecer a comunicação criptografada. O servidor não valida o cliente durante o handshake TLS. O mTLS, por outro lado, é uma variação do TLS que adiciona uma camada adicional de segurança ao exigir autenticação mútua entre cliente e servidor. Isso significa que tanto o cliente quanto o servidor devem apresentar um certificado válido antes que a conexão criptografada possa ser estabelecida. Isso torna o mTLS mais seguro do que o TLS, pois adiciona uma camada adicional de segurança ao validar a autenticidade do cliente e do servidor.
Fluxo de chamada TLS:
fluxo de chamada mTLS:
Quando considerar mTLS
- O mTLS é útil onde as organizações seguem uma abordagem de confiança zero. Dessa forma, um servidor deve garantir a validade do cliente ou dispositivo específico que deseja usar as informações do servidor. Por exemplo, uma organização pode ter um aplicativo da Net que funcionários ou clientes podem usar para acessar informações muito confidenciais, como dados financeiros, registros médicos ou informações pessoais. Ao usar o mTLS, a organização pode garantir que apenas funcionários, clientes ou dispositivos autorizados possam acessar o aplicativo da internet e as informações confidenciais que ele contém.
- Os dispositivos da Web das Coisas (IoT) conversam entre si com mTLS. Cada dispositivo IoT apresenta seu próprio certificado entre si para ser autenticado.
- A maioria dos novos aplicativos está trabalhando em arquitetura baseada em microsserviços. Os microsserviços se comunicam entre si por meio de interfaces de programação de aplicativos (APIs). Ao usar o mTLS, você pode garantir que a comunicação da API seja segura. Além disso, usando mTLS, você pode garantir que APIs maliciosas não se comuniquem com suas APIs
- Para evitar vários ataques, como força bruta ou preenchimento de credenciais. Se um invasor puder obter uma senha vazada ou um BOT tentar forçar sua entrada com senhas aleatórias, será inútil – sem um certificado TLS válido, o invasor não conseguirá passar pelo handshake TLS.
Em alto nível, agora você entende o que é mTLS e como ele oferece uma comunicação mais segura seguindo o modelo de segurança de confiança zero. Se você é novo no Utility Gateway e nunca configurou o TLS no Utility Gateway, siga o hyperlink para criar APPGW e servidores de back-end. Este tutorial usa certificados autoassinados para fins de demonstração. Para um ambiente de produção, use certificados assinados por CA confiáveis publicamente. Depois que o TLS de ponta a ponta estiver configurado, você pode seguir este hyperlink para configurando o mTLS. Para testar esta configuração, o pré-requisito é ter o OpenSSL e a ferramenta curl instalados em sua máquina. Você deve ter acesso ao certificado do cliente e à chave privada do cliente.
Vamos nos aprofundar em como testar o mTLS Utility Gateway. No comando abaixo, a chave privada do cliente é usada para criar uma assinatura para o Certificado Verificar mensagem. A chave privada não sai do dispositivo cliente durante o handshake mTLS.
Verifique sua configuração mTLS usando curl/openssl
- curl -vk https://
> –key shopper.key –cert shopper.crt -> Seu endereço de domínio
shopper.key -> chave privada do cliente
shopper.crt -> Certificado de cliente
Na saída acima, estamos verificando se o mTLS está configurado corretamente. Se estiver configurado corretamente, durante o handshake TSL o servidor solicitará o certificado do cliente. Em seguida, no handshake, você precisa verificar se o cliente apresentou um certificado de cliente junto com o Certificado Verificar mensagem. Como o certificado do cliente period válido, o handshake foi bem-sucedido e o aplicativo respondeu com uma resposta HTTP “200”.
Se o certificado do cliente não for assinado pelo arquivo CA raiz que foi carregado de acordo com o hyperlink na etapa 8, o aperto de mão falhará. Abaixo está a resposta que obteremos se o certificado do cliente não for válido.
Como alternativa, você pode verificar a conectividade mTLS com um comando OpenSSL.
- openssl s_client -connect
:443 -key shopper.key -cert shopper.crt
Depois que a conexão SSL for estabelecida, digite conforme escrito abaixo:
GET / HTTP/1.1
Host:
Você deve obter o código de resposta – 200. Isso valida que a autenticação mútua foi bem-sucedida.
Conclusão
Espero que você tenha aprendido agora o que é mTLS, qual problema ele resolve, como configurá-lo no Utility Gateway e como validar a configuração. É um dos vários ótimos recursos do gateway de aplicativo que fornece ao cliente uma camada further de segurança para os vários casos de uso que discutimos acima. Uma coisa a observar é que atualmente o gateway de aplicativo oferece suporte a mTLS apenas no front-end (entre o cliente e o gateway de aplicativo). Se o seu servidor de back-end estiver esperando um certificado de cliente durante a negociação SSL entre o gateway de aplicativo e o servidor de back-end, essa solicitação falhará. Se você quiser aprender como enviar certificados para aplicativos de back-end by way of cabeçalho http, aguarde nosso próximo weblog da série mTLS. Nesse weblog, abordarei como usar o recurso Rewrite para enviar o certificado do cliente como cabeçalho http. Também discutiremos como podemos fazer a validação OCSP do certificado do cliente.
Saiba mais e comece a usar o Azure Utility Gateway
O que é o Gateway de Aplicativo do Azure | Microsoft Be taught
Visão geral da autenticação mútua no Azure Utility Gateway | Microsoft Be taught
Perguntas frequentes sobre o Gateway de Aplicativo do Azure | Microsoft Be taught