Enterprise редакция
Доказательства
NextPDF Enterprise собирает выводы проверки по каждому документу в запечатанный, неизменяемый пакет с детерминированной формой JSON и стабильным дайджестом SHA-256, опционально несущий токен метки времени RFC 3161. Захват доказательств поддерживает рабочие процессы аудита. Это не юридическое удостоверение, не аудиторская сертификация и не доказательство соответствия документа.
Доступность и лицензирование
Заголовок раздела «Доступность и лицензирование»Эта возможность поставляется в NextPDF Enterprise (nextpdf/enterprise) и активируется лицензионным конвертом уровня Enterprise. Развёртывание без этого права не загружает классы возможности. Сравните редакции и получите лицензию.
Установка
Заголовок раздела «Установка»composer require nextpdf/enterprise:^3Концептуальный обзор
Заголовок раздела «Концептуальный обзор»EvidencePortal — это точка входа. generateEvidence($documentHash, $records, $tsaTimestamp) собирает список экземпляров EvidenceRecord в EvidencePackage, вычисляет статистику прохождений/сбоев, сохраняет пакет через EvidenceStoreInterface и возвращает запечатанный пакет. EvidenceRecord фиксирует одну проверку политики: имя политики, флаг прохождения, детали, версию валидатора, который её произвёл, и метку времени.
EvidencePackage неизменяем после конструирования. Он несёт идентификатор пакета, SHA-256 проверенного документа, записи, агрегированные счётчики, время генерации и опциональный токен метки времени RFC 3161. allPassed() и passRate() его обобщают. Его неизменяемость делает пакет пригодным для хранилища с записью один раз и многократным чтением (WORM).
EvidenceExporter сериализует пакет в детерминированную строку JSON — с фиксированным порядком ключей, воспроизводимую, — поэтому exportHash() возвращает стабильный 64-символьный дайджест SHA-256 для проверки целостности. Один и тот же пакет всегда даёт один и тот же дайджест, независимо от того, когда и где он вычислен.
ContinuousMonitor повторно проверяет документ и сравнивает текущие доказательства с сохранёнными предыдущими по имени непройденной политики, классифицируя проблемы как новые, решённые или неизменные, и предоставляет проверку расписания (isDue() / MonitorSchedule / MonitorFrequency). Это поддерживает обнаружение дрейфа во времени; он сообщает, что изменилось, а не утверждает юридический статус в какой-либо момент.
Что означает здесь «доказательство»
Заголовок раздела «Что означает здесь «доказательство»»Этот модуль упаковывает и помечает меткой времени выводы проверки для рабочих процессов аудита. Он ничего не сертифицирует.
- Токен метки времени RFC 3161 привязывает данные пакета к значению времени: он предоставляет доказательство того, что данные существовали до этого времени. Это не юридическое удостоверение, и он не утверждает, что снабжённое меткой времени содержимое соответствует требованиям или действительно.
- Запечатанный пакет с
allPassed() === trueфиксирует, что включённые проверки прошли относительно реализуемых ими правил. Это не аудиторская сертификация. - Детерминированный дайджест доказывает целостность байтов пакета. Он не доказывает регуляторную достаточность документа.
Захват доказательств поддерживает рабочие процессы аудита; это не юридическое удостоверение и не аудиторская сертификация. Действительность и конформность остаются свойствами итогового файла плюс валидатора.
Граница уровня
Заголовок раздела «Граница уровня»Упаковка доказательств — это поверхность только для Enterprise. Core и Pro производят выводы и отчёты; Enterprise Evidence запечатывает эти выводы в неизменяемый, детерминированный, опционально снабжённый меткой времени пакет и отслеживает регрессии. Она зависит от выводов, произведённых в другом месте (поверхности Validation или Compliance); она сама не выполняет проверок конформности.
Почему это работает именно так
Заголовок раздела «Почему это работает именно так»Доказательства полезны только в том случае, если их нельзя незаметно переписать задним числом, поэтому EvidencePackage — это запечатанное readonly-значение без мутаторов, безопасное для хранилища с записью один раз и многократным чтением. Вывод toJson() экспортёра следует фиксированному порядку вставки ключей, а не сортировке во время выполнения, поэтому один и тот же пакет всегда сериализуется в идентичные байты. Эта байтовая стабильность позволяет сохранённому exportHash() позже проверить целостность: любое изменение пакета меняет дайджест. Токен RFC 3161 хранится как встроенное доказательство времени, а не как вердикт, поэтому пакет доказывает, когда выполнялась проверка, не утверждая, что документ соответствует требованиям. Отслеживание регрессий затем сравнивает по имени непройденной политики с предыдущим пакетом, поэтому обнаружение дрейфа остаётся независимым от порядка или количества проверок.
Обоснование проектирования: Соответствие, которое можно передать аудитору.
Программный интерфейс
Заголовок раздела «Программный интерфейс»| Класс | Ответственность |
|---|---|
EvidencePortal | Собрать, сохранить и извлечь пакеты доказательств. |
EvidencePackage | Неизменяемый запечатанный набор записей с агрегированной статистикой. |
EvidenceRecord | Результат одной проверки политики с версией валидатора и меткой времени. |
EvidenceExporter | Детерминированная сериализация JSON; стабильный дайджест SHA-256. |
EvidenceStoreInterface | Контракт сохранения. |
InMemoryEvidenceStore | Эталонная реализация хранилища в памяти. |
ContinuousMonitor | Повторная проверка и сравнение с предыдущими доказательствами. |
MonitorResult | Классификация проблем: новые / решённые / неизменные. |
MonitorSchedule / MonitorFrequency | Опрос по расписанию. |
Пример кода — быстрый старт
Заголовок раздела «Пример кода — быстрый старт»$package = $portal->generateEvidence($documentHash, $records);$digest = $exporter->exportHash($package); // 64-char SHA-256Пример кода — продакшн
Заголовок раздела «Пример кода — продакшн»$package = $portal->generateEvidence($documentHash, $records, $tsaToken);$logger->info('evidence.sealed', [ 'package' => $package->packageId, 'digest' => $exporter->exportHash($package), 'pass_rate' => $package->passRate(),]);
$delta = $monitor->check($package, $documentHash);if ($delta->newIssues !== []) { $logger->warning('evidence.regression', ['count' => count($delta->newIssues)]);}// The package is audit-supporting evidence, not an attestation of compliance.Граничные случаи и подводные камни
Заголовок раздела «Граничные случаи и подводные камни»passRate()возвращает 0.0, когда выводов нет; пустой пакет — это не прохождение.- Экспорт детерминирован только через
EvidenceExporter; хеширование произвольных сериализаций нарушает гарантию стабильного дайджеста. - Пакет без токена TSA по-прежнему является действительным доказательством; токен добавляет привязку ко времени, а не вердикт.
Производительность
Заголовок раздела «Производительность»Упаковка и детерминированная сериализация растут линейно с числом записей. Вычисление дайджеста — это один проход SHA-256 по сериализованному JSON.
Примечания по безопасности
Заголовок раздела «Примечания по безопасности»Дайджест пакета обеспечивает защищённость байтов пакета от подделки. Опциональный токен RFC 3161 должен исходить от доверенного TSA; этот модуль встраивает токен, он не ручается за TSA. Считайте детали записей потенциально конфиденциальными (см. ниже).
Резидентность данных и меры по защите PII
Заголовок раздела «Резидентность данных и меры по защите PII»Записи доказательств и хеши документов могут ссылаться на регулируемое содержимое. Упаковка выполняется внутри процесса; сохранение делегируется вашей реализации EvidenceStoreInterface, поэтому резидентность следует за вашим хранилищем. Применяйте средства контроля хранения и минимизации к сохранённым пакетам.
Безопасная телеметрия и очистка журналов
Заголовок раздела «Безопасная телеметрия и очистка журналов»Метаданные пакета (идентификаторы, дайджесты, счётчики) безопасно логировать. Детали записей могут отражать сообщения выводов, содержащие извлечённые строки документа; скрывайте их перед пересылкой в общие приёмники.
Соответствие
Заголовок раздела «Соответствие»| Поведение | Ссылка | Статус |
|---|---|---|
| Токен метки времени привязывает данные ко времени | IETF RFC 3161 §2 | Токен встроен (предоставлен TSA) |
| Контекст DSS / долгосрочной проверки | ISO 32000-2:2020 §12.8 | Упомянуто (потребляется, не производится здесь) |
Эта таблица фиксирует спецификации, под которые создан этот модуль. Токен метки времени — это доказательство времени, а не сертификация или юридическое удостоверение.
Поведение в режиме FIPS
Заголовок раздела «Поведение в режиме FIPS»Этот модуль вычисляет SHA-256 по байтам пакета и встраивает предоставленный вызывающей стороной токен RFC 3161. Он не выполняет подписания и хранения ключей; криптографические операции и поведение в режиме FIPS обрабатываются модулями Security и Signature.
Модель угроз
Заголовок раздела «Модель угроз»Входные данные — это выводы и опциональный токен TSA. Меры защиты: неизменяемые пакеты, детерминированная сериализация со стабильным дайджестом целостности и делегированное сохранение, поэтому хранилище обеспечивает WORM и контроль доступа.
Контракт поведения
Заголовок раздела «Контракт поведения»- Портал собирает выводы в неизменяемый, запечатанный пакет с идентификатором пакета, SHA-256 проверенного документа, записями, агрегированными счётчиками, временем генерации и опциональным токеном метки времени RFC 3161.
- Экспортёр сериализует пакет в детерминированную строку JSON с фиксированным порядком ключей, поэтому дайджест — это стабильный 64-символьный SHA-256, идентичный независимо от того, когда и где он вычислен.
- Непрерывный монитор повторно проверяет и сравнивает текущие доказательства с сохранёнными предыдущими по имени непройденной политики, классифицируя проблемы как новые, решённые или неизменные.
passRate()возвращает 0.0, когда выводов нет — пустой пакет не является прохождением; пакет без токена TSA по-прежнему является действительным доказательством.- Токен метки времени — это доказательство того, что данные существовали до определённого времени; это не юридическое удостоверение, и он не делает заявления о соответствии или действительности содержимого.
Граница публикации
Заголовок раздела «Граница публикации»Эта страница документирует только внешне наблюдаемое поведение и поддерживаемую публичную поверхность API. Внутренние пути пространств имён, вспомогательные классы, таблицы механизмов, имена файлов runbook и префиксы тикетов находятся вне области рассмотрения.
Резервный вариант Core
Заголовок раздела «Резервный вариант Core»Core и Pro производят выводы и отчёты; запечатывание этих выводов в неизменяемый, детерминированный, опционально снабжённый меткой времени пакет с отслеживанием регрессий не имеет эквивалента уровня Core. Поверхность Enterprise зависит от выводов, произведённых в другом месте; она сама не выполняет проверок конформности.
Резервный вариант Pro
Заголовок раздела «Резервный вариант Pro»Резервный вариант Pro — отсутствует; у этой возможности нет эквивалента уровня Pro. Запечатанный пакет доказательств, детерминированный экспортёр и непрерывный монитор поставляются только в пакете nextpdf/enterprise; поверхность потребляет выводы от поверхностей Validation или Compliance.
Примечание о границе Enterprise
Заголовок раздела «Примечание о границе Enterprise»Портал, пакет, экспортёр и монитор описаны на уровне поведения. Эталонное хранилище в памяти задокументировано; долговечное сохранение предоставляется хостом, а любые внутренние детали хранилища находятся вне области публичной поверхности. Этот модуль встраивает предоставленный вызывающей стороной токен TSA; он не ручается за TSA.
Граница развёртывания
Заголовок раздела «Граница развёртывания»Упаковка и сериализация выполняются внутри процесса. Оператор предоставляет долговечную реализацию хранилища, отвечает за обеспечение WORM и контроль доступа и предоставляет токен TSA от доверенного TSA. Записи доказательств и хеши документов могут ссылаться на регулируемое содержимое; резидентность следует за хранилищем оператора, а средства контроля хранения и минимизации — это ответственность оператора.
Граница юридического соответствия
Заголовок раздела «Граница юридического соответствия»Захват доказательств поддерживает рабочие процессы аудита; это не юридическое удостоверение и не аудиторская сертификация, а действительность и конформность остаются свойствами итогового файла плюс валидатора. Эта документация не является юридическим заключением; обращайтесь к собственным консультантам по соответствию и юристам.
См. также
Заголовок раздела «См. также»- Validation — производит упакованные здесь выводы.
- Compliance — результаты внешних валидаторов.
- Журнал аудита AST — история мутаций по принципу «только добавление».
- Спецификации: PAdES — контекст долгосрочной проверки.
- Evidence — подробный справочник — полный справочник API на уровне классов.