Wenn der MD5 an der exe dranhängt, kann doch genau der gleiche Fall auftreten: nur die paar Bytes am Schluss sind falsch übertragen worden. Dann ist die exe ebenfalls okay, d.h. fehlerfrei ausführbar.droptix hat geschrieben:Nicht ganz. Angenommen die .exe wurde einwandfrei heruntergeladen, aber bei der .md5 Datei trat ein Fehler auf. Obwohl die .exe okay ist, meint sie bei der Überprüfung sie sei falsch.
MD5 Binary-SelfTest
- birkenfeld
- Python-Forum Veteran
- Beiträge: 1603
- Registriert: Montag 20. März 2006, 15:29
- Wohnort: Die aufstrebende Universitätsstadt bei München
Wenn man von einem Format pro Plattform ausgeht, dann ja.droptix hat geschrieben:Ich weiß. Aber es gibt auf jedem OS ein Binary-Format. Ich möchte mein Programm auf jeden Fall für Windows, Mac OS X, Linux, FreeBSD und Symbian (Nokia) ausliefern. Das sind fünf verschiedene Binary-Formate.BlackJack hat geschrieben:Es gibt unter "UNIX" kein einheitliches EXE Format.
Du solltest auch unter Linux ein installiertes Python vorraussetzen. Bei den meisten Distributionen ist es sowieso schon installiert weil es von Programmen, manchmal sogar Systemprogrammen, schon benötigt wird. Auf jeden Fall sollte es per Paketsystem einfach nachzuinstallieren sein.Für Windows gibt's py2exe – kein Problem also. Für Linux hab ich mal was ähnliches gelesen, habe mich aber noch nie richtig intensiv damit befasst. Was es für Linux gibt, wird meistens auch für andere Unixe portiert. Für alle anderen Systeme ohne Binary-Möglichkeit setze ich eine Python-Installation voraus und liefere die .pyc Datei.
Software die einen eigenen Pythoninterpreter mitbringt fänd ich unter Linux ziemlich schräg.
Einfach zu handhaben? Warum gibt's dann diese Diskussion?Weil das die meisten Endanwender einfach lieber mögen und das Ganze sehr einfach zu handhaben ist. Was spricht denn dagegen?BlackJack hat geschrieben:Warum willst Du das unbedingt mit aller Gewalt zusammen packen wenn es anders viel plattformunabhängiger geht!?
Dagegen spricht die unnötige Komplexität. Wenn Du die Prüfsumme in einer eigenen Datei hast, dann funktioniert es ohne grosse Änderungen auf allen 5 Plattformen. Und auch auf solchen, an die Du gar nicht gedacht hast.
Nunja, da ich aktuell mit Python 2.4 arbeite, bereitet das manchmal Probleme: Debian Sarge (stable) oder Mac OS X haben standardmäßig nur Python 2.3 drauf. Der Endanwender hat in manchen Fällen nicht die nötigen Rechte zum Updaten der Version. Daher finde ich es gar nicht so schlecht, den Installer auszuliefern. Kann man ja optional gestalten -> einmal die .pyc für alle oder Binaries für Benutzer ohne Python.BlackJack hat geschrieben:Du solltest auch unter Linux ein installiertes Python vorraussetzen. Bei den meisten Distributionen ist es sowieso schon installiert […]
Das gilt aber nur, wenn ich für alle Systeme die selbe .py(c) ausliefere, was das Optimum darstellt. Ich fände es nett, wenn zumindest für die meist benutzten Systeme (Windows, Mac OS, Linux, FreeBSD) Binaries zum schnellen Ausprobieren exisiteren. Da kann man ein Programm mal eben schnell ohne Umwege starten und einfach testen.BlackJack hat geschrieben:Einfach zu handhaben? Warum gibt's dann diese Diskussion?
Dagegen spricht die unnötige Komplexität. Wenn Du die Prüfsumme in einer eigenen Datei hast, dann funktioniert es ohne grosse Änderungen auf allen 5 Plattformen. Und auch auf solchen, an die Du gar nicht gedacht hast.
Ja, sie meint, dass beim Download ein Fehler passiert ist, was ja auch stimmt...droptix hat geschrieben:Nicht ganz. Angenommen die .exe wurde einwandfrei heruntergeladen, aber bei der .md5 Datei trat ein Fehler auf. Obwohl die .exe okay ist, meint sie bei der Überprüfung sie sei falsch.
Ich meine, dass der Fehler aber bei einer irrelevanten Datei aufgetreten ist. Das ließe sich vermeiden, wenn diese separate .md5-Datei nicht benutzt werden würde.
Hum. Also ich gebe euch ja recht, wenn's um das Thema "Einfachkeit" geht. Es wäre definitiv simpler und einfacher, den MD5-Hash auszulagern oder auf der Website anzugeben (zum selbst überprüfen).
Nur wenn man ein Update z.B. auf CD brennt, es mit nach Hause nimmt und dort drüber jagt… bei jeder Übertragung könnten Fehler entstehen. Ich empfinde es eben als das Optimum, den MD5-Hash direkt in der Datei zu haben. Nur dass dieser Weg meiner Meinung nach auch der Komplizierteste ist.
Übrigens: Wir haben immer noch keine Lösung, wie man das praktisch realisieren könnte (mal abgesehen vom Zweck). Hat jemand eine andere (effizientere) Idee als die Brute-Force-Methode?
Hum. Also ich gebe euch ja recht, wenn's um das Thema "Einfachkeit" geht. Es wäre definitiv simpler und einfacher, den MD5-Hash auszulagern oder auf der Website anzugeben (zum selbst überprüfen).
Nur wenn man ein Update z.B. auf CD brennt, es mit nach Hause nimmt und dort drüber jagt… bei jeder Übertragung könnten Fehler entstehen. Ich empfinde es eben als das Optimum, den MD5-Hash direkt in der Datei zu haben. Nur dass dieser Weg meiner Meinung nach auch der Komplizierteste ist.
Übrigens: Wir haben immer noch keine Lösung, wie man das praktisch realisieren könnte (mal abgesehen vom Zweck). Hat jemand eine andere (effizientere) Idee als die Brute-Force-Methode?
ich nicht aber chinesische mathematiker, die herausgefunde haben, dass man vom md5 DOCH den ursprünglichen byte herausbekommen kann.
dafüer haben die zwar ein jahr für einen buchstaben gebraucht, aber md5 ist mathematisch knackbar.
dafüer haben die zwar ein jahr für einen buchstaben gebraucht, aber md5 ist mathematisch knackbar.
http://www.cs.unm.edu/~dlchao/flake/doom/
Was die geschafft haben ist, eine Kollision zu erzeugen. Das heisst, zwei Nachrichten/Dateien zu finden, die die gleiche MD5 Summe haben.Ihr Verfahren lässt sich aber glaube ich nicht anwenden, um zu einer gegebenen MD5 eine Datei mit jener Hash zu finden, Und erst recht noch nicht, zu einer gegebenen Nachricht und MD5 die Nachricht so umzuändern, dass die gewünschte MD5 rauskommt. Letzteres ist das, was einen Angreifer interessiert. Denn wenn du eine Nachricht, bekommst, die von deinem Freund signiert ist, und deren Inhalt nur "lksgpae9ut+2tägjgofüsj" ist, merkst du, dass da was nicht stimmt.murph hat geschrieben:ich nicht aber chinesische mathematiker, die herausgefunde haben, dass man vom md5 DOCH den ursprünglichen byte herausbekommen kann.
Wofür der Angriff noch nützlich sein kann, ist z.B. bei Versionskontrollsystemen oder allgemein Dateisystem, die einen Dateiinhalt mit der entsprechenden MD5 identifizieren. Schaffst du es jetzt, zwei Dateien mit der gleichen MD5 zu haben, kannst du das System durcheinanderbringen, da diese Dateien für das System identisch sind.
Dennoch war der Angriff ein Schritt in die "richtige" Richtung und ausreichend, MD5 als ungenügend für sichere Signierung anzusehen (was sich schon früher abzeichnete, von daher war keiner so wirklich überrascht)
@droptix: Die Prüfsummendatei ist nicht irrelevant, schließlich gilt sie der Überprüfung. Und die Vermutung liegt nunmal nahe, dass es, wenn es einen Fehler gibt, auch mehrere gibt.
das ganze muss man ja auch nicht in ein externes file in dem sinne legen.
man könnte auch auf einer eigenen homepage ein file legen und das zu updatende programm greift auf diese homepage zu, um an den md5 zu kommen!
man könnte auch auf einer eigenen homepage ein file legen und das zu updatende programm greift auf diese homepage zu, um an den md5 zu kommen!
http://www.cs.unm.edu/~dlchao/flake/doom/
- DatenMetzgerX
- User
- Beiträge: 398
- Registriert: Freitag 28. April 2006, 06:28
- Wohnort: Zürich Seebach (CH)
Wenn das so ein programm ist das möglichst viele hacken wollen werden die schon deine anfrage auf server abfangen können (@murph)
aber als downloadhilfe nicht.
aber wie will man etwas hacksicher machen?
überall, wo man reinkommt, kommt man auch wieder irgendwie raus.
(außer sha^^)
aber wie will man etwas hacksicher machen?
überall, wo man reinkommt, kommt man auch wieder irgendwie raus.
(außer sha^^)
http://www.cs.unm.edu/~dlchao/flake/doom/
Jo das hab ich mir auch schon überlegt. Nur dass die Kontrolle abhängig von einer Internetverbindung ist.murph hat geschrieben:das ganze muss man ja auch nicht in ein externes file in dem sinne legen.
man könnte auch auf einer eigenen homepage ein file legen und das zu updatende programm greift auf diese homepage zu, um an den md5 zu kommen!
So langsam wird in mir das Interesse stärker, erstmal eine Antwort auf die Frage zu bekommen, wie ich den MD5-Hash der Datei in die Datei rein kriege. Also mich packt grad der Ehrgeiz das Rauszukriegen.