Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
ich plane ein kleines Script um die Datenintegrität meiner Programme regelmäßig zu überprüfen. Ein System wie ich gewährleiste das beabsichtigte Veränderungen von Dateien ausschließe ist schon fertig, nun fehlt mir noch das Wichtigste:
Welche Hash-Funktionen eignen sich am besten bzw. sind am zuverlässigsten für diese Aufgabe? CRC32 scheint nicht geeignet zu sein?
Hyperion hat geschrieben:Was spricht gegen das klassische md5?
Weniger sicher als SHA*. Wobei für Datenintegrität eignet sich wohl auch CRC32, außer es geht darum, dass die Daten von einem Angreifer bewusst manipuliert werden. Für Übertragungsfehler würde ich sagen, dass es gut genug ist. Hängt eben ab, was man für Anforderungen hat.
Oder geht es um die Detektion von Rootkits? Dafür gibts bereits Tools.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
SHA ist relativ langsam, andere Funktionen wie etwa Adler-32 sind dagegen bei bestimmten Dateigrößen ungünstig, iirc. Schlag doch mal in der Wikipedia die Eigenheiten und Unterschiede nach. Einiges ist ja schon in der hashlib vorhanden, andere sind einfach selbst zu implementieren.
Hyperion hat geschrieben:Was spricht gegen das klassische md5?
Weniger sicher als SHA*. Wobei für Datenintegrität eignet sich wohl auch CRC32, außer es geht darum, dass die Daten von einem Angreifer bewusst manipuliert werden. Für Übertragungsfehler würde ich sagen, dass es gut genug ist. Hängt eben ab, was man für Anforderungen hat.
Oder geht es um die Detektion von Rootkits? Dafür gibts bereits Tools.
Nein, es geht lediglich darum zu überprüfen ob sich z.b. durch äußere einflüsse Dateien von einem bestimmten Programmen geändert haben. Das Script soll auf einem Homeserver laufen auf dem Hohe Datenintegrität verlangt wird (ECC Ram wird z.b. verwendet).
Die Geschwindigkeit ist mir relativ egal, da solch ein Check nur 1x die Woche erfolgt, ich brauche eher eine genaustmögliche Erkennung.
Y0Gi hat geschrieben:SHA ist relativ langsam, andere Funktionen wie etwa Adler-32 sind dagegen bei bestimmten Dateigrößen ungünstig, iirc. Schlag doch mal in der Wikipedia die Eigenheiten und Unterschiede nach. Einiges ist ja schon in der hashlib vorhanden, andere sind einfach selbst zu implementieren.
Das habe ich schon vorher getan, jedoch sind die Artikel nicht so aufschlussreich für mich welcher dieser Hash-Algor. der Passende für meinen Zweck wäre. Laut Wikipedia ist CRC32 gänzlich ungeignet, was ich jedoch nicht nachvollziehen kann.
Bei CRC32 ist es relativ einfach nach einer absichtlichen Änderung von einem Byte andere Bytes so zu ändern, dass wieder die gleiche Prüfsumme heraus kommt. Das so etwas zufällig vorkommt ist sehr unwahrscheinlich, aber Angriffe sind ja nicht zufällig. Es hilft also in ZIP-Archiven zu entdecken, dass Bits auf dem Datenträger "umgekippt" sind, oder dass es Übertragungsfehler beim Download gab.