Метки времени и доверенное время
Spec: RFC 3161 RFC 3161 Spec: RFC 5816 RFC 5816 Spec: ISO 32000-2, §12.8.5 ISO 32000-2 §12.8.5 Evidence: Standard-backed
Метка времени не фиксирует “когда это было подписано”. Она доказывает более узкий, но более сильный факт: определённый фрагмент данных существовал до определённого момента, и это засвидетельствовала сторона, которая не является подписавшим. Именно в этом различии вся ценность доверенного времени, и его часто понимают неправильно.
Почему это важно
Заголовок раздела «Почему это важно»Время подписания внутри подписи — это значение, заявленное компьютером подписавшего. Часы могут идти неверно случайно или намеренно. Если единственное свидетельство того, когда это произошло, — утверждение самого подписавшего, подписавший может произвольно поставить документу более раннюю или более позднюю дату. Сертификат, отозванный вчера, можно представить так, будто им подписали в прошлом году. “Когда” — это не деталь. От него зависит, действительна ли ещё подпись, сделанная сертификатом, который уже истёк или уже отозван. А если доверенное время неверно, рушится любое обоснование долгосрочной действительности, построенное на нём.
Если коротко
Заголовок раздела «Если коротко»- Собственное время подписания у подписавшего — это утверждение, а не доказательство. Его легко подделать.
- Метка времени RFC 3161 — это подписанный токен от службы меток времени (TSA), связывающий хеш ваших данных со временем TSA.
- Она доказывает ровно одно: данные существовали до указанного TSA времени. Не точный момент создания, а верхнюю границу.
- Токен возвращает ваш nonce и ваш отпечаток сообщения, поэтому он не может быть повтором и не может относиться к другим данным.
- Метка времени документа применяет тот же механизм ко всему PDF и закрепляет всё, что находится под ней, — подпись и встроенные свидетельства проверки — за доверенным моментом времени.
Как к этому подходит NextPDF
Заголовок раздела «Как к этому подходит NextPDF»NextPDF рассматривает метку времени как объект, который нужно проверить, а не просто получить. Запрос токена — меньшая часть работы. Позиция движка проста: непроверенный токен не является доказательством.
Когда движок проставляет метку времени на подпись, он отправляет в TSA хеш данных и свежий случайный nonce, но никогда сами данные. Затем возвращённый токен проверяется по всему набору свойств, которые делают его значимым: статус службы был “granted”, nonce в токене совпадает с отправленным, отпечаток сообщения в токене совпадает с отправленным хешом, собственная криптографическая подпись токена проходит проверку, тип содержимого токена соответствует типу метки времени, а указанное время попадает в допустимый диапазон погрешности. Любое расхождение — безусловный отказ с типизированной причиной. Пути “выглядит достаточно близко” не существует. Метка времени документа подчиняется тому же правилу, только применяется оно ко всему файлу, а не к значению одной подписи.
- Hash the data Only a digest of the signature value (or the whole PDF, for a document timestamp) is computed — never the data itself.
- Send hash + nonce The digest and a fresh random nonce go to the Time-Stamp Authority.
- TSA returns a token A signed token binds the digest to the TSA’s genTime and echoes the nonce.
- Verify the token Status granted, nonce matches, message imprint matches, token signature verifies, time within tolerance.
- Conclude an upper bound The data provably existed before the TSA’s stated time — attested by a party that is not the signer.
Что говорят свидетельства
Заголовок раздела «Что говорят свидетельства» Evidence: Standard-backed Определение здесь точное.
Spec: ISO/IEC 18014-2, §3 ISO/IEC 18014-2 §3 определяет службу меток времени
как такую, которая предоставляет свидетельство того, что элемент данных существовал до определённого момента
времени — верхнюю границу, а не момент создания.
Spec: ISO/IEC 18014-2, §7 ISO/IEC 18014-2 §7 определяет содержимое токена
TSTInfo: отпечаток сообщения (хеш ваших данных), время
создания, серийный номер и необязательный nonce.
Spec: ISO/IEC 18014-2, §6 ISO/IEC 18014-2 §6 формулирует вывод, который
проверяющий вправе сделать при успешной проверке: элемент данных существовал до времени в
токене — не больше и не меньше.
Для PDF Spec: ISO 32000-2, §12.8.5 ISO 32000-2 §12.8.5 задаёт метку времени документа: диапазон байтов охватывает весь файл, исключая
значение Contents, этот хеш отправляется службе меток времени, а возвращённый
токен RFC 3161 — с обновлениями из Spec: RFC 5816 RFC 5816 — помещается в
Contents. Та же дисциплина диапазона байтов, что и у подписи, применённая ко времени
вместо личности. А Spec: RFC 6960, §4.4.4 RFC 6960 §4.4.4 объясняет, почему
это важно для долговечности: именно доверенное время позволяет валидатору подтвердить, что
подпись была надёжной в день её создания, даже после того как срок действия сертификата
истёк.
Движок NextPDF отправляет хеш и nonce, но никогда сами данные. Прежде чем рассматривать возвращённый токен как доказательство, он проверяет его статус, nonce, отпечаток сообщения, подпись токена, тип содержимого и допуск по времени.
Практический пример
Заголовок раздела «Практический пример»Токен метки времени не собирают вручную. Важна граница доверия. TSA — это то, что вы настраиваете и защищаете, потому что её время становится вашим доказательством.
<?php
declare(strict_types=1);
use NextPDF\Security\Signature\SignatureLevel;
// Asking for any level at or above B-T requires a TSA.$level = SignatureLevel::PAdES_B_T;$level->requiresTimestamp(); // true → a Time-Stamp Authority must be supplied
// The TSA endpoint, its transport security, and its trust anchor are// deployment-supplied. The engine sends a hash plus a fresh nonce — never the// document — and verifies the returned token before the signature is accepted.// A token that fails any check (status, nonce, imprint, signature, time)// is a hard error, not a warning.Важная граница в том, что движок отправляет хеш, а не документ, поэтому TSA никогда не видит ваше содержимое. И движок проверяет ответ. TSA, которую вы не можете аутентифицировать, — это не доверенное время. Это всего лишь ещё одни часы.
Распространённое заблуждение
Заголовок раздела «Распространённое заблуждение»Ловушка в том, чтобы читать метку времени как “это было подписано ровно в 14:32 в этот день”. Это не секундомер на событии подписания. Она доказывает, что данные существовали не позднее времени TSA, то есть верхнюю границу, установленную третьей стороной. Создание могло произойти в любой момент до этого. Вторая ловушка — считать, что любой сервер меток времени даёт доверенное время. Токен, подпись которого вы не можете проверить или службе которого вы не доверяете, ничего не доказывает. Это часы, которым у вас нет причин верить. Доверенное время даёт TSA, которую вы можете аутентифицировать, и токен, который вы проверили, а не сам факт запроса числа у сервера.
Пределы и границы
Заголовок раздела «Пределы и границы»NextPDF формирует запрос, отправляет только хеш и проверяет возвращённый токен. Он не ручается за службу, которая стоит за этим токеном. Точность TSA, действительность её собственного сертификата и её надёжность — свойства самой службы и конфигурации вашего развёртывания, а не движка. Метка времени связывает хеш со временем. Она ничего не говорит о смысле данных, личности подписавшего или о том, был ли действителен сертификат подписавшего. Это отдельные проверки, описанные в разделе Правильная проверка подписи. Движок не может сделать ненадёжную TSA надёжной. Эта страница также не утверждает какой-либо конкретной юридической силы метки времени; это зависит от статуса TSA и юрисдикции. Как доверенное время повторно используется, чтобы подпись оставалась проверяемой на протяжении десятилетий, описано в разделе Долгосрочная проверка.
Доступность простановки меток времени по тарифам:
| Edition | Availability |
|---|---|
| Core | Not in this edition |
| Pro | PAdES B-T — проверенная метка времени RFC 3161 на значении подписи, относительно TSA, предоставляемой развёртыванием. |
| Enterprise | Добавляет метку времени документа, используемую B-LT и B-LTA, чтобы закрепить встроенные свидетельства проверки и запустить цикл архивного обновления. |
Связанная документация
Заголовок раздела «Связанная документация»- Долгосрочная проверка — как метка времени документа запечатывает встроенные свидетельства и обновляется со временем.
- Базовые профили PAdES — где метка времени подписи (B-T) и метка времени документа (B-LTA) располагаются в прогрессии уровней.
- Квалифицированные подписи: разъяснение — где квалифицированная метка времени вписывается в картину доверия eIDAS.
Глоссарий
Заголовок раздела «Глоссарий»- Метка времени (RFC 3161) — подписанный токен от TSA, связывающий хеш данных со временем TSA и доказывающий, что данные существовали до этого времени.
- Служба меток времени (TSA) — доверенная служба, которая выпускает токены меток времени.
TSTInfo— структура содержимого токена: отпечаток сообщения, время создания, серийный номер и необязательный nonce.- Отпечаток сообщения — хеш данных, для которых проставляется метка времени, возвращаемый в токене.
- Nonce — свежее случайное значение, которое отправляется вместе с запросом и возвращается в токене, поэтому ответ не может быть повтором.
- Метка времени документа — метка времени RFC 3161 для всего PDF (с обновлениями из RFC 5816), закрепляющая подпись и её свидетельства за доверенным моментом времени.