mirror of
https://github.com/alam00000/bentopdf.git
synced 2026-11-08 16:57:14 +01:00
100 lines
6.1 KiB
Markdown
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
|