IT201800002548A1 - Metodo per firmare un documento digitale tramite un Modulo di Sicurezza Hardware (HSM) e relativo Modulo di Sicurezza Hardware. - Google Patents

Metodo per firmare un documento digitale tramite un Modulo di Sicurezza Hardware (HSM) e relativo Modulo di Sicurezza Hardware. Download PDF

Info

Publication number
IT201800002548A1
IT201800002548A1 IT201800002548A IT201800002548A IT201800002548A1 IT 201800002548 A1 IT201800002548 A1 IT 201800002548A1 IT 201800002548 A IT201800002548 A IT 201800002548A IT 201800002548 A IT201800002548 A IT 201800002548A IT 201800002548 A1 IT201800002548 A1 IT 201800002548A1
Authority
IT
Italy
Prior art keywords
security module
cryptographic keys
hardware security
digital document
pair
Prior art date
Application number
IT201800002548A
Other languages
English (en)
Inventor
Prisco Roberto De
Santis Alfredo De
Marco Mannetta
Original Assignee
Etuitus S R L
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Etuitus S R L filed Critical Etuitus S R L
Priority to IT201800002548A priority Critical patent/IT201800002548A1/it
Publication of IT201800002548A1 publication Critical patent/IT201800002548A1/it

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3234Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving additional secure or trusted devices, e.g. TPM, smartcard, USB or software token
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2125Just-in-time application of countermeasures, e.g., on-the-fly decryption, just-in-time obfuscation or de-obfuscation

Description

METODO PER FIRMARE UN DOCUMENTO DIGITALE TRAMITE UN MODULO DI SICUREZZA HARDWARE (HSM) E RELATIVO MODULO DI
SICUREZZA HARDWARE
La presente invenzione si riferisce ad un metodo per firmare un documento digitale tramite un Modulo di Sicurezza Hardware, cosiddetto HSM (Hardware Security Module), ed a detto Modulo di Sicurezza Hardware.
In particolare, mediante detto metodo e detto Modulo di Sicurezza Hardware è possibile, da un lato, risparmiare spazio nei mezzi di memorizzazione di un HSM, in quanto non è necessario memorizzare coppie di chiavi digitali (ciascuna delle quali è composta da una rispettiva chiave pubblica e da una rispettiva chiave privata), e dall’altro lato, gestire un numero illimitato di chiavi crittografiche.
Tecnica Nota
Un Modulo di Sicurezza Hardware o HSM è un dispositivo che può essere utilizzato per la firma digitale.
In generale, un Modulo di Sicurezza Hardware è una periferica collegabile (tramite una interfaccia I/O di cui è dotato detto modulo di Sicurezza Hardware) ad un computer che permette ad un utente, quando detto computer è connesso a detto Modulo di Sicurezza Hardware, di usufruire dei servizi che il Modulo di Sicurezza Hardware può offrire.
Un Modulo di Sicurezza Hardware permette la generazione di chiavi crittografiche, utili ad esempio per la firma di un documento digitale, la memorizzazione di chiavi crittografiche, nonché la gestione di dette chiavi crittografiche e la velocizzazione di operazioni crittografiche che coinvolgono le chiavi crittografiche stesse.
Dal punto di vista della sicurezza, un Modulo di Sicurezza Hardware è considerato un modulo sicuro in quanto ha sia protezioni fisiche, la cui violazione sarebbe visibile, che protezioni software al fine di permettere esclusivamente l’utilizzo previsto, impedendo ulteriori utilizzi diversi dall’utilizzo previsto.
Per la firma digitale viene utilizzata la crittografia a chiave pubblica.
Ad ogni utente è associata una coppia di chiavi crittografiche, dove ciascuna coppia di chiavi crittografiche è formata da una chiave pubblica e da una chiave privata.
La chiave pubblica è nota a tutti, mentre la chiave privata è mantenuta segreta.
La firma di un documento digitale da parte di un utente avviene cifrando, tramite la chiave privata, il documento digitale o un suo valore di hash, che può essere considerato come una impronta digitale del documento digitale stesso.
La verifica della firma avviene decifrando il documento digitale cifrato attraverso la chiave pubblica.
Il Modulo di Sicurezza Hardware è configurato per gestire la firma digitale di una moltitudine di utenti e la fase di firma digitale di un documento digitale è effettuata in modo affidabile e sicuro.
Per offrire un elevato livello di sicurezza, ciascuna coppia di chiavi crittografiche associata ad un rispettivo utente è generata all’interno del Modulo di Sicurezza Hardware e la chiave privata di ciascuna coppia di chiavi crittografiche è utilizzata esclusivamente all’interno di detto Modulo di Sicurezza Hardware per la firma di un documento digitale e non è mai resa nota all’esterno del Modulo di Sicurezza Hardware.
Tutte le coppie di chiavi crittografiche sono generate al momento della registrazione di un utente da una unità hardware configurata per generare numeri casuali o numeri pseudocasuali, inclusa nel Modulo di Sicurezza Hardware.
Tale unità hardware può essere un Generatore di Numeri Casuali (True Random Number Generator) o un Generatore di Numeri Pseudocasuali (Pseudorandom Number Generator).
Una volta generate, le chiavi crittografiche sono memorizzate all’interno di mezzi di memorizzazione del Modulo di Sicurezza Hardware stesso (tipicamente una memoria di massa come ad esempio un hard disk).
La memorizzazione delle chiavi crittografiche nei mezzi di memorizzazione del Modulo di Sicurezza Hardware consente alle chiavi crittografiche di essere recuperate dal Modulo di Sicurezza Hardware stesso per firmare un documento digitale, quando un utente necessita di firmare detto documento digitale.
Attualmente, un metodo di tipo noto per firmare un documento digitale tramite un Modulo di Sicurezza Hardware comprende le seguenti fasi:
1) associare un codice identificativo univoco ad un rispettivo utente,
2) generare una rispettiva coppia di chiavi crittografiche per ciascun utente, dove detta coppia di chiavi crittografiche è formata da una rispettiva chiave pubblica e una rispettiva chiave privata,
3) memorizzare su mezzi di memorizzazione, disposti all’interno del Modulo di Sicurezza Hardware, detto codice identificativo utente e la coppia di chiavi crittografiche associata a ciascun utente, formata da una chiave privata e da una chiave pubblica, 4) ricevere una richiesta di firma da parte di un utente per firmare un documento digitale, quest’ultimo fornito dall’utente stesso,
5) firmare il documento digitale tramite la chiave privata associata all’utente,
6) rilasciare il documento digitale firmato.
Con riferimento alla fase 1, ciascun utente deve essere registrato per poter usufruire dei servizi del Modulo di Sicurezza Hardware.
La registrazione consiste nell’associare a ciascun utente un rispettivo codice identificativo univoco.
Con riferimento alla fase 2 e alla fase 3, ciascuna coppia di chiavi crittografiche è generata all’interno del Modulo di Sicurezza Hardware e memorizzata sempre all’interno del Modulo di Sicurezza Hardware, nei mezzi di memorizzazione di cui detto Modulo di Sicurezza Hardware è dotato.
Tali fasi 1, 2 e 3 vengono effettuate una sola volta.
Con particolare riferimento alla fase 3, la chiave privata, memorizzata in detti mezzi di memorizzazione, serve per la firma del documento digitale, e la chiave pubblica, memorizzata in detti mezzi di memorizzazione, serve per verificare la firma di un documento digitale.
Con riferimento alla fase 4, alla fase 5, alla fase 6, tali fasi 4, 5 e 6 sono ripetute per ciascun documento digitale che un utente desidera firmare.
Con particolare riferimento alla fase 4, l’utente invia al Modulo di Sicurezza Hardware un documento digitale di suo interesse ed una richiesta di firma per firmare detto documento digitale.
Con particolare riferimento alla fase 5, il Modulo di Sicurezza Hardware firma il documento digitale utilizzando la chiave privata associata all’utente, memorizzata nei mezzi di memorizzazione.
Con riferimento alla fase 6, il documento digitale firmato dal Modulo di Sicurezza Hardware, tramite la chiave privata, è rilasciato all’utente.
In linea generale, ogni volta che un utente richiede che un documento digitale (fornito da detto utente) sia firmato tramite un Modulo di Sicurezza Hardware, una unità di elaborazione del Modulo di Sicurezza Hardware riceve la richiesta di firma da parte di detto utente nonché il documento digitale da firmare, estrae o recupera dai mezzi di memorizzazione la chiave privata associata a detto utente e firma detto documento digitale.
Il processo di firma con cui è firmato un documento digitale è un processo di cifratura di tipo noto mediante la chiave privata associata all’utente.
Affinché la sicurezza del Modulo di Sicurezza Hardware sia garantita, è fondamentale che la chiave privata associata all’utente resti segreta.
Uno svantaggio di questo metodo è dovuto al fatto che, al fine di memorizzare tutte le coppie di chiavi crittografiche associate ai rispettivi utenti, è necessario che i mezzi di memorizzazione di detto Modulo di Sicurezza Hardware abbiano uno spazio di memoria con dimensioni tali da consentire la memorizzazione di un elevato numero di chiavi crittografiche, con i costi che ne conseguono.
In particolare, detti mezzi di memorizzazione di un Modulo di Sicurezza Hardware hanno un limite al numero massimo di chiavi crittografiche che possono essere memorizzate e quindi gestite dal Modulo di Sicurezza Hardware.
Lo spazio di memoria si riduce all’aumentare del numero di coppie di chiavi crittografiche che vengono memorizzate, poiché ciascuna coppia di chiavi crittografiche occupa una rispettiva porzione di detto spazio di memoria.
Considerando l’elevato numero di coppie di chiavi crittografiche da memorizzare da parte di detto Modulo di Sicurezza Hardware, le dimensioni di detto spazio di memoria sono un parametro significativo.
Si pensi al numero elevato di chiavi crittografiche che può essere gestito da una Autorità di Certificazione tramite un Modulo di Sicurezza Hardware. Persino milioni di chiavi crittografiche possono essere memorizzate in detto Modulo di Sicurezza Hardware.
Di conseguenza, per memorizzare e gestire un numero elevato di chiavi crittografiche, un ulteriore svantaggio è dato dalla necessità di avere più di un Modulo di Sicurezza Hardware, con i costi di acquisto e di gestione che ne conseguono.
Scopo dell’invenzione
Scopo della presente invenzione è superare detti svantaggi, fornendo un metodo per la firma di un documento digitale tramite un Modulo di Sicurezza Hardware (HSM) ed un relativo Modulo di Sicurezza Hardware per permettere di generare all’occorrenza una coppia di chiavi crittografiche (formata da una rispettiva chiave pubblica e da una rispettiva chiave privata) e risparmiare spazio di memoria in mezzi di memorizzazione di detto Modulo di Sicurezza Hardware.
Ciò è dovuto al fatto che ciascuna coppia di chiavi crittografiche è generata dal Modulo di Sicurezza Hardware a partire da un seme master, e non necessita di essere memorizzata in detti mezzi di memorizzazione.
In altre parole, le chiavi pubbliche e le chiavi private di ciascuna coppia di chiavi crittografiche sono generate dal Modulo di Sicurezza Hardware, ma non sono memorizzate in detto Modulo di Sicurezza Hardware. Ad ogni richiesta di firma da parte di un utente, la coppia di chiavi crittografiche associata a detto utente è rigenerata dal Modulo di Sicurezza Hardware stesso ed utilizzata da detto Modulo di Sicurezza Hardware per firmare il documento digitale.
Vantaggiosamente, in questo modo, non deve essere memorizzata alcuna coppia di chiavi crittografiche nel Modulo di Sicurezza Hardware (HSM).
Forma pertanto oggetto della presente invenzione un metodo per firmare un documento digitale tramite un Modulo di Sicurezza Hardware, dove detto metodo comprende le seguenti fasi:
A) generare un seme master da parte di detto Modulo di Sicurezza Hardware, dove detto seme master è un numero casuale o un numero pseudocausale,
B) memorizzare detto seme master in detto Modulo di Sicurezza Hardware,
C) ricevere in ingresso a detto Modulo di Sicurezza Hardware un documento digitale fornito da un utente ed una richiesta per firmare detto documento digitale da parte di detto utente, dove a detto utente è associato un rispettivo codice identificativo univoco,
D) combinare detto seme master con detto codice identificativo univoco in modo tale da ottenere una unica stringa,
E) applicare su detta stringa una funzione pseudocasuale per ottenere una ulteriore stringa, differente da detta stringa,
F) generare una coppia di chiavi crittografiche, formata da una chiave pubblica ed una chiave privata, tramite un algoritmo per la generazione di chiavi crittografiche, a partire da detta ulteriore stringa, G) memorizzare temporaneamente detta coppia di chiavi crittografiche in una memoria volatile di una unità di elaborazione, dove detta unità di elaborazione è inclusa in detto Modulo di Sicurezza Hardware,
H) firmare da parte di detto Modulo di Sicurezza Hardware detto documento digitale con detta chiave privata,
I) eliminare detta coppia di chiavi crittografiche da detta memoria volatile,
L) fornire in uscita a detto Modulo di Sicurezza Hardware detto documento digitale firmato.
Detto seme master è memorizzato in mezzi di memorizzazione diversi da detta memoria volatile.
In particolare, detto seme master può essere una sequenza di bit e detto codice identificativo univoco è una sequenza di bit.
Inoltre, detta funzione pseudocasuale può essere una funzione pseudocasuale di Goldreich, Goldwasser e Micali o una funzione pseudocasuale di Naor e Reingold.
Detto algoritmo per la generazione di chiavi crittografiche può essere un algoritmo utilizzato in un crittosistema RSA o in un crittosistema DSS o in un crittosistema a curve ellittiche.
Secondo l’invenzione, con riferimento alla fase F, detta coppia di chiavi crittografiche può essere generata in detta memoria volatile.
Con riferimento alla fase I, al fine di eliminare detta coppia di chiavi crittografiche, una predeterminata sequenza di bit è sovrascritta su detta coppia di chiavi crittografiche, dove detta predeterminata sequenza di bit è preferibilmente una sequenza di zeri.
Forma ulteriormente oggetto dell’invenzione un Modulo di Sicurezza Hardware comprendente:
− mezzi di memorizzazione per la memorizzazione di un seme master,
− una unità hardware per la generazione di numeri casuali o pseudocasuali,
− una unità di elaborazione comprendente una memoria volatile, come ad esempio una RAM.
Detta unità di elaborazione è collegata a detti mezzi di memorizzazione ed a detta unità hardware e configurata per:
o richiedere a detta unità hardware di generare un numero casuale o pseudocasuale come seme master, o memorizzare detto seme master in detti mezzi di memorizzazione,
o ricevere un codice identificativo univoco associato ad un utente, un documento digitale, nonché una richiesta di firma di detto documento digitale da parte di detto utente,
o combinare detto seme master con detto codice identificativo univoco di detto utente in modo tale da ottenere una unica stringa,
o applicare su detta stringa una funzione pseudocasuale per ottenere una ulteriore stringa, differente da detta stringa,
o generare una coppia di chiavi crittografiche, formata da una chiave pubblica e da una chiave privata, a partire da detta ulteriore stringa, tramite un algoritmo per la generazione di chiavi crittografiche,
o memorizzare temporaneamente detta coppia di chiavi crittografiche in detta memoria volatile,
o firmare detto documento digitale con detta chiave privata,
o eliminare detta coppia di chiavi crittografiche da detta memoria volatile,
o fornire in uscita detto documento digitale firmato.
Con riferimento alla unità hardware, detta unità hardware può essere un Generatore di Numeri Casuali per generare un numero casuale o un Generatore di Numeri Pseudocasuali per generare un numero pseudocasuale.
Inoltre, detti mezzi di memorizzazione possono essere una memoria di massa, preferibilmente un hard disk.
Secondo l’invenzione, detta unità di elaborazione può essere configurata per generare detta coppia di chiavi crittografiche in detta memoria volatile.
Elenco Figure
La presente invenzione verrà ora descritta, a titolo illustrativo, ma non limitativo, secondo una sua forma di realizzazione, con particolare riferimento alle figure allegate, in cui:
la figura 1 è una vista schematica mediante la quale è rappresentato un metodo di tipo noto per firmare un documento digitale tramite un Modulo di Sicurezza Hardware;
la figura 2 è una vista schematica mediante la quale è rappresentato un metodo per firmare un documento digitale tramite un Modulo di Sicurezza Hardware, secondo la presente invenzione.
Descrizione dettagliata
La figura 1 è una vista schematica di un metodo di tipo noto per firmare un documento digitale D tramite un Modulo di Sicurezza Hardware 1.
Detto Modulo di Sicurezza Hardware 1 comprende al suo interno mezzi di memorizzazione 2, una unità di elaborazione 3, ed una unità hardware 4 configurata per generare numeri casuali o pseudocasuali, dove detta unità di elaborazione 3 è collegata a detti mezzi di memorizzazione 2 ed a detta unità hardware 4.
Detti mezzi di memorizzazione 2 possono essere una memoria di massa, ad esempio un hard disk.
In detti mezzi di memorizzazione 2 sono memorizzati i seguenti dati:
- un codice identificativo univoco CU1,CU2…CUN associato ad un rispettivo utente U1,U2…UN;
- una coppia di chiavi crittografiche CC1,CC2…CCN associata ad un rispettivo codice identificativo univoco CU1,CU2…CUN, dove ciascuna coppia di chiavi crittografiche CC1,CC2…CCN è formata da una rispettiva chiave pubblica KPU1,KPU2…KPUN e da una rispettiva chiave privata KPR1,KPR2…KPRN.
L’unità di elaborazione 3 è configurata per:
o inviare un segnale a detta unità hardware 4 affinché detta unità hardware 4 generi un numero casuale o pseudocausale,
o generare una coppia di chiavi crittografiche a partire da detto numero casuale o pseudocasuale (tramite un algoritmo per la generazione di chiavi crittografiche di tipo noto, ad esempio un algoritmo utilizzato nel crittosistema RSA), o inviare dette chiavi crittografiche CC1,CC2…CCN a detti mezzi di memorizzazione 2 affinché siano memorizzate,
o selezionare la coppia di chiavi crittografiche CC1,CC2…CCN associata a detto codice identificativo univoco CU1,CU2…CUN, tra le coppie di chiavi crittografiche memorizzate in detti mezzi di memorizzazione 2,
o firmare il documento digitale D con la chiave privata KPR1,KPR2…KPRN della coppia di chiavi crittografiche selezionata,
o fornire in uscita il documento digitale D firmato.
Come può essere visto dalla figura 1, quando un utente invia una richiesta al Modulo di Sicurezza Hardware 1 per firmare un documento digitale D, l’unità di elaborazione 3 verifica la presenza del codice identificativo univoco CU1,CU2…CUN associato a detto utente all’interno di detti mezzi di memorizzazione 2, seleziona la coppia di chiavi crittografiche CC1,CC2…CCN associata a detto codice identificativo univoco CU1,CU2…CUN, tra le coppie di chiavi crittografiche memorizzate in detti mezzi di memorizzazione 2, firma il documento digitale D con la chiave privata KPR1,KPR2…KPRN della coppia di chiavi crittografiche selezionata, e fornisce in uscita il documento digitale D firmato.
In altre parole, il Modulo di Sicurezza Hardware riceve in ingresso un documento digitale e la richiesta di firma di detto documento digitale da parte di un utente, e fornisce in uscita un documento digitale firmato tramite la chiave privata associata allo stesso utente, generata e memorizzata all’interno del Modulo di Sicurezza Hardware stesso.
Con riferimento alla figura 2, è descritto un metodo per firmare un documento digitale tramite un Modulo di Sicurezza Hardware, secondo la presente invenzione.
Per brevità il Modulo di Sicurezza Hardware sarà chiamato HSM.
Detto metodo comprende le seguenti fasi:
A) generare un seme master S da parte di detto HSM 1, dove detto seme master S è un numero casuale o un numero pseudocausale,
B) memorizzare detto seme master S in detto HSM 1,
C) ricevere in ingresso a detto HSM 1 un documento digitale D fornito da un utente U ed una richiesta per firmare detto documento digitale D da parte di detto utente U, dove a detto utente U è associato un rispettivo codice identificativo univoco CU,
D) combinare detto seme master S con detto codice identificativo univoco CU in modo tale da ottenere una unica stringa,
E) applicare su detta stringa una funzione pseudocasuale per ottenere una ulteriore stringa, differente da detta stringa,
F) generare una coppia di chiavi crittografiche CC, formata da una chiave pubblica KPU ed una chiave privata KPR, tramite un algoritmo per la generazione di chiavi crittografiche, a partire da detta ulteriore stringa,
G) memorizzare temporaneamente detta coppia di chiavi crittografiche CC in una memoria volatile 3A di una unità di elaborazione 3, dove detta unità di elaborazione 3 è inclusa in detto HSM 1,
H) firmare da parte di detto HSM 1 detto documento digitale D con detta chiave privata KPR, I) eliminare detta coppia di chiavi crittografiche CC da detta memoria volatile 3A,
L) fornire in uscita a detto HSM 1 detto documento digitale D firmato.
In particolare, secondo l’invenzione, detto seme master S è memorizzato in mezzi di memorizzazione 2 (compresi all’interno di detto HSM 1), diversi da detta memoria volatile 3A.
Con riferimento alla fase A, detto seme master S può essere un numero casuale o un numero pseudocausale.
Al fine di generare un numero casuale o un numero pseudocausale, detto HSM 1 è dotato di una unità hardware 4 per generare numeri casuali o pseudocasuali, disposta all’interno dell’HSM e collegata a detta unità di elaborazione 3.
In particolare, detta unità hardware 4 può essere un Generatore di Numeri Casuali (True Random Number Generator) per generare un numero casuale oppure un Generatore di Numeri Pseudocasuali (Pseudorandom Number Generator) per generare un numero pseudocasuale.
Detto numero casuale o detto numero pseudocasuale è una sequenza di bit.
Con riferimento alla fase B, detto HSM 1 è dotato di mezzi di memorizzazione 2 per memorizzare detto seme master S.
Detti mezzi di memorizzazione 2 possono essere una memoria di massa, come ad esempio un hard disk.
Con riferimento alla fase C, l’HSM 1 riceve in ingresso il documento digitale D da firmare e la richiesta di firma per firmare detto documento digitale D da parte di un utente U a cui è associato un codice identificativo univoco CU.
Tale codice identificativo univoco può essere un qualsiasi codice associato all’utente espresso sottoforma di una sequenza di bit.
Ad esempio, tale codice identificativo univoco può essere una stringa numerica o una stringa alfanumerica o il codice fiscale dell’utente.
Tale codice può essere associato all’utente prima che l’HSM sia utilizzato, ad esempio durante una fase di registrazione dell’utente presso una predeterminata autorità, ad esempio una autorità di certificazione, che controlla e gestisce l’HSM.
L’utente U invia il documento digitale D e la richiesta di firma per mezzo di un segnale elettronico digitale inviato dal suo computer all’HSM 1, a cui detto computer è collegato. Il collegamento tra il computer dell’utente e detto HSM 1 può essere effettuato mediante fili o può essere un collegamento senza fili.
Come già detto, quando un computer è connesso con l’HSM 1, l’utente può usufruire dei servizi che detto HSM offre.
Con riferimento alla fase D, ciascuna coppia di chiavi crittografiche CC è generata a partire dalla combinazione del seme master S, memorizzato all’interno dell’HSM 1, e dal codice identificativo univoco CU dell’utente U.
Secondo l’invenzione, da un unico seme master S, memorizzato all’interno dell’HSM 1, è generata di volta in volta una coppia di chiavi crittografiche CC associata all’utente U (che richiede che un documento digitale D sia firmato) e la coppia di chiavi crittografiche CC associata a detto utente U sarà sempre la stessa.
Con riferimento alla fase D, il seme master S è combinato con il codice identificativo univoco CU dell’utente in modo tale da ottenere una stringa.
Poiché il seme master (che può essere un numero casuale o pseudocasuale) e il codice identificativo univoco sono sequenze di bit, anche detta stringa è una sequenza di bit.
Nella forma di realizzazione che si descrive, detta stringa è ottenuta combinando la sequenza di bit del seme master S con la sequenza di bit del codice identificativo univoco CU in modo tale che la sequenza di bit del codice identificativo univoco CU sia posta successivamente alla sequenza di bit del seme master S.
Ad esempio, se il seme master S è una sequenza di bit 001 ed il codice identificativo univoco CU è una sequenza di bit 101, la stringa che si ottiene è la sequenza 001101.
Tuttavia, detta stringa può essere ottenuta in altri modi, senza per questo uscire dall’ambito dell’invenzione.
In una prima alternativa, detta stringa può essere ottenuta combinando la sequenza di bit del seme master S con la sequenza di bit del codice identificativo univoco CU in modo tale che la sequenza di bit del seme master S sia posta successivamente alla sequenza di bit del codice identificativo univoco CU.
In una seconda alternativa, detta stringa può essere ottenuta alternando un bit del seme master S ad un bit del codice identificativo univoco CU.
Con riferimento alla fase E, una qualsiasi funzione pseudocasuale può essere applicata a detta stringa.
Nella forma di realizzazione che si descrive, la funzione pseudocasuale è una funzione pseudocasuale di Goldreich, Goldwasser e Micali, basata sui cosiddetti alberi di Merkle.
Tuttavia, è possibile utilizzare una ulteriore funzione pseudocasuale, come ad esempio la funzione pseudocasuale di Naor e Reingold, senza per questo uscire dall’ambito dell’invenzione.
Con riferimento alla fase F, è possibile generare una coppia di chiavi crittografiche mediante un qualsiasi algoritmo per la generazione di chiavi crittografiche.
Nella forma di realizzazione che si descrive, l’algoritmo utilizzato per la generazione di chiavi crittografiche è quello utilizzato in un crittosistema RSA.
Tuttavia, è possibile utilizzare ulteriori algoritmi per la generazione di chiavi crittografiche, come ad esempio un algoritmo utilizzato in un crittosistema DSS o in un crittosistema a curve ellittiche, senza per questo uscire dall’ambito dell’invenzione.
In particolare, nella forma di realizzazione che si descrive, detta coppia di chiavi crittografiche è generata nella memoria volatile 3A dell’unità di elaborazione 3.
Con riferimento alla fase G, la coppia di chiavi crittografiche CC generata dall’unità di elaborazione 3 è memorizzata in una memoria volatile 3A dell’unità di elaborazione 3 e resterà memorizzata in detta memoria volatile 3A per il tempo di utilizzo della chiave privata KPR per firmare il documento digitale D.
Infatti, una volta che le chiavi crittografiche sono state generate dall’unità di elaborazione 3 e che la chiave privata KPR è stata utilizzata per la firma del documento digitale D (fase H), le chiavi crittografiche, memorizzate nella memoria volatile 3A della unità di elaborazione 3, sono eliminate dalla stessa unità di elaborazione (fase I).
Ad esempio, al fine di eliminare dette chiavi crittografiche è possibile sovrascrivere la coppia di chiavi crittografiche CC con una predeterminata sequenza di bit.
In particolare, è preferibile che detta predeterminata sequenza di bit sia una sequenza di zeri.
In altre parole, le chiavi crittografiche generate dall’unità di elaborazione 3 non sono memorizzate nei mezzi di memorizzazione 2 dell’HSM 1, bensì in una memoria volatile 3A dell’unità di elaborazione stessa, così che nei mezzi di memorizzazione 2 dell’HSM 1 sia memorizzato soltanto il seme master S.
Nella forma di realizzazione che si descrive, detta memoria volatile 3A è una memoria RAM.
Con riferimento alle fasi H, I e L, il documento digitale D firmato dall’unità di elaborazione 3, tramite la chiave privata KPR associata all’utente U, è fornito in uscita all’HSM 1, la coppia di chiavi crittografiche CC è eliminata da detta memoria volatile 3A dell’unità di elaborazione 3 ed il documento digitale firmato è fornito in uscita all’HSM 1.
Con particolare riferimento alla figura 2, detto HSM 1 comprende mezzi di memorizzazione 2 per la memorizzazione di un seme master S, una unità hardware 4 per la generazione di numeri casuali o pseudocasuali, nonché una unità di elaborazione 3 comprendente una memoria volatile 3A.
Nella forma di realizzazione che si descrive, detti mezzi di memorizzazione sono una memoria di massa, preferibilmente un hard disk.
L’unità di elaborazione 3 dell’HSM 1 è collegata a detti mezzi di memorizzazione 2 ed a detta unità hardware 4 ed è configurata per:
o richiedere a detta unità hardware 4 di generare un numero casuale o pseudocasuale come seme master S, o memorizzare detto seme master S in detti mezzi di memorizzazione 2,
o ricevere un codice identificativo univoco CU associato all’utente U, un documento digitale D, nonché una richiesta di firma di detto documento digitale D da parte di detto utente U,
o combinare detto seme master S con detto codice identificativo univoco CU dell’utente U in modo tale da ottenere una unica stringa,
o applicare su detta stringa una funzione pseudocasuale per ottenere una ulteriore stringa, differente da detta stringa,
o generare una coppia di chiavi crittografiche CC, formata da una chiave pubblica KPU e da una chiave privata KPR, a partire da detta ulteriore stringa, tramite un algoritmo per la generazione di chiavi crittografiche,
o memorizzare temporaneamente detta coppia di chiavi crittografiche CC in una memoria volatile 3A di detta unità di elaborazione 3,
o firmare detto documento digitale D con detta chiave privata KPR,
o eliminare detta coppia di chiavi crittografiche CC da detta memoria volatile 3A,
o fornire in uscita detto documento digitale D firmato.
In altre parole, una volta che l’unità di elaborazione 3 riceve la richiesta di firma di un documento digitale D da parte di un utente U, a cui è associato un codice identificativo utente CU, l’unità di elaborazione 3 combina il seme master S con il codice identificativo univoco CU per generare una coppia di chiavi crittografiche CC in funzione di detto codice identificativo univoco CU dell’utente U e di detto seme master S.
In particolare, l’unità di elaborazione 3 genera una stringa (mediante la combinazione del seme master e del codice identificativo univoco), applica una funzione pseudocasuale su detta stringa per ottenere una ulteriore stringa e infine genera la coppia di chiavi crittografiche a partire da detta ulteriore stringa mediante un algoritmo per la generazione di chiavi crittografiche.
La coppia di chiavi crittografiche CC è formata da una chiave pubblica KPU e da una chiave privata KPR e quest’ultima è utilizzata da detta unità di elaborazione 3 per firmare il documento digitale D.
La chiave pubblica KPU e la chiave privata KPR non sono memorizzate nei mezzi di memorizzazione 2 e saranno rigenerate all’occorrenza, i.e. ad una eventuale richiesta di firma di un documento digitale da parte dello stesso utente.
Vantaggiosamente, mediante il metodo della presente invenzione è possibile generare un elevato numero di coppie di chiavi crittografiche a partire da un unico seme master memorizzato nel Modulo di Sicurezza Hardware.
Di conseguenza, è possibile gestire una elevata quantità di chiavi crittografiche, senza la necessità che dette chiavi crittografiche siano memorizzate all’interno del Modulo di Sicurezza Hardware.
La presente invenzione è stata descritta a titolo illustrativo, ma non limitativo, secondo una sua forma preferita di realizzazione, ma è da intendersi che variazioni e/o modifiche potranno essere apportate dagli esperti del ramo senza per questo uscire dal relativo ambito di protezione, come definito dalle rivendicazioni allegate.

Claims (10)

  1. RIVENDICAZIONI 1. Metodo per firmare un documento digitale (D) tramite un Modulo di Sicurezza Hardware (1), detto metodo comprendendo le seguenti fasi: A) generare un seme master (S) da parte di detto Modulo di Sicurezza Hardware (1), dove detto seme master (S) è un numero casuale o un numero pseudocausale, B) memorizzare detto seme master (S) in detto Modulo di Sicurezza Hardware (1), C) ricevere in ingresso a detto Modulo di Sicurezza Hardware (1) un documento digitale (D) fornito da un utente (U) ed una richiesta per firmare detto documento digitale (D) da parte di detto utente (U); a detto utente (U) essendo associato un rispettivo codice identificativo univoco (CU), D) combinare detto seme master (S) con detto codice identificativo univoco (CU) in modo tale da ottenere una unica stringa, E) applicare su detta stringa una funzione pseudocasuale per ottenere una ulteriore stringa, differente da detta stringa, F) generare una coppia di chiavi crittografiche (CC), formata da una chiave pubblica (KPU) ed una chiave privata (KPR), tramite un algoritmo per la generazione di chiavi crittografiche, a partire da detta ulteriore stringa, G) memorizzare temporaneamente detta coppia di chiavi crittografiche (CC) in una memoria volatile (3A) di una unità di elaborazione (3), dove detta unità di elaborazione (3) è inclusa in detto Modulo di Sicurezza Hardware (1), H) firmare da parte di detto Modulo di Sicurezza Hardware (1) detto documento digitale (D) con detta chiave privata (KPR), I) eliminare detta coppia di chiavi crittografiche (CC) da detta memoria volatile (3A), L) fornire in uscita a detto Modulo di Sicurezza Hardware (1) detto documento digitale (D) firmato, dove detto seme master (S) è memorizzato in mezzi di memorizzazione (2) diversi da detta memoria volatile (3A).
  2. 2. Metodo secondo la rivendicazione precedente, caratterizzato dal fatto che detto seme master (S) è una sequenza di bit e detto codice identificativo univoco (CU) è una sequenza di bit.
  3. 3. Metodo secondo una qualsiasi delle rivendicazioni precedenti, caratterizzato dal fatto che detta funzione pseudocasuale è una funzione pseudocasuale di Goldreich, Goldwasser e Micali o una funzione pseudocasuale di Naor e Reingold.
  4. 4. Metodo secondo una qualsiasi delle rivendicazioni precedenti, caratterizzato dal fatto che detto algoritmo per la generazione di chiavi crittografiche è un algoritmo utilizzato in un crittosistema RSA o in un crittosistema DSS o in un crittosistema a curve ellittiche.
  5. 5. Metodo secondo una qualsiasi delle rivendicazioni precedenti, caratterizzato dal fatto che, con riferimento alla fase F, detta coppia di chiavi crittografiche (CC) è generata in detta memoria volatile (3A).
  6. 6. Metodo secondo una qualsiasi delle rivendicazioni precedenti, caratterizzato dal fatto che, con riferimento alla fase I, al fine di eliminare detta coppia di chiavi crittografiche (CC), una predeterminata sequenza di bit è sovrascritta su detta coppia di chiavi crittografiche (CC); detta predeterminata sequenza di bit essendo preferibilmente una sequenza di zeri.
  7. 7. Modulo di Sicurezza Hardware (1) comprendente: − mezzi di memorizzazione (2) per la memorizzazione di un seme master (S), − una unità hardware (4) per la generazione di numeri casuali o pseudocasuali, − una unità di elaborazione (3) comprendente una memoria volatile (3A), come ad esempio una RAM, dove detta unità di elaborazione (3) è collegata a detti mezzi di memorizzazione (2) ed a detta unità hardware (4) e configurata per: o richiedere a detta unità hardware (4) di generare un numero casuale o pseudocasuale come seme master (S), o memorizzare detto seme master (S) in detti mezzi di memorizzazione (2), o ricevere un codice identificativo univoco (CU) associato ad un utente (U), un documento digitale (D), nonché una richiesta di firma di detto documento digitale (D) da parte di detto utente (U), o combinare detto seme master (S) con detto codice identificativo univoco (CU) di detto utente (U) in modo tale da ottenere una unica stringa, o applicare su detta stringa una funzione pseudocasuale per ottenere una ulteriore stringa, differente da detta stringa, o generare una coppia di chiavi crittografiche (CC) formata da una chiave pubblica (KPU) e da una chiave privata (KPR), a partire da detta ulteriore stringa, tramite un algoritmo per la generazione di chiavi crittografiche, o memorizzare temporaneamente detta coppia di chiavi crittografiche (CC) in detta memoria volatile (3A), o firmare detto documento digitale (D) con detta chiave privata (KPR), o eliminare detta coppia di chiavi crittografiche (CC) da detta memoria volatile (3A), o fornire in uscita detto documento digitale (D) firmato.
  8. 8. Modulo di Sicurezza Hardware (1) secondo la rivendicazione precedente, caratterizzato dal fatto che detta unità hardware (4) è un Generatore di Numeri Casuali per generare un numero casuale o un Generatore di Numeri Pseudocasuali per generare un numero pseudocasuale.
  9. 9. Modulo di Sicurezza Hardware (1) secondo la rivendicazione 7 o 8, caratterizzato dal fatto che detti mezzi di memorizzazione (2) sono una memoria di massa; detta memoria di massa essendo preferibilmente un hard disk.
  10. 10. Modulo di Sicurezza Hardware (1) secondo una qualsiasi delle rivendicazioni 7-9, caratterizzato dal fatto che detta unità di elaborazione (3) è configurata per generare detta coppia di chiavi crittografiche (CC) in detta memoria volatile (3A).
IT201800002548A 2018-02-09 2018-02-09 Metodo per firmare un documento digitale tramite un Modulo di Sicurezza Hardware (HSM) e relativo Modulo di Sicurezza Hardware. IT201800002548A1 (it)

Priority Applications (1)

Application Number Priority Date Filing Date Title
IT201800002548A IT201800002548A1 (it) 2018-02-09 2018-02-09 Metodo per firmare un documento digitale tramite un Modulo di Sicurezza Hardware (HSM) e relativo Modulo di Sicurezza Hardware.

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
IT201800002548A IT201800002548A1 (it) 2018-02-09 2018-02-09 Metodo per firmare un documento digitale tramite un Modulo di Sicurezza Hardware (HSM) e relativo Modulo di Sicurezza Hardware.

Publications (1)

Publication Number Publication Date
IT201800002548A1 true IT201800002548A1 (it) 2019-08-09

Family

ID=62167665

Family Applications (1)

Application Number Title Priority Date Filing Date
IT201800002548A IT201800002548A1 (it) 2018-02-09 2018-02-09 Metodo per firmare un documento digitale tramite un Modulo di Sicurezza Hardware (HSM) e relativo Modulo di Sicurezza Hardware.

Country Status (1)

Country Link
IT (1) IT201800002548A1 (it)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6687375B1 (en) * 1999-06-02 2004-02-03 International Business Machines Corporation Generating user-dependent keys and random numbers
US20070174614A1 (en) * 2005-02-18 2007-07-26 Rsa Security Inc. Derivative seeds
US20110185177A1 (en) * 2010-01-25 2011-07-28 Compugroup Holding Ag Method for generating an asymmetric cryptographic key pair and its application

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6687375B1 (en) * 1999-06-02 2004-02-03 International Business Machines Corporation Generating user-dependent keys and random numbers
US20070174614A1 (en) * 2005-02-18 2007-07-26 Rsa Security Inc. Derivative seeds
US20110185177A1 (en) * 2010-01-25 2011-07-28 Compugroup Holding Ag Method for generating an asymmetric cryptographic key pair and its application

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
ANONYMOUS: "Key Generator, Primary Keys and Seeds - A Practical Guide to TPM 2.0", 28 January 2015 (2015-01-28), XP055491726, Retrieved from the Internet <URL:https://ebrary.net/24766/computer_science/generator> [retrieved on 20180711] *

Similar Documents

Publication Publication Date Title
US11620387B2 (en) Host attestation
KR101999188B1 (ko) 비밀 공유를 위한 타원 곡선 암호를 사용하는 개인용 장치 보안
CN108292402B (zh) 用于信息的安全交换的公共秘密的确定和层级确定性密钥
CN104363215B (zh) 一种基于属性的加密方法和系统
US20100005318A1 (en) Process for securing data in a storage unit
CN103560882B (zh) 一种基于标识的椭圆曲线密码系统
US20180183774A1 (en) Key distribution in a distributed computing environment
JP2020502856A5 (it)
KR20180115701A (ko) 지갑 관리 시스템과 연계된 블록 체인 기반 시스템을 위한 암호키의 안전한 다기관 손실 방지 저장 및 전송
JP2009171521A (ja) 電子署名方式、電子署名プログラムおよび電子署名装置
US20050005136A1 (en) Security method and apparatus using biometric data
CN103580855B (zh) 一种基于共享技术的UsbKey密钥管理方法
CN106878013B (zh) 一种文件的加密、解密方法和装置
US7000110B1 (en) One-way function generation method, one-way function value generation device, proving device, authentication method, and authentication device
US11212082B2 (en) Ciphertext based quorum cryptosystem
JP2010050760A (ja) コンテンツ保護装置、および、コンテンツ利用装置
JP2001513227A (ja) ネットワーク環境における秘密最新乱数の管理および使用
CN106603246A (zh) 一种sm2数字签名分割生成方法及系统
US7693279B2 (en) Security method and apparatus using biometric data
US20180183771A1 (en) Key revocation
JP2014175970A (ja) 情報配信システム、情報処理装置及びプログラム
EP4144040A1 (en) Generating shared private keys
CN116830523A (zh) 阈值密钥交换
KR20100081873A (ko) 분산된 데이터베이스 시스템에서 공통 id를 이용한 레코드 저장 방법 및 무결성 확인 방법
US11438156B2 (en) Method and system for securing data