Skip to main content

tracking Dots Extraction, Decoding and Anonymisation toolkit

Project description

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

0. Install

$ pip install .

1. Reading tracking data

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

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

$ deda_compare_prints 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 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 -w
    without any page margin.

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

  • Now apply the anonymisation mask:
    $ deda_anonmask_apply 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 as parameters.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

deda-1.0b1.tar.gz (43.0 kB view details)

Uploaded Source

Built Distributions

deda-1.0b1-py3.6.egg (81.6 kB view details)

Uploaded Egg

deda-1.0b1-py3-none-any.whl (35.5 kB view details)

Uploaded Python 3

deda-1.0b1-py2.7.egg (59.3 kB view details)

Uploaded Egg

File details

Details for the file deda-1.0b1.tar.gz.

File metadata

  • Download URL: deda-1.0b1.tar.gz
  • Upload date:
  • Size: 43.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for deda-1.0b1.tar.gz
Algorithm Hash digest
SHA256 228da2d1394ee93fd205a1d1b1e62b4590eb64cdbd73bd20265d97ca4c1d2dc6
MD5 04d45c47e342ad541b42cdfb100c2268
BLAKE2b-256 98da65254f3b3c6a1e6de1685f45abc65a7e7852c60ed6d4c0af6ede723a7b95

See more details on using hashes here.

File details

Details for the file deda-1.0b1-py3.6.egg.

File metadata

  • Download URL: deda-1.0b1-py3.6.egg
  • Upload date:
  • Size: 81.6 kB
  • Tags: Egg
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for deda-1.0b1-py3.6.egg
Algorithm Hash digest
SHA256 097f5b38479c1d492d6bf305393762004fb71a6f6b42c2b96978a50ea20bed77
MD5 c906651ebf337e2217ec08383e2db917
BLAKE2b-256 3410aa3e9ddcf34305c43446e92b412e7f2c9228c749004c0c561953acaeea51

See more details on using hashes here.

File details

Details for the file deda-1.0b1-py3-none-any.whl.

File metadata

  • Download URL: deda-1.0b1-py3-none-any.whl
  • Upload date:
  • Size: 35.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for deda-1.0b1-py3-none-any.whl
Algorithm Hash digest
SHA256 d1ac25675461bbcc2b15a15486d1eefcd08c253e75471ad404c4287a97dfcf5f
MD5 4924f376afdb50fd4c39d3495fad569b
BLAKE2b-256 1d7315cc1a4ee5fe3273dea4e2cc1366a749f8c0d54cca536771a449ac2f6c9d

See more details on using hashes here.

File details

Details for the file deda-1.0b1-py2.7.egg.

File metadata

  • Download URL: deda-1.0b1-py2.7.egg
  • Upload date:
  • Size: 59.3 kB
  • Tags: Egg
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for deda-1.0b1-py2.7.egg
Algorithm Hash digest
SHA256 cdd71edd919c22cab04d6e6711dff477db4077efd2f0749b760a7b37ebfb1522
MD5 db846694fd9c5dfae0e0bf561b4c1413
BLAKE2b-256 70561b6f3a7a4df7bc25c39dc7fd36b85020b57d232d6ee56ef4adbabec6b71b

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page