Enterprise 版本
隱私
NextPDF Enterprise Privacy 會偵測符合設定好 PII 樣式的文字,並對其進行遮蔽、抑制含有它的整行,或以由加密靜態對應表所支撐的可逆決定性假名加以取代。它會移除符合設定規則的內容,且僅以經測試的範圍為準。它不保證完整移除 PII,也不是法規合規的聲明。
可用性與授權
標題為「可用性與授權」的區段此能力隨 NextPDF Enterprise(nextpdf/enterprise)提供,並以 Enterprise 層級的授權封套啟用。未具該權益的部署不會載入此能力的類別。比較版本並取得授權。
composer require nextpdf/enterprise:^3概念總覽
標題為「概念總覽」的區段偵測是以樣式為基礎的。一個偵測器會對照一份正規表示式樣式的註冊表掃描文字,並隨附用於電子郵件地址、電話號碼、美國社會安全號碼、信用卡號碼與台灣國民身分證號碼的內建樣式。部署可以註冊額外的樣式。偵測僅會找出設定好的類型;沒有任何樣式相符的值不會被偵測到,而沒有文字層的掃描頁面則不會產生任何相符項。
一個遮蔽原則控制行為。在僅偵測模式下,引擎會回傳發現而不更動內容。在遮蔽模式下,它會以黑框、白框或文字取代每個相符的範圍。去識別器則加入一種抑制策略,會移除含有相符項的整行,而非遮蔽個別範圍。每次執行都會回傳原始文字的 SHA-256、修改後的內容、一份逐項報告,以及一個已修改旗標。
假名化在設計上是可逆的。引擎會以由「對原始值與每工作階段種子計算的 HMAC」所衍生、具格式感知的決定性假名取代偵測到的實體,因此同一個值在一個工作階段內一致地對應,而在不同工作階段之間,權杖不會以決定性相等性相關。原始值到假名的對應表會被序列化,並以 AES-256-GCM 與一把帶版本的金鑰靜態加密,支援金鑰輪替。再水合(rehydration)會還原原始值,但僅在持有正確金鑰與相符的加密對應表時才行;若不具備,僅憑假名化後的文字無法復原原始值。
這些操作實作了去識別化,即移除資料與當事人之間的關聯——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 意義下的假名化,而非匿名化。此取捨被接受:成為敏感成品的是加密對應表,而非假名化後的文字,因此機密性歸結為金鑰保管。格式感知的權杖會保留每個實體的形狀,讓下游剖析器持續運作,代價是校驗碼驗證器可能會拒絕一個具形狀但為合成的值。
設計背景:遮蔽不是一個黑色矩形。
API 介面
標題為「API 介面」的區段| 型別 | 種類 | 角色 | 穩定度 | 自 |
|---|---|---|---|---|
PiiDetector | class | 以樣式為基礎的 PII 偵測;支援註冊自訂樣式 | stable | 2.2.0 |
RedactionEngine | class | 依原則進行僅偵測或破壞性的文字遮蔽 | stable | 2.2.0 |
DeIdentifier | class | 遮蔽或整行抑制策略派送 | stable | 2.2.0 |
RedactionPolicy | class | 目標實體類型、遮蔽開關、取代樣式 | stable | 2.2.0 |
PseudonymizationEngine | class | 決定性、格式感知的假名取代 | stable | 2.2.0 |
PrivacyGateway | class | 文件範圍的假名化/再水合,並附稽核 | stable | 2.2.0 |
RehydrationService | class | 從加密對應表還原原始值 | stable | 2.2.0 |
EncryptedMapSerializer | class | 帶金鑰版本的 AES-256-GCM 靜態對應表序列化 | stable | 2.2.0 |
PrivacyAuditTrail | class | 假名化/再水合操作的僅可附加日誌 | stable | 2.2.0 |
EntityType / RedactionStyle / DeIdentificationStrategy | enums | 實體、樣式與策略的詞彙 | stable | 2.2.0 |
稽核軌跡依合約為僅可附加:它會記錄一個工作階段 id、操作、實體計數、一個原則雜湊、一個時間戳記,以及一個租戶 id。它不會記錄偵測到的值。
程式碼範例——快速上手
標題為「程式碼範例——快速上手」的區段<?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() 會以內建類型為目標。沒有任何設定樣式相符的值不會被遮蔽。
程式碼範例——正式環境
標題為「程式碼範例——正式環境」的區段<?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,以及對對應表進行一次 AES-256-GCM 密封。1500 ms 的牆鐘預算涵蓋一份典型的商業文件。可重現性設定檔為 structural:對固定種子而言假名是決定性的,但稽核時間戳記與隨機的工作階段種子會在不同執行之間變化,因此兩次執行會在那些欄位上不同。
安全注意事項
標題為「安全注意事項」的區段靜態對應表使用已驗證加密。對應表以 AES-256-GCM 與一把帶版本的金鑰密封;若不具備正確的金鑰版本,再水合即無法進行。金鑰產生、保管與輪替是部署的責任;函式庫消耗一把金鑰,但不管理金鑰庫。稽核軌跡為僅可附加,且記錄中繼資料,絕不記錄偵測到的值。每個規範性來源皆為改寫,且無一被重製。
資料落地與 PII 緩解措施
標題為「資料落地與 PII 緩解措施」的區段偵測、遮蔽與假名化會在主機上於行程內執行。對於這些操作中的任何一項,皆無任何文件內容離開主機。加密對應表與任何再水合後的輸出皆為個人資料;它們儲存於何處,以及由哪個司法管轄區處理,皆屬於部署責任,落在函式庫的邊界之外。函式庫執行的是經測試、限於樣式範圍的去識別化;它不對 GDPR、HIPAA 或任何其他法規合規進行認證,也不執行匿名化。殘餘的重新識別風險取決於仍存留的屬性——ISO/IEC 29151:2017。
安全遙測與日誌清洗
標題為「安全遙測與日誌清洗」的區段函式庫會丟出帶有結構性訊息的具型別例外,且絕不會將偵測到的值、文件位元組或加密對應表放入例外文字中。在此介面周圍進行日誌記錄的部署,必須記錄計數與原則雜湊——如正式環境範例所示——且絕不可將原始 PDF 酬載、偵測到的實體文字或假名對應表記錄到日誌或 APM 後端。僅可附加的稽核軌跡是可安全保留的紀錄。
FIPS 模式行為
標題為「FIPS 模式行為」的區段靜態對應表透過平台加密提供者使用 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:2017 | de-identification controls |
| 將去識別化資料的可連結性最小化。 | ISO/IEC 29151:2017 | PII minimization |
| 套用控制以保護 PII。 | ISO/IEC 29151:2017 | controls |
所有條款皆為改寫。NextPDF 不重製規範性文字。請查閱已發布的標準以取得權威用語。NextPDF 不做任何隱私法規合規的聲明;本頁陳述的是經測試的去識別化行為及其邊界,而非經認證的合規狀態。
行為合約
標題為「行為合約」的區段- 偵測限於樣式範圍:它僅會找出設定好的類型;沒有任何樣式相符的值不會被偵測到,而沒有文字層的頁面不會產生任何相符項。
- 一個遮蔽原則選擇僅偵測、範圍取代(黑框/白框/文字)或整行抑制;每次執行都會回傳原始文字的 SHA-256、修改後的內容、一份逐項報告,以及一個已修改旗標。
- 假名化在設計上可逆:由 HMAC 衍生的決定性假名在一個工作階段內一致,而再水合需要正確的金鑰版本與相符的 AES-256-GCM 靜態對應表。
- 僅可附加的稽核軌跡會記錄工作階段 id、操作、實體計數、原則雜湊、時間戳記與租戶 id——絕不記錄偵測到的值。
- 輸出是「符合設定規則的內容已依經測試方式移除或取代」,而非完整移除 PII、不可逆性或法規合規的保證。
發布邊界
標題為「發布邊界」的區段本頁僅記載外部可觀察的行為與受支援的公開 API 介面。內部命名空間路徑、輔助類別、機制表格、runbook 檔名與工單前綴皆不在範圍內。
Core 回退
標題為「Core 回退」的區段NextPDF Core(Apache-2.0)沒有任何 PII 偵測、遮蔽或假名化介面——一概沒有;此能力沒有任何 Core 層級的等價物。
Pro 回退
標題為「Pro 回退」的區段NextPDF Pro 隨附一個文字層 PII 偵測 介面與產生時的遮罩;它不提供可逆假名化、加密靜態對應表、整行抑制,或僅可附加的稽核軌跡。那些僅隨 nextpdf/enterprise 套件提供。
Enterprise 邊界註記
標題為「Enterprise 邊界註記」的區段偵測、遮蔽、抑制與假名化皆以行為層級描述。函式庫消耗一把加密金鑰;它不管理金鑰庫,而金鑰產生、保管與輪替的內部實作皆不在公開介面範圍內。
部署邊界
標題為「部署邊界」的區段加密對應表與任何再水合後的輸出皆為個人資料;它們儲存於何處,以及由哪個司法管轄區處理,皆屬於部署責任,落在函式庫的邊界之外。金鑰產生、保管與輪替是部署的責任——函式庫消耗一個金鑰版本,但不管理金鑰庫。遺失對應表會使再水合無法進行;連同其金鑰一起外洩,則會使假名化可被第三方逆轉。
法律合規邊界
標題為「法律合規邊界」的區段靜態對應表使用已驗證加密。函式庫執行的是經測試、限於樣式範圍的去識別化,且不對 GDPR、HIPAA 或任何其他法規合規進行認證,也不執行匿名化。本文件不是法律意見;請諮詢你自己的合規與法律顧問。
另請參閱
標題為「另請參閱」的區段- Privacy 參考 — Privacy 模組的完整公開 API 介面。
- Pro 安全 — Pro 遮罩與文字層 PII 偵測。
- Forensics — 唯讀的修訂歷程分析。
- NextPDF Enterprise — 完整的 Enterprise 功能介面。
- 隱私權政策 — 本文件計畫自身的資料處理。
- PII · Pseudonymization · De-identification · AES-GCM — 詞彙表條目。