Question

J'ai une petite confusion lors de la négociation SSL entre le navigateur et le serveur dans un scénario web typique https:

Ce que j'ai compris jusqu'à présent est que dans le processus de poignée de main SSL, le client (navigateur dans ce cas) encrypte une clé symétrique choisie au hasard avec la clé publique (certificat reçu du serveur). Ceci est renvoyé au serveur, serveur déchiffre (clé symétrique) avec la clé privée. Cette clé symétrique est maintenant utilisé pendant le repos de la session pour crypter / décrypter les messages aux deux extrémités. L'une des principales raisons de le faire est donné que le cryptage plus rapide à l'aide des clés symétriques.

Questions

1) Comment navigateur et génère cette ramasser « au hasard » sélectionné clé symétrique?

2) les développeurs font (ou / et les utilisateurs du navigateur) ont le contrôle sur ce mécanisme de génération de clés symétriques?

Était-ce utile?

La solution

est une très bonne description du fonctionnement de l'établissement de connexion HTTPS. Je fournirai résumé comment la clé de session est acquise par les deux parties (client et serveur), ce processus est connu comme « un protocole d'accord de clé », voici comment cela fonctionne:

  1. Le client génère le « secret pré-maître » 48 octets valeur aléatoire.
  2. Les plaquettes de client ces octets avec des données aléatoires pour faire de l'entrée égale à 128 octets.
  3. Le client, il encrypte avec la clé publique du serveur et l'envoie au serveur.
  4. Ensuite, la clé principale est produit par les deux parties comme suit:

    master_secret = PRF(
       pre_master_secret, 
       "master secret", 
       ClientHello.random + ServerHello.random
    )
    
  

Le PRF est la « fonction pseudo-aléatoire » qui est également défini dans la   spec et est très intelligent. Il combine le secret, l'étiquette ASCII, et   les données de semences que nous lui donnons à l'aide de la clé-Hash message   Code d'authentification (HMAC) versions des deux hachage MD5 et SHA-1   les fonctions. La moitié de l'entrée est envoyée à chaque fonction de hachage. Ses   intelligent, car il est tout à fait résistant à l'attaque, même face à des   faiblesses MD5 et SHA-1. Ce processus peut modifier sur lui-même et   itérer toujours pour générer autant d'octets que nous avons besoin.

     

Suite à cette procédure, on obtient un « secret maître » 48 octets.

Autres conseils

Je cite une vidéo sur ce grand réseau vidéo, minute 01:18:07

  

Alors, par où vous obtenez hasard sur votre ordinateur parce que votre   l'ordinateur est un dispositif déterministe?

     

Eh bien, il recueille comme entropies vos mouvements de course de souris, clé   les mouvements de course et le moment de votre disque dur, il tente de recueillir   tout ce que le hasard de l'univers dans une traction de façon à pouvoir générer des clés aléatoires juste pour une connexion [cette session] . Et si ce hasard est brisé et son arrivé plusieurs fois   au cours des 30 dernières années, alors aucune de ces œuvres. Si l'adversaire peut   figurent ce que votre caractère aléatoire peut être alors ils peuvent deviner vos clés. Il faut donc utiliser un bon caractère aléatoire.

Remarque: les clés sont créées par session .

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top