Wo werden Anstrengungen unternommen, um Download-Integritäts-Metadaten zu standardisieren? (appcasting?)

986
Jason S

Ich lade ständig Open-Source-Software herunter und bin durch die Tatsache, dass so viele Sites ( Apache, MySQL, Eclipse ) Downloadintegritätsinformationen durch MD5-Hashes und / oder digitale Signaturen geben, immer wieder ratlos, vor allem seit dem Download von Mirror-Sites Es handelt sich dabei um potenziell anfällige Angriffe durch Hacker, aber das Format dieser Informationen zum Herunterladen der Integrität ist lesbar und nicht maschinenlesbar.

Ich würde es lieben, wenn es ein Standardformat für diese Informationen gäbe, sodass ich die Plugin-Software in meinem Webbrowser verwenden könnte, um all die Drecksarbeit für mich zu erledigen und eine Protokolldatei der Ergebnisse zu generieren, sodass ich nicht mehr manuell arbeiten müsste Führen Sie md5 aus und erledigen Sie diese zusätzliche Arbeit jedes Mal, wenn Sie etwas herunterladen. Es sieht so aus, als ob es tatsächlich einige Anstrengungen gibt, solche Formate zu entwerfen, zB "appcasting" (siehe auch hier und hier und hier, und wie das ursprüngliche Blog hier aussieht ) ...

... wie kommt es, dass so etwas in der Open-Source-Community nicht mehr verbreitet ist? Was würde es brauchen, um so etwas zum Laufen zu bringen?

0

1 Antwort auf die Frage

2
frnknstn

Die kurze Antwort ist, dass es eine Standardmethode gibt, die als Anwendungssignierung bezeichnet wird . Die längere Antwort ist etwas komplizierter.

In Bezug auf Ihre MD5-Hashing-Idee gibt es mindestens ein experimentelles Firefox-Plugin, das die Hashwerte heruntergeladener Dateien berechnet. Sie können sie dann manuell vergleichen. Alternativ bieten viele Sites Downloads von Textdateien mit den vorberechneten Hashes für ihre Software an. Sie können dann eine Prüfung mit erzwingen md5sum -c < hash filename >. Das Problem bei all diesen Methoden ist, dass ein Angreifer die von Ihnen heruntergeladene Datei möglicherweise ersetzen kann, und er möglicherweise die auf der Website aufgeführten Hashes ändern kann.

Die Anwendungssignierung ist die offizielle Lösung für dieses Problem. Es verwendet Kryptografie- und Zertifizierungsstellen für öffentliche Schlüssel in ähnlicher Weise wie im SSL-Sicherheitsstandard für Websites. Sie erhalten ein digitales Zertifikat von einer Zertifizierungsstelle. Dieses Zertifikat kann von jedermann überprüft werden und stellt sicher, dass der Inhaber der ist, von dem er sagt, dass er es ist. Es kann auch dazu verwendet werden, ein Paket zu "unterschreiben", wodurch sichergestellt wird, dass das Paket vom Inhaber hergestellt wurde und nicht von anderen Personen als dem Inhaber verändert wurde.

Warum sehen wir diese Methoden nicht besser? Nun, sie sind bereits ziemlich gut angenommen und meistens unsichtbar, wenn sie funktionieren. Wichtige Betriebssysteme und Browser verwenden die Signaturen, wenn sie standardmäßig verfügbar sind. Darüber hinaus signieren große Linux-Distributionen die von ihnen bereitgestellten Softwarepakete und Updates mit diesen Methoden. Bei den kleineren Anbietern ist es jedoch unwahrscheinlich, dass sich eine große Akzeptanz ergibt.

Das Problem hier ist eine Mischung aus Hacker-Armut und Hacker-Stolz. Um eines dieser Zertifikate zu erhalten, müssen Sie eine hohe Geldsumme an eine der Zertifizierungsstellen zahlen. Wenn dies nicht der Fall ist, kann ein Programmierer immer noch seine eigenen Pakete signieren, ohne dass die CA dies tut. Auf diese Weise kann der Benutzer, der die Datei herunterlädt, sicher sein, dass nur der Inhaber des Zertifikats ein bestimmtes Paket berührt, das die Integritätsanforderung Ihrer Frage erfüllt.

Die Verwendung eines solchen "selbstsignierten" Zertifikats verringert das Vertrauen der Öffentlichkeit in Ihre Software, anstatt sie zu erhöhen. Wenn Sie sich selbst signieren, beschwert sich das Betriebssystem / der Browser laut, wenn Sie versuchen, das Paket zu öffnen. noch lauter als für eine völlig unsignierte Datei. Da der Browser oder das Betriebssystem dem Software-Ersteller nicht vertraut, sollten Sie ihm auch nicht vertrauen.

Daraus ergibt sich aus der Hacker-Klage, warum sollte jemand mehr auf eine gesichtslose multinationale Zertifizierungsstelle vertrauen als auf jemand anderen? Was haben sie jemals getan, um sich als zuverlässiger zu beweisen als alle anderen?

Die Zertifikatsausgabe läuft für viele Menschen auf Erpressung an: "Zahlen Sie uns, um Sie zu zertifizieren, oder Ihre Downloads werden ein Bürger zweiter Wahl". Aus diesem Grund wurde die Anwendungssignierung nur von den größten Playern übernommen.

Ich stimme mit nichts überein, was Sie sagen, aber (a) Downloads sind manchmal Dateien, die keine Anwendungen sind (DLL-Dateien oder kompilierte Bibliotheken oder XML-Dateien oder was auch immer). Sie können also nicht signiert werden. Und (b) verwenden viele Sites MD5-Hashes, um die Integrität für Mirror-Download-Sites zu überprüfen. Ich wünschte nur, der MD5-Hash wäre so formatiert, dass er maschinenlesbar sein könnte. Jason S vor 15 Jahren 0
Nun, jede Datei kann signiert werden, nicht nur ausführbare Dateien. Zum Beispiel wird auf der Apache-Site jeder Download von einer .asc-Datei begleitet, die die Signatur enthält, beispielsweise mysql.tar.gz.asc. Ich schätze, was Sie danach fragen, ist ein Firefox-Plugin, das: - Sie können PGP-Public-Keys, die Ihnen begegnen, erkennen und anbieten, zu importieren. - Versuchen Sie automatisch, .md5- oder .asc-Dateien herunterzuladen, wenn Sie einen Download initiieren. - Überprüfen Sie den Download, wenn dies der Fall ist vervollständigen oder wenn Sie eine Signaturdatei manuell herunterladen, überprüfen Sie automatisch die signierten Dateien frnknstn vor 15 Jahren 0