Enterprise редакция
Конфиденциальность
Краткий обзор
Заголовок раздела «Краткий обзор»NextPDF Enterprise Privacy обнаруживает текст, соответствующий настроенным шаблонам ПДн, и либо редактирует его, либо подавляет строки, которые его содержат, либо заменяет его обратимыми детерминированными псевдонимами, опирающимися на зашифрованную карту в покое. Он удаляет содержимое, соответствующее настроенным правилам, как протестировано. Он не гарантирует полного удаления ПДн и не является заявлением о нормативном соответствии.
Доступность и лицензирование
Заголовок раздела «Доступность и лицензирование»Эта возможность поставляется в NextPDF Enterprise (nextpdf/enterprise) и активируется лицензионным конвертом уровня Enterprise. Развёртывание без этого права не загружает классы возможности. Сравните редакции и получите лицензию.
Установка
Заголовок раздела «Установка»composer require nextpdf/enterprise:^3Концептуальный обзор
Заголовок раздела «Концептуальный обзор»Обнаружение основано на шаблонах. Детектор сканирует текст по реестру шаблонов на регулярных выражениях и поставляет встроенные шаблоны для адресов электронной почты, телефонных номеров, номеров социального страхования США, номеров кредитных карт и номеров национального удостоверения личности Тайваня. Развёртывание может зарегистрировать дополнительные шаблоны. Обнаружение находит только настроенные типы; значение, которому не соответствует ни один шаблон, не обнаруживается, а отсканированная страница без текстового слоя не даёт совпадений.
Политика редактирования управляет поведением. В режиме «только обнаружение» движок возвращает замечания, не изменяя содержимого. В режиме редактирования он заменяет каждый совпавший фрагмент чёрным блоком, белым блоком или текстовой заменой. Деидентификатор добавляет стратегию подавления, которая удаляет целые строки, содержащие совпадение, вместо маскирования отдельных фрагментов. Каждый прогон возвращает SHA-256 исходного текста, изменённое содержимое, детализированный отчёт и флаг изменения.
Псевдонимизация по замыслу обратима. Движок заменяет обнаруженные сущности детерминированными псевдонимами, учитывающими формат, полученными как HMAC над исходным значением и сеансовым seed, поэтому одно и то же значение сопоставляется согласованно в пределах сеанса, тогда как в разных сеансах токены не коррелируют по детерминированному равенству. Карта «оригинал — псевдоним» сериализуется и шифруется в покое с помощью 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. Относитесь к выходу как к содержимому, соответствующему настроенным правилам, удалённому или заменённому как протестировано, а не как к гарантии полного удаления ПДн, необратимости или нормативного соответствия.
Почему это работает именно так
Заголовок раздела «Почему это работает именно так»Обратимость — это несущий выбор. Псевдонимы — это выходы HMAC-SHA256 над исходным значением и сеансовым seed, поэтому одно и то же значение сопоставляется одному и тому же токену на протяжении сеанса, и внутренние связи документа сохраняются. Новый случайный seed на каждый сеанс означает, что одно и то же значение не сопоставляется одному и тому же токену в разных сеансах, поэтому псевдонимы не коррелируют по детерминированному равенству токенов между сеансами, что снижает детерминированную связываемость без центрального поиска. Сопоставление намеренно сохраняется — зашифрованным в покое с помощью AES-256-GCM — чтобы авторизованная регидратация могла восстановить оригиналы; именно эта обратимость делает это псевдонимизацией по ISO/IEC 29100:2024 §2, а не анонимизацией. Компромисс принят: конфиденциальным артефактом становится зашифрованная карта, а не псевдонимизированный текст, поэтому конфиденциальность сводится к хранению ключа. Токены с учётом формата сохраняют форму каждой сущности, поэтому нижестоящие парсеры продолжают работать ценой того, что валидаторы контрольных сумм могут отвергнуть значение правильной формы, но синтетическое.
Предыстория дизайна: Редактирование — это не чёрный прямоугольник.
Поверхность API
Заголовок раздела «Поверхность API»| Тип | Вид | Роль | Стабильность | Начиная с |
|---|---|---|---|---|
PiiDetector | класс | Обнаружение ПДн на основе шаблонов; поддерживает регистрацию пользовательских шаблонов | стабильный | 2.2.0 |
RedactionEngine | класс | Редактирование текста только для обнаружения или с изменением по политике | стабильный | 2.2.0 |
DeIdentifier | класс | Диспетчеризация стратегии редактирования или подавления строк | стабильный | 2.2.0 |
RedactionPolicy | класс | Целевые типы сущностей, переключатель редактирования, стиль замены | стабильный | 2.2.0 |
PseudonymizationEngine | класс | Детерминированная замена псевдонимами с учётом формата | стабильный | 2.2.0 |
PrivacyGateway | класс | Псевдонимизация/регидратация в рамках документа с аудитом | стабильный | 2.2.0 |
RehydrationService | класс | Восстанавливает оригиналы из зашифрованной карты | стабильный | 2.2.0 |
EncryptedMapSerializer | класс | Сериализация карты в покое AES-256-GCM с версионированием ключа | стабильный | 2.2.0 |
PrivacyAuditTrail | класс | Журнал операций псевдонимизации/регидратации только для добавления | стабильный | 2.2.0 |
EntityType / RedactionStyle / DeIdentificationStrategy | перечисления | Словарь сущностей, стилей и стратегий | стабильный | 2.2.0 |
Журнал аудита по контракту работает только на добавление: он записывает идентификатор сеанса, операцию, число сущностей, хеш политики, метку времени и идентификатор арендатора. Он не записывает обнаруженных значений.
Пример кода — быстрый старт
Заголовок раздела «Пример кода — быстрый старт»<?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']]; }}Запись в журнале несёт только счётчик. Она не содержит текста документа, обнаруженных значений или зашифрованной карты.
Граничные случаи и подводные камни
Заголовок раздела «Граничные случаи и подводные камни»- Обнаружение ограничено шаблонами. Значение, которому не соответствует ни один шаблон, не обнаруживается. Движок не утверждает, что найдены все персональные данные, и результат не является гарантией полного удаления ПДн.
- У отсканированных страниц нет текстового слоя. Обнаружение по текстовым шаблонам не даёт совпадений; при необходимости сначала получить текст комбинируйте с поверхностью слоя с возможностью поиска из Intelligence.
- Псевдонимизация по определению обратима. Любой, у кого есть правильный ключ и соответствующая зашифрованная карта, может восстановить оригиналы. Это не анонимизация; не представляйте псевдонимизированный вывод как необратимый.
- Псевдонимы с учётом формата сохраняют форму (например, токен, похожий на ID или адрес электронной почты). Нижестоящая система, проверяющая контрольные суммы, может отвергнуть псевдоним; это ожидаемо.
- Зашифрованная карта — это конфиденциальный артефакт. Её потеря делает регидратацию невозможной; её утечка вместе с ключом делает псевдонимизацию обратимой третьей стороной. Относитесь к хранению ключа и карты как к обязанности развёртывания.
- Редактирование действует на переданное ему текстовое содержимое. Само по себе оно не уплощает изображение, не удаляет миниатюру и не вырезает метаданные документа; настраивайте конвейер соответственно.
Производительность
Заголовок раздела «Производительность»Стоимость обнаружения растёт с числом шаблонов и длиной текста. Псевдонимизация добавляет один HMAC на уникальную сущность и одно запечатывание карты AES-256-GCM. Бюджет времени в 1500 мс покрывает типичный бизнес-документ. Профиль воспроизводимости — structural: псевдонимы детерминированы для фиксированного seed, но метка времени аудита и случайный сеансовый seed различаются между прогонами, поэтому два прогона различаются в этих полях.
Замечания по безопасности
Заголовок раздела «Замечания по безопасности»Карта в покое использует аутентифицированное шифрование. Карта запечатывается с помощью AES-256-GCM и версионированного ключа; регидратация невозможна без правильной версии ключа. Генерация, хранение и ротация ключей — обязанность развёртывания; библиотека потребляет ключ, она не управляет хранилищем ключей. Журнал аудита работает только на добавление и записывает метаданные, никогда не обнаруженные значения. Каждый нормативный источник приведён в пересказе, и ни один не воспроизводится.
Размещение данных и меры по защите ПДн
Заголовок раздела «Размещение данных и меры по защите ПДн»Обнаружение, редактирование и псевдонимизация выполняются внутри процесса на хосте. Для любой из этих операций содержимое документа не покидает хост. Зашифрованная карта и любой регидратированный вывод — это персональные данные; где они хранятся и какая юрисдикция их обрабатывает, является обязанностью развёртывания за пределами границы библиотеки. Библиотека выполняет деидентификацию в рамках шаблонов как протестировано; она не сертифицирует соответствие 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 |
| Меры защиты конфиденциальности применяются к ПДн. | ISO/IEC 29100:2024 | §6.5 |
| Деидентификация снижает, но не устраняет остаточный риск. | ISO/IEC 29151:2017 | de-identification controls |
| Минимизация связываемости деидентифицированных данных. | ISO/IEC 29151:2017 | PII minimization |
| Меры применяются для защиты ПДн. | ISO/IEC 29151:2017 | controls |
Все пункты приведены в пересказе. NextPDF не воспроизводит нормативный текст. За авторитетной формулировкой обращайтесь к опубликованным стандартам. NextPDF не делает заявлений о соответствии нормам защиты конфиденциальности; на этой странице описано протестированное поведение деидентификации и его границы, а не сертифицированный статус соответствия.
Контракт поведения
Заголовок раздела «Контракт поведения»- Обнаружение ограничено шаблонами: оно находит только настроенные типы; значение, которому не соответствует ни один шаблон, не обнаруживается, а страница без текстового слоя не даёт совпадений.
- Политика редактирования выбирает «только обнаружение», замену фрагмента (чёрный блок / белый блок / текст) или подавление целых строк; каждый прогон возвращает SHA-256 исходного текста, изменённое содержимое, детализированный отчёт и флаг изменения.
- Псевдонимизация по замыслу обратима: детерминированные псевдонимы, полученные через HMAC, согласованы в пределах сеанса, а регидратация требует правильной версии ключа и соответствующей карты в покое AES-256-GCM.
- Журнал аудита только для добавления записывает идентификатор сеанса, операцию, число сущностей, хеш политики, метку времени и идентификатор арендатора — никогда обнаруженные значения.
- Выход — это содержимое, соответствующее настроенным правилам, удалённое или заменённое как протестировано, а не гарантия полного удаления ПДн, необратимости или нормативного соответствия.
Граница публикации
Заголовок раздела «Граница публикации»Эта страница документирует только внешне наблюдаемое поведение и поддерживаемую публичную поверхность API. Внутренние пути пространств имён, вспомогательные классы, таблицы механизмов, имена файлов runbook и префиксы заявок находятся вне области рассмотрения.
Резервный режим Core
Заголовок раздела «Резервный режим Core»У NextPDF Core (Apache-2.0) нет поверхности обнаружения ПДн, редактирования или псевдонимизации — никакой; у этой возможности нет эквивалента уровня Core.
Резервный режим Pro
Заголовок раздела «Резервный режим Pro»NextPDF Pro поставляет поверхность обнаружения ПДн в текстовом слое и маскирование на этапе генерации; он не предоставляет обратимой псевдонимизации, зашифрованной карты в покое, подавления строк или журнала аудита только для добавления. Они поставляются только в пакете nextpdf/enterprise.
Замечание о границе Enterprise
Заголовок раздела «Замечание о границе Enterprise»Обнаружение, редактирование, подавление и псевдонимизация описаны на уровне поведения. Библиотека потребляет ключ шифрования; она не управляет хранилищем ключей, а внутренние детали генерации, хранения и ротации ключей находятся вне публичной поверхности.
Граница развёртывания
Заголовок раздела «Граница развёртывания»Зашифрованная карта и любой регидратированный вывод — это персональные данные; где они хранятся и какая юрисдикция их обрабатывает, является обязанностью развёртывания за пределами границы библиотеки. Генерация, хранение и ротация ключей — обязанность развёртывания: библиотека потребляет версию ключа, она не управляет хранилищем ключей. Потеря карты делает регидратацию невозможной; её утечка вместе с ключом делает псевдонимизацию обратимой третьей стороной.
Граница правового соответствия
Заголовок раздела «Граница правового соответствия»Карта в покое использует аутентифицированное шифрование. Библиотека выполняет деидентификацию в рамках шаблонов как протестировано и не сертифицирует соответствие GDPR, HIPAA или любому другому нормативному требованию и не выполняет анонимизации. Эта документация не является юридическим заключением; обращайтесь к собственным консультантам по комплаенсу и праву.
См. также
Заголовок раздела «См. также»- Справочник Privacy — полная публичная поверхность API модуля Privacy.
- Pro security — маскирование Pro и обнаружение ПДн в текстовом слое.
- Forensics — анализ истории ревизий только для чтения.
- NextPDF Enterprise — полная поверхность возможностей Enterprise.
- Privacy policy — обработка данных в самой программе документации.
- PII · Pseudonymization · De-identification · AES-GCM — термины глоссария.