PDFを正しく黒塗りする方法(黒い四角だけでは足りない)
機密のテキストの上に黒い四角を描いても、文字は消えません。その下にまだ残っているのです。なぜそれが失敗するのか、そしてブラウザ内で本当に安全にPDFを黒塗りする方法を解説します。
ある書類を共有したいけれど、機密の数行、給与や住所、誰かの氏名を隠したい。そこであなたはテキストの上に黒い長方形を描いて送ります。黒塗りされたように見えます。けれど、されていません。このまさに同じ間違いが、裁判資料を漏えいさせ、情報提供者をさらし、政府を恥ずかしい立場に追い込んできました。なぜなら、文字はまだファイルの中、その四角のすぐ下に居座っているからです。
何かを黒く塗りつぶして、それで消えたと思い込んだことがあるなら、この記事は2分の価値があります。
なぜ黒い四角は失敗するのか
PDFは内容を複数のレイヤーで保持しています。テキストは1つのもの。その上に描かれた図形は別のもの。文の上に黒い長方形を置いたとき、あなたは文字の上にグラフィックを追加しただけで、文字そのものには手を触れていません。文字は依然としてそこにあり、本物の、選択可能なテキストとして、視覚的にだけ隠されているのです。
誰でもそれを取り戻せます。しかもハッキングではありません。その範囲を選択してコピーする。あるいはファイルをテキスト抽出ツールに通す。「隠された」テキストは、四角ごとそのまま出てきます。黒い長方形が欺いたのはあなたの目であって、ファイルではありません。
これは自分で証明できます。何かが四角で覆われたPDFを用意して、そのテキストを抽出してみてください。黒塗りしたはずの文字が出力に現れます。一度も削除されていなかったからです。それがテストであり、同時に警告でもあります。
メタデータでも同じ罠
目に見えるテキストに対処したとしても、書類はメタデータを通じて漏れることがあります。これは作成者名や編集履歴などを抱えた、隠れたプロパティです。本当の黒塗りとは、ページ上にあるものだけでなく、ファイルの構造の中に隠れているものについても考えることを意味します。
ブラウザ内で本当に安全に黒塗りする方法
信頼できる原則はこうです。テキストを覆い隠すのではなく、破壊する。機密の文字がファイル内にテキストとして存在しなくなれば、復元するものは何もありません。アップロードを一切せず、ブラウザベースのツールでそれを行う方法を紹介します。
- 機密の部分を覆う。 消したいテキストの一つひとつに不透明なブロックを置き、視覚的に隠します。これ単体ではまだ安全ではありません。大事なのは次のステップです。
- ページを画像に平坦化する。 PDFから画像へで書類を画像に変換します。これで各ページが平らな絵になります。決定的な効果はこれです。テキストがテキストでなくなり、ピクセルになるのです。ブロックの下にあったものは、いまや画像の一部にすぎず、ブロックはその上に恒久的に描き込まれます。
- PDFを再構築する。 画像からPDFへでそれらの画像を再びPDFに戻します。あなたは再び書類を手にしますが、黒塗りしたテキストが復元可能なテキストとして本当にもう存在しない書類です。
- 検証する。 結果をテキスト抽出に通します。機密の文字が現れなければ、本当に消えています。このチェックこそがすべての目的です。毎回必ず行ってください。
知っておくべきトレードオフが1つあります。画像への平坦化は、書類全体から本物のテキストレイヤーを取り除くため、すべてが絵になり、もう検索できなくなります。だからこそ、隠したテキストは復元できないのです。書類の残りの部分を検索可能にしておきたい場合は、後からOCRをかけることができます。これは見えているものからテキストレイヤーを再構築しますが、黒塗りした領域はいまやただの黒いピクセルなので、OCRが読み取るものは何もありません。
なぜこれを自分のマシン上で行わなければならないのか
あなたが黒塗りしているものを考えてみてください。それは定義上、機密です。だからこそ隠しているのです。その書類をオンラインの「黒塗り」ツールにアップロードするということは、黒塗り前のオリジナル、機密のテキストがそっくりそのまま残ったものを、見知らぬ者のサーバーに手渡すことを意味します。守ろうとしているものが、守るというまさにその行為の中でさらされてしまうのです。
reader.meはあなたのブラウザ内で動作します。上記のすべての手順はあなた自身のデバイス上で起こります。ファイルはローカルでメモリに読み込まれ、そこで処理され、あなたに保存し直されます。何もアップロードされません。開発者ツール(F12)のネットワークタブで確認することも、オフラインで一連の作業を行って確かめることもできます。
本当の黒塗りとは、隠蔽ではなく除去です。黒い四角はテキストをあなたの目から隠すだけ。平坦化はそれをファイルから取り除きます。ローカルで行い、毎回必ずテキスト抽出で検証すれば、隠したものが本当に消えていると確信したうえで書類を共有できます。