セキュリティ
DEDA – 追跡ドット抽出、デコード、匿名化ツールキット
DEDA – Tracking Dots Extraction, Decoding and Anonymisation Toolkit (github.com)
要約
DEDAは、カラーレーザープリンターの出力に埋め込まれた追跡ドット(黄色いドット)を抽出、デコード、匿名化するためのツールキットです。このツールキットは、プリンターのシリアル番号などの情報を読み取るフォレンジック機能と、追跡を防ぐための匿名化機能を提供します。Python 3で動作し、コマンドラインインターフェースまたはGUIを通じて利用できます。
全文翻訳
DEDA – 追跡ドット抽出、デコード、匿名化ツールキット
カラー追跡ドット、または黄色いドットは、プリンターや印刷物自体に関する情報をエンコードする小さな体系的なドットです。このプロセスは、ほぼすべての商用カラーレーザープリンターに統合されています。これは、ほぼすべての印刷物に、シリアル番号などのソースデバイスに関するコード化された情報が含まれていることを意味します。このツールは、一方ではこれらのフォレンジック機能を読み出してデコードする可能性を提供し、もう一方では、任意の追跡を防ぐための匿名化を可能にします。
このソフトウェアを使用する場合は、以下の論文を引用してください。
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
インストール
Python 3をインストールしてください
PyPIからDedaをインストール:
$ pip3 install --user deda
または現在のディレクトリから:
$ pip3 install --user .
deda_anonmask_apply(UnixおよびGNU/Linuxのみ)でオプションで必要:
$ pip3 install --user wand
Wandがない場合、画像中の白い領域を含むページは匿名化できません。
グラフィカルユーザーインターフェース
GUIを開くには、次のように入力します:
$ deda_gui
ターミナルアプリケーション
1. 追跡データの読み取り
スキャンされた画像から追跡データを読み取り、場合によってはデコードできます。良好な結果を得るには、入力はロスレス圧縮(例: png)と300 dpiを使用する必要があります。中立的なコントラストを設定してください。
$ deda_parse_print INPUTFILE
2. スキャンされたドキュメントのセットで異なるプリンターを見つける
$ deda_compare_prints INPUT1 INPUT2 [INPUT3] ...
3. 未知の追跡パターンの分析
parse_printでは新しいパターンが認識されない場合があります。ドットはさらなる分析のために抽出できます。
$ deda_extract_yd INPUTFILE
4. 独自の追跡ドットを作成する
独自の追跡ドットマトリックスを作成してPDFドキュメントに追加したい場合は、パラメータとして内容を渡します(deda_create_dots -hを参照)。
$ deda_create_dots PDFINPUT
キャリブレーションページ($ deda_anonmask_create -w)を入力として使用できます。
5. スキャンされた画像の匿名化
これは(ほとんどの場合)スキャンから追跡データを削除します:
$ deda_clean_document INPUTFILE OUTPUTFILE
6. 印刷用のドキュメントを匿名化する
ドキュメントをPDFファイルとして保存し、DOCUMENT.PDFと呼びます。$ deda_anonmask_create -wで作成されたtestpage.pdfファイルを、ページマージンなしで印刷します。ドキュメント(300 dpi)をスキャンし、ロスレスファイルを$ deda_anonmask_create -r INPUTFILEに渡します。これにより、個々のプリンターの匿名化マスクである'mask.json'が作成されます。次に、匿名化マスクを適用します:
$ deda_anonmask_apply mask.json DOCUMENT.PDF
これにより、匿名化されたドキュメント'masked.pdf'が作成されます。これは、ページマージン設定ゼロで印刷できます。マスクされたページがプリンターの追跡ドットをカバーしているかどうかを顕微鏡で確認してください。マスクのドット半径、xおよびyオフセットはカスタマイズ可能で、パラメータとしてdeda_anonmask_applyに渡すことができます。DOCUMENT.PDFに白いまたは明るい色の部分を持つグラフィックが含まれている場合、これらは「wand」がインストールされている場合(上記参照)にのみマスクできることに注意してください。
トラブルシューティング
deda_parse_print: command not found
可能な解決策:
チャプター0に従ってdedaをインストールする
$ export PATH="$PATH:$(python -c 'import site,os; print(os.path.join(site.USER_BASE, "bin"))')" を実行する
Dedaが私の追跡ドットを認識しない
スキャンプログラムが、用紙構造や追跡ドットを閾値で削除しないように設定し、再度確認してください。モノクロページやインクジェット印刷には追跡ドットが含まれていない可能性があることに注意してください。
私のプリンターは追跡ドットを印刷しません。この事実を隠すことはできますか?
追跡ドットが本当にない場合は、独自のドットを作成する(deda_create_dots)か、別のプリンターでキャリブレーションページ(deda_anonmask_create -w)を印刷して、自分のプリンターにマスクを使用できます。追跡ドットの匿名化バージョンを使用するか、単にコピーすることができます(deda_anonmask_create --copy)。「印刷用のドキュメントを匿名化する」および「独自の追跡ドットを作成する」チャプターを参照してください。
インストールエラー: command 'x86_64-linux-gnu-gcc' failed with exit status 1
これは、GUIに必要なeel依存関係が原因である可能性があります。次を試してください:
$ sudo apt-get install build-essential autoconf libtool pkg-config python3.6-dev gcc && pip3 install --user eel wand.
wand.exceptions.PolicyError: attempt to perform an operation not allowed by the security policy PDF' @ error/constitute.c/IsCoderAuthorized/408
これはImageMagickによって引き起こされています。Wandをアンインストールする(pip3 uninstall wand)か、/etc/ImageMagick-*/policy.xmlの</policymap>の直前に<policy domain="coder" rights="read | write" pattern="PDF" />を追加してください。https://stackoverflow.com/questions/52998331/imagemagick-security-policy-pdf-blocking-conversionも参照してください。