Files
bentopdf/docs/pl/tools/validate-signature-pdf.md
T

100 lines
6.1 KiB
Markdown

---
title: Zweryfikuj podpis
description: Weryfikuj podpisy cyfrowe w plikach PDF. Sprawdź ważność certyfikatu, tożsamość podpisującego, integralność dokumentu i status łańcucha zaufania.
---
# Zweryfikuj podpis
Prześlij podpisany plik PDF, a narzędzie wyodrębni każdy podpis cyfrowy, zidentyfikuje podpisującego, sprawdzi ważność certyfikatu i poinformuje, czy dokument został zmodyfikowany po podpisaniu. Możesz też podać zaufany certyfikat, aby zweryfikować łańcuch podpisu.
## Jak to działa
1. Prześlij podpisany plik PDF. Weryfikacja rozpocznie się automatycznie.
2. Narzędzie wyświetli podsumowanie: liczbę znalezionych podpisów i ile z nich jest ważnych.
3. Każdy podpis ma osobną kartę ze szczegółami: podpisujący, wystawca, daty i status.
4. Opcjonalnie prześlij **zaufany certyfikat** (.pem, .crt, .cer, .der), aby zweryfikować podpis względem konkretnego punktu zaufania. Ponowna weryfikacja uruchomi się automatycznie.
## Co jest sprawdzane
### Analiza podpisu
Narzędzie wyodrębnia z pliku PDF obiekty podpisu PKCS#7, dekoduje strukturę ASN.1 i pobiera certyfikat X.509 podpisującego wraz z ewentualnym łańcuchem certyfikatów osadzonym w podpisie.
### Ważność certyfikatu
- **Wygaśnięcie**: czy certyfikat mieści się obecnie w okresie ważności?
- **Wykrywanie samopodpisanych**: czy certyfikat jest własnym wystawcą?
- **Łańcuch zaufania**: gdy podano zaufany certyfikat, czy certyfikat podpisującego prowadzi do niego łańcuchem?
### Weryfikacja kryptograficzna
- Narzędzie odtwarza bajty objęte `/ByteRange` podpisu, haszuje je algorytmem zadeklarowanym przez podpisującego i porównuje wynik z atrybutem `messageDigest` wewnątrz podpisu.
- Następnie ponownie serializuje podpisane atrybuty jako DER SET i weryfikuje podpis kluczem publicznym certyfikatu podpisującego.
- **Podpis jest uznawany za ważny tylko wtedy, gdy wszystkie te kroki zakończą się powodzeniem.** Jeśli bajty pliku PDF zmieniono po podpisaniu lub osadzony podpis nie pasuje do klucza podpisującego, status pokaże "Nieprawidłowy: weryfikacja kryptograficzna nie powiodła się" wraz z konkretnym powodem.
#### Obsługiwane algorytmy podpisu
| Algorytm | Ścieżka weryfikacji |
| ----------------------- | -------------------------------------------------------------------------------- |
| RSA (PKCS#1 v1.5) | node-forge `publicKey.verify`, z awaryjnym użyciem Web Crypto |
| RSA-PSS (RSASSA-PSS) | Web Crypto `verify({name: 'RSA-PSS', saltLength})` |
| ECDSA P-256/P-384/P-521 | Web Crypto `verify({name: 'ECDSA', hash})` po konwersji podpisu DER → IEEE P1363 |
Jeśli podpis używa algorytmu spoza tej listy (na przykład Ed25519, SM2 lub RSA z nietypowym OID skrótu), karta pokazuje na żółto **"Niezweryfikowany: nieobsługiwany algorytm podpisu"** wraz z konkretnym OID lub powodem. To celowe rozróżnienie trzech stanów:
- **Prawidłowy**: podpis został kryptograficznie zweryfikowany kluczem publicznym podpisującego.
- **Nieprawidłowy**: weryfikacja się odbyła i dała wynik negatywny (zmienione bajty, niezgodność klucza).
- **Niezweryfikowany**: narzędzie nie mogło przeprowadzić weryfikacji dla tego algorytmu. Metadane certyfikatu są nadal wyświetlane, ale podpis należy traktować jako "nieznany" i zweryfikować go w Adobe Acrobat lub za pomocą `openssl cms -verify`.
### Niebezpieczne algorytmy skrótu
- Podpisy używające **MD5 lub SHA-1** są odrzucane jako nieważne i oznaczane statusem "Niebezpieczny skrót". Oba algorytmy mają opublikowane ataki kolizyjne, więc podpis złożony na skrócie SHA-1 lub MD5 nie gwarantuje integralności.
- SHA-224, SHA-256, SHA-384 i SHA-512 są akceptowane.
### Zakres pokrycia dokumentu
- **Pełne pokrycie**: podpis obejmuje cały plik PDF, czyli po podpisaniu nie dodano ani nie zmieniono żadnych bajtów.
- **Częściowe pokrycie**: podpis obejmuje tylko część pliku. Może to oznaczać modyfikacje po podpisaniu (niekoniecznie złośliwe, bo zapisy przyrostowe dają częściowe pokrycie).
## Szczegóły podpisu
Każda karta podpisu pokazuje:
- **Podpisał**: nazwę zwykłą, organizację i adres e-mail z certyfikatu podpisującego
- **Wystawca**: urząd certyfikacji, który wystawił certyfikat podpisującego
- **Data podpisu**: znacznik czasu osadzony w podpisie
- **Ważny od / Ważny do**: okres ważności certyfikatu
- **Powód**: powód podpisania dokumentu (jeśli podano)
- **Lokalizacja**: miejsce podpisania (jeśli podano)
- **Status pokrycia**: pełne lub częściowe
- **Odznaka zaufania**: zaufany lub spoza łańcucha zaufania (tylko gdy podano własny certyfikat)
### Szczegóły techniczne
Rozwiń sekcję szczegółów technicznych, aby zobaczyć:
- Numer seryjny certyfikatu podpisującego
- Algorytm skrótu (SHA-256, SHA-512 itd.)
- Algorytm podpisu (RSA z SHA-256, ECDSA z SHA-256 itd.)
- Komunikaty o błędach dla nieważnych podpisów
## Zastosowania
- Weryfikacja podpisanej cyfrowo umowy przed kontrasygnatą
- Audyt podpisanych dokumentów w celu potwierdzenia, że nie zostały zmienione
- Sprawdzenie, czy certyfikat wygasł od czasu podpisania dokumentu
- Weryfikacja podpisów względem certyfikatu głównego Twojej organizacji
- Sprawdzanie szczegółów podpisu w dokumentach urzędowych lub prawnych
## Wskazówki
- Certyfikat samopodpisany nie oznacza, że podpis jest nieważny. Oznacza, że tożsamości podpisującego nie można potwierdzić przez zaufaną stronę trzecią. To częste w dokumentach wewnętrznych.
- Częściowe pokrycie nie zawsze oznacza manipulację. Wiele procesów PDF dodaje aktualizacje przyrostowe (jak drugi podpis), które dają częściowe pokrycie.
- Prześlij certyfikat główny lub pośredni swojej organizacji jako zaufany certyfikat, aby uzyskać weryfikację łańcucha zaufania.
## Powiązane narzędzia
- [Podpis cyfrowy PDF](./digital-sign-pdf): podpisz pliki PDF własnym certyfikatem
- [Spłaszcz PDF](./flatten-pdf): spłaszcz plik PDF przed podpisaniem, aby zapobiec modyfikacjom po podpisie
- [Usuń metadane](./remove-metadata): wyczyść plik PDF przed złożeniem podpisu