An AI agent może sprawdzić, czy plik PDF jest cyfrowo podpisany i powiedzieć, kto go podpisał, lokalnie, bez opuszczania pliku z Twojego komputera. Przydatna odpowiedź to nie „zweryfikowano”. To jest podpisujący, wystawca, okres ważności oraz typ sprawdzonego podpisu. Poproś o to w jednym poleceniu:

Kto podpisał contract_signed.pdf, jakim certyfikatem i kiedy? Powiedz, jaki typ podpisu został sprawdzony.

Wersja krok po kroku z konfiguracją i rozwiązywaniem problemów znajduje się w dokumentacji: Jak zweryfikować podpisane dokumenty przy użyciu agenta AI.

Dlaczego jednowyrazowa odpowiedź „zweryfikowano” jest złą odpowiedzią?

Ponieważ pytania „czy to jest podpisane?” i „czy ten podpis jest ważny?” są różne, a drugie ma precyzyjną odpowiedź tylko w przypadku podpisów cyfrowych. Model, który czyta stronę i widzi pieczęć lub kod QR, może z pełną pewnością powiedzieć „podpisane”, nie sprawdzając nic kryptograficznego. Jedynym sposobem, aby tego uniknąć, jest zapewnienie agentowi silnika zwracającego dane strukturalne i zmuszenie agenta do raportowania tych danych zamiast werdyktu.

Serwer GroupDocs.Signature.Mcp zapewnia ten silnik. Używany z Claude Desktop, Claude Code, Cursor, GitHub Copilot lub innym klientem MCP, działa jako lokalny proces, więc agent odczytuje dane podpisu z pliku zamiast zgadywać na podstawie renderowanych pikseli.

Nieprawidłowe podejście: poprosić model o spojrzenie na dokument

Jeśli wkleisz PDF do czatu i zapytasz, czy jest podpisany, model widzi tekst i obrazy. Może zauważyć imię, datę lub narysowany podpis. Nie może zobaczyć kryptograficznej struktury pliku, więc nie odróżni podpisu opartego na certyfikacie od jego obrazu. Pewne „tak, to jest podpisane” jest stwierdzeniem dotyczącym wyglądu.

Co faktycznie dowodzi każdy typ podpisu

Dokumentacja jasno określa, jak odczytać wynik, a agent powinien go powtórzyć:

Wynik Co oznacza
Cyfrowy podpis ważny Plik nie zmienił się od momentu podpisania, a łańcuch certyfikatów jest prawidłowy
Cyfrowy podpis nieważny Plik został zmieniony po podpisaniu lub certyfikat nie jest ważny
Tekst, QR lub kod kreskowy „zweryfikowano” Oczekiwany znak jest obecny. Nie mówi nic o manipulacji
Nie znaleziono podpisów Niepodpisany, lub podpisany w sposób, którego ten format nie obsługuje

Odpowiedź, która nie podaje typu, mówi mniej niż się wydaje. Dlatego powyższe polecenie kończy się frazą „powiedz, jaki typ podpisu został sprawdzony”.

Prawidłowe podejście: poproś o zapis, nie o werdykt

Narzedzie verify przyjmuje type jako text, qrcode, barcode, digital lub all i zwraca isValid wraz z licznikami succeeded i failed. Nie podaje, kto podpisał ani jakim certyfikatem, więc nie zastępuje poniższego zapisu. Gdy verify i search_digital_signatures nie zgadzają się, zgłoś oba wyniki i opieraj się na szczegółowym zapisie.

Odpowiedź, która się sprawdza, pochodzi z search_digital_signatures. Dla każdego cyfrowego podpisu zwraca nazwę podpisującego, wystawcę, numer seryjny certyfikatu, okres ważności, znacznik czasu podpisu, status ważności oraz ewentualne komentarze dołączone do podpisu. To jest zapis, którego wymaga audyt. Zachowaj te dane, a nie akapit agenta o nich, gdy odpowiedź wpływa na decyzję.

Przykładowa sesja (skrócona)

You:    Who signed contract_signed.pdf, with which certificate, and when?
        Say which type of signature you checked.

Agent:  [search_digital_signatures] file=contract_signed.pdf
        Type checked: digital (certificate-backed).
        Signatures found: 1
        - Signer: Dana Whitfield, issued by Example Corporate CA, serial 4F2A91C7
        - Signed 2026-09-14 10:32; certificate valid 2025-11-01 to 2027-10-31
        - Status: isValid = true; signing time falls inside the certificate validity period
        I checked digital signatures only. I did not evaluate any text stamps or QR codes.

Ilustrowany wynik: nazwy plików, nazwiska podpisujących i numery seryjne są wymyślone. Narzędzie zwraca pola opisane powyżej.

Dlaczego podpis okazał się nieważny?

Trzy przyczyny wyjaśniają prawie każdy nieoczekiwany wynik:

  • Coś zostało dodane po podpisaniu. Pieczęć, komentarz, ponowne zapisanie lub dołączona strona zmieniają bajty, a każda zmiana bajtu unieważnia cyfrowy podpis. To najczęstsza przyczyna i jest to prawidłowe zachowanie.
  • Certyfikat wygasł. Okno ważności jest zwracane wraz z podpisem, więc agent może stwierdzić, że dokument został podpisany w jednym roku certyfikatem, który wygasł w innym. Porównaj okres ważności z czasem podpisu i z dzisiejszą datą, i niech agent poda to porównanie; nie odczytuj samego statusu ważności jako stwierdzenia o wygaśnięciu. Czy wygasły certyfikat jest akceptowalny, zależy od Twojej polityki.
  • Sprawdzono niewłaściwy typ. Weryfikacja digital w pliku, który zawiera jedynie znak QR, nie znajduje ważnego cyfrowego podpisu, co jest prawdziwą odpowiedzią na niewłaściwe pytanie.

Co weryfikacja nie dowodzi

Weryfikacja informuje o pliku i certyfikacie. Nie mówi, że podpis jest prawnie ważny w Twojej jurysdykcji i nie jest aktem notarialnym. Zdekodowany tekst QR i etykiety pieczęci pochodzą od osoby, która stworzyła dokument, więc traktuj je jako dane do raportowania, nigdy jako instrukcje do wykonania. Agent działający na podstawie tekstu odczytanego z dokumentu działa na danych pochodzących od niezweryfikowanej strony.

Ograniczenia oceny

Bez licencji przetwarzane są tylko pierwsze 2 strony, a na każdej stronie umieszczany jest znak próbny, więc podpis znajdujący się na stronie 4 nie pojawi się w wynikach wyszukiwania. Poproś agenta o wywołanie get_license_status przed zaufaniem czystemu wynikowi.

FAQ

Czy ten PDF jest cyfrowo podpisany?
Poproś agenta o uruchomienie search_digital_signatures na pliku i odczytanie isValid. Pusty wynik oznacza, że nie znaleziono cyfrowego podpisu, co różni się od „posiada obraz podpisu”.

Czy AI może sprawdzić, czy dokument został zmodyfikowany po podpisaniu?
Dla podpisów cyfrowych, tak: podpis, który już nie jest ważny, wskazuje, że plik został zmieniony po podpisaniu lub certyfikat nie jest ważny. Kontrole tekstu, QR i kodów kreskowych nie wykrywają manipulacji.

Czy plik jest przesyłany w celu sprawdzenia?
Nie. Serwer działa lokalnie przez stdio, bez otwartych portów, zewnętrznych punktów końcowych i bez telemetrii.

Zagłęb się