Pouvez-vous empêcher un homme au milieu de lire le message?
10
J'ai entendu parler de toutes ces mesures de prévention de l'attaque de l'homme au milieu et je me demande comment cela peut éventuellement fonctionner si l'homme au milieu n'écoute que votre flux et ne veut pas changer le message lui-même.
L'homme au milieu peut-il non seulement prendre les clés échangées par les adversaires, changer les clés, puis déchiffrer et chiffrer à nouveau le message?
Comment un certificat peut-il empêcher cela?
Éditer:
J'ai entendu dire que l'autorité de certification disait généralement: "Ouais, c'est la clé des autres". Mais comment puis-je être certain que la signature du certificat n'est pas falsifiée?
L'homme au milieu peut-il non seulement prendre les clés échangées par les adversaires, changer les clés, puis déchiffrer et chiffrer à nouveau le message?
Oui, ils peuvent.
Un protocole d'échange de clés comme (la version "manuel" de) DH est sécurisé contre les écoutes (c'est-à-dire, simplement en observant ce qui est transmis sur le canal), mais se décompose complètement contre les attaques de l'homme du milieu (MITM), comme vous avez déclaré.
Les certificats sont une tentative pour y remédier, mais un autre problème se pose: comment pouvez-vous vous assurer que les deux parties reçoivent le certificat correct? De toute évidence, vous ne pouvez pas simplement envoyer les certificats sur le canal non sécurisé, car cela est à nouveau susceptible d'une attaque MITM.
La solution est l'existence d'un canal alternatif, (complètement) sécurisé . Ce serait soit les deux parties se rencontrant en personne et échangeant leurs certificats physiquement ou via un autre canal fiable (par exemple, par téléphone, si cela peut être fiable).
Dans les réseaux informatiques, le canal alternatif est généralement une infrastructure à clé publique (PKI). Cela signifie que votre système d'exploitation ou votre navigateur dispose d'un ensemble de certificats racine préconfigurés à partir desquels d'autres certificats sont signés (et peut-être même d'autres certificats les utilisant comme certificats intermédiaires ). Par conséquent, lorsque vous visitez un site Web, il présente un certificat signé , qui est signé à l'aide d'une (chaîne de) certificats auxquels vous faites déjà confiance. Ensuite, en utilisant ce certificat, un échange de clé authentifié est possible (par exemple, pour convenir d'une clé éphémère à utiliser avec un chiffrement symétrique ordinaire).
Donc, nous communiquons essentiellement les certificats via un deuxième canal, nous savons être sûrs?
TVSuchty
Oui; sinon, une attaque MITM est toujours possible. Il est un peu contre-intuitif de considérer une structure comme une PKI comme un "canal", mais l'idée n'est pas si farfelue si vous la considérez simplement comme un moyen de transmettre des informations (dans ce cas, des certificats).
dkaeae
Mais pourquoi ne parlerions-nous pas de la chaîne, nous savons être sûrs, en premier lieu?
TVSuchty
1
@TVSuchty Vous avez besoin d'une clé de confiance initiale, mais qui ne doit être communiquée qu'une seule fois dans votre vie. Cette clé peut également être la clé d'une autorité de certification, à laquelle vous faites confiance pour émettre des certificats pour d'autres. Par exemple, lorsque vous installez un navigateur, il est fourni avec les clés de nombreuses autorités de certification. Lorsque vous accédez à un site https, vous recevez une clé pour le site et un certificat émis par une autorité de certification indiquant que la clé est correcte, vous pouvez donc démarrer https très bien. Mais cela suppose 1) que les clés CA dans le navigateur sont les bonnes et 2) que les CA elles-mêmes peuvent être fiables.
chi
1
@TVSuchty Une clé de confiance suffit, tant qu'il s'agit de la clé publique d'une autorité de certification à laquelle vous pouvez faire confiance. Firefox utilise environ 100 clés de l' AC .
chi
5
Dans une attaque d'homme au milieu, vous demandez à Bob sa clé mais Eve intercepte le message et vous envoie sa clé à la place. Elle demande à Bob sa clé, puis passe des messages entre vous et Bob, les déchiffrant, les lisant et / ou les modifiant dans le processus.
Le problème est que vous ne savez pas si vous avez vraiment la clé de Bob ou non. Les certificats contournent cela parce que l'autorité de certification (CA) donne à Bob un message signé numériquement disant "la clé de Bob est 12345". Vous pouvez vérifier ce certificat car il n'y a pas beaucoup d'autorités de certification, votre navigateur contient simplement une liste de clés d'autorité de certification valides. Maintenant, si Eve intercepte votre tentative de démarrer une communication cryptée avec Bob, elle a deux choix. Si elle vous dit que la clé de Bob est 67890, alors soit elle ne fournit pas de certificat et vous dites "Désolé, vous devez le prouver", soit elle fournit un faux certificat et vous dites "Ce certificat n'est pas valide". Alternativement, elle vous dit que la clé de Bob est 12345 et fournit un certificat valide, mais cela ne lui sert à rien car elle ne le fait pas.
Pourquoi Eve ne peut pas simplement m'envoyer un certificat Bobs? Je veux dire ce qui est spécial avec la clé de Bob pour que Ève ne puisse pas reproduire une clé similaire? Comment savoir si cette clé est certifiée? Comment vérifier le certificat?
TVSuchty
Je vous ai dit pourquoi elle ne pouvait pas vous envoyer le certificat de Bob (ou plutôt pourquoi vous envoyer le certificat de Bob ne l'aidait pas). Il n'y a pas de "clé similaire". Vous savez que la clé est certifiée car vous avez le certificat. Vous vérifiez le certificat en vérifiant la signature numérique à l'aide de la clé de l'autorité de certification.
David Richerby
@TVSuchty Eve doit d'abord décrypter le message pour le lire, puis rechiffrer le message pour le transmettre. Seul le certificat de signature privé de Bob vous permettra de crypter comme Bob mais la malheureuse victime de l'attaque MITM doit être en mesure de prouver si elle possède le certificat de Bob afin de savoir si Eve a été fournie à la place. C'est la raison pour laquelle certaines applications sécurisées vous invitent à accepter la clé de chiffrement la première fois et chaque fois qu'elle change.
Willtech
1
@TVSuchty Un certificat dit "je suis X, et vous pouvez avoir confiance en moi parce que Y le dit". Eve peut facilement créer un certificat qui dit "Je suis Bob, et vous pouvez avoir confiance en moi parce que Eve le dit". Si mon ordinateur obtient ce certificat, il rit juste. "Eve le dit" n'est pas une raison de croire que c'est le certificat de Bob. "Parce que Verisign le dit", Verisign étant l'un des 100 fournisseurs de certificats installés sur votre ordinateur par le fabricant, c'est une raison de le croire. Mais Eve ne peut pas forger un tel certificat.
gnasher729
Une autre réponse à «pourquoi ne peut-elle pas m'envoyer le certificat de bob:« Eve peut soit essayer de falsifier le certificat de Bob, soit le voler. Peut-être qu'un million de dollars est suffisant pour soudoyer un des employés de Bob pour lui remettre une copie du certificat de Bob. Bob doit s'assurer qu'il est difficile de voler le certificat. En cas de vol, un certificat peut être révoqué et ne sera plus accepté. Le certificat indiquera désormais «c'est un véritable certificat de Bob, mais il a été signalé volé, alors ne lui faites pas confiance».
Dans une attaque d'homme au milieu, vous demandez à Bob sa clé mais Eve intercepte le message et vous envoie sa clé à la place. Elle demande à Bob sa clé, puis passe des messages entre vous et Bob, les déchiffrant, les lisant et / ou les modifiant dans le processus.
Le problème est que vous ne savez pas si vous avez vraiment la clé de Bob ou non. Les certificats contournent cela parce que l'autorité de certification (CA) donne à Bob un message signé numériquement disant "la clé de Bob est 12345". Vous pouvez vérifier ce certificat car il n'y a pas beaucoup d'autorités de certification, votre navigateur contient simplement une liste de clés d'autorité de certification valides. Maintenant, si Eve intercepte votre tentative de démarrer une communication cryptée avec Bob, elle a deux choix. Si elle vous dit que la clé de Bob est 67890, alors soit elle ne fournit pas de certificat et vous dites "Désolé, vous devez le prouver", soit elle fournit un faux certificat et vous dites "Ce certificat n'est pas valide". Alternativement, elle vous dit que la clé de Bob est 12345 et fournit un certificat valide, mais cela ne lui sert à rien car elle ne le fait pas.
la source