Il s'agit de la suite de Le serveur Indy supporte SSL 2, mais il ne devrait pas .
À l'aide de Delphi XE Berlin 10.1, j'ai trouvé deux chaînes CipherList qui répondent aux exigences de base de la force de cryptage de niveau A :
TLSv1:TLSv1.2:SSLv3:!RC4:!NULL-MD5:!NULL-SHA:!NULL-SHA256:!DES-CBC-SHA:!DES-CBC3-SHA:!IDEA-CBC-SHA
ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:RSA+AESGCM:RSA+AES:!aNULL:!MD5:!DSS
Les tests effectués avec Qualys SSLlabs montrent les mêmes résultats pour eux : ils sont forts, mais :
-
le secret de transmission n'est pas pris en charge.
-
certains des anciens navigateurs (en particulier, IE8 sur XP et Win7) ne se connecteront pas (certains de mes utilisateurs - gouvernement, hôpitaux - peuvent encore les utiliser. Vous pouvez argumenter que ces utilisateurs ont des problèmes plus importants que de se préoccuper de RC4 et DES, mais ce n'est pas le sujet de ce billet).
Lorsque je vérifie le service de ma banque avec Qualys, je remarque qu'ils supportent tous les anciens navigateurs. Ma question est la suivante : comment configurer le service d'Indy ? TIdServerIOHandlerSSLOpenSSL
pour que mon serveur fasse de même ?
Dans la configuration actuelle, j'ai :
Method := sslvTLSv1_2;
SSLVersions := [sslvTLSv1,sslvTLSv1_1,sslvTLSv1_2];
Je remarque que le rapport Qualys indique que mon serveur ne prend en charge que TLS 1.2, alors que ma banque semble prendre en charge TLS 1.1 et TLS 1.0 également. Elle utilise une clé RSA2048 avec une signature SHA256withRSA. Mais moi aussi. J'utilise les dernières DLL d'OpenSSL. La cipherList est celle de Hynek Sclawack (hynek.me/articles), mise à jour il y a 10 jours.
Et pourtant : pas d'anciens navigateurs, pas de secret d'avance. Qu'est-ce que j'ai raté ?