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, без входящих портов, внешних конечных точек и телеметрии.
Углублённое изучение
- Документация, каноническое руководство: Как проверить подписанные документы с помощью AI‑агента
- Центр документации: GroupDocs.Signature MCP Server
- Начните здесь: 3 способа подписать документы с помощью AI‑агентов и MCP: текст, QR‑код, сертификат
- Связанные материалы: Применение политики подписи с помощью автоматических AI‑сканирований через MCP
- Связанные материалы: От штрих‑кода к записи: автоматизация приёма документов с AI‑агентами
- Развёртывание в локальной сети и модель безопасности: 3 архитектуры обработки AI‑документов и та, которая сохраняет файлы внутри вашей сети
- Вопросы: Форум GroupDocs Signature
- Исходный код: GroupDocs.Signature.Mcp на GitHub