Algoritmo per implementare la firma digitale in sicurezza informatica

Algoritmo per implementare la firma digitale in sicurezza informatica

L’obiettivo del servizio di firma digitale è quello di generare, dato un documento e la chiave privata di un soggetto che chiameremo firmatario, una sequenza di bit detta firma digitale che provi in modo non ripudiabile il possesso del documento “firmato” da parte del soggetto firmatario. I passi di cui si compone il servizio di firma digitale sono elencati di seguito e sintetizzati nella figura successiva.

  1. Al documento viene applicato SHA al fine di ottenere un digest, cioè una breve sequenza di bit equivalente ad una “impronta digitale” del documento. La stretta correlazione fra il documento ed il suo digest, assicurata da SHA, garantiscono con sufficiente sicurezza che firma generata dal servizio sia stata effettivamente apposta sul documento originale.
  2. Il digest viene cifrato RSA con la chiave privata del firmatario. Il fatto che  il risultato della cifratura, cioè la firma, sia decifrabile solo con la chiave pubblica del firmatario garantisce circa la identità del firmatario stesso.

Algoritmo per implementare la firma digitale in sicurezza informatica
Algoritmo per implementare la firma digitale in sicurezza informatica

Rimuovere la firma digitale

Per la verifica l’applicazione della firma digitale (verificare l’autenticità di una firma digitale rispetto al documento firmato ed al soggetto firmatario) c’è bisogna di procedere in modo inverso. In particolare, dato un documento, un soggetto (o meglio la sua chiave pubblica) ed una firma, il servizio verifica che quel soggetto (e non altri) abbia effettivamente apposto la firma sul quel documento (e non su altri o sullo stesso modificato in qualche sua parte). I passi di cui si compone il servizio di verifica di una firma digitale sono elencati di seguito e sintetizzati nella figura successiva.

  1. La firma viene decifrata con RSA utilizzando la chiave pubblica del soggetto firmatario. In questo modo, se la firma è autentica, si ottiene il digest del documento al momento della firma digitale.
  2. Il documento nella versione corrente viene sottoposto ad SHA e ne viene generato il digest che, se il documento non ha subito modifiche e se la firma è autentica, dovrebbe coincidere con quello ottenuto al passo precedente decifrando la firma con RSA.
  3. Il digest ottenuto applicando SHA sul documento viene confrontato con il digest ottenuto applicando RSA sulla firma. Se i digest coincidono la firma è valida, altrimenti la firma è apocrifa (cioè apposta da un soggetto diverso da quello considerato) e/o il documento è stato modificato dopo la firma digitale.

Detto cio, per distinguere il caso di firma apocrifa da quello di firma apposta  su  diverso documento, è possibile, nell’ambito del servizio di generazione della firma, accodare al digest del documento una stringa fissa che viene quindi cifrata RSA insieme al digest. Il servizio di verifica, una volta decifrata la firma, potrà così verificare la presenza della stringa fissa e, nel caso di alterazione della stessa, dedurre il fatto che la chiave pubblica utilizzata non corrisponde a quella privata che ha generato la firma e che quindi, in definitiva, la firma è stata apposta da un soggetto diverso dal supposto firmatario.

Algoritmo per implementare la firma digitale in sicurezza informatica - Rimuovere la firma digitale
Algoritmo per implementare la firma digitale in sicurezza informatica – Rimuovere la firma digitale

 

Pubblicato da Vito Lavecchia

Lavecchia Vito Ingegnere Informatico (Politecnico di Bari) Email: [email protected] Sito Web: https://vitolavecchia.altervista.org

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *