コンテンツにスキップ
PDFLeanドキュメント
Proにアップグレード

PDFからSSNを黒塗りする

社会保障番号(SSN)は、黒塗りの典型的なケースです。SSNは短く、見落としやすく、個人を特定できるものであり、漏洩した場合には取り返しのつかない損害をもたらします。裁判所の提出書類、公的記録の開示請求、ベンダーとの契約書、保険申請書類などを準備している場合、「黒いボックスで覆ったから大丈夫」というのは保護にはなりません。探し方を知っている人にとっては、それは単なるブックマーク(目印)にすぎないのです。ここでは、実際の黒塗りがどのように機能するのか、そして文書をどこにもアップロードせずにそれを行う方法について説明します。

致命的な間違い:黒いボックスを描くこと

Section titled “致命的な間違い:黒いボックスを描くこと”

PDFエディターを開き、機密テキストの上に黒い長方形を描いて保存する、というのが直感的な操作でしょう。しかし、これは確実に失敗します。その理由はPDFフォーマット自体にあります。

PDFはテキストの2つの並行した表現を保存します。画面に描画されるグリフである可視レイヤーと、ページのコンテンツストリームに存在する実際の文字コードであるテキストレイヤーです。検索エンジン、コピー&ペースト、スクリーンリーダーが読み取るのは後者です。黒いボックスを描くとき、変更されるのは可視レイヤーだけです。その下にあるテキストレイヤーは完全に無傷であり、誰でも「黒塗りされた」領域を選択してコピーしたり、テキストをエクスポートしてSSNをプレーンテキストで読んだりすることができます。さらに悪いことに、基本的なエディターの「黒塗り」機能の一部は、文字通り暗い色で塗りつぶされた単なる長方形にすぎません。

電子情報開示(e-discovery)において、この失敗のパターンには名前がついています。これは**メタデータ/テキストレイヤーの侵害(metadata / text-layer breach)**と呼ばれ、実際の裁判で封印された文書を暴露したこともあります。Ctrl+AやCtrl+Cで無効化されるような黒塗りは、黒塗りとは呼べません。

本物の黒塗りは、コンテンツストリーム自体からテキストを削除します。文字がファイルから物理的に削除され、その後初めて視覚的な領域が覆われます。真の黒塗りを行った後は、次のようになります:

  • 領域を選択しても何も選択されません。
  • コピー&ペーストしても隠しテキストは返されません。
  • ファイル内でSSNを検索しても0件のヒットとなります。
  • ファイルのバイト内に文字コードは存在しなくなります。

これ以下のことしかできないツールは黒塗りを行っているとは言えません。そしてその違いは数秒でテスト可能です(これについては後述します)。

最初にすべての出現箇所を見つける

Section titled “最初にすべての出現箇所を見つける”

もう一つの典型的な失敗は、4ページ目のSSNを黒塗りして、ヘッダー、署名ブロック、または添付ファイルにある12ページ目の同じ番号を残してしまうことです。徹底的な作業は、手動での通読ではなく、パターンのスキャンから始まります。

米国のSSNは予測可能なパターン(9桁の数字、通常は3-2-4にグループ化される)に一致します。つまり、パスポート番号や国民ID番号、クレジットカード番号、電話番号、メールアドレス、銀行口座の詳細など、他のリスクの高い識別子とともに、プログラムで見つけることができます。PDFLeanのPII Redactionツールはこのスキャンをローカルで実行します。ブラウザ上でSSN、ID、電話番号、カード、メールアドレスの候補を検出し、それぞれのコンテキストを表示して、何も削除される前に確認または拒否できるようにします。カスタムキーワード(プロジェクトのコードネームや取引先の名前など)も同じスキャン処理に追加できます。

「それぞれのコンテキストを表示し、確認させる」というステップが重要です。パターンマッチングだけでは、無害な9桁の数字が大量にフラグ付けされてしまいます。黒塗りは元に戻せないため、人間が各ヒットを承認する必要があります。

ステップバイステップ:アップロードせずに黒塗りする

Section titled “ステップバイステップ:アップロードせずに黒塗りする”
  1. PII Redactionツールを開きます。スキャン全体がブラウザで実行されます。
  2. PDFを読み込みます。ローカルメモリにのみ入るため、何も送信されません。
  3. 検出された候補(SSN、ID、電話番号、カード、メール、カスタムキーワード)を確認します。周囲のコンテキストに基づいて、各ヒットのオン/オフを切り替えます。
  4. 黒塗りを実行します。このツールは、コンテンツストリームから文字コードを削除し、該当する領域を覆います。
  5. 検証します(次のセクションを参照してください。絶対にスキップしないでください)。
  6. 黒塗りされたコピーを保存します。

特定の名前や既知の値をピンポイントで削除したい場合は、手動のRedact PDFツールにキーワードリストを渡すことで、同じ方法ですべての出現箇所を削除できます。

ほとんどの人がスキップしてしまう検証のステップ

Section titled “ほとんどの人がスキップしてしまう検証のステップ”

「黒塗り済み」と主張するのは簡単ですが、検証こそが証明です。出力ファイルに対して、次の3つすべてを実行してください:

  1. 検索テスト。 保存したPDFを開き、正確なSSNを検索します(ダッシュありとなしで試してください:123-45-6789および123456789)。0件ヒットであることが唯一の許容される結果です。
  2. 選択テスト。 黒塗りされた領域をドラッグして選択し、コピーします。クリップボードに数字が含まれている場合は、テキストレイヤーが生き残っています。
  3. テキスト抽出テスト。 すべてのテキストをエクスポートし(Text Extractorがこれをローカルで実行します)、そのダンプを検索します。数字がどこかに表示される場合は、黒塗りが不完全です。別のページに2つ目のコピーが存在する可能性が最も高いです。

これをアプリ内のプレビューではなく、最終的に保存されたファイルで実行してください。プレビュー画面はライブ状態からレンダリングされます。真実を語るのは保存されたバイトのみです。

テキストコンテンツは明白なターゲットですが、PDFのメタデータは、より見落とされやすいターゲットです。文書のプロパティ(作成者、タイトル、サブジェクト、作成したソフトウェア、時にはカスタムフィールドなど)には、名前、ID、および元の作成アプリケーションからの内部パスが含まれる可能性があります。完全に黒塗りされた文書でも、プロパティにAuthor: J. Smith, SSN 123-45-6789とあれば、依然として情報が漏洩しています。

黒塗り作業の最後のステップとしてメタデータを削除してください。また、ファイルが敵対的な場所(公的提出物、情報公開法に基づく回答など)に送られる場合は、同じ目的でSanitizeツールを使用して、埋め込まれたスクリプト、隠されたアクション、およびその他のアクティブなコンテンツを取り除きます。

黒塗りが間違ったツールである場合

Section titled “黒塗りが間違ったツールである場合”

黒塗りは基となるテキストを永久に破壊します。後で番号を明かす必要がある場合(内部チームが黒塗りされていない原本をレビューする場合など)は、管理されたストレージに黒塗りされていない別のコピーを保持し、配布するコピーのみを黒塗りします。配布されるファイルは情報が消去されたものであるべきで、マスターは機密の原本がすでに存在している場所に保管します。

再利用されるフォームでは、コピー時に黒塗りするパターンが多くの場合より優れています。マスターをクリーンに保ち、外部の受信者ごとに黒塗りバージョンを生成することで、黒塗りミスが起こってもソース文書に影響がさかのぼらないようにします。

スキャンしたPDFを黒塗りできますか? 可視画像を覆うことはできますが、スキャンには削除するテキストレイヤーがありません。まずOCR(PDF OCR)を実行し、復元されたテキストを黒塗りしてから、画像レイヤーを保持するか統合(フラット化)するかを決定します。スキャンの上の黒いボックスが適切と言えるのは、単に上に塗られるだけでなく、スキャンのピクセルが実際に破壊されている場合のみです。

黒塗りは元に戻せますか? いいえ、それが黒塗りの目的です。バイトは消去されています。だからこそ、実行前に検出された各候補を確認することが重要であり、クリーンなマスターを取っておくべき理由でもあります。

パスワード保護は黒塗りとしてカウントされますか? いいえ。暗号化はアクセスを制御し、黒塗りはコンテンツを削除します。黒塗りされていないSSNを含むパスワード保護されたPDFには依然としてSSNが含まれており、パスワード(またはクラック)を持つ人なら誰でもそれを読むことができます。

なぜ私のツールの「黒塗り」ボタンは単なる黒いボックスを作成するのですか? 多くの基本的なエディターは、真のコンテンツストリームの黒塗りではなく、注釈スタイルのハイライト/ボックス化を実装しています。その後で検索しても何も出ない結果をツールが示せない場合、それは黒塗りではなく描画を行っているだけです。


作業全体は、テスト可能な1つの主張に要約されます。作業が完了した後、ファイル内に機密文字が存在してはならないということです。それらを検索し、選択し、テキストを抽出して、もし番号が見つかれば、黒塗りは失敗です。ボックスを描き、バイトを削除し、保存したファイルで検証し、メタデータを消去して、クリーンなマスターを保持する。その一連の流れこそが、「黒塗りされた」ということの意味なのです。