Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

  1. #1
    Membre habitué
    [Sécurité] questions à propos de TLS (utilisé dans https)
    Greetings !! Salutations !!

    J'ai eu une question d'un de mes élèves récemment qui m'a un peu surpris car habituellement ils ont tendance, mes élèves, à "survoler" les technologies qui semblent les intéresser.
    Cette fois je pense qu'il a lu des infos quelque part car voici ce qu'il me disait: "...comme TLS génère un hash servant à identifier la session de chiffrement, et que par définition un hash
    ne va que dans un sens (on a une clef -> hash mais jamais de hash -> key) lorsque la session de chiffrement est terminée, le hash change... du coup: comment prétendre espionner
    la planète entière si il n'est pas possible de déchiffrer ce qui passe dans HTTPS (vu que le hash est un nombre généré aléatoirement donc non prédictible ?)"

    Je n'ai pas une connaissance approfondie du sujet, mais je connais le terme et ce qui se cache derrière le "forward secrecy" -> qui garanti que de la force brute offline n'aura pas d'effet même si la clef privée serait volée.

    Concernant les algorithmes de signature, je ne suis pas expert, mais je sais que SHA-2 inclut effectivement un hash du fait de son nom (^^) maintenant je ne sais pas si il y a de l'aléatoire (ou pseudo-aléatoire)
    prévu dans les opérations prévues pour le hash. Cela me semblerait un peu difficile de pourvoir un hash sur une entrée si elles sont hachées avec des nombres aléatoires et que nous devions comparer les deux
    hashes pour valider l'entrée.

    En classe nous faisions ce genre de choses en Perl pour valider l'accès à un compte dans une simulation de forum de discussion

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
    $statement=$DBHandler->prepare("SELECT SHA2('$localpassword',256)");
    $statement->execute();
     
    $cryptedpwd=$statement->fetchrow_array();
     
    print "<br>\t$cryptedpwd <-> $localpwdFROMdb<br>";
     
    if($cryptedpwd eq $localpwdFROMdb)
    {
    	# Je ne sais pas encore comment faire le relais... mais je vais trouver...
    	DisplayForumEntrance($locallogin);
    	exit;
    }
    else
    {
    	# Logger une tentative infructueuse...
    	$Generated=DisplayHTMLLogin(-1);
    	DisplayHTML();
    	exit;	
    }


    ...et nous utilisions 256 bits pour "hasher" notre mot de passe et nous comparions les deux hashes... comme la règle le veut "jamais de mots de passe en clair".

    Donc ma question:

    Puis-je indiquer que le hash donne une impression de génération de nombres aléatoires mais ce n'est pas du tout aléatoire ?

    Par contre pour le reste, je pense aussi que cela me semble assez compliqué de sniffer tout ce qui passe sur le net, et pour moi le décryptage est quasiment
    impossible en temps réel. Mais je ne me repose que sur le fait du temps processeur que cela prendrait, même sur un cluster de super calculateurs pour faire
    des "birthday attacks" ou des "pre image attacks"...

    Puis-je indiquer alors que ce soit "théoriquement impossible" ou "mathématiquement impossible" ?

  2. #2
    Responsable Systèmes

    Je suis pas expert en cryptographie, mais le principe est est que le serveur et le client s'échangent les clés publics/privées. ces deux clés vont servir à calculer la clé de session qui va être échangée. Il te faut donc cette clé de session pour déchiffrer les échanges.
    Tu peux regarder le principe de l'échange de clés Diffie-Hellman.
    Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
    Mon article sur la création d'un système : http://chrtophe.developpez.com/tutor...s/minisysteme/
    Mon article sur le P2V : http://chrtophe.developpez.com/tutoriels/p2v/
    Consultez nos FAQ : Windows, Linux, Virtualisation

  3. #3
    Expert éminent sénior
    Bonjour Hurukan.

    Il y a beaucoup de choses dans ton message auxquelles il faudrait répondre. Voyons les principales.

    TLS génère un hash
    Un "hash", en français, c'est une empreinte de fichier. J'espère que tu fais la différence entre une empreinte de fichier, une clé de signature et une clé de chiffrement, qui sont trois choses bien différentes.
    En parlant de hash, tu veux parler de la clé de session ? La clé de session est une clé de chiffrement symétrique. Voilà pourquoi le client ET le serveur doivent avoir la même. Elle peut être complètement aléatoire. (contrairement à une empreinte qui est calculée).

    un hash ne va que dans un sens
    Le calcul de l'empreinte est une fonction irréversible.
    Je ne vois pas l'intérêt de calculer une empreinte de clé à ce stade-là de la transaction TLS.

    comment prétendre espionner la planète entière
    Qui prétend cela ?

    mais je connais le terme et ce qui se cache derrière le "forward secrecy" -> qui garanti que de la force brute offline n'aura pas d'effet même si la clef privée serait volée.
    Le secret n'est toujours que déplacé. Il est dans le message, ou dans la clé symétrique, ou dans la clé asymétrique privée, ou dans la clé partagée. Diffie-Hellman a un secret partagé qui n'est pas directement les clés. Voilà pourquoi voler les clés privées n'a aucun intérêt. Du moins, cela n'est pas suffisant pour tout savoir. La force brutale, c'est autre chose.

    Concernant les algorithmes de signature, je ne suis pas expert, mais je sais que SHA-2 inclut effectivement un hash
    SHA-2 est complètement un calcul d'empreinte. Pourquoi le mêler aux signatures ? Ce n'est pas une signature. Une empreinte, tout le monde peut la calculer.

    comme la règle le veut "jamais de mots de passe en clair".
    Oui alors attention avec cette formule. Quand j'entends un prétendu expert de Microsoft parler de transmission de chiffrement de mot de passe, je trouve cela ridicule car l'attaque de man-in-the-middle est la même. Au lieu d'envoyer les octets du mot de passe, le malfaiteur envoie les octets du mot de passe chiffré. Il faut vraiment être incompétent pour croire qu'on a augmenté la sécurité en envoyant un mot de passe modifié.
    Mais la phrase est vraie d'un point de vue du stockage. Sony est en faute quand on apprend qu'ils se sont fait volés les mots de passe stockés en clair. Alors que stocker les empreintes de mot de passe est suffisant pour comparer.

    Donc ma question:

    Puis-je indiquer que le hash donne une impression de génération de nombres aléatoires mais ce n'est pas du tout aléatoire ?
    Ne trouves-tu pas la page wikipedia de TLS (clic ici) bien faite ?
    La clé de session n'est pas calculée et peut être complètement aléatoire. Si on utilise un "OU EXCLUSIF" pour chiffrer, il est d'ailleurs préférable que la clé soit le plus aléatoire possible.

    Puis-je indiquer alors que ce soit "théoriquement impossible" ou "mathématiquement impossible" ?
    Euh ... Je dirais ... "trop gourmand en ressource". Ce n'est pas impossible dans l'absolu. Ni théoriquement, ni mathématiquement.
    Cette réponse vous apporte quelque chose ? Cliquez sur en bas à droite du message.

  4. #4
    Expert éminent sénior
    Moi, j'aime bien le "man-in-the-middle" qui quelque part est le router du provider...
    Cordialement.

  5. #5
    Membre habitué
    Merci tout le monde ^^

    Flodelarab: il est clair que je suis vraiment une brêle, ceci pour dire que j'ai bien compris que tous les éléments indiqués ici vont m'aider, plus tard, à réellement comprendre ce qu'il se cache dans le chiffrement des données et la sécurité que chaque
    algorithme est censé apporter aux échanges.

    Au niveau du vocabulaire et des termes, bin, il va falloir que je bouquine, il est vrai que je suis très vague entre "l'empreinte", "la signature", "clé de session" quand j'utilise le terme "hash" ^^

    Merci en tous cas pour les re-contextualisations et effectivement j'ai lu un peu wikipedia mais je ne sais pas évaluer si c'est bien foutu ou pas ^^ par contre j'ai tenté de lire un document en pdf (Daniel RL Brown, 2009) qui décrit ECDSA mais
    bon je maitrise pas du tout le sujet ^^

    Voilà je vais préciser à mon élève, par rapport au fait que c'est "gourmand en ressource" et aussi que "l'espionnage de masse" devrait être tout aussi lourd à mettre en place en ce qui concerne les communications chiffrées.

  6. #6
    Expert éminent sénior
    Ce n'est pas si compliqué. Avant de parler des algorithmes, voyons les choses de loin.

    • Dans un système à clé symétrique, la clé pour chiffrer est la même que la clé pour déchiffrer. C'est comme les serrures de nos portes.
    • Dans un système à clés asymétriques (RSA par exemple), ce que fait une clé, l'autre clé le défait. Une clé est privée (jamais transmise) et l'autre clef est publique (donnée à tout le monde).
      Il y a donc 2 utilisations qui en découlent :
      • Soit on chiffre avec la clé privée et on déchiffre avec la clé publique. Tout le monde peut comprendre le message chiffré. Mais une seule personne a pu l'écrire. C'est un mécanisme de signature.
      • Soit on chiffre avec la clé publique et on déchiffre avec la clé privée. Tout le monde peut écrire un message chiffré. Mais une seule personne peut déchiffrer. C'est un mécanisme de transmission sécurisée des données.

      Les systèmes asymétriques changent la donne, car on peut instaurer une communication sécurisée avec un parfait inconnu, sans secret partagé a priori. => Commerce en ligne
      Il suffit que le destinataire donne sa clé aux expéditeurs.

      Les clés sont des informations. Elles peuvent être falsifiées ou usurper une identité. Pour parer ce problème, on a donc inventé le certificat.
      Certificat = Identité + clé publique (de l'identité évidemment) + signatures des tiers de confiance.
      Et si on ne fait confiance à personne ? Aucune sécurité n'est possible. Car l'identité de l'interlocuteur ne peut jamais être assurée.
      Et vous ? Quels sont vos tiers de confiance ? La question à ne pas poser.
    • Les empreintes de fichiers (hash ou hashing) sont comme les empreintes digitales. Une empreinte permet de différencier 2 individus (resp.fichiers), mais, à paritr d'une empreinte, on ne peut pas refabriquer l'individu (resp. fichier).
      Cela est utile pour savoir si un fichier en téléchargement a été modifié par un malfaiteur, comparer des versions de logiciels, etc.


    J'espère que c'est un peu plus clair. C'est la base. Après, il faut voir la spécificité de chaque algorithme. Et encore après, se mettre à la cryptographie quantique.
    Cette réponse vous apporte quelque chose ? Cliquez sur en bas à droite du message.

  7. #7
    Membre habitué
    Merci beaucoup dis !!

    J'ai pas encore pu ressortir ces informations de façon aussi structurées et c'est pas faute d'avoir décrit les mécanismes mais uns à uns, sans vraiment conclure comme tu viens de le faire ^^
    C'est vrai que ce n'a pas l'air compliqué vu comme cela mais quand on est pas habitués à manipuler ces principes on s'y perd un peu.
    Ca va m'aider pour les futures sessions de réponse aux questionnements de mes élèves.

    Concernant le "cryptage quantique" j'ai dit à mes élèves "pour le moment ça ne marche pas encore" et tout ce qu'on dit sur l'informatique quantique, pour le moment, ne concerne que des simulations.
    La conservation de l'état du qbit en terme de "moment d'existence" (en µs je crois) ne permet pas vraiment, de ce que j'ai relevé, de "faire quelque chose" avec.

    Et j'ai encore un doute, du fait que j'ai un problème avec les "états superposés", de la réelle utilité en cryptographie. La quantique "de base" est surtout enroulée autour des "incertudes de Heisenberg"
    qui est, de ce que je relève, beaucoup plus des stats et des probas que du déterminisme que je peux observer en informatique (en sortant l'IA de mes propos, bien entendu).
    Maintenant c'est une opinion.

  8. #8
    Responsable Systèmes

    Pour ce qui est de l'informatique quantique, elle est expérimentale et à ses balbutiements. On ne parle pas encore d'ordinateur quantique mais de calculateur quantique, un calculateur quantique ne permet de faire qu'un ensemble très restreint de tâches.

    On ne maitrise pas encore la décohérence (perte de l'effet quantique en passant dans le monde macroscopique).

    Les états superposés permettent de décupler la puissance, car on ne se limite plus à 0 et 1 pour un bit.

    Mais de toute façon, l'informatique quantique pourra servir au décryptage, tout commei au cryptage.
    Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
    Mon article sur la création d'un système : http://chrtophe.developpez.com/tutor...s/minisysteme/
    Mon article sur le P2V : http://chrtophe.developpez.com/tutoriels/p2v/
    Consultez nos FAQ : Windows, Linux, Virtualisation

  9. #9
    Expert éminent sénior
    Déjà, ne confondons pas la cryptographie quantique et la distribution quantique de clés classiques (QKD). La première est la transformation d'information quantique en contenu inintelligible. La seconde est l'utilisation de mécanisme quantique pour donner la même clé symétrique classique (pour faire un "ou exclusif") à 2 utilisateurs qui veulent communiquer de façon sécurisée.

    Ensuite, il ne faut pas confondre le calcul quantique et les communications quantiques. Le premier est la tentative de créer un ordinateur puissant. Le second est la tentative de créer un canal de communication sûr.

    Enfin, il ne faut pas dire "ça marche pas". Ça marche sur des petites distances. Et quand on voit les chinois qui officiellement disent avoir mis en place un satellite qui fait de distribution quantique de clé classique, la notion de "petite distance" est mise à mal. Il faut savoir qui est "on". Personne ne sait vraiment qui fait quoi, qui sait faire quoi. C'est la course à l'innovation.

    NOTE: La supériorité incontestable des communications quantiques est que l'on ne peut rien copier sans que ça se voit. Dans les technologies classiques, on peut aspirer tous les flux, et travailler, après, sur la prise. Comme une vidéo-surveillance. Dans le quantique, on ne peut rien surveiller, rien cloner.
    Cette réponse vous apporte quelque chose ? Cliquez sur en bas à droite du message.

###raw>template_hook.ano_emploi###