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