Code Monkey home page Code Monkey logo

deda's Introduction

DEDA - tracking Dots Extraction, Decoding and Anonymisation toolkit

Document Colour Tracking Dots or simply yellow dots are small systematic dots in yellow color which encode information about the printer and/or the printout itself. This process is integrated in almost every commercial colour laser printer. This means that almost every printout contains coded information about the source device, such as the serial number.

On the one hand, this tool gives the possibility to read out and decode these forensic features and on the other hand, it allows anonymisation to prevent arbitrary tracking.

If you use this software, please cite the paper: Timo Richter, Stephan Escher, Dagmar Schönfeld, and Thorsten Strufe. 2018. Forensic Analysis and Anonymisation of Printed Documents. In Proceedings of the 6th ACM Workshop on Information Hiding and Multimedia Security (IH&MMSec '18). ACM, New York, NY, USA, 127-138. DOI: https://doi.org/10.1145/3206004.3206019

1. Reading tracking data

Tracking data can be read and sometimes be decoded from a scanned image.
$ ./deda_parse_print.py INPUTFILE

2. Find a divergent printer in a set of scanned documents

$ ./deda_compare_prints.py INPUT1 INPUT2 [INPUT3] ...

3. Analysing an unknown tracking pattern

New patterns might not be recognised by parse_print. The dots can be extracted for further analysis.
$ ./libdeda/extract_yd.py INPUTFILE

4. Anonymise a scanned image

This (mostly) removes tracking data from a scan:
$ ./deda_clean_document.py INPUTFILE OUTPUTFILE

5. Anonymise a document for printing

  • Save your document as a PS file and call it DOCUMENT.PS. PDFs can be converted using pdf2ps:
    $ pdf2ps INPUT.PDF OUTPUT.PS

  • Print the testpage.ps file created by
    $ ./deda_anonmask_create.py -w
    without any page margin.

  • Scan the document and pass the file to
    $ ./deda_anonmask_create.py -r INPUTFILE
    This creates 'mask.json', the individual printer's anonymisation mask.

  • Now apply the anonymisation mask:
    $ ./deda_anonmask_apply.py mask.json DOCUMENT.PS
    This creates 'masked.ps', the anonymised document. It may be printed with a zero page margin setting.

Check whether a masked page covers your printer's tracking dots by using a microscope. The mask's dot radius, x and y offsets can be customised and passed to ./deda_anonmask_apply.py as parameters.

deda's People

Contributors

dfd-tud avatar timojuez avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.