Prinzip der Änderung eines Datei-Hashs
Typische kryptografische Hashes sind unter anderem: MD5, SHA-1/256 usw. Das zentrale Merkmal kryptografischer Hashfunktionen ist der „Lawineneffekt“ – jede noch so kleine Änderung der Eingabe führt zu einer großen Änderung der Ausgabe. Das bedeutet: Selbst wenn nur ein einziges Byte geändert wird, ist der gesamte Hashwert völlig anders. Ein Beispiel: Du schreibst ein Dokument mit 2000 Wörtern und speicherst es als Word-Datei. Wenn du nur ein einziges Zeichen änderst, etwa ein Leerzeichen hinzufügst, ändert sich der md5 dieser Datei vollständig. Daher besteht das Wesen des „Änderns des Datei-Hashs“ darin, den Dateiinhalt selbst zu ändern, nicht externe Eigenschaften wie den Dateinamen. Diese Eigenschaft macht Änderungen am Hash auf Dateiebene relativ einfach umsetzbar.
Verschiedene Systeme und Formate ordnen „Metadaten“ unterschiedlich zu: Wenn Metadaten in den Dateidaten eingebettet sind (z. B. Tags in JPEG-/Videocontainern), ändert ihre Änderung auch den Hash. Wenn Metadaten jedoch in externen Datenströmen oder Attributen des Dateisystems gespeichert sind, beeinflusst ihre Änderung den anhand des Dateiinhalts berechneten Hash nicht. Das erklärt das häufige Phänomen: „Dateiname ändern – Hash bleibt gleich; eingebettete Metadaten ändern – Hash ändert sich“.
Transkodierung auf Videoplattformen und „Erkennen, ob der Hash geändert wurde“
Nachdem ein Nutzer ein Video auf eine Videoplattform hochgeladen hat, führt die Plattform damit Folgendes durch:
Empfangen der Originaldatei
Formatprüfung und Validierung
Transkodierung (Formatkonvertierung, Anpassung der Auflösung, Komprimierung)
Extraktion von Keyframes
Mehrschichtige Hash-Berechnung
Dies ist eine Transkodierungs-Pipeline aus „Demultiplexen → Decodieren → Verarbeiten → Neukodieren → Multiplexen“, um mehrere Versionen mit verschiedenen Bitraten/Auflösungen für adaptives Streaming zu erzeugen. Dieser Prozess selbst verändert bereits die Bytefolge der Datei sowie jeden vor dem Upload vorhandenen kryptografischen Hash.
Auf Datei-Hash-Ebene: Während der Transkodierung erzeugt die Plattform die Datei neu, wodurch sich der ursprüngliche Datei-Hash automatisch ändert. Daher ist ein vom Nutzer zuvor geänderter Datei-Hash nach der Transkodierung bedeutungslos. Die Plattform prüft also nicht, ob du bei dieser Datei md5 o. Ä. geändert hast, weil das keinerlei Sinn ergibt!
Die Deduplizierungs-/Urheberrechtsprüfung stützt sich nicht auf den Datei-Hash des Uploaders, sondern berechnet auf Basis der decodierten Inhalte eigene „Audio-/Video-Fingerprints“ bzw. perzeptuelle Hashes und vergleicht sie mit Referenz-Fingerprints in der Datenbank. Beispielsweise „fingerprinted“ YouTube Content ID hochgeladene Inhalte und gleicht sie mit von Rechteinhabern bereitgestellten Referenzen ab.
Daher „erkennt“ die Plattform nicht, dass ein Hash geändert wurde, sondern „ignoriert den Upload-Hash, berechnet Inhalts-Fingerprints neu und gleicht sie ab“. Dadurch lässt sich eine inhaltsbasierte Erkennung nicht umgehen, indem man lediglich Dateibytes oder Container-Metadaten verändert, um MD5/SHA zu ändern.