Verifica firma PDF
Carica un PDF firmato e questo strumento estrae ogni firma digitale, identifica il firmatario, controlla la validità del certificato e indica se il documento è stato modificato dopo la firma. Puoi anche fornire un certificato attendibile per verificare la catena della firma.
Come funziona
- Carica un file PDF firmato. La verifica parte automaticamente.
- Lo strumento mostra un riepilogo: numero di firme trovate e quante sono valide.
- Ogni firma ha una scheda dettagliata con nome del firmatario, emittente, date e stato.
- Se vuoi, carica un certificato attendibile (.pem, .crt, .cer, .der) per verificare la firma rispetto a una specifica radice di fiducia. La nuova verifica parte automaticamente.
Cosa viene controllato
Analisi della firma
Lo strumento estrae gli oggetti firma PKCS#7 dal PDF, decodifica la struttura ASN.1 e ricava il certificato X.509 del firmatario insieme all'eventuale catena di certificati incorporata nella firma.
Validità del certificato
- Scadenza: il certificato è attualmente entro il suo periodo di validità?
- Rilevamento di autofirma: il certificato è emesso da sé stesso?
- Catena di fiducia: quando viene fornito un certificato attendibile, il certificato del firmatario risale fino a esso?
Verifica crittografica
- Lo strumento ricostruisce i byte coperti dal
/ByteRangedella firma, ne calcola l'hash con l'algoritmo dichiarato dal firmatario e confronta il risultato con l'attributomessageDigestall'interno della firma. - Poi serializza di nuovo gli attributi firmati come DER SET e verifica la firma rispetto alla chiave pubblica del certificato del firmatario.
- Una firma è segnalata come valida solo se tutti questi controlli vanno a buon fine. Se i byte del PDF sono stati modificati dopo la firma, o la firma incorporata non corrisponde alla chiave del firmatario, lo stato mostra "Non valida: verifica crittografica non riuscita" con il motivo specifico.
Algoritmi di firma supportati
| Algoritmo | Percorso di verifica |
|---|---|
| RSA (PKCS#1 v1.5) | node-forge publicKey.verify, con fallback su 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}) dopo la conversione della firma da DER a IEEE P1363 |
Se una firma usa un algoritmo non presente in questo elenco (ad esempio Ed25519, SM2 o RSA con un OID di digest insolito), la scheda mostra in giallo "Non verificata: algoritmo di firma non supportato", insieme all'OID o al motivo specifico. Si tratta di una distinzione volutamente a tre stati:
- Valida: firma verificata crittograficamente rispetto alla chiave pubblica del firmatario.
- Non valida: la verifica è stata eseguita e ha dato esito negativo (byte modificati, chiave non corrispondente).
- Non verificata: lo strumento non ha potuto eseguire la verifica per questo algoritmo. I metadati del certificato vengono comunque mostrati, ma considera la firma come "sconosciuta" e verificala con Adobe Acrobat o
openssl cms -verify.
Algoritmi di digest non sicuri
- Le firme che usano MD5 o SHA-1 sono rifiutate come non valide e contrassegnate con lo stato "Digest non sicuro". Entrambi gli algoritmi hanno attacchi di collisione noti, quindi una firma su un hash SHA-1 o MD5 non offre alcuna garanzia di integrità.
- SHA-224, SHA-256, SHA-384 e SHA-512 sono tutti accettati.
Copertura del documento
- Copertura completa: la firma copre l'intero file PDF, quindi nessun byte è stato aggiunto o modificato dopo la firma.
- Copertura parziale: la firma copre solo una parte del file. Può indicare modifiche successive alla firma (non necessariamente dolose: i salvataggi incrementali producono una copertura parziale).
Dettagli della firma
Ogni scheda di firma mostra:
- Firmato da: nome comune, organizzazione ed email dal certificato del firmatario
- Emittente: l'autorità di certificazione che ha emesso il certificato del firmatario
- Firmato il: il timestamp incorporato nella firma
- Valido dal / Valido fino al: il periodo di validità del certificato
- Motivo: perché il documento è stato firmato (se indicato)
- Luogo: dove è stato firmato (se indicato)
- Stato della copertura: completa o parziale
- Badge di fiducia: Attendibile oppure Non nella catena di fiducia (solo quando viene fornito un certificato personalizzato)
Dettagli tecnici
Espandi la sezione dei dettagli tecnici per vedere:
- Numero di serie del certificato del firmatario
- Algoritmo di digest (SHA-256, SHA-512, ecc.)
- Algoritmo di firma (RSA con SHA-256, ECDSA con SHA-256, ecc.)
- Messaggi di errore per le firme non valide
Casi d'uso
- Verificare un contratto firmato digitalmente prima di controfirmarlo
- Controllare i documenti firmati per confermare che non siano stati manomessi
- Verificare se un certificato è scaduto dopo la firma del documento
- Convalidare le firme rispetto al certificato radice della tua organizzazione
- Ispezionare i dettagli di firma di documenti governativi o legali
Suggerimenti
- Un certificato autofirmato non significa che la firma non sia valida: significa che l'identità del firmatario non può essere verificata tramite una terza parte attendibile. È comune per i documenti interni.
- La copertura parziale non indica sempre una manomissione. Molti flussi di lavoro PDF aggiungono aggiornamenti incrementali (come una seconda firma) che creano una copertura parziale.
- Carica il certificato radice o intermedio della tua organizzazione come certificato attendibile per ottenere la verifica della catena di fiducia.
Strumenti correlati
- Firma digitale: firma i PDF con il tuo certificato
- Appiattisci PDF: appiattisci un PDF prima di firmarlo per impedire modifiche successive alla firma
- Rimuovi metadati: ripulisci un PDF prima di applicare una firma