Firma Digitale: Caratteristiche e funzionamento in informatica

Firma Digitale: Caratteristiche e funzionamento in informatica

Firma Digitale o Digital Signature

La firma digitale (digital signature) è un’applicazione della crittografia a chiave pubblica. Essa permette al destinatario di un messaggio firmato di autenticarne il mittente e di verificarne l’integrità. Sebbene chiunque sia in grado di condurre queste verifiche, solo il mittente del messaggio è in grado di apporre la giusta firma digitale. Quindi la Firma digitale è il Digest del testo, cifrato con la chiave privata del mittente.

Le firme digitali, si propongono di soddisfare e quindi garantire tre esigenze:

  1. che il destinatario possa verificare l’identità del mittente (autenticità);
  2. che il mittente non possa disconoscere un documento da lui firmato (non ripudio);
  3. che il destinatario non possa inventarsi o modificare un documento firmato da qualcun altro (integrità).

Standard principale: RSA+SHA.

Confronto tra le firme

A differenza della firma digitale quella autografata sui documenti cartacei non gode delle stesse proprietà.

FIRMA AUTOGRAFA

  • Riconducibile direttamente al soggetto
  • Legata al documento attraverso il supporto fisico
  • Verifica diretta e soggettiva (attraverso il campione)
  • Facilmente falsificabile, ma il falso è riconoscibile
  • Deve essere autenticata per impedire il ripudio

FIRMA DIGITALE

  • Riconducibile al soggetto solo attraverso una procedura informatica
  • Legata indissolubilmente al contenuto del documento
  • Verifica indiretta e oggettiva (tramite una terza parte fidata)
  • Non falsificabile senza conoscere la chiave privata, ma falso irriconoscibile
  • Ripudio solo tramite querela di falso

Confronto tra le firme autografate e digitali

Trasmissione – Ricezione con firma digitale

Il sistema per la creazione e la verifica di firme elettroniche può sfruttare le caratteristiche della crittografia asimmetrica. Rispetto alla crittografia asimmetrica è però utilizzata in modalità inversa rispetto all’utilizzo “classico”, cioè è la chiave privata a cifrare e quella pubblica a decifrare. La chiave pubblica di un utente è la sola in grado di poter decifrare correttamente i documenti cifrati con la chiave privata di quell’utente.

Infatti, se un utente vuole creare una firma per un documento, procede nel modo seguente: con l’ausilio di una funzione hash (pubblica) ricava l’impronta digitale del documento, detta anche digest, un file di dimensioni relativamente piccole (128, 160 o più bit) che contiene una sorta di codice di controllo relativo al documento stesso, dopodiché utilizza la propria chiave privata per cifrare l’impronta digitale: il risultato di questa codifica è la firma.

La funzione hash è fatta in modo da rendere minima la probabilità che da testi diversi si possa ottenere il medesimo valore dell’impronta, inoltre, è one-way, a senso unico, questo significa che dall’impronta è impossibile ottenere nuovamente il testo originario ovvero essa è non invertibile. La firma prodotta dipende dall’impronta digitale del documento e, quindi, dal documento stesso, oltre che dalla chiave privata dell’utente. A questo punto la firma viene allegata al documento insieme alla chiave pubblica.

Trasmissione - Ricezione con firma digitale

Schema firma digitale

 Uno schema di firme digitali è una coppia di algoritmi (sign, verify) tali che:

  • Sign usa un informazione segreta key per produrre una firma digitale σ= sign(M,key) del documento M
  • Verify usa un’informazione pubblica p per controllare se  σ è una firma valida per M; in particolare verify(σ,M,p)=TRUE se e solo se sign(M,key)=σ

A differenza delle firme autografate, la firma σ dipende dal documento M da firmare. Una importante proprietà delle firme digitali è la non ripudiabilità, in quanto l’unico autorizzato a firmare è colui che conosce la chiave. Per ragioni di sicurezza non si firma tutto il documento, ma solo l’hash di M. Il ruolo delle smart card nel firmare un documento M è almeno quello di memorizzare l’informazione segreta Key e di calcolare sign(H(M),key) (ovvero di decifrare H(M)). Solitamente il calcolo di H(M) viene fatto dal lettore. L’ideale sarebbe che la carta facesse tutto, in tal modo basterebbe cambiare la carta per cambiare lo schema di firma.

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 *