Seite 1 von 1

Datenintegrität sicher prüfen?

Verfasst: Dienstag 19. Februar 2008, 21:01
von Filb
Hallo :)

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?

MfG
- Filb

Verfasst: Dienstag 19. Februar 2008, 21:11
von BlackJack
In der Standardbibliothek im Modul `hashlib` ist das Stärkste wohl `sha512`.

Verfasst: Dienstag 19. Februar 2008, 21:11
von ne0h
Ripemd oder Whirlpool würde ich favorisieren.


ne0h

Verfasst: Dienstag 19. Februar 2008, 22:30
von Hyperion
Was spricht gegen das klassische md5?

Verfasst: Dienstag 19. Februar 2008, 23:39
von Leonidas
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.

Verfasst: Dienstag 19. Februar 2008, 23:44
von Y0Gi
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.

Verfasst: Mittwoch 20. Februar 2008, 00:37
von Filb
Leonidas hat geschrieben:
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.

Verfasst: Mittwoch 20. Februar 2008, 00:39
von Filb
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.

Verfasst: Mittwoch 20. Februar 2008, 01:11
von BlackJack
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.