Wo sind die Bemühungen, Metadaten zur Download-Integrität zu standardisieren? (Appcasting?)

0

Ich lade ständig Open-Source-Software herunter und bin immer wieder verblüfft darüber, dass einerseits so viele Websites ( Apache , MySQL , Eclipse ) Informationen zur Download-Integrität über MD5-Hashes und / oder digitale Signaturen bereitstellen, insbesondere seit Download-Mirror-Sites Es handelt sich um potenziell anfällige Hackerangriffe. Das Format dieser Download-Integritätsinformationen ist jedoch lesbar und nicht maschinenlesbar.

Ich würde es lieben, wenn es ein Standardformat für diese Informationen gäbe, so dass ich Plug-in-Software in meinem Webbrowser verwenden könnte, um die ganze Drecksarbeit für mich zu erledigen und eine Protokolldatei der Ergebnisse zu generieren, sodass ich nicht ständig manuell arbeiten müsste starte md5 und erledige all diese zusätzliche Arbeit jedes Mal, wenn ich etwas herunterlade. Es sieht so aus, als gäbe es tatsächlich einige Anstrengungen, solche Formate zu entwerfen, z. B. "Appcasting" (siehe auch hier und hier und hier und wie der ursprüngliche Blog hier aussieht ) ...

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

Jason S
quelle

Antworten:

2

Die kurze Antwort lautet, dass es eine Standardmethode gibt, die als Anwendungssignatur 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 Hashes der heruntergeladenen Dateien berechnet. Sie können sie dann manuell vergleichen. Alternativ bieten viele Websites das Herunterladen 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, der die heruntergeladene Datei ersetzen konnte, möglicherweise die auf der Website aufgelisteten Hashes ändern kann.

Das Signieren von Anwendungen ist die offizielle Lösung für dieses Problem. Es verwendet Kryptografie mit öffentlichem Schlüssel und Zertifizierungsstellen auf ähnliche Weise wie der SSL-Sicherheitsstandard für Websites. Es funktioniert, indem ein digitales Zertifikat von einer Zertifizierungsstelle abgerufen wird. Dieses Zertifikat kann von jedem überprüft werden und stellt sicher, dass der Inhaber derjenige ist, von dem er sagt, dass er er ist. Es kann auch verwendet werden, um eine Packung zu „signieren“, wodurch sichergestellt wird, dass die Packung vom Inhaber hergestellt und von niemand anderem als dem Inhaber in irgendeiner Weise verändert wurde.

Warum sehen wir keine bessere Anwendung dieser Methoden? Nun, sie sind bereits ziemlich gut adoptiert und größtenteils unsichtbar, wenn sie arbeiten. 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 mithilfe dieser Methoden. Es ist jedoch sehr unwahrscheinlich, dass bei den kleineren Unternehmen eine größere Akzeptanz zu erwarten ist.

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

Leider verringert die Verwendung eines solchen selbstsignierten Zertifikats das Vertrauen der Öffentlichkeit in Ihre Software, anstatt es zu erhöhen. Wenn Sie sich selbst signieren, beschwert sich das Betriebssystem / der Browser laut, wenn Sie versuchen, das Paket zu öffnen. lauter als bei einer Datei ohne Vorzeichen. Da der Browser oder das Betriebssystem dem Softwarehersteller nicht vertraut, sollten Sie ihm auch nicht vertrauen.

Die Hacker-Beschwerde lautet daher, warum jemand einer gesichtslosen multinationalen Zertifizierungsstelle mehr vertrauen sollte als jemand anderem? Was haben sie jemals getan, um sich als vertrauenswürdiger als alle anderen zu erweisen?

Für viele Menschen läuft die Zertifikatsausstellung auf Erpressung hinaus: "Zahlen Sie uns $$$, um Sie zu zertifizieren, oder Ihre Downloads sind ein zweitklassiger Bürger". Aus diesem Grund wurde die Anwendungssignatur von niemandem außer den größten Akteuren übernommen.

frnknstn
quelle
Ich bin mit nichts, was Sie sagen, nicht einverstanden, aber (a) manchmal sind Downloads Dateien, die keine Anwendungen sind (DLL-Dateien oder kompilierte Bibliotheken oder XML-Dateien oder was auch immer), so dass sie nicht signiert werden können. Und (b) viele Sites verwenden MD5-Hashes, um die Integrität von Mirror-Download-Sites zu überprüfen. Ich wünschte nur, der MD5-Hash wäre so formatiert, dass er maschinenlesbar wäre.
Jason S
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, zum Beispiel mysql.tar.gz.asc. Ich vermute, was Sie dann verlangen, ist ein Firefox-Plugin, das: -erkennt und anbietet, öffentliche PGP-Schlüssel zu importieren, die Sie finden. -Versucht automatisch, MD5- oder ASC-Dateien herunterzuladen, wenn Sie einen Download starten. -Überprüft den Download, wenn er ist Vollständig oder wenn Sie eine Signaturdatei manuell herunterladen, überprüfen Sie die signierten Dateien automatisch
frnknstn