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.