Glossario

Cos'è Firma digitale?

Una firma digitale è uno schema crittografico che usa una chiave privata per generare una firma su un messaggio o documento, che chiunque con la corrispondente chiave pubblica può verificare per confermare l'autenticità e l'integrità dei dati.

Noto anche come: code signing, message signing

Le firme digitali forniscono tre garanzie: autenticazione (il messaggio è stato creato dal mittente dichiarato), integrità (il messaggio non è stato alterato dalla firma) e non ripudio (il firmatario non può negare di averlo firmato). Queste proprietà rendono le firme digitali giuridicamente vincolanti in molte giurisdizioni ed essenziali per la distribuzione del software, le transazioni finanziarie e la verifica dell'identità.

Il processo di firma funziona eseguendo prima l'hash del messaggio con una funzione hash crittografica (come SHA-256) per produrre un digest di dimensione fissa, poi cifrando quel digest con la chiave privata del firmatario. La verifica inverte il processo: il verificatore decifra la firma con la chiave pubblica del firmatario, esegue indipendentemente l'hash del messaggio e confronta i due digest. Se corrispondono, la firma è valida. Gli algoritmi comuni includono le firme RSA, ECDSA (Elliptic Curve Digital Signature Algorithm) e EdDSA.

Le firme digitali si distinguono da HMAC, sebbene entrambi verifichino l'integrità. HMAC usa una chiave segreta condivisa — entrambe le parti possono generare e verificare il codice, quindi non può fornire non ripudio. Le firme digitali usano chiavi asimmetriche, il che significa che solo il titolare della chiave privata può firmare, mentre chiunque con la chiave pubblica può verificare. Questa asimmetria è ciò che consente il non ripudio e rende le firme digitali adatte agli scenari di verifica pubblica.

Come Vaulted usa Firma digitale

Vaulted non usa firme digitali nel suo flusso di cifratura principale perché il modello di condivisione è simmetrico — mittente e destinatario condividono la stessa chiave tramite il frammento URL, e non c'è bisogno di non ripudio né di verifica pubblica. Tuttavia, i certificati TLS che proteggono le connessioni HTTPS di Vaulted si affidano alle firme digitali per provare l'identità del server al tuo browser, e l'integrità del codice distribuito di Vaulted è verificata attraverso la firma del codice nella pipeline CI/CD.