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

100 lines
6.4 KiB
Markdown

---
title: Verifica firma PDF
description: Verifica le firme digitali nei file PDF. Controlla validità del certificato, identità del firmatario, integrità del documento e stato della catena di fiducia.
---
# 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
1. Carica un file PDF firmato. La verifica parte automaticamente.
2. Lo strumento mostra un riepilogo: numero di firme trovate e quante sono valide.
3. Ogni firma ha una scheda dettagliata con nome del firmatario, emittente, date e stato.
4. 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 `/ByteRange` della firma, ne calcola l'hash con l'algoritmo dichiarato dal firmatario e confronta il risultato con l'attributo `messageDigest` all'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](./digital-sign-pdf): firma i PDF con il tuo certificato
- [Appiattisci PDF](./flatten-pdf): appiattisci un PDF prima di firmarlo per impedire modifiche successive alla firma
- [Rimuovi metadati](./remove-metadata): ripulisci un PDF prima di applicare una firma