Проверьте подписанный PDF, никуда его не отправляя
Цифровая подпись в PDF хорошо отвечает на один узкий вопрос: изменились ли покрытые ею байты с момента создания подписи? Инспектор подписей PDF отвечает на него и ещё на три — прямо в браузере.
Целостность
/ByteRange в словаре подписи указывает, какие части файла подпись покрывает, — всё, кроме самого шестнадцатеричного блока /Contents. Инструмент склеивает эти диапазоны, хэширует их через Web Crypto API алгоритмом, указанным в PKCS#7 SignedData, и сравнивает результат с атрибутом messageDigest, запечатанным внутри. Это настоящая криптографическая проверка, а не чтение флага состояния, записанного тем, кто сделал файл.
Покрытие — другой вопрос
Файл может пройти проверку целостности и всё же быть изменённым после подписания. PDF допускает инкрементальные обновления: байты, дописанные после подписанного диапазона, для подписи невидимы. Поэтому инструмент отдельно сообщает, доходит ли /ByteRange до конца файла, сколько байтов появилось после и какую ревизию файла эта подпись действительно покрывает. Смешение этих двух вопросов — самый частый способ неправильно прочитать подписанный PDF.
Сертификат
Субъект, издатель, серийный номер, срок действия, алгоритм и длина открытого ключа, алгоритм подписи сертификата, отпечаток SHA-256, а также признаки: самоподписанный ли он, просрочен ли сейчас и действовал ли в момент подписания — именно эта дата важна для подписи, сделанной годы назад. Перечисляется вся встроенная в блок цепочка, и любой сертификат можно выгрузить как .cer (DER) или .pem.
Чего он сказать не может
Доверия. Во вкладке браузера нет хранилища доверия, поэтому ничто здесь не утверждает, что издатель — признанный удостоверяющий центр. Отзыв не проверяется — ни CRL, ни OCSP, — так что сертификат, отозванный на следующий день после подписания, выглядит совершенно нормально. Встроенный штамп времени RFC 3161 показывается, но не проверяется. Эти ограничения выводятся рядом с результатами, а не только здесь.
Сертифицирующие подписи
Если подпись несёт преобразование DocMDP, расшифровывается уровень разрешений: изменения запрещены, разрешено заполнение форм, либо заполнение плюс аннотации. Именно он определяет, законно ли последующая правка ломает сертификацию.
Приватность
Подписанные документы обычно являются договорами. Файл разбирается и хэшируется в вашем браузере; ничего никуда не отправляется.
Tiny Online Tools







