web-dev-qa-db-fra.com

Comment puis-je déterminer la force de cryptage d'une connexion SSL

Si je me suis connecté à une URL https, comment puis-je déterminer la force de chiffrement de la connexion? Ma compréhension est qu'après la prise de contact asymétrique à clé publique, les informations sont cryptées à l'aide d'une clé symétrique avec une force donnée, mais je n'arrive pas à trouver ce nombre (128 bits, etc.).

Veuillez me faire savoir si je ne comprends pas quelque chose avec le processus aussi.

Edit: La raison pour laquelle je demande, c'est que j'ai un modèle pour un avis de sécurité qui contient une déclaration Ce site Web utilise le cryptage XX bits et je voudrais le remplir avec le bon numéro.

27
Flash

Le chiffrement symétrique SSL est le résultat d'une négociation entre le client et le serveur. Il est possible de le restreindre côté serveur en utilisant les fichiers de configuration. Par exemple, configuration SSL Apache inclure un

SSLCipherSuite ALL:!ADH:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL

Cela peut être réglé pour n'accepter que les cryptages les plus forts, par exemple, vous voudrez peut-être exiger uniquement:

SSLProtocol all -SSLv3 -SSLv2
SSLCipherSuite HIGH:MEDIUM

D'autres variables peuvent être utilisées pour faire plus de choses comme l'authentification client ou nécessitent des chiffrements par répertoire.

Vous pouvez également manipuler la négociation du côté client. Comme pour un exemple, veuillez vous référer à ce lien qui parle un peu du réglage des paramètres SSL de Firefox. Je suppose que d'autres navigateurs peuvent également le faire.

Il semble que cette page dit que:

Le serveur décide de la liste des algorithmes de cryptographie et de compression envoyés par le client de poursuivre ou d'annuler la session. Il doit y avoir au moins une correspondance dans les deux listes, sinon la session échouera. La combinaison de chiffres qui a pris la place la plus élevée dans la liste des clients sera utilisée pour de futures communications.

Je cherche le protocole officiel.

18
M'vy

SSL Labs ont un SSL Server Test outil sur leur site qui testera un site compatible SSL et fournira des informations précieuses sur sa sécurité (comme la longueur des clés), y compris les vulnérabilités connues particulier à la configuration.

13
lew

Hmm, il existe un certain nombre d'outils que vous pouvez utiliser. Sur un système Linux:

Initier une seule connexion SSL au site via le navigateur etc ...

Entrez la commande:

ssldump -i eth0 -p 80

Cela élucidera la prise de contact SSL avec le serveur Web (en vidant le trafic SSL sur l'interface spécifique). Le vidage montre la suite de chiffrement utilisée.

Recherchez ceci: cipherSuite TLS_RSA_WITH_RC4_128_SHA

Vous devrez peut-être remplacer eth0 avec le nom de votre interface Ethernet par défaut.

10
user3645

SSL inclut une fonctionnalité connue sous le nom de "négociation ciphersuite". Le client présente une liste de suites de chiffrement qu'il est prêt à utiliser, et le serveur sélectionne son favori dans cette liste. Bien que vous puissiez tester votre site Web en utilisant votre copie d'un navigateur, quelqu'un d'autre peut utiliser un navigateur différent avec une configuration différente et votre site Web peut utiliser une suite de chiffrement plus faible pour cette personne.

Vous devriez vérifier la documentation de votre serveur Web pour comprendre comment configurer votre serveur Web pour utiliser uniquement les suites de chiffrement qui répondent à vos besoins.

6
yfeldblum

Si vous utilisez Chrome, et peut-être Firefox, vous pouvez cliquer sur des éléments à gauche de https: // xxx dans la barre d'URL et le vérifier. Il vous indiquera quelle suite de chiffrement a été sélectionnée (comme RC4 ou AES) et la taille de la clé utilisée.

J'utilise Safari en ce moment (nouveau MacBook Air), et je ne vois pas immédiatement comment faire. Cliquer sur l'icône de verrouillage en haut à droite ne me montre que le certificat, mais pas la force de la connexion actuelle.

L'autre façon de le faire est avec un renifleur de paquets - ce que SSL est censé protéger contre. Les premiers paquets, où ils négocient l'algorithme de chiffrement et la force, ne sont pas chiffrés. Vous pouvez voir d'eux quelle force ils ont choisie pour une connexion.

3
Robert David Graham

Je voulais juste ajouter aux réponses ci-dessus que la seule façon d'obtenir le résultat dont vous avez besoin est que le serveur ne négocie pas ou ne fasse pas, mais n'utilise que des chiffres de même longueur.

Par exemple, dans Apache, vous pouvez ajouter

SSLRequire %{SSL_CIPHER_USEKEYSIZE} = 256

pour accepter uniquement la taille de 256 clés.

Mais soyez prudent, car cela conduira probablement les clients à ne pas pouvoir se connecter s'ils n'offrent pas une suite de chiffrement autorisée par le serveur. Si vous suivez ce chemin, vous devez surveiller les erreurs de négociation SSL sur le serveur pendant un certain temps pour faire des estimations.

2
john

Côté client:

Pour Firefox, il existe une extension: https://addons.mozilla.org/en-US/firefox/addon/cipherfox/

Cliquez avec le bouton droit et sélectionnez "Afficher les informations sur la page".

Côté serveur:

voir Comment puis-je déterminer la force de cryptage d'une connexion SSL

2
Tie-fighter

Sur IE-8 après avoir accédé à un site https, vous pouvez sélectionner Fichier-> Propriétés et il montrera le type de cryptage utilisé. Pour Firefow, cliquez sur l'icône de verrouillage à gauche de l'URL et sélectionnez Plus d'informations.

0
user76905

Pour ajouter à la réponse de @ Robert-David-Graham:

Dans Chrome lorsque vous cliquez sur l'icône de verrouillage, l'onglet Developer Tools> Security apparaît. Actualisez la page pour obtenir les informations de sécurité pour la ou les pages d'origine. Utilisez ensuite la touche de navigation gauche pour passer de l'aperçu de l'origine principale (ou de toute autre origine). Vous y verrez le protocole de connexion, l'échange de clés et la suite de chiffrement.

Sample LinkedIn home page security info

0
JohnC

La ciphersuite est choisie par le client et le serveur.

Le client envoie une liste de ciphersuites acceptables au serveur ordonné par préférence. Le serveur en choisit alors un et en informe le client. Le serveur est censé respecter les préférences des clients mais peut ne pas le faire (dans Apache, le paramètre "SSLHonorCipherOrder" contrôle cela).

La plupart des navigateurs fourniront un moyen de voir quelle ciphersuite est utilisée, par exemple dans Firefox, vous cliquez sur l'icône à côté de la barre d'adresse. Cliquez ensuite sur la flèche latérale, puis cliquez sur plus d'informations. Par exemple, de Google, je reçois.

TLS_ECDHE_RSA_WITH_AES128_GCM_SHA256

Theres diverses informations dans cette chaîne (google si vous voulez une explication complète) mais le bit important pour cette question est "AES128-GCM". Cela vous indique que l'algorithme de cryptage est AES 128 (donc cryptage 128 bits) en mode GCM.

La raison pour laquelle je demande, c'est que j'ai un modèle pour un avis de non-sécurité qui contient une déclaration. Ce site Web utilise le cryptage XX bits et je voudrais le remplir avec le bon numéro.

Le danger avec ce que vous proposez est que l'algorithme de chiffrement sélectionné dépendra du client. Par exemple, l'algorithme de cryptage le moins mauvais pris en charge par la pile SSL/TLS dans Windows XP (utilisé par IE, entre autres) est 3DES qui est considéré comme ayant un niveau de sécurité effectif de 112 bits.

0
Peter Green