Der Unterschied besteht darin, dass das BitTorrent-Protokoll über einen Mechanismus verfügt, mit dem überprüft wird, ob Sie das erhalten haben, was Sie empfangen möchten, während HTTP dies nicht tut.
HTTP hat keinen Mechanismus ...
- , um zu überprüfen, ob Sie tatsächlich mit dem Server verbunden sind, zu dem Sie eine Verbindung herstellen möchten,
- oder um die Datei herunterzuladen, die Sie erwartet haben.
Wenn Jeder der HTTP-Spiegel weist Sicherheitslücken auf oder befindet sich nicht unter der Kontrolle des Anbieters. Ein Angreifer könnte die Datei einfach ersetzen und sie würde auf der Seite des Empfängers unentdeckt bleiben.
Wenn die Umstände dies zulassen , HTTP ist anfällig für einen Man-in-the-Middle-Angriff. Das heißt, von Ihrem Ende aus sieht es so aus, als wären Sie mit example.com verbunden, aber tatsächlich sind Sie mit einem Dritten verbunden, der den Verkehr abfängt, den Netzwerkverkehr manipuliert und nur so aussehen lässt, als wären Sie mit example.com verbunden. Sie fordern dann an, eine bestimmte Datei herunterzuladen, aber der Angreifer sendet Ihnen stattdessen eine schädliche Datei. (Nebenbei bemerkt, korrekt konfiguriertes HTTPS mit S
verhindert dies.)
Eine Datei, die über BitTorrent übertragen wird, wird zunächst in Blöcke unterteilt. Jeder dieser Chunks wird dann mit SHA-1 gehasht, d. H. Eine Prüfsumme wird vom Torrent-Ersteller generiert. Die Hashes werden vor dem Download an jeden BitTorrent-Client übergeben - normalerweise in einer .torrent
-Datei. Wenn die Dateiblöcke dann vom Client heruntergeladen werden, werden sie zuerst vom Client selbst gehasht und mit dem zuvor empfangenen Hash verglichen. Nur wenn der Hash übereinstimmt, was bedeutet, dass der Block genau die gleichen Bytes wie der erwartete Block enthält, wird er akzeptiert. Es ist praktisch unmöglich, veränderte Chunks herzustellen, die böswilligen Inhalt haben, aber ihre ursprüngliche Hashsumme beibehalten.
Da diese Hashes vor dem Download für Sie freigegeben werden, vermutlich von einer vertrauenswürdigen Quelle, ist es im Vergleich zu einem HTTP-Download schwieriger (bis unmöglich), die erwarteten Dateien während des Transports beim Empfang über BitTorrent zu manipulieren. Der Anbieter kann den Torrent, bei dem es sich um eine kleine Datei handelt, von einem einzelnen gesicherten Server über HTTPS unter seiner eigenen Kontrolle verteilen, und der Hashing-Mechanismus bietet eine Validierung für den tatsächlichen Download.
Wenn andererseits Wenn Ihre Hashes oder Torrent-Dateien vor dem Download manipuliert werden oder aufgrund eines MitM-Angriffs, wenn der Torrent selbst über HTTP heruntergeladen wird, bietet die Prüfsummenüberprüfung keine Sicherheit.
Schließlich gibt es eine Möglichkeit, wie Der Prüfsummenmechanismus kann von einem Angreifer umgangen werden, wenn er vor der Hashsum-Generierung, dh vor der ursprünglichen Erstellung des Torrents, Zugriff auf die Datei hat. Es ist dann für einen Angreifer möglich, die Datei so zu ändern, dass ein Teil des Dateiinhalts später während der Übertragung des Torrents durch vorgefertigten Code ersetzt werden kann, ohne von der SHA-1-Hashsum-Prüfung erkannt zu werden, obwohl er sich von unterscheidet die Datei, die ursprünglich mit einer Prüfsumme versehen war.