Enterprise редакция
Политика Certificate Transparency для сертификатов подписания
NextPDF Enterprise позволяет рабочему процессу подписания учесть позицию Certificate Transparency (CT) сертификата подписания до подписания. CT — это экосистема публичных журналов, в которой сертификаты регистрируются так, чтобы ошибочная выдача была обнаруживаемой; сертификат, занесённый в CT, несёт одну или несколько Signed Certificate Timestamp (SCT). NextPDF Enterprise представляет позицию CT сертификата как значение-результат — присутствует ли расширение SCT, сколько SCT присутствует и действительно и какие журналы их выдали — и предлагает проверку порога по минимуму SCT. Эта страница описывает поведение: она указывает, что несёт результат, как работает проверка порога и что NextPDF решает, а что нет.
NextPDF Enterprise представляет и проверяет по порогу результат CT; он не является журналом CT, аудитором журналов или монитором. Граница описана в разделе Безопасность и соответствие.
Предварительные требования указаны во фронтматтере и повторены в разделе Предварительные требования.
Доступность и лицензирование
Заголовок раздела «Доступность и лицензирование»Эта возможность поставляется в NextPDF Enterprise (nextpdf/enterprise) и активируется лицензионным конвертом уровня Enterprise. Развёртывание без этого права не загружает классы этой возможности. Сравнить редакции и получить лицензию.
Что делает эта возможность
Заголовок раздела «Что делает эта возможность»Сертификат, занесённый в CT, несёт SCT. SCT несёт версию, идентификатор журнала, метку времени и подпись журнала над записью сертификата, согласно RFC 6962 §3.1. Журнал возвращает SCT как своё обещание включить сертификат в свой журнал по принципу «только добавление», а полагающиеся стороны отклоняют сертификат, у которого нет действительной SCT, согласно RFC 6962 §3. Certificate Transparency версии 2.0 сохраняет ту же модель: журнал возвращает SCT при отправке, которую отправитель проверяет, прежде чем полагаться на неё, согласно RFC 9162 §3.
NextPDF Enterprise представляет позицию CT сертификата как значение-результат, несущее:
- содержит ли сертификат расширение SCT;
- общее число найденных SCT;
- число SCT, подписи которых действительны;
- идентификаторы журналов — хеши SHA-256 — журналов, выдавших SCT.
Результат предоставляет проверку порога по минимуму SCT: он сообщает, достигает ли число действительных SCT требуемого минимума или превышает его. Минимум вы задаёте под свою политику. Распространённая политика ожидает не менее двух SCT из разных журналов для сертификатов с более коротким сроком жизни и больше — для более долгоживущих; значение порога выбираете вы.
Используйте проверку порога как барьер в рабочем процессе подписания: требуйте сертификат, занесённый в CT (достаточное число действительных SCT), прежде чем подписывать, и отказывайте в противном случае.
Почему это устроено так
Заголовок раздела «Почему это устроено так»Certificate Transparency отвечает на узкий вопрос: занесён ли этот сертификат в публичные журналы и сколькими независимыми журналами. NextPDF Enterprise моделирует этот ответ как простое значение-результат, а не как вердикт. Результат сообщает флаг расширения SCT, счётчики SCT и идентификаторы выдавших журналов — и на этом останавливается. Он не решает, достаточно ли хороша эта позиция, потому что порог доверия — это политика полагающейся стороны, зависящая от срока жизни сертификата и риска. Поэтому число минимума SCT задаёте вы, а NextPDF остаётся вне ролей оператора журнала, аудитора и монитора. Certificate Transparency — одна из нескольких проверок в обоснованном решении о подписании, и эта страница делает её явным барьером до конструирования подписанта.
Проектный контекст: Правильная проверка подписи.
Предварительные требования
Заголовок раздела «Предварительные требования»- Установите NextPDF Core и пакет Enterprise и держите активную лицензию Enterprise.
- Имейте сертификат подписания, позицию CT которого вы хотите обеспечить, вместе с данными SCT, которые ваша среда из него извлекает.
- Определите порог по минимуму SCT, который требует ваша политика.
Конфигурация
Заголовок раздела «Конфигурация»- Порог по минимуму SCT — число действительных SCT, которые сертификат должен нести, чтобы пройти вашу политику. Передайте его в проверку порога.
- Размещение политики — решите, где в вашем рабочем процессе подписания выполняется барьер: до конструирования подписанта, чтобы недостаточно занесённый в журналы сертификат никогда не достигал операции подписания.
Пошагово
Заголовок раздела «Пошагово»- Получите результат CT для вашего сертификата подписания, несущий флаг расширения SCT, общее и действительное число SCT и идентификаторы журналов.
- Определите порог по минимуму SCT для вашей политики.
- Запустите проверку порога; трактуйте прохождение как «политика CT удовлетворена», а сбой — как «отказать в подписании этим сертификатом».
- Поставьте рабочий процесс подписания на барьер по результату до конструирования подписанта.
<?php
declare(strict_types=1);
require_once __DIR__ . '/../../vendor/autoload.php';
use NextPDF\Enterprise\Security\CertificateTransparency\CtValidationResult;use Psr\Log\LoggerInterface;
final readonly class CtSigningPolicy{ /** * @param int<1, max> $minimumScts The minimum count of valid SCTs your policy requires. */ public function __construct( private int $minimumScts, private LoggerInterface $logger, ) {}
/** * Decide whether a certificate's CT posture satisfies the policy. * * The gate runs before the signer is constructed, so an under-logged * certificate never reaches a signing operation. A missing SCT extension * is treated as a policy failure, not an exception. * * @param CtValidationResult $result The CT posture of the signing certificate. * * @return bool True when the certificate meets the minimum-SCT threshold. */ public function isAcceptable(CtValidationResult $result): bool { if (! $result->hasSctsExtension) { $this->logger->warning('Signing certificate carries no SCT extension; CT policy not met.');
return false; }
$acceptable = $result->meetsPolicy($this->minimumScts);
if (! $acceptable) { $this->logger->warning('Signing certificate has too few valid SCTs for the CT policy.', [ 'validScts' => $result->validScts, 'minimumScts' => $this->minimumScts, ]); }
return $acceptable; }}Проверка
Заголовок раздела «Проверка»- Постройте результат с присутствующим расширением SCT и числом действительных SCT на уровне вашего порога и убедитесь, что проверка порога проходит.
- Постройте результат на единицу ниже вашего порога и убедитесь, что проверка не проходит.
- Постройте результат с отсутствующим расширением SCT и убедитесь, что барьер отказывает независимо от числа.
- Убедитесь, что ваш рабочий процесс подписания не конструирует подписанта, когда барьер отказывает.
Безопасность и соответствие
Заголовок раздела «Безопасность и соответствие»- NextPDF представляет и проверяет по порогу; он не эксплуатирует журналы. NextPDF Enterprise отражает позицию CT и проверку по минимуму SCT. Он не является журналом CT, аудитором или монитором и не отправляет сертификаты в журналы.
- Порог — это ваша политика. Значение минимума SCT задаёте вы; NextPDF не навязывает число. Отсутствующее расширение SCT — это явный сбой политики.
- Барьер до подписания. Запускайте проверку до конструирования подписанта, чтобы недостаточно занесённый в журналы сертификат никогда не достигал операции подписания.
- Семантика SCT следует стандартам. SCT — это обещание журнала, которое полагающиеся стороны ожидают присутствующим и действительным (RFC 6962 §3; §3.1 структура; CT v2 RFC 9162 §3).
Эта страница касается доверия к сертификатам. Каждый нормативный источник приведён в пересказе; нормативный текст не воспроизводится.
Обработка сбоев
Заголовок раздела «Обработка сбоев»- Нет расширения SCT. Трактуйте результат без расширения SCT как сбой политики; откажите в подписании.
- Слишком мало действительных SCT. Число действительных SCT ниже вашего порога не проходит проверку; откажите в подписании.
- Размещение политики. Запускайте барьер до конструирования подписанта; поздняя проверка, выполненная после подписания, не защищает созданный документ.
Граница публикации
Заголовок раздела «Граница публикации»Эта страница документирует только внешне наблюдаемое поведение и поддерживаемую публичную поверхность API. Внутренние пути пространств имён, вспомогательные классы, таблицы механизмов, имена файлов runbook и префиксы тикетов — вне области рассмотрения.
См. также
Заголовок раздела «См. также»- Security — NextPDF Enterprise — объединённая поверхность безопасности Enterprise.
- Signature — NextPDF Enterprise — долгосрочный производитель PAdES B-LT и B-LTA.
- HSM signing — NextPDF Enterprise — аппаратное хранение ключей PKCS#11.
- Security / Signing (Core) — подписант CMS Core и контракт стратегии подписания.
- Certificate Transparency · SCT — термины глоссария.