Digitaler Fingerabdruck/Signatur

Hallo zusammen

Ich habe eine Frage zum digitalen Fingerabruck.

Hat jede Datei von sich aus einen sog digitalen Fingerabdruck bzw eine digitale Signatur?

Wenn ja: Wie ist dieser aufgebaut, wie kann ihn erkennen?

Wenn nein: Wie arbeitet dann das Programm PERKEO vom LKA? Das sucht laut Herstellerangaben nach dem digitalen Fingerabdruck bei Dateien, um somit illegale Kinderpornografie aufzuspüren.

Gruß

Schnüffler

Moin.

http://collabor.idv.edu:8888/0356817/stories/17943/

Chatta

http://collabor.idv.edu:8888/0356817/stories/17943/

Das hat mit Perkeo nichts zu tun. In deinem Link geht es um durch digitale Wasserzeichen geschützte Inhalte. Perkeo funktioniert ganz anders, siehe meine direkte Antwort an den OP.

Ich habe eine Frage zum digitalen Fingerabruck.

Hat jede Datei von sich aus einen sog digitalen Fingerabdruck
bzw eine digitale Signatur?

Wenn ja: Wie ist dieser aufgebaut, wie kann ihn erkennen?

Der „Fingerabdruck“, bei dem es bei Perkeo geht, basiert auf kryptologischen Hash-Algorithmen. Das sind Algorithmen, also Rechenverfahren, die einem beliebigen Datum, also z.B. dem Inhalt einer Datei, eine (nahezu) eindeutige Kennung zuordnen. Diese Kennung bzw diesen Fingerabdruck nennt man dabei eigentlich auch nicht Fingerabdruck, sondern Prüfsumme oder noch genauer „Hash“.

Dazu werden bestimmte mathematische Funktionen verwendet, die man als „kollisionsresistente Einweg-Hashfunktionen“ bezeichnet. Wenn du einen Eingabewert x (also z.B. die Daten einer Datei) hast, dann bildet diese Funktion h diesen Eingabewert auf eine bestimmte Kennung k ab. Also h(x) = k. Diese Kennung bezeichnet man dabei auch als „Hash“.

Diese Funktionen müssen bestimmte Dinge erfüllen:

  • Zu einem Hash k ist es unmöglich, den dazugehörigen Eingabewert x zu finden.
  • Zu einem bestimmten Eingabewert x ist es unmöglich, einen anderen Eingabewert y zu finden, der denselben Hash k erzeugt (schwache Kollisionsresistenz)
  • Es ist unmöglich, dass man zwei beliebige aber verschiedene Eingaben x und y findet, die denselben Hash k erzeugen.

„Unmöglich“ heißt dabei: Nicht in vernünftiger Zeit berechenbar. Denn in der Tat gibt es solche Kollisionen in jedem Hash-Algorithmus, so dass zwei Eingaben auf denselben Hash abbilden. Es muss mathematisch nur so aufwändig sein, dass man solche Kollisionen selbst mit riesiger Rechenleistung nicht in vernünftiger Zeit finden kann. Wenn du also nur ein einziges Bit in einer 4 GB großen DVD änderst, dann ergibt das einen anderen Hash-Wert.

Wie exakt mathematisch diese Funktionen arbeiten, das ist nicht einfach erklärbar. Wenn du dich aber näher dazu informieren willst, dann bieten diese Seiten einen guten Einstieg:
http://de.wikipedia.org/wiki/Hashfunktion
http://de.wikipedia.org/wiki/Kryptologische_Hashfunk…

Beispiele für solche Hash-Algorithmen sind z.B SHA-1 oder RIPEMD:
http://de.wikipedia.org/wiki/Secure_Hash_Algorithm
http://de.wikipedia.org/wiki/RIPEMD

Du kannst auch ganz einfach selbst die Hashes von beliebigen Dateien dir selber ausrechnen. Dazu gibt es viele Programme die dir die Hashes berechnen können wie z.B. HashTab. Dieses zeigt dir im Windows Explorer in den Datei-Eigenschaften auf einem neuen Reiter namens „Hashwerte“ die Hash-Wert der Datei berechnet nach verschiedenen Hash-Funktionen wie z.B. SHA oder RIPEMD an:
http://beeblebrox.org/hashtab/

Wenn nein: Wie arbeitet dann das Programm PERKEO vom LKA? Das
sucht laut Herstellerangaben nach dem digitalen Fingerabdruck
bei Dateien, um somit illegale Kinderpornografie aufzuspüren.

Mit obigen Hash-Funktionen hat man ein Werkzeug in der Hand, in der man z.B. eine Datei auf einen solchen Hash abbilden kann und man keine zweite Datei findet, die denselben Hash erzeugt.

Was PERKEO also macht (und was eigentlich absolut trivial ist) ist, dass es z.B. für alle Dateien auf einem Rechner diesen Hash berechnet und diesen Wert mit den bekannten Hash-Werten von bekannten kinderpornographischen Bildern vergleicht.

PERKEO verfügt also einfach über eine Datenbank von bekannten Hashwerten von Kinderpornos und vergleicht diese mit den Hashwerten von allen Dateien auf einem Rechner. Findet es dabei einen Hashwert, der in der Datenbank vorhanden ist, dann kannst du mit quasi 100%iger Sicherheit sagen, dass sich auf diesem Rechner ein Kinderporno-Bild befindet. Nur dadurch kann der Hersteller seine „0% Fehlerquote“ garantieren.

Der Gedanke der dahintersteckt ist der, dass oft die gleichen bekannten Bilder zwischen Pädophilen ausgetauscht werden. Neue Kinderpornos oder nicht in der Datenbank verzeichnete Kinderporno-Dateien kann PERKEO nicht erkennen.
Dies bedeutet aber auch, dass das Programm z.B. nicht mit ZIP komprimierte Bilder erkennen würde. Auch ein ganz einfach bearbeitetes Bild, bei dem z.B. nur ein einzelner Pixel geändert wurde, wird nicht erkannt. Das Programm kann daher verhältnismäßig einfach überlistet werden. Da in den meisten Fällen die Pädophilen sowas aber nicht machen, dürften Treffer damit dennoch leicht möglich sein.

Hat jede Datei von sich aus einen sog digitalen Fingerabdruck
bzw eine digitale Signatur?

in den anderen post war ja die hash-funktion bereits ausführlich erläutert.

es gibt allerding noch weitere möglichkeiten, dateien anhand von einem solchen fungerabdruck zu erkennen. wenn ein softwarehersteller z.B. nicht möchte, dass jemand seine software kopiert, kann er auch in jede seiner dateien im 1275. byte den wert 123 und im 7621. byte den wert 213 speichern. bei bildern fällt so was z.B. gar nicht auf (ein etwas dunklerer pixel etc.)
damit erkennt man diese dateien immer wieder.

praktisch hat jedes bild auch einen fingerabdruck. diese pixel müssen ja nicht bewusst eingebaut werden, wenn man sich einfach 15 verschiedene pixel schnappt, ist die warscheinlichkeit, dass man zwei in allen 15 pixeln gleiches bild findet sehr gering (nur wären hier zwei komplett z.B. weisse bilder mit unterschiedlicher größe gleich)

ausserdem kann man in vielen text/tabellen-dateien nicht direkt sichtbare elemente einfügen, z.B. in html style=„display:none;“ oder nicht darstellbare zeichen
dies macht eine datei anhand von wenigen merkmalen, ähnlich einen fingerabdruck, immer wieder erkennbar.

manche programme fügen solche elemente automatisch ein (üblicherweise ein vermerk, mit welchem programm die datei erstellt wurde)

wie kann ihn erkennen?

die bewusst eingebauten sind meist so eingebaut, dass man sie praktisch nicht erkennen kann. (wer würde z.B. auf die idee kommen, dass " . . . " nicht nur drei punkte sondern ein digitaler fingerabdruck ist, nämlich die kombination aud 2,3,2 und 1nem leerzeichen)