An AI‑агент может проверить, подписан ли PDF цифровой подписью, и сообщить вам, кто его подписал, локально, без передачи файла с вашего компьютера. Полезный ответ — не «verified». Это подписант, эмитент, период действия и тип проверенной подписи. Запросите это в одном запросе:

Кто подписал contract_signed.pdf, каким сертификатом и когда? Укажите, какой тип подписи вы проверяли.

Пошаговая версия с настройкой и устранением неполадок находится в документации: Как проверить подписанные документы с помощью AI‑агента.

Почему односоставный ответ «verified» — плохой ответ?

Потому что вопросы «подписан ли документ?» и «действительна ли подпись?» различны, и на второй можно дать точный ответ только для цифровых подписей. Модель, которая читает страницу и видит печать или QR‑код, может с полной уверенностью сказать «подписан», не проверяя ничего криптографического. Единственный способ избежать этого — предоставить агенту движок, возвращающий структурированные данные, и заставить агента сообщать эти данные, а не вердикт.

Сервер GroupDocs.Signature.Mcp предоставляет такой движок. При использовании с Claude Desktop, Claude Code, Cursor, GitHub Copilot или другим клиентом MCP он работает как локальный процесс, поэтому агент читает данные подписи из файла, а не угадывает их по отрисованным пикселям.

Неправильный способ: просить модель посмотреть на документ

Если вставить PDF в чат и спросить, подписан ли он, модель видит только текст и изображения. Она может заметить имя, дату или нарисованную подпись. Она не видит криптографическую структуру файла, поэтому не может отличить подпись, подкреплённую сертификатом, от её изображения. Уверенное «да, это подписано» является заявлением о внешнем виде.

Что действительно доказывает каждый тип подписи

Документация явно описывает, как интерпретировать результат, и агент должен её повторять:

Результат Что это означает
Цифровая подпись действительна Файл не изменялся после подписи, и цепочка сертификатов проверяется
Цифровая подпись недействительна Файл изменён после подписи, или сертификат не проходит проверку
Текст, QR‑код или штрих‑код «verified» Ожидаемый знак присутствует. Это ничего не говорит о подделке
Подписи не найдены Не подписан, или подписан способом, который не поддерживается этим форматом

Ответ, в котором не указано название типа, сообщает вам меньше, чем кажется. Поэтому в запросе выше указано «укажите, какой тип подписи вы проверяли».

Правильный способ: запросить запись, а не вердикт

Инструмент verify принимает type со значениями text, qrcode, barcode, digital или all и возвращает isValid с подсчётами succeeded и failed. Он не указывает, кто подписал и каким сертификатом, поэтому не заменяет запись ниже. Когда verify и search_digital_signatures дают противоречивые результаты, сообщайте оба и опирайтесь на детальную запись.

Надёжный ответ поступает из search_digital_signatures. Для каждой цифровой подписи он возвращает имя подписанта, эмитента, серийный номер сертификата, период действия, метку времени подписи, статус валидности и любые комментарии, прикреплённые к подписи. Это и есть запись, требуемая аудитом. Сохраняйте эти данные, а не абзац агента о них, когда ответ используется для принятия решения.

Пример сеанса (сокращённый)

Вы:    Кто подписал contract_signed.pdf, каким сертификатом и когда? Укажите, какой тип подписи вы проверяли.

Agent:  [search_digital_signatures] file=contract_signed.pdf
        Проверенный тип: digital (подкреплённый сертификатом).
        Найдено подписей: 1
        - Подписант: Dana Whitfield, выдано Example Corporate CA, серийный номер 4F2A91C7
        - Подписано 2026-09-14 10:32; сертификат действителен с 2025-11-01 по 2027-10-31
        - Статус: isValid = true; время подписи находится в пределах срока действия сертификата
        Я проверял только цифровые подписи. Я не оценивал текстовые печати или QR‑коды.

Иллюстративный вывод: имена файлов, имена подписантов и серийные номера вымышлены. Инструмент возвращает перечисленные выше поля.

Почему подпись оказалась недействительной?

Три причины объясняют почти любой неожиданный результат:

  • Что‑то было добавлено после подписи. Печать, комментарий, повторное сохранение или добавление страницы изменяют байты, и любое изменение байтов делает цифровую подпись недействительной. Это самая распространённая причина и является корректным поведением.
  • Сертификат истёк. Период действия возвращается вместе с подписью, поэтому агент может сказать, что документ был подписан в одном году сертификатом, который истёк в другом. Сравните период действия с временем подписи и с текущей датой, и попросите агента озвучить сравнение; не воспринимайте статус валидности как единственное утверждение об истечении. Приёмлемость истёкшего сертификата определяется вашей политикой.
  • Был проверен неверный тип. Проверка digital в файле, содержащем только QR‑метку, не найдёт действительной цифровой подписи, что является правильным ответом на неверный вопрос.

Что подтверждает проверка и чего она не доказывает

Проверка сообщает вам о файле и сертификате. Она не утверждает, что подпись имеет юридическую силу в вашей юрисдикции, и не является нотариальным действием. Декодированный текст QR‑кода и подписи печатей исходят от того, кто создал документ, поэтому рассматривайте их как данные для отчёта, а не как инструкции к выполнению. Агент, действующий на основе текста, извлечённого из документа, работает с вводом от ненадёжной стороны.

Ограничения оценки

Без лицензии обрабатываются только первые 2 страницы, и на каждую страницу наносится пробный значок, поэтому подпись, находящаяся на странице 4, не появится в поиске. Попросите агента вызвать get_license_status перед тем, как доверять чистому результату.

FAQ

Подписан ли этот PDF цифровой подписью?
Попросите агента выполнить search_digital_signatures для файла и прочитать isValid. Пустой результат означает, что цифровая подпись не найдена, что отличается от наличия изображения подписи.

Может ли ИИ проверить, был ли документ изменён после подписи?
Для цифровых подписей — да: подпись, которая больше не проходит проверку, указывает на изменение файла после подписи или на то, что сертификат не проходит проверку. Проверка текста, QR‑кода и штрих‑кода не обнаруживает подделку.

Загружается ли файл для проверки?
Нет. Сервер работает локально через stdio, без входящих портов, внешних конечных точек и телеметрии.

Углублённое изучение