2 Punkte von GN⁺ 2025-04-03 | 1 Kommentare | Auf WhatsApp teilen
  • DEDA ist ein Toolkit zum Lesen, Dekodieren und Anonymisieren von Document Colour Tracking Dots in Ausdrucken von Farblaserdruckern, also den gelben Punkten
  • Document Colour Tracking Dots sind kleine systematische Punktmuster, die Informationen über Drucker und Ausdruck codieren, und sind in nahezu allen kommerziellen Farblaserdruckern integriert
  • Tracking-Daten können aus Scanbildern gelesen oder verglichen, unbekannte Muster extrahiert und eigene Tracking-Dot-Matrizen zu PDFs hinzugefügt werden
  • Die Anonymisierungsfunktionen entfernen einen Großteil der Tracking-Daten aus Scanbildern oder arbeiten mit druckerspezifischen Anonymisierungsmasken, die auf PDF-Dokumente angewendet werden
  • Für gute Ergebnisse werden Eingangsscans mit verlustfreier Komprimierung, 300 dpi und neutralem Kontrast empfohlen; Schwarzweißseiten oder Tintenstrahlausdrucke enthalten möglicherweise keine Tracking-Punkte

Welches Problem DEDA adressiert

  • Document Colour Tracking Dots oder gelbe Punkte sind kleine systematische Punkte, die Informationen über den Drucker und den Ausdruck selbst codieren
  • Dieses Verfahren ist in nahezu allen kommerziellen Farblaserdruckern integriert
  • Nahezu jeder Ausdruck enthält codierte Informationen über das Quellgerät, zum Beispiel eine Seriennummer
  • DEDA bietet sowohl Funktionen zum Lesen und Dekodieren dieses forensischen Merkmals als auch Anonymisierungsfunktionen zum Schutz vor beliebigem Tracking
  • Bei Nutzung der Software wird um Zitation des folgenden Papers gebeten
    • Timo Richter, Stephan Escher, Dagmar Schönfeld, Thorsten Strufe. 2018. Forensic Analysis and Anonymisation of Printed Documents. IH&MMSec '18, 127-138. DOI: https://doi.org/10.1145/3206004.3206019

Installation und Start der GUI

  • Die Installation von Python 3 ist erforderlich
  • Installation über PyPI möglich
    • pip3 install --user deda
  • Installation auch aus dem aktuellen Verzeichnis möglich
    • pip3 install --user .
  • Als optionale Abhängigkeit für deda_anonmask_apply kann Wand unter Unix und GNU/Linux installiert werden
    • pip3 install --user wand
    • Ohne Wand können Seiten mit weißen Bereichen im Bild nicht anonymisiert werden
  • Die GUI wird mit folgendem Befehl gestartet
    • deda_gui

Mögliche Aufgaben mit den Terminal-Tools

  • Tracking-Daten lesen

    • Tracking-Daten können aus Scanbildern gelesen und in manchen Fällen dekodiert werden
    • Für gute Ergebnisse sollten verlustfrei komprimierte Eingaben wie PNG, 300 dpi und neutraler Kontrast verwendet werden
    • Ausführungsbefehl:
      • deda_parse_print INPUTFILE
  • Andere Drucker in einem Bündel gescannter Dokumente finden

    • In mehreren gescannten Dokumenten lassen sich die Dokumente finden, die auf anderen Druckern ausgegeben wurden
    • Ausführungsbefehl:
      • deda_compare_prints INPUT1 INPUT2 [INPUT3] ...
  • Unbekannte Tracking-Muster analysieren

    • Neue Muster werden von parse_print möglicherweise nicht erkannt
    • Für eine weitergehende Analyse können gelbe Punkte extrahiert werden
    • Ausführungsbefehl:
      • deda_extract_yd INPUTFILE
  • Eigene Tracking-Punkte erstellen

    • Eine eigene Tracking-Dot-Matrix kann erstellt und einem PDF-Dokument hinzugefügt werden
    • Der Inhalt wird gemäß deda_create_dots -h als Parameter übergeben
    • Ausführungsbefehl:
      • deda_create_dots PDFINPUT
    • Eine mit deda_anonmask_create -w erzeugte Kalibrierungsseite kann als Eingabe verwendet werden

Anonymisierungs-Workflow

  • Scanbilder anonymisieren

    • Aus Scanbildern wird ein Großteil der Tracking-Daten entfernt
    • Ausführungsbefehl:
      • deda_clean_document INPUTFILE OUTPUTFILE
  • Druckdokumente anonymisieren

    • Das Dokument als PDF speichern und als DOCUMENT.PDF ablegen
    • Die mit folgendem Befehl erzeugte testpage.pdf randlos drucken
      • deda_anonmask_create -w
    • Das Dokument mit 300 dpi scannen und die verlustfreie Datei an folgenden Befehl übergeben
      • deda_anonmask_create -r INPUTFILE
    • Dieser Schritt erzeugt mask.json, eine Anonymisierungsmaske für den jeweiligen Drucker
    • Die erzeugte Maske auf das PDF anwenden
      • deda_anonmask_apply mask.json DOCUMENT.PDF
    • Als Ergebnis entsteht das anonymisierte masked.pdf, das mit auf 0 gesetzten Seitenrändern gedruckt werden kann
    • Mit einem Mikroskop sollte geprüft werden, ob die Maske die Tracking-Punkte des Druckers überdeckt
    • Punktradius, x-Offset und y-Offset der Maske können über die Parameter von deda_anonmask_apply angepasst werden
    • Wenn DOCUMENT.PDF weiße oder helle grafische Bereiche enthält, können diese nur maskiert werden, wenn Wand installiert ist

Fehlerbehebung

  • Wenn deda_parse_print: command not found erscheint, die DEDA-Installation prüfen oder den Python-Binpfad des Benutzers zu PATH hinzufügen
    • export PATH="$PATH:$(python -c 'import site,os; print(os.path.join(site.USER_BASE, "bin"))')"
  • Wenn DEDA die Tracking-Punkte nicht erkennt, sollte das Scanprogramm so eingestellt werden, dass Papierstruktur oder Tracking-Punkte nicht per Thresholding entfernt werden
    • Schwarzweißseiten und Tintenstrahlausdrucke enthalten möglicherweise keine Tracking-Punkte
  • Wenn der Drucker keine Tracking-Punkte druckt, können eigene Tracking-Punkte erstellt oder die Kalibrierungsseite mit einem anderen Drucker gedruckt und als Maske für den eigenen Drucker verwendet werden
    • Eigene Tracking-Punkte können mit deda_create_dots erstellt werden
    • Eine Kalibrierungsseite kann mit deda_anonmask_create -w erzeugt werden
    • Es kann eine anonymisierte Version der Tracking-Punkte verwendet oder mit deda_anonmask_create --copy kopiert werden
  • Installationsfehler im Zusammenhang mit x86_64-linux-gnu-gcc können durch die für die GUI benötigte eel-Abhängigkeit verursacht werden
    • Vorgeschlagener Befehl:
      • sudo apt-get install build-essential autoconf libtool pkg-config python3.6-dev gcc && pip3 install --user eel
  • Wenn PDF-Arbeiten durch wand.exceptions.PolicyError wegen Sicherheitsrichtlinien blockiert werden, ist die ImageMagick-Konfiguration die Ursache

1 Kommentare

 
GN⁺ 2025-04-03
Hacker-News-Kommentare
  • Unser Team hat vor gut zehn Jahren bei der DARPA Shredder Challenge zur Rekonstruktion geschredderter Dokumente diese gelben Tracking-Punkte genutzt, um geschredderte Dokumente wieder zusammenzusetzen.
    Man kann sehen, wie das Programm die Punkte hervorhebt, während es die Papierschnipsel zusammenfügt: https://www.youtube.com/watch?v=uzZDhyrjdVo
    Dadurch konnten wir mit großem Vorsprung gewinnen.

    • Ich erinnere mich noch, dass ich als Grundschüler bei Daily Planet von dieser Challenge gehört habe.
      Die Nachgeschichte zu sehen, hat eine vergessene Erinnerung zurückgebracht – ziemlich erstaunlich.
    • Ich dachte immer, der Shredder/Scanner für Bibliotheken in Vinges Rainbows End sei ein SF-Konzept, das lose von Genomsequenzierung abgeleitet wurde; eine nahezu reale Umsetzung zu sehen, ist spannend.
    • Mich würde interessieren, wie der Scanvorgang war, mit dem die Schnipsel ins Programm gebracht wurden.
      Das klingt fast ebenso nach einem eigenen Artikel wie der Lösungsalgorithmus, und man braucht wohl eine besondere Veranlagung, um mit so einem Chaos zurechtzukommen.
  • Aus Gründen, die ich hier schwer offenlegen kann, musste ich mir kürzlich Tracking-Punkte etwas genauer ansehen.
    Es lohnt sich, eine blaue LED-Taschenlampe auf Farbdrucke zu richten. Es ist schockierend, wie unfassbar viele Punkte über die ganze Seite verteilt sind – als hätte jemand Sand darübergestreut.

    • Erstaunlich, dass die Druckerhersteller wegen des über die Jahre zusätzlich verbrauchten gelben Toners noch keine Sammelklage abbekommen haben.
    • Inzwischen geht es nicht mehr nur um Drucker: https://datadotusa.com/technology.htm
    • Mich würde interessieren, ob damit Laser-, Farblaser- oder Tintenstrahldrucker gemeint sind.
  • Wenn mein Drucker keine Tracking-Punkte druckt, ist die Idee, die Tracking-Punkte eines anderen Druckers zu fälschen, aus Sicht der plausiblen Abstreitbarkeit ziemlich interessant.
    Allerdings bräuchte man in diesem Fall wohl trotzdem Zugriff auf den ursprünglichen Drucker, um eine anonyme Maske auszudrucken.

    • Laut Wikipedia kodiert das Punktmuster die Seriennummer des Geräts und den Druckzeitpunkt; um den Drucker einer anderen Person zu fälschen, braucht man im Grunde also nur die Seriennummer.
      Heutzutage könnte man daran eventuell sogar aus der Ferne über die Druckereinstellungen kommen.
    • Wenn eine forensische Untersuchung schon so weit geht, sich die Tracking-Punkte anzusehen, dürften die meisten Fälschungsversuche ziemlich offensichtlich auffallen – und eher als Hinweis dienen, den Kreis der Verdächtigen auf Leute einzugrenzen, die solche Techniken kennen.
      Einen oberflächlichen Analysten könnte man vielleicht täuschen, aber ein erfahrener Ermittler würde vermutlich so etwas sehen wie: „Die Tracking-Punkte sind eindeutig Marke X, aber das für die Graustufen verwendete Raster ist klar eher von Y.“
  • Falls ihr den dazu passenden interessanten Beitrag verpasst habt, hier ist er: https://news.ycombinator.com/item?id=42880704

    • Lesenswert, weil es darum geht, dass kürzlich „entdeckte“ frühe Pokemon-Karten aus Playtests aufgrund der Existenz und Entschlüsselung dieser Punkte als Fälschungen oder zumindest als höchst verdächtig entlarvt wurden.
      Noch interessanter ist, dass die Person, die den Fund und die Analyse veröffentlicht hat, persönlich hätte Geld verlieren können, weil sie bereits Tausende Dollar für die gefälschten Karten ausgegeben hatte – und die Ergebnisse trotzdem öffentlich machte.
  • Ich frage mich, was passiert, wenn man dieselbe Seite mit mehreren Druckern ausdruckt.
    Wenn der erste Drucker den eigentlichen Inhalt druckt und die anderen Drucker in den noch weißen Bereichen jeweils nur winzige zusätzliche Punkte setzen: Würde ein Drucker die Tracking-Punkte eines anderen Druckers zerstören?

    • Vermutlich ja. Der Drucker hat ja keine Möglichkeit zu wissen, dass er das nicht tun sollte.
      Je nach Details könnten allerdings einige oder alle Punkte trotzdem noch lesbar sein.
  • Langsam frage ich mich, ob bei dem Nerd, der ein Projekt wie OpenWRT für Drucker startet, nicht das MIB vor der Tür steht.
    Nach dem Motto: Nicht zurückverfolgbare Äußerungen dürfen nicht möglich sein, und man muss die Quelle unbequemer Memes chirurgisch präzise treffen können. Deshalb nutze ich einen gebrauchten Schwarzweiß-Laserdrucker von craigslist in einem separaten VLAN mit einem CUPS-Server dazwischen.
    Niemand hat auf ausreichend informierter Grundlage dem zugestimmt, was Niantic seit über zehn Jahren tut, und niemand hat zugestimmt, dass sämtliche Drucksachen rückverfolgbar werden. Nirgendwo am Produkt oder im Prozess gibt es den Hinweis: „Nur weil es keine sichtbare Kennung gibt, heißt das nicht, dass es keine Kennung gibt; es kann eine steganografische Kennung vorhanden sein.“
    Dasselbe gilt dafür, dass universelle Maschinen in den von uns gekauften Produkten so weit verriegelt werden, dass wir als Eigentümer sie nicht nach unseren Wünschen weiterverwenden können. Wir haben uns daran gewöhnt, Beleidigungen durch Unternehmen und staatliche Stellen als „iss das Scheiß-Sandwich oder werde ohne Sandwich verprügelt“ hinzunehmen, und Louis Rossmanns Consumer Action Taskforce (CAT) entwickelt sich zu einer guten Sammlung solcher Fälle.
    Es ist Zeit, sich zu wehren. Wir sollten brauchbare Drucker hacken, ihre Firmware durch etwas Praktisches ersetzen und diesen Unsinn hinter uns lassen. Diese Tracking-Punkte und andere steganografische Tracking-Methoden existieren, um Menschen wie mich aufzuspüren und zum Schweigen zu bringen – Menschen, die auf versteckte Kontrollmechanismen hinweisen und Memes verbreiten, die der riesige obsidiane Tintenfisch als Informationsrisiko oder Desinformation brandmarkt.

    • Wenn ich eine Fälschung hätte herstellen wollen, hätte ich vermutlich nicht zu Hause oder im Büro auf Papier gedruckt, sondern mir etwas wie eine CNC für Uhrmacher mit engen Präzisionstoleranzen besorgt und damit einen Druckstempel aus Aluminium oder Ähnlichem angefertigt.
      Auf Papier zu drucken wirkt töricht, weil selbst gewöhnliche Leute, die mit Banknoten zu tun haben, das leicht erkennen würden.
  • Das dürfte in den nächsten Jahren ziemlich wichtig werden.
    Wenn ihr vorhabt, Protestflyer oder Pamphlete zu drucken, solltet ihr sie – falls ihr dort eine vertrauenswürdige Person habt – einer professionellen Druckerei überlassen, oder zumindest den Drucker bar kaufen, ihn niemals mit dem Internet verbinden und ihn nur per USB an einen Linux-Rechner anschließen.
    macOS und Windows können Druckertreiber automatisch installieren, und dieser Treiber könnte die Zentrale kontaktieren und die Drucker-ID mit irgendeiner Kennung verknüpfen.

    • Wie man so etwas in totalitären Staaten des Ostblocks gemacht hat, sieht man bei Samisdat: https://en.m.wikipedia.org/wiki/Samizdat
    • Wenn ihr euch so viele Gedanken macht, kauft euch lieber ein Siebdruck-Set.
      Damit kann man auch T-Shirts bedrucken.
    • Wäre es nicht viel einfacher, die Leute zu verfolgen, die die Flyer verteilen?
    • Oder man druckt mit einem bar gekauften Drucker massenhaft gültige, aber randomisierte Tracking-Punkte über das gesamte Dokument.
  • Ich frage mich wirklich, welcher Anteil der Drucker mit öffentlichen Tools entschlüsselbar ist.
    Gibt es Statistiken dazu, welche Hersteller-Codes geknackt wurden?

    • Auf GitHub wird auf das Paper Forensic Analysis and Anonymisation of Printed Documents von Timo Richter, Stephan Escher, Dagmar Schönfeld und Thorsten Strufe aus dem Jahr 2018 verwiesen.
      Eine Kopie gibt es hier: https://ericbalawejder.com/assets/hexview/Forensic-Analysis-...
      Tabelle 1 fasst Hersteller, Anzahl der analysierten Drucker und ob Punkte gefunden wurden zusammen: Brother 1 Gerät keine, Canon 10 Geräte ja, Dell 4 Geräte ja, Epson 8 Geräte einige Modelle, Hewlett-Packard 43 Geräte einige Modelle, IBM 1 Gerät ja, KonicaMinolta 21 Geräte einige Modelle, Kyocera 4 Geräte ja, Lanier 1 Gerät ja, Lexmark 6 Geräte einige Modelle, NRG 1 Gerät ja, Okidata 9 Geräte einige Modelle, Ricoh 6 Geräte ja, Samsung 5 Geräte keine, Savin 1 Gerät ja, Tektronix 4 Geräte keine, Unknown 1 Gerät ja, Xerox 15 Geräte einige Modelle.
      Abgesehen von ein paar im Paper beschriebenen Hinweisen scheint man die Punktmuster, sofern sie gefunden wurden, im Großen und Ganzen zu verstehen.
  • Erzeugen auch Schwarzweiß-Laserdrucker Tracking-Punkte?
    Und was ist der Sinn solcher Nachverfolgung? Muss im Prinzip wirklich jede Ecke unseres Lebens nachverfolgbar sein?

    • Ich weiß nichts Sicheres über steganografische Identifikatoren bei Schwarzweißdruckern, aber ich wäre eher überrascht, wenn Schwarzweißdrucker keine Tracking-Informationen einbetten würden.
      Herkunftsinformationen auf alles zu streuen, hat für die nationale Sicherheit einen enormen Wert. Es wird immer mit Sicherheit oder Schutz begründet, und sofort folgt: „Aber wo ist der Schaden, Sie tun doch nichts, was Sie nicht tun sollten … oder?“
    • Soweit ich es verstehe, hat der Secret Service die Hersteller gebeten oder verpflichtet, Punkte hinzuzufügen, nachdem die Druckqualität so gut geworden war, dass sich Banknoten leicht reproduzieren ließen.
      Wenn der Haupteinsatzzweck die Verfolgung von Geldfälschern ist, wären sie bei Schwarzweißdruckern nicht nötig und deshalb nicht enthalten.
    • https://www.eff.org/pages/list-printers-which-do-or-do-not-d...
      Diese Liste wurde seit 2017 nicht mehr aktualisiert und beruhte wahrscheinlich auf Schlussfolgerungen einer einzelnen Person aus FOIA-Anfragen. Vermutlich müssen wir warten, bis das nächste Mal eine chinesische Universität US-Regierungsgeheimnisse veröffentlicht.
    • Auf eine schwarzweiße 20-Dollar-Note fällt niemand herein, also ist die Idee wohl, dass man dort keine Punkte braucht.
    • Monochromdrucker haben keine gelben Punkte.
      Vor Jahrzehnten habe ich einmal an Software gearbeitet, die Informationen versteckte, indem sie das Kerning von Zeichen anpasste; soweit ich weiß, ist aus diesem Projekt nichts Besonderes geworden.
  • Das könnte ebenfalls interessant sein: https://en.wikipedia.org/wiki/EURion_constellation