Sind Ubuntu-Pakete (Deb-Dateien) nur mit md5sum gesichert?

13

Einführender Hintergrund zu der folgenden Frage

(Die Frage ist also für mehr Benutzer besser verwendbar.)
In einem Ubuntu / debian-ähnlichen Paket (* .deb-Datei) befindet sich eine Datei mit dem Namen, /DEBIAN/md5sumsdie den folgenden Inhalt hat:

212ee8d0856605eb4546c3cff6aa6d35 usr / bin / file1
4131b66dc3913fcbf795159df912809f Pfad / zu / Datei2
8c21de23b7c25c9d1a093607fc27656a Pfad / zu / Datei3
c6d010a475366e0644f3bf77d7f922fd Pfad / zu / Ort / von / Datei4

Ich gehe davon aus, dass diese Datei verwendet wird, um zu überprüfen, ob die mit dem Paket gelieferten Dateien irgendwie nicht beschädigt wurden. Da die Datei `/ DEBIAN / md5sums" heißt, nehme ich die Hex-Nummer an, bevor der Pfad + Dateiname der MD5-Message-Digest-Algorithmus Hash der Paketdateien ist.

Jetzt weiß jeder Interessierte, dass der MD5-Hash schon längst kaputt ist. Daher ist es durchaus möglich, den Inhalt einer Datei im Paket zu ändern (z. B. in böswilliger Absicht) und die Datei trotzdem mit demselben MD5-Hash zu versehen (siehe z. B. Prove of Concept "Predicting the winner ...." ).

Frage

Unter Berücksichtigung der obigen Informationen möchte ich Folgendes wissen:

** Angenommen, ich installiere ein Paket in meinem Ubuntu-System. Ist dies das DEBIAN/md5sumseinzige Mittel, um sicherzustellen, dass die Daten nicht manipuliert wurden? **

Die Beantwortung der Frage könnte meiner Meinung nach helfen, Folgendes herauszufinden:

  • Sind die Deb-Pakete als Ganzes auch gehasht (Hash-Werte sind dafür gemacht), so dass es eine andere Möglichkeit gibt, die Sicherheit zu gewährleisten, dass die empfangenen Dateien "sicher" / "unbefugt" sind?
  • Wenn es andere Möglichkeiten gibt als die DEBIAN/md5sumsDatei, um die Integrität zu gewährleisten, welche Datei ist dann überhaupt in den * .deb-Paketen enthalten?
  • Verwendet Ubuntu Hashes für Repository / Package-Systeme, die "weniger kaputt" sind als SHA-1 und MD5?

das weiß ich leider auch nicht.

Jede Antwort, die Aufschluss über die Frage (oder auch nur eine Unterfrage) gibt, ist sehr willkommen

aktualisieren

(1) https://help.ubuntu.com/community/Repositories/Ubuntu#Authentication_Tab scheint darauf hinzudeuten, dass (wie ich gehofft habe) ein öffentlicher / privater gpg-Schlüssel vorhanden ist (um die Repos und Paketsysteme zu schützen) vor Angriffen. Die Informationen am verlinkten Ort sind jedoch nicht sehr umfangreich. Es sagt fast nichts über den Sicherheitsaspekt des Package-Systems aus. Jedenfalls gehe ich davon aus, dass der Link bereits darauf hinweist, dass die Antwort auf die Frage "NEIN - zumindest die Deb-Pakete aus dem Repo - sind ebenfalls durch ... gesichert" lautet. Ich hoffe, jemand kann hier einige Erkenntnisse für eine Antwort nutzen.

(2) Diese Frage scheint sich auch mit dem Thema "Sicherheit" im Ubuntu-Paketsystem zu befassen. Also füge ich es einfach hier hinzu, damit es angezeigt wird, wenn jemand versucht, die Frage herauszufinden: Warum sind die vorgeschlagenen BADSIG-Fixes (auf apt-get update) sicher?

Mensch und Frieden
quelle
1
debian.org/doc/debian-policy/… zeigt Unterstützung für SHA-1- und SHA256-Prüfsummen pro Datei an, ich weiß jedoch nicht, wie aptdie Prüfsummenrichtlinie lautet.
Chronitis
1
@chronitis danke für den Link dort. In der Tat sind die SHA- * -Hashes dort erwähnt. Ich muss noch herausfinden, wie sie in den Paketen (die ich noch nicht gesehen habe) oder im Paketsystem erscheinen. Wissen Sie mehr? Nun, die Anzeige ist bereits ein guter Schritt
humanityANDpeace

Antworten:

21

Ubuntu veröffentlicht ein Manifest, das mit einem RSA-Schlüssel signiert ist. Das Manifest listet einzelne PackagesIndexdateien mit MD5-, SHA-1- und SHA-256-Hashes auf. Jede PackagesDatei listet einzelne .debDateien mit MD5-, SHA-1- und SHA-256-Hashes auf.

Zur Überprüfung verwendet apt den besten Hash, den es unterstützt, und wird von dem Archiv veröffentlicht, aus dem es herunterlädt. Im Falle des Ubuntu-Archivs ist dies SHA-256.

Die gesamte Kette der Paketinstallation auf Ihrem Ubuntu-System ist also durch RSA und SHA-256 geschützt.

Der in dpkg vorhandene MD5-Schutz ist nur für versehentliche Beschädigungen von Nutzen und zum Schutz des Installationspfads nicht erforderlich.

Möglicherweise interessiert Sie das debsumsPaket, aber da es MD5s verwendet, ist es auch nur nützlich, um nach versehentlichen Beschädigungen zu suchen.

Wenn Sie nach böswilligen Systemänderungen suchen möchten, sind diese Tools nicht für Sie geeignet. Sie müssen das System offline schalten und entweder einen vorherigen Datensatz, die Originalpaketdateien oder aus diesen generierte sichere Hashes überprüfen.

Beachten Sie, dass es möglicherweise nicht ausreicht, zu überprüfen, ob alle installierten Paketdateien mit ihren Originalen übereinstimmen, da eine erfolgreiche böswillige Änderung darin besteht, ein Paket einfach auf das Paket vor einem Sicherheitsupdate herunterzustufen.

Robie Basak
quelle
1
Ich habe klarere Einsichten gewonnen. Woher hast du all diese Informationen, die ich so schwer zu finden habe? Haben Sie einige Dokumente / Links, die Sie verwendet haben? Ich schätze auch die Erwähnung der von Ihnen erwähnten "Downgrade-Gefahr", daher verstehe ich noch nicht, wie genau dies ausgenutzt werden könnte. Groß! Vielen Dank
humanityANDpeace
Ich glaube nicht, dass das Apt-Repository-Format irgendwo richtig spezifiziert oder dokumentiert ist. Das ist schlecht, aber so ist es. Die beste (und meines Wissens nur) wahre Dokumentation ist die Quelle. Ich kenne die Details, weil ich in der Quelle gearbeitet habe. Andererseits ist das dpkg-Format in der Debian-Richtlinie sehr gut spezifiziert. Es behandelt, was passiert, wenn Pakete auf Ihrem System landen, aber nicht, wie sie dort ankommen. Der letzte Teil wird von apt erledigt.
Robie Basak
Downgrade-Risiko: Dies ist eine Seite und hängt nicht wirklich direkt mit Ihrer ursprünglichen Frage zusammen. Wenn Exploit X in Version A entdeckt wird, erhalten Sie ein Sicherheitsupdate auf Version B, in dem die Sicherheitsanfälligkeit behoben ist. Wenn ein Angreifer X in Version A ausnutzen kann, sind Sie sicher, da Sie auf B aktualisiert haben. Wenn der Angreifer Sie jedoch auch auf A herabstufen kann, sind Sie erneut angreifbar. Sie werden dies auch dann nicht bemerken, wenn alle Ihre sicheren Hashes mit den von Ihnen installierten Paketen übereinstimmen, da Ihre Paketdatenbank
angibt
2
@RobieBasak "Ich glaube nicht, dass das apt-Repository-Format irgendwo richtig angegeben oder dokumentiert ist." Offensichtlich ist das nicht wahr. Sie müssen nur danach suchen. Debian-Wiki: RepositoryFormat
gertvdijk
6

Ich wollte, dass dies ein Kommentar ist, aber ich konnte ihn nicht in die Box einfügen, also platziere ich ihn hier.

Ja, md5 wurde kryptologisch beschädigt, aber das bedeutet nicht, dass es ein schlechter Allzweck-Hashing-Algorithmus ist. Eine Datei so zu ändern, dass sie denselben Hash hat, ist unglaublich schwierig, und es ist nahezu unmöglich, dies mit einer bestimmten böswilligen Änderung zu tun. Wenn Sie sich das Beispiel ansehen , auf das Sie verwiesen haben ( Predicting The Winner ), sehen Sie Folgendes:

Die Dokumente wurden zuerst sorgfältig als gültige PDF-Dokumente vorbereitet, wobei ein verstecktes Bildobjekt enthalten war, das eine ausreichende Menge von Zufallsbits enthielt. Dann wurden gemäß der oben gezeigten Diamantstruktur elf Kollisionen mit ausgewählten Präfixen berechnet und in das Versteck gelegt Bildobjekte genau an der richtigen Stelle. Auf diese Weise wurden die zwölf Dokumente in eine MD5-Multikollision umgewandelt. "

Was getan wurde, war, die Dateien mit zufälligen Daten zu füllen , damit die Hashes übereinstimmen. Die Technologie ist bei weitem nicht in der Lage, einer Datei bestimmten Schadcode hinzuzufügen und die Hashes in einer Reihe anzuordnen, ohne sie zu beschädigen oder zu verdeutlichen, dass die Datei geändert wurde zusammen mit ihren Dateigrößen, um die Schwierigkeit einer nicht nachweisbaren Hash-Kollision zu erhöhen).

verrückt
quelle
3
Danke für die Antwort. Ich denke, es ist eine gute Antwort in dem Sinne, dass es dem gesamten Hintergrund mehr Licht verleiht auf das Thema näher eingehen.
HumanityANDpeace
Die vorbereiteten PDF-Dateien enthalten zufällige Daten und sind mit all diesem Aufwand nur 104 KB groß. Warum ist das dann unmöglich? Es müssen Tonnen von Dateien in Deb-Paketen mit mehr als 200 KB vorhanden sein, in denen dies möglich sein muss. Ich fühle mich nicht so sicher, nachdem ich den Proof of Concept gesehen habe, der mich erstaunt und schockiert hat
humanityANDpeace
Es gibt viele Stellen in legitimen Dateien, an denen eine geringfügige Änderung nicht ungewöhnlich erscheint, z. B. geringfügige Leerraumunterschiede in einer Textdatei. Sie müssen nur etwa 128 dieser Stellen finden, um ausreichend Speicherplatz zu haben, um eine schädliche Datei zu erstellen, die sowohl legitim erscheint als auch Ihrem gewünschten Ziel-MD5 entspricht. Ich bin nicht sicher, ob dieser spezielle Angriff auf diese Situation angewendet werden könnte.
Robie Basak
@RobieBasak, du verstehst den Angriff falsch. Sie können nicht einfach 128 Bytes in einer Datei ändern und die MD5-Summe erhalten. Sie müssen in zwei Kopien einer Datei einen Teil der scheinbar zwei Sätze von Zufallsdaten einfügen, und sie haben die gleiche MD5-Summe, obwohl die beiden Teile der "zufälligen" Daten unterschiedlich sind.
Psusi
1

md5 war nicht "kaputt". Was sie fanden, war eine Möglichkeit, eine Originalnachricht und eine modifizierte Nachricht mit demselben Hash sorgfältig zu erstellen. Es ist nicht möglich, eine Originalnachricht, die nicht speziell für Manipulationszwecke erstellt wurde (die richtige Datei), so zu bearbeiten, dass die MD5-Summe erhalten bleibt.

Psusi
quelle
in Ordnung. Aber wie könnte man jetzt auf den aktuellen Stand der MD5-Sicherheit verweisen, wenn nicht "kaputt"? Ich kann verstehen, was Sie sagen, und ich danke Ihnen, dass Sie darauf hingewiesen haben. Ich frage mich immer noch, wie man die aktuelle Sicherheit von MD5 usw. bewertet
humanityANDpeace
@humanityANDpeace, "ganz gut".
Psusi
Ich mag die optimistische Einstellung. Der Proof of Concept hat mich immer noch erstaunt. Vielen Dank!
HumanityANDpeace
1
"Krypto-Experten halten MD5 für defekt. Daher sollte es als defekt betrachtet werden." So funktioniert die Welt nicht @RobieBasak Als Krypto-Enthusiast (kann mich nicht als "Experte" bezeichnen, aber ich musste mich vor ein paar Jahren damit auseinandersetzen) würde ich nicht sagen, dass MD5 kaputt ist. Nur, dass es einen interessanten Fall gibt, den es zu prüfen gilt, aber es scheint theoretisch. Aber es wird Ubuntus Verpackung nicht kaputt machen;) Back to 0 psusi;)
Rinzwind
1
@jackweirdy gibt es tatsächlich, und deshalb haben sie das nicht getan. Ihre Methode beruht auf beiden Datensätzen mit sehr spezifischen Eigenschaften. Es ähnelt einem öffentlichen Schlüsselpaar. Sie können ein Schlüsselpaar generieren, das zueinander passt, aber bei nur einem Schlüssel können Sie den anderen nicht herausfinden.
Psusi