2 votes

Paramètres SSL de Delphi Indy

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é ?

0voto

Alexandre Points 66

Il y a quelques mois, mes tests sur Qualys Labs ont obtenu une note A, y compris Forward Secrecy. Voici la CipherList utilisée (la CipherList est trop longue pour un commentaire, alors la voici comme réponse) :

CipherList := 'ECDHE-RSA-AES256-GCM-SHA384:'+            
  'ECDHE-RSA-AES128-GCM-SHA256:'+            
  'ECDHE-RSA-AES256-SHA384:'+                
  'ECDHE-RSA-AES128-SHA256:'+                
  'ECDHE-RSA-AES256-SHA:'+                   
  'ECDHE-RSA-AES128-SHA:'+                   
  'DHE-RSA-AES256-GCM-SHA384:'+              
  'DHE-RSA-AES256-SHA256:'+                  
  'DHE-RSA-AES256-SHA:'+                     
  'DHE-RSA-AES128-GCM-SHA256:'+              
  'DHE-RSA-AES128-SHA256:'+                  
  'DHE-RSA-AES128-SHA:'+                     
  'DES-CBC3-SHA:'+                           
  '!ADH:!EXP:!RC4:!eNULL@STRENGTH';

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X