web-dev-qa-db-fra.com

Pourquoi le protocole HTTP est-il plus susceptible d'être intercepté que le protocole BitTorrent?

Je télécharge un fichier .iso proposé sur le site Web principal, qui recommande aux utilisateurs d'utiliser BitTorrent. De plus, ils proposent le téléchargement via HTTP en utilisant différents sites miroirs qui appartiennent à différents pays, et ils affirment que les téléchargements à partir d'un miroir HTTP sont plus susceptibles d'être interceptés pour servir des téléchargements malveillants. Je suis curieux de savoir pourquoi ces types de téléchargements seraient plus enclins que les téléchargements originaux.

Si je devais deviner, ce serait à cause des différences dans les implémentations de sécurité entre les serveurs du monde entier qui contiennent les fichiers. Suis-je complètement hors tension?

42
noobandproud

La différence est que le protocole BitTorrent a un mécanisme pour vérifier que vous avez reçu ce que vous aviez l'intention de recevoir, contrairement à HTTP.

HTTP n'a pas de mécanisme ...

  • pour vérifier que vous êtes réellement connecté au serveur auquel vous avez l'intention de vous connecter,
  • ou télécharger le fichier que vous vous attendiez à recevoir.

Si l'un des miroirs HTTP présente des failles de sécurité ou n'est pas sous le contrôle du fournisseur, un attaquant pourrait simplement remplacer le fichier et il ne serait pas détecté du côté du destinataire.

De plus, si les circonstances le permettent, HTTP est sensible à une attaque Man-in-the-Middle . Cela signifie que de votre côté, il semble que vous soyez connecté à example.com, mais en réalité, vous êtes connecté à un tiers qui intercepte le trafic, manipule le trafic réseau et ne fait que donner l'impression que vous êtes connecté à example.com. Vous demandez ensuite de télécharger un certain fichier, mais l'attaquant vous envoie à la place un fichier malveillant. (Sur une note latérale, HTTPS correctement configuré, avec S, empêche cela.)

Un fichier qui est transmis via BitTorrent, d'autre part est d'abord divisé en morceaux. Chacun de ces morceaux est ensuite haché en utilisant SHA-1 , c'est-à-dire qu'un checksum est généré par le créateur du torrent. Les hachages sont donnés à chaque client BitTorrent avant le téléchargement - généralement contenus dans un .torrent fichier. Comme les morceaux de fichiers sont ensuite téléchargés par le client, ils sont d'abord hachés par le client lui-même et comparés au hachage précédemment reçu. Ce n'est que si le hachage correspond, ce qui signifie que le bloc contient exactement les mêmes octets que le bloc attendu, qu'il est accepté. Il est pratiquement impossible de fabriquer des morceaux modifiés qui contiennent du contenu malveillant, mais qui conservent leur hachage d'origine.

Étant donné que ces hachages sont partagés avec vous avant le téléchargement, probablement à partir d'une source fiable, il est plus difficile (voire impossible) de manipuler les fichiers attendus en transit lorsqu'ils sont reçus via BitTorrent par rapport à un téléchargement HTTP. Le fournisseur peut distribuer le torrent, qui est un petit fichier, à partir d'un seul serveur sécurisé via HTTPS sous son propre contrôle, et le mécanisme de hachage fournira une validation pour le téléchargement réel.

Si en revanche, vos hachages ou votre fichier torrent sont falsifiés avant le téléchargement, ou en raison d'une attaque MitM si vous téléchargez le torrent lui-même via HTTP, la validation de la somme de contrôle n'offre aucune sécurité.

Enfin, il existe un moyen de contourner le mécanisme de somme de contrôle par un attaquant s'il a accès au fichier avant la génération du hachage, c'est-à-dire avant la création d'origine du torrent. Il est alors possible pour un attaquant de modifier le fichier de telle sorte qu'une partie du contenu du fichier puisse plus tard être remplacée par du code préconfiguré lors de la transmission du torrent sans être détecté par la vérification du hachage SHA-1, bien qu'il soit différent de le fichier qui a été initialement vérifié.

60
ig-dev

Supposons que l'auteur d'un document (par exemple, un fichier .iso) ait un moyen de partager un fichier .torrent avec vous hors bande qu'un adversaire n'a pas le pouvoir de subvertir - en d'autres termes, lorsque l'auteur crée le document et crée ensuite un fichier .torrent pour cela, vous avez la garantie (en quelque sorte) que vous pouvez obtenir le vrai fichier .torrent et non une contrefaçon. Peut-être que vous avez obtenu le .torrent via HTTPS, mais vous obtiendrez le .iso à partir d'un miroir via HTTP. C'est crucial! Si vous téléchargez le fichier .torrent lui-même sur HTTP, tout ce qui concerne BitTorrent ci-dessous est théorique.

Si l'adversaire tente de vous inciter à obtenir un document malveillant, quelle est la différence entre le téléchargement du document via HTTP vs. le téléchargement du document via BitTorrent en utilisant le Fichier .torrent?

Voici quelques pouvoirs que l'adversaire pourrait avoir:

  1. Le pouvoir d'intercepter le trafic sur votre connexion Internet et de le remplacer en transit.

    • Avec HTTP, le pouvoir d'intercepter votre connexion Internet est suffisant pour que l'adversaire vous trompe en acceptant une contrefaçon malveillante. En effet, HTTP ne fait absolument rien pour vérifier l'authenticité des données reçues sur Internet: c'est comme un commis particulièrement naïf qui laisse les gars en gilet haute visibilité entrer dans la salle de contrôle secrète parce qu'ils ont dit qu'ils avaient un travail à faire.

    • Avec BitTorrent, le pouvoir d'intercepter votre connexion Internet est pas assez pour que l'adversaire vous trompe en acceptant une contrefaçon malveillante. C'est parce que le fichier .torrent a un hachage SHA-1 de chaque morceau du vrai document, donc sans contrôle sur le vrai document, un adversaire n'a aucun espoir de trouver un remplaçant malveillant qui correspond au hachage SHA-1 dans le fichier .torrent. (C’est ce que les cryptographes veulent dire quand ils disent que SHA-1 est "résistant à la pré-image", ou, plus précisément ici, "résistant à la seconde pré-image".)

  2. Le pouvoir d'exécuter un miroir ou un nœud BitTorrent.

    Les miroirs peuvent être gérés par de nombreuses parties différentes et peuvent ne pas être examinés de la même manière que le site principal - et n'importe qui peut exécuter un nœud BitTorrent. Cela ne nécessite aucune interception de réseau.

    • Avec HTTP, le pouvoir d'exécuter un miroir est suffisant pour que l'adversaire vous trompe en acceptant une contrefaçon malveillante. Ils vous servent simplement la contrefaçon lorsque vous demandez pour cela, et vous n'avez aucun moyen a priori de distinguer la contrefaçon du vrai document.

    • Avec BitTorrent, le pouvoir de servir des données à partir d'un nœud BitTorrent est pas assez pour que l'adversaire vous trompe en acceptant une contrefaçon malveillante. Encore une fois, quelle que soit la contrefaçon que l'adversaire alimente, vous ne pourrez pas, avec ce seul pouvoir, trouver une contrefaçon correspondant au hachage SHA-1 dans votre fichier .torrent.

  3. Le pouvoir d'influencer ce que l'auteur met dans le vrai document - tant qu'il passe en revue.

    Cela peut sembler une puissance étrange à s'inquiéter, mais considérez comment le développement de logiciels modernes a évolué du style Styp Overflow de copypasta à une dépendance cavalière sur des packages npm comme pad gauche . Le responsable d'un package comme le flux d'événements peut se lasser de la tâche et vendre la propriété du nom du package à un caractère peu recommandable qui a maintenant le pouvoir d'influencer ce qui se passe dans les nouvelles versions des packages logiciels déployés comme un Image du système d'exploitation que vous pourriez distribuer par BitTorrent. (Plus d'informations sur les jeux auxquels on peut jouer avec ce pouvoir: [1] , [2] .)

    De toute évidence, si l'adversaire peut glisser du code malveillant dans le vrai document sans que personne ne le remarque, vous êtes arrosé. Mais si nous limitons l'adversaire juste a un peu pour avoir une influence bénigne sur le document réel - quelque chose qui passera en revue par l'auteur - alors vous pouvez encore être arrosé avec BitTorrent!

    • Avec BitTorrent, le supplémentaire pouvoir d'influencer ce qui se trouve dans le document - même s'il est sujet à révision donc il n'y a rien de malveillant dans le vrai document! - peut être suffisant pour que l'adversaire vous trompe en acceptant une contrefaçon malveillante.

      Comment? Un adversaire jouant au long jeu pourrait simultanément faire deux versions d'une partie du document, une version bénigne et une version malveillante qui entrer en collision sous SHA-1. (Cela est dû au fait que SHA-1 est pas ce que les cryptographes appellent "résistant aux collisions". Ils peuvent n'avoir aucun pouvoir sur quoi le hachage SHA-1 sera - seulement que la version bénigne et la version malveillante ont le même SHA-1 hachage. )

      L'adversaire pourrait alors persuader l'auteur d'inclure la version bénigne (qui passe l'examen!) Dans le document, mais ensuite intercepter le torrent sur Internet pendant que vous le téléchargez et remplacer la version bénigne par la version malveillante. Votre client BitTorrent ne sera pas plus sage car la version malveillante a précisément le hachage SHA-1 spécifié dans le fichier .torrent!

Un jour, BitTorrent peut passer à une alternative à SHA-1 qui est résistante aux collisions, probablement SHA-256. Cela rendrait la complexité de cette histoire théorique. Mon point en racontant l'histoire plus nuancée n'est pas que BitTorrent est aussi mauvais que HTTP - ce n'est pas le cas: sous l'hypothèse que votre fichier .torrent est bon, BitTorrent se défend contre les adversaires (1) et (2) tandis que HTTP ne le fait même pas cela, mais il y a plutôt des problèmes délicats avec BitTorrent. C'est parce que SHA-1 est une mauvaise nouvelle (et MD5 est encore pire), et l'analyse de protocoles qui ont été naïvement construits sur une hypothèse de résistance aux collisions est très difficile si cette hypothèse sort par la fenêtre comme elle l'a fait avec SHA-1 a il y a une décennie et demie quand ne attaque par collision sur SHA-1 a été publiée pour la première fois en 2005 . ( Plus d'informations sur les dangers et la chronologie de la disparition de SHA-1 .)

15

La principale préoccupation avec les miroirs HTTP est que le responsable du miroir peut simplement modifier les fichiers à volonté. Ceci est atténué en utilisant BitTorrent car le tracker contient un hachage du fichier.

Une sécurité équivalente peut être obtenue en servant un hachage des fichiers au même emplacement que le fichier torrent, tant que vous vérifiez ce hachage manuellement.

BitTorrent n'est pas nécessaire pour la sécurité, l'auteur aime ça.

2
trognanders

Votre hypothèse selon laquelle cette affirmation est vraie est erronée. Ils sont les deux susceptibles d'interception. On pourrait affirmer que BitTorrent l'est moins car il est décentralisé, mais simplement en téléchargeant le .torrent manifest suffit pour reconstruire les demandes que vous ferez de toute façon à d'autres pairs.

Au moins .torrent les fichiers comportent un hachage cryptographique calculé pour les protéger contre la corruption. Cela ne prend pas vraiment en charge l'affirmation de votre question, car si cette .torrent est diffusé via HTTP, il est également susceptible d'être manipulé via le câble.

1
Stephen Touset

Si je devais deviner, ce serait en raison des différences dans les implémentations de sécurité entre les serveurs du monde entier qui contiennent les fichiers.

Vous n'avez pas donné suffisamment d'informations pour en être sûr, mais vous avez probablement raison.

Comme indiqué dans d'autres réponses, les fichiers .torrent contiennent un résumé cryptographique des données du fichier. Cela signifie qu'ils sont aussi fiables que les fichiers qu'ils décrivent, ni plus ni moins. (La fonction de hachage est SHA-1, donc les attaques par collision sont possibles, mais une attaque par collision nécessite que les fichiers eux-mêmes soient générés ou modifiés de manière malveillante, et je dirais que les fichiers et le .torrent sont tous deux non fiables dans ce cas.)

Je pense donc qu'il est faux de dire que le téléchargement via un torrent est intrinsèquement plus sûr que le téléchargement direct.

L'avantage du fichier .torrent est simplement qu'il est beaucoup plus petit. Les sites Web qui fournissent des images d'installation Linux et similaires ne peuvent généralement pas se permettre de servir gratuitement des images de disque à tout le monde. Lorsqu'ils offrent la possibilité de les télécharger directement, il s'agit généralement d'une bande passante donnée sur des serveurs tiers qu'ils ne contrôlent pas. En revanche, ils peuvent se permettre de fournir des fichiers .torrent à tout le monde à partir de leur propre serveur, auxquels ils peuvent avoir de meilleures raisons de faire confiance.

Si vous téléchargez une image à partir d'un serveur tiers aléatoire (même si ce n'est pas un miroir officiel) et calculez un résumé cryptographique (idéalement SHA-256 ou mieux) de l'image, et cela correspond au résumé publié sur le serveur officiel, c'est tout aussi bon du point de vue de la sécurité que d'utiliser un fichier .torrent téléchargé depuis le même serveur officiel sur le même protocole. Si ce protocole est vraiment HTTP (par opposition à HTTPS), alors les deux options sont assez peu sûres, mais aucune n'est pire que l'autre.

1
benrg

Ils veulent que vous utilisiez bittorrent, car il utilise la bande passante fournie par d'autres téléchargeurs (qui est gratuite pour eux) par opposition à la bande passante de leur serveur (pour laquelle ils doivent payer).

C'est assez courant, par exemple les services de jeux comme Battle.net avaient l'habitude de "voler" la bande passante en rendant leurs téléchargeurs (inconscients) téléchargeurs. Debian mentionne explicitement l'utilisation réduite de la bande passante sur leurs serveurs comme raison d'utiliser bittorrent.

Donc, je suppose que le discours sur la sécurité est un non-sens et ne signifie que la distraction.

1
Haukinger