コンテンツにスキップ
getnextpdf.com

Enterprise エディション

プライバシー

NextPDF Enterprise Privacy は、構成された PII パターンに一致するテキストを検出し、それを編集するか、それを含む行を抑制するか、または保存時に暗号化されたマップに裏付けられた可逆な決定論的仮名で置き換えます。テスト済みのとおり、構成されたルールに一致するコンテンツを除去します。完全な PII の除去を保証するものではなく、規制上のコンプライアンスの言明でもありません。

この機能は NextPDF Enterprisenextpdf/enterprise)に同梱されており、Enterprise ティアのライセンスエンベロープで有効化されます。そのエンタイトルメントを持たないデプロイメントは、この機能のクラスをロードしません。エディションを比較してライセンスを取得する

Terminal window
composer require nextpdf/enterprise:^3

検出はパターンベースです。ディテクターは、正規表現パターンのレジストリに照らしてテキストをスキャンし、メールアドレス、電話番号、米国の社会保障番号、クレジットカード番号、台湾の国民 ID 番号の組み込みパターンを同梱しています。デプロイメントは追加のパターンを登録できます。検出は構成された種類のみを見つけます。どのパターンにも一致しない値は検出されず、テキストレイヤーを持たないスキャンページは一致を生成しません。

編集ポリシーが挙動を制御します。検出専用モードでは、エンジンはコンテンツを変更せずに所見を返します。編集モードでは、一致した各スパンを、黒ボックス、白ボックス、またはテキストの置換に置き換えます。非識別化器は、個々のスパンをマスクする代わりに、一致を含む行全体を除去する抑制ストラテジーを追加します。各実行は、元のテキストの SHA-256、変更されたコンテンツ、項目別レポート、変更フラグを返します。

仮名化は設計上、可逆です。エンジンは、検出されたエンティティを、元の値とセッションごとのシードに対する HMAC から導出される、決定論的でフォーマットを意識した仮名で置き換えます。これにより、同じ値はセッション内で一貫してマップされる一方、セッションをまたいでトークンが決定論的な等価性によって相関することはありません。元の値から仮名へのマップはシリアライズされ、AES-256-GCM とバージョン付きの鍵で保存時に暗号化され、鍵のローテーションをサポートします。再水和は元の値を復元しますが、正しい鍵と一致する暗号化されたマップがある場合のみです。それらがなければ、仮名化されたテキストだけからは元の値を復元できません。

これらの操作は非識別化を実装します。非識別化は、データと人との関連付けを除去します — ISO/IEC 29100:2024 §2。仮名化は識別子を別名で置き換えるものであり、定義上、別個に保持されるマッピングによって可逆です — ISO/IEC 29100:2024 §2。匿名化は識別を不可逆に防ぐことを目指します — ISO/IEC 29100:2024 §2。この Enterprise サーフェスは、パターンスコープの編集、抑制、可逆な仮名化を実行するものであり、匿名化ではありません。残存する再識別リスクは、非識別化後に残る属性に依存し — ISO/IEC 29100:2024 §2 — 非識別化はそのリスクを低減しますが排除はしません — ISO/IEC 29151:2017。出力は、完全な PII の除去、不可逆性、規制上のコンプライアンスの保証としてではなく、テスト済みのとおり構成されたルールに一致するコンテンツが除去または置換されたものとして扱ってください。

可逆性が、この設計を支える選択です。仮名は、元の値とセッションごとのシードに対する HMAC-SHA256 の出力であるため、同じ値はセッションを通じて同じトークンにマップされ、ドキュメントの内部的な関係性が保たれます。セッションごとに新しいランダムなシードを用いることは、同じ値がセッションをまたいで同じトークンにマップされないことを意味します。そのため、仮名はセッションをまたいで決定論的なトークンの等価性によって相関することがなく、これにより中央の照合なしに決定論的なリンク可能性が低減されます。マッピングは意図的に保持され — AES-256-GCM で保存時に暗号化され — 認可された再水和が元の値を復元できます。この可逆性こそが、これを匿名化ではなく ISO/IEC 29100:2024 §2 の仮名化たらしめているものです。このトレードオフは受け入れられています。仮名化されたテキストではなく暗号化されたマップが機微なアーティファクトとなるため、機密性は鍵の保管に帰着します。フォーマットを意識したトークンは各エンティティの形状を保つため、下流のパーサーは動作し続けますが、その代償として、チェックサムバリデーターが形状は正しいが合成された値を拒否する場合があります。

設計背景:編集は黒い長方形ではない

種別役割安定性導入バージョン
PiiDetectorclassパターンベースの PII 検出。カスタムパターンの登録をサポートstable2.2.0
RedactionEngineclassポリシーによる検出専用または破壊的なテキスト編集stable2.2.0
DeIdentifierclass編集または行抑制ストラテジーのディスパッチstable2.2.0
RedactionPolicyclass対象エンティティタイプ、編集トグル、置換スタイルstable2.2.0
PseudonymizationEngineclass決定論的でフォーマットを意識した仮名の置換stable2.2.0
PrivacyGatewayclass監査を伴うドキュメントスコープの仮名化/再水和stable2.2.0
RehydrationServiceclass暗号化されたマップから元の値を復元stable2.2.0
EncryptedMapSerializerclass鍵バージョン管理を伴う AES-256-GCM の保存時マップシリアライゼーションstable2.2.0
PrivacyAuditTrailclass仮名化/再水和操作の追記専用ログstable2.2.0
EntityType / RedactionStyle / DeIdentificationStrategyenumsエンティティ、スタイル、ストラテジーの語彙stable2.2.0

監査証跡は、コントラクト上、追記専用です。セッション ID、操作、エンティティ数、ポリシーハッシュ、タイムスタンプ、テナント ID を記録します。検出された値は記録しません。

Detect and redact configured PII
<?php
declare(strict_types=1);
require_once __DIR__ . '/vendor/autoload.php';
use NextPDF\Enterprise\Privacy\PiiDetector;
use NextPDF\Enterprise\Privacy\RedactionEngine;
use NextPDF\Enterprise\Privacy\RedactionPolicy;
/**
* Redact every configured entity type from text content.
*
* @param string $content The text to process.
*
* @return string The redacted text.
*/
function redactAll(string $content): string
{
$engine = new RedactionEngine(new PiiDetector());
return $engine->redact($content, RedactionPolicy::allEntities())
->redactedContent;
}

RedactionPolicy::allEntities() は組み込みの種類を対象にします。構成されたどのパターンにも一致しない値は編集されません。

Reversible pseudonymization with audit and safe logging
<?php
declare(strict_types=1);
require_once __DIR__ . '/vendor/autoload.php';
use NextPDF\Enterprise\Privacy\PrivacyGateway;
use NextPDF\Enterprise\Privacy\PrivacyPolicy;
use NextPDF\Enterprise\Privacy\EntityType;
use Psr\Log\LoggerInterface;
final readonly class DocumentDeidentifier
{
public function __construct(
private PrivacyGateway $gateway,
private LoggerInterface $logger,
) {}
/**
* Pseudonymize a document and return the encrypted reversal map.
*
* @param non-empty-string $text Document text.
* @param list<array{text: non-empty-string, type: EntityType}> $entities Detected entities.
*
* @return array{text: string, encrypted_map: non-empty-string}
*/
public function process(string $text, array $entities): array
{
$policy = PrivacyPolicy::piiOnly('session-' . bin2hex(random_bytes(6)));
$result = $this->gateway->pseudonymize($text, $entities, $policy);
$this->logger->info('Pseudonymization complete', [
'entityCount' => $result['entity_count'],
]);
return ['text' => $result['text'], 'encrypted_map' => $result['encrypted_map']];
}
}

ログレコードはカウントのみを運びます。ドキュメントのテキスト、検出された値、暗号化されたマップは運びません。

  • 検出はパターンスコープです。どのパターンにも一致しない値は検出されません。エンジンは、すべての個人データが見つかると主張せず、結果は完全な PII の除去の保証ではありません。
  • スキャンページにはテキストレイヤーがありません。テキストパターンの検出は一致を生成しません。最初にテキストが必要な場合は、Intelligence の検索可能オーバーレイサーフェスと組み合わせてください。
  • 仮名化は定義上、可逆です。正しい鍵と一致する暗号化されたマップを持つ者は誰でも、元の値を復元できます。これは匿名化ではありません。仮名化された出力を不可逆として提示しないでください。
  • フォーマットを意識した仮名は、形状(たとえば、ID 風またはメール風のトークン)を保ちます。チェックサムを検証する下流のシステムは仮名を拒否する場合があります。それは想定内です。
  • 暗号化されたマップが機微なアーティファクトです。これを失うと再水和が不可能になります。鍵とともに漏洩すると、第三者によって仮名化が可逆になります。鍵の保管とマップの保存は、デプロイメントの責任として扱ってください。
  • 編集は、渡されたテキストコンテンツに対して動作します。それ自体は、画像を平坦化したり、サムネイルを除去したり、ドキュメントメタデータを除去したりはしません。パイプラインをそれに応じてスコープしてください。

検出コストは、パターン数とテキストの長さに応じて増減します。仮名化は、一意なエンティティごとに HMAC を 1 つと、マップの AES-256-GCM シールを追加します。1500 ms のウォール予算は、典型的なビジネスドキュメントをカバーします。再現性プロファイルは structural です。仮名は固定されたシードに対して決定論的ですが、監査タイムスタンプとランダムなセッションシードは実行ごとに異なるため、2 回の実行はそれらのフィールドで異なります。

保存時のマップは認証付き暗号化を使用します。マップは AES-256-GCM とバージョン付きの鍵でシールされ、正しい鍵バージョンなしには再水和は不可能です。鍵の生成、保管、ローテーションはデプロイメントの責任です。ライブラリは鍵を消費しますが、鍵ストアを管理しません。監査証跡は追記専用であり、メタデータを記録し、検出された値を記録することは決してありません。すべての規範的なソースはパラフレーズであり、いずれも複製されていません。

検出、編集、仮名化は、ホスト上でインプロセスで実行されます。これらの操作のいずれにおいても、ドキュメントの内容がホストを離れることはありません。暗号化されたマップと再水和された出力はすべて個人データです。それらがどこに保存され、どの法域が処理するかは、ライブラリの境界の外にあるデプロイメントの責任です。ライブラリはテスト済みのとおりパターンスコープの非識別化を実行します。GDPR、HIPAA、その他いかなる規制上のコンプライアンスも認証せず、匿名化を実行しません。残存する再識別リスクは、残る属性に依存します — ISO/IEC 29151:2017。

ライブラリは構造的なメッセージを持つ型付き例外を発生させ、検出された値、ドキュメントのバイト、暗号化されたマップを例外テキストに含めることは決してありません。このサーフェスの周囲でログを記録するデプロイメントは、本番サンプルに示すように、カウントとポリシーハッシュをログに記録しなければならず、生の PDF ペイロード、検出されたエンティティのテキスト、仮名マップをログや APM バックエンドに記録してはなりません。追記専用の監査証跡が、保持すべき安全なレコードです。

保存時のマップは、プラットフォームの暗号プロバイダーを通じて AES-256-GCM を使用します。ホストが FIPS 検証済みのプロバイダーを実行している場合、その操作は検証された境界内で実行されます。NextPDF Enterprise は構造的なアセンブリを実行するものであり、それ自体は FIPS 検証済みの暗号モジュールではなく、FIPS 認証の主張を行いません。

主張標準条項
非識別化は、データと人との関連付けを除去します。ISO/IEC 29100:2024§2
仮名化は識別子を別名で置き換え、別個のマッピングによって可逆です。ISO/IEC 29100:2024§2
匿名化は識別を不可逆に防ぐことを目指します(このサーフェスは匿名化しません)。ISO/IEC 29100:2024§2
残存する再識別リスクは、残る属性に依存します。ISO/IEC 29100:2024§2
プライバシー管理策が PII に適用されます。ISO/IEC 29100:2024§6.5
非識別化は残存リスクを低減しますが排除はしません。ISO/IEC 29151:2017de-identification controls
非識別化されたデータのリンク可能性を最小化します。ISO/IEC 29151:2017PII minimization
管理策が PII を保護するために適用されます。ISO/IEC 29151:2017controls

すべての条項はパラフレーズです。NextPDF は規範的なテキストを複製しません。正規の文言については、公開された標準を参照してください。NextPDF はプライバシー規制のコンプライアンスの主張を行いません。このページは、テスト済みの非識別化の挙動とその境界を記載するものであり、認証されたコンプライアンスステータスではありません。

  • 検出はパターンスコープです。構成された種類のみを見つけます。どのパターンにも一致しない値は検出されず、テキストレイヤーを持たないページは一致を生成しません。
  • 編集ポリシーは、検出専用、スパン置換(黒ボックス/白ボックス/テキスト)、または行全体の抑制を選択します。各実行は、元のテキストの SHA-256、変更されたコンテンツ、項目別レポート、変更フラグを返します。
  • 仮名化は設計上、可逆です。決定論的な HMAC 由来の仮名はセッション内で一貫しており、再水和には正しい鍵バージョンと一致する AES-256-GCM の保存時マップが必要です。
  • 追記専用の監査証跡は、セッション ID、操作、エンティティ数、ポリシーハッシュ、タイムスタンプ、テナント ID を記録します。検出された値は決して記録しません。
  • 出力は、テスト済みのとおり構成されたルールに一致するコンテンツが除去または置換されたものであり、完全な PII の除去、不可逆性、規制上のコンプライアンスの保証ではありません。

このページは、外部から観測可能な挙動とサポートされる公開 API サーフェスのみを文書化します。内部の名前空間パス、ヘルパークラス、メカニズムのテーブル、ランブックのファイル名、チケットのプレフィックスは範囲外です。

NextPDF Core (Apache-2.0) には、PII 検出、編集、仮名化のサーフェスがありません。一切ありません。この機能には Core ティア相当のものが存在しません。

NextPDF Pro は、テキストレイヤーの PII 検出 サーフェスと生成時のマスキングを同梱しています。可逆な仮名化、暗号化された保存時マップ、行の抑制、追記専用の監査証跡は提供しません。それらは nextpdf/enterprise パッケージにのみ含まれます。

検出、編集、抑制、仮名化は、挙動レベルで説明しています。ライブラリは暗号化鍵を消費します。鍵ストアを管理せず、鍵の生成、保管、ローテーションの内部は、パブリックサーフェスの範囲外です。

暗号化されたマップと再水和された出力はすべて個人データです。それらがどこに保存され、どの法域が処理するかは、ライブラリの境界の外にあるデプロイメントの責任です。鍵の生成、保管、ローテーションはデプロイメントの責任です。ライブラリは鍵バージョンを消費しますが、鍵ストアを管理しません。マップを失うと再水和が不可能になります。鍵とともに漏洩すると、第三者によって仮名化が可逆になります。

保存時のマップは認証付き暗号化を使用します。ライブラリはテスト済みのとおりパターンスコープの非識別化を実行し、GDPR、HIPAA、その他いかなる規制上のコンプライアンスも認証せず、匿名化を実行しません。このドキュメントは法的見解ではありません。ご自身のコンプライアンスおよび法務の助言者にご相談ください。