Mas por que isso é tão importante no seu servidor? Ainda mais nesse cenário em que tantas vulnerabilidades (Heartbleed, POODLE..) que tem afetado o uso do SSL e TLS?
Por Sérgio Leal
No passado foi chamado de Perfect Forward Secrecy (PFS), mas um pouco de bom sendo encurtou o nome. Pois, nada é perfeito muito menos protocolos criptográficos. 🙂
Como a sessão é estabelecida?
Tradicionalmente, aprendemos que a chave de sessão é protegida pelo par de chaves assimétricas ligados ao certificados do servidor. Muito resumidamente, uma chave simetrica (PreMasterSecret) é gerada pelo cliente, e enviada pelo servidor protegida criptograficamente pela chave publica do certificado do servidor.
O ataque
Se durante a vida de um serviço todo o fluxo de informações for gravado? Claro que elas são ‘ininteligíveis’ e não servirão para nada. Mas se no futuro existe uma falha que causa a perda da chave privada do servidor (como no caso do Heartbleed), toda a comunicação passada (e gravada) poderá ser decodificada clandestinamente. Esse ataque é conhecido como ‘decriptografia retrospectiva’.
Como evitar esse problema?
A idéia do forward secrecy é criar um par de chaves temporário (ephemeral) utilizado apenas durante o estabelecimento da sessão entre o servidor e o cliente. Logo depois disso ele é apagado, minimizando a janela de ataque para sua captura. Normalmente essa chave temporária é gerada usando curvas elipticas ou Diffie-Hellman em lugar do RSA, já que o ‘custo computacional ‘ de geração dessas chaves é menor.
Como o mecanismo funciona?
O par de chaves permanentes (ligados ao seu certificados SSL e TLS) é utilizado para proteger a chave temporária, e ela para proteger a chave de sessão. Assim, a chave temporária funciona como um link entre as chaves do certificado e de sessão utilizadas no protocolo.
O que acontece se a chave privada vazar?
Nesse cenário não será possível decodificar a chave de sessão como no cenário descrito acima. Isso acontece porque o link entre as elas (chave temporária) foi perdida e não poderá ser recuperada.
Como configurar seu SSL e TLS?
Um bom link ensinando a fazer a configuração adequada é https://www.digicert.com/ssl-support/ssl-enabling-perfect-forward-secrecy.htm
A maioria dos sites não utiliza forward secrecy
Sérgio Leal
Ativista de longa data no meio da criptografia e certificação digital.
Trabalha com criptografia e certificação Digital desde o início da década de 90, tendo ocupado posições de destaque em empresas lideres em seu segmento como Modulo e CertiSign.
Criador da ‘ittru’: Primeira solução de certificação digital mobile no mundo.
Bacharel em Ciências da Computação pela UERJ desde 1997.
Certificações:
– Project Management Professional (desde 2007)
– TOGAF 9.1 Certified
– Oracle Certified Expert, Java EE 6 (Web Services Developer, Enterprise JavaBeans Developer)Sérgio Leal é colunista e membro do conselho editorial do CryptoID.