Primeiramente, vamos ver como funciona cada tipo de conexão (simple way). Depois entender as diferenças entre elas e, por último, aprender como o proxy se comporta na sua interceptação SSL.
Conexão comum de SSL
As sessões web criptografadas autenticam o servidor ao usuário utilizando uma
PKI (Private Key Infrastructure) com certificado do tipo x509, que é um algoritmo que permite assinar chaves através de uma Autoridade Certificadora (CA), mantendo o controle das mesmas.
Os certificados das CAs já são distribuídos nos navegadores dos usuários (Internet Explorer, Mozilla Firefox, Google Chrome, dentre outros). Exemplo de CA: VeriSign, ICP-Brasil etc.
O navegador do usuário irá avisar dos problemas de certificado, se alguns dos seguintes itens abaixo não forem verdadeiros:
- O certificado foi assinado por uma Autoridade Certificadora reconhecida;
- O certificado é atualmente válido e não está expirado;
- O Common Name (Nome Comum) do certificado confere com o nome de DNS do servidor.
Considerando que os pedidos acima sejam verdadeiros, o navegador do usuário irá autenticar o servidor solicitando um "desafio" baseado no certificado apresentado. Resolvido o "desafio", isto prova que o servidor possui a chave privada para o certificado. A sessão, então, pode continuar com a criptografia host-a-host, garantindo integridade e autenticação fim-a-fim.
Conexão Man-in-the-Middle
Diferentemente de uma conexão SSL comum, o atacante vai criar um certificado forjado para entregar ao usuário, fingindo ser do servidor autêntico (que possui um certificado assinado por uma CA oficial).
Enquanto o servidor não autentica o usuário, o protocolo SSL (em transações web) é altamente suscetível aos ataques MITM - Man-In-The-Middle (homem do meio, na tradução literal).
Comparando às condições que o navegador impõe para verificar se o certificado recebido é autêntico, alguma daquelas condições será falsa, daí vem a famosa mensagem de erro que muitos conhecem:
A mensagem quer dizer que o navegador não conseguiu conferir se o certificado é autêntico e entrega a decisão ao usuário. A falha acontece nesta etapa. Como a maioria deles é leiga, vai permitir a sessão SSL forjada pelo atacante.
A partir deste ponto, o atacante consegue enxergar todo o tráfego, visualizando URLs e conteúdos dos pacotes, podendo capturar dados sigilosos do usuário.
Interceptação SSL via proxy e MITM
A interceptação SSL ocorre da mesma forma: o servidor proxy entrega um certificado que não foi originado de uma CA oficial, intermediando a conexão entre o cliente e o servidor, caracterizando um MITM.
Mas afinal, o que essa interceptação diferencia de um ataque MITM? A questão é muito simples: o usuário estará ciente de que suas conexões serão interceptadas! Daí vem a pergunta: e se o usuário questionar a respeito de sua privacidade?
No
e2guardian, é possível selecionarmos apenas os sites seguros que serão interceptados. Sites como Internet Banking, por exemplo, podem ser livremente acessados sem interceptação. Portanto, basta avisar ao usuário que os sites verificados pelo sistema serão apenas aqueles que não infringem a privacidade deles.
Veremos, mais à frente, o que fazer para evitarmos esta indesejável mensagem no navegador do usuário.