私は法的に文書を(おそらく電子メールで、おそらくMS WordまたはPDFとして保存されて)数百人の受信者に配布する義務があります。
受信者は法的にそれを秘密にしておく義務があります。しかし、過去の経験に基づいて、私はそれが結局すぐに公にリークされることになると確信しています。 (これまでは自由にそのまま配布されていました)
これは以前に起こったことがあります。それは深刻な問題であり、私たちに経済的損害を与えます。私はこれを止めて、悪党を特定したいと思います。
John Le Carreの手法で各ドキュメントをわずかに異なるものにすることは承知しています(ここで完全なストップがない、そこに小さな誤植などがある)が、数百人の受信者が同じ基本ドキュメントの数百の一意に識別可能なコピーを作成することは不可能です。ささいな仕事。
これを自動化する方法はありますか?または、誰がリークを行っているかを見つけるより良い方法はありますか?
更新-年に2〜3回発行されたドキュメント。過去には、PDF全体が配布されてから数日(場合によっては数時間)以内に、公開または準公開のフォーラムで逐語的に公開されていました。他の場合には、ドキュメントは「burner」アカウント(通常はgmail)からの電子メールを介して再配布されました
ドキュメントを目に見えるように変更せずに、各ドキュメントを一意に識別できるようにドキュメントを変更する方法はたくさんあります。ここにいくつかのアイデアがあります。
メタデータの変更
各ドキュメントのメタデータに一意のハッシュを入れることができます。
テキストの色のわずかな変更
ドキュメントの色には少し違った色のテキストを使用できますが、見た目はすべて同じに見えますが、コンピュータでは違いを見つけることができます。
まだ同じように見える2色しかないと仮定すると、ドキュメント1の最初の文字を色1に、残りを色2に着色できます。2番目の色は、色1の2文字と残りの色2です。等.
見えない文字
各ドキュメントの最後に特定の数のスペースを置き、それを識別に使用できます。
単語間のスペースを使用して一意のIDをエンコードします
特定の単語の間に異なる数のスペースを置き、それを使用してドキュメントを識別します。たとえば、最初のドキュメントでは、Word 1と2の間に2つのスペースがあり、他のすべてのWordの間に1つのスペースがあります。ドキュメント2の場合、単語2と3の間に2つのスペースがあります。
ライブラリFPDFを使用してpythonスクリプトでドキュメントを生成することを強くお勧めします。
ドキュメントと例は here にあります。
さまざまな方法で各受信者に個別にPDFを割り当てることができますが、数回使用されたと聞いたトリックの1つは、次のような非印刷文字を使用して各受信者に送信される各ドキュメントの署名を個別にエンコードすることです。ゼロ幅スペース。これらは、誰かが資料を逐語的にコピーして貼り付けるとコピーされます。これにより、コンテンツが再入力されたか、印刷/スキャンされたかを追跡できなくなります。私が覚えているこの最後の例はここで説明されています: GoogleはGeniusから歌詞を盗みます
印刷/スキャンを通じてドキュメントを追跡できる、あまり馴染みのないさまざまな透かし技術があります。ただし、21世紀のほとんどの配布は、ドキュメントをそのままコピーして貼り付けるか送信することによって行われ、どちらの方法でも上記の方法を使用して追跡できます。
独自の透かしは、漏洩者を特定する最も信頼できる方法です。すべての受信者がドキュメントの同一のコピーを取得した場合、リークの原因を特定するための証拠としてコピーを使用することはできません。
最近、フォントを使用して文書に透かしを入れる方法についての論文を読みました。異なるUnicode文字セットから引き出されたほぼ同一のグリフを使用することにより、作成者は、送信される各コピーにほとんど見えない一意のコードをエンコードすることができました。 Unicode文字はコピー/貼り付け後も存続しました。また、グリフが慎重に選択された場合(ほぼ同一ですが完全に同一ではありません)、それらは写真のコピープロセスでも存続する可能性があります。
各ページのヘッダーとフッターに受信者の名前を印刷するなど、大きくて目立つ透かしを使用することもできます。ただし、これを行う場合は、コンテンツをコピーして貼り付けることをお勧めします。これにより、非表示の透かしが損傷するおそれがあります。
慎重なリーカーは、句読点やスペルミスの変更、特にリーカーが送信者の文章のレベルに精通している場合や、公開されたドキュメントでこのような間違いを予期していない場合など、いくつかの手法を簡単に見つけることができます。
"わずかな変更"を悪用することはできますが、"Synonyms"を使用するより慎重なアプローチを使用します。
たとえば、1つのコピーには「変更」という単語があり、2番目のコピーでは1回の出現で「変更」に置き換え、3番目のコピーでは2回以上の出現で置き換えます。
もう1つの例は、1つのドキュメントで3つの異なる単語を置き換え、2番目のドキュメントで5つの異なる単語を置き換えることを選択することです。
ご想像のとおり、さまざまなスキームを組み合わせて使用することもできます。
これを自動化する方法はありますか?または、誰がリークを行っているかを見つけるより良い方法はありますか?
このアプローチは、あらゆる手持ちのスクリプト言語で自動化できます。最も一般的な(英語の)単語の同義語の辞書を、スクリプト化されたプログラムの前菜として持つことができます。
最初は、次のようなプログラムをスクリプト化できます。