El secreto hacia adelante perfecto se obtiene mediante el uso de claves efímeras Diffie-Helman (DHE o EDH). Entonces, para obtener las demandas de cifrado en esa lista que son compatibles con PFS, puede hacer lo siguiente:
$ openssl ciphers -v aECDSA: aECDH: kEDH: kRSA | grep DHE
Esto incluirá cifrados basados en ECDHE (curva elíptica) y DHE (RSA). Una ventaja de ECDHE es que es mucho más rápido que DHE. Sin embargo, en la lista generada por ese comando todavía hay algunos cifrados débiles que usan criptografía débil o no: DES, RC4, SSLv3, NULL.
Todos los que tienen SSLv3 en común, por lo que al excluir SSLv3, obtienes una lista de 12 cifrados sólidos:
$ openssl ciphers -v aECDSA: aECDH: kEDH: kRSA | grep DHE | grep -v SSLv3
ECDHE-ECDSA-AES256-GCM-SHA384 TLSv1.2 Kx = ECDH Au = ECDSA Enc = AESGCM (256) Mac = AEAD
ECDHE-ECDSA-AES256-SHA384 TLSv1.2 Kx = ECDH Au = ECDSA Enc = AES (256) Mac = SHA384
ECDHE-ECDSA-AES128-GCM-SHA256 TLSv1.2 Kx = ECDH Au = ECDSA Enc = AESGCM (128) Mac = AEAD
ECDHE-ECDSA-AES128-SHA256 TLSv1.2 Kx = ECDH Au = ECDSA Enc = AES (128) Mac = SHA256
DHE-DSS-AES256-GCM-SHA384 TLSv1.2 Kx = DH Au = DSS Enc = AESGCM (256) Mac = AEAD
DHE-RSA-AES256-GCM-SHA384 TLSv1.2 Kx = DH Au = RSA Enc = AESGCM (256) Mac = AEAD
DHE-RSA-AES256-SHA256 TLSv1.2 Kx = DH Au = RSA Enc = AES (256) Mac = SHA256
DHE-DSS-AES256-SHA256 TLSv1.2 Kx = DH Au = DSS Enc = AES (256) Mac = SHA256
DHE-DSS-AES128-GCM-SHA256 TLSv1.2 Kx = DH Au = DSS Enc = AESGCM (128) Mac = AEAD
DHE-RSA-AES128-GCM-SHA256 TLSv1.2 Kx = DH Au = RSA Enc = AESGCM (128) Mac = AEAD
DHE-RSA-AES128-SHA256 TLSv1.2 Kx = DH Au = RSA Enc = AES (128) Mac = SHA256
DHE-DSS-AES128-SHA256 TLSv1.2 Kx = DH Au = DSS Enc = AES (128) Mac = SHA256
Tenga en cuenta que está excluyendo 4 cifrados PFS con su aECDSA: aECDH: kEDH: selección de kRSA.
ECDHE-RSA-AES256-GCM-SHA384 TLSv1.2 Kx = ECDH Au = RSA Enc = AESGCM (256) Mac = AEAD
ECDHE-RSA-AES256-SHA384 TLSv1.2 Kx = ECDH Au = RSA Enc = AES (256) Mac = SHA384
ECDHE-RSA-AES128-GCM-SHA256 TLSv1.2 Kx = ECDH Au = RSA Enc = AESGCM (128) Mac = AEAD
ECDHE-RSA-AES128-SHA256 TLSv1.2 Kx = ECDH Au = RSA Enc = AES (128) Mac = SHA256