Firme digitali

Una firma digitale è un'uscita crittografica utilizzata per verificare l'autenticità dei dati. Un algoritmo di firma digitale consente due operazioni distinte:

  • un'operazione di firma, che utilizza una chiave di firma per produrre una firma sui dati non elaborati

  • un'operazione di verifica, in cui la firma può essere convalidata da una parte che non conosce la chiave di firma

Le finalità principali di una firma digitale sono:

  • verifica dell'integrità dei dati firmati
  • Non ripudio se la persona che ha firmato dichiara che la firma non è autentica

Le firme digitali si basano sulla crittografia asimmetrica, nota anche come crittografia a chiave pubblica. Una chiave asimmetrica è costituita da una coppia di chiave pubblica/privata. La chiave privata viene utilizzata per creare una firma e la chiave pubblica corrispondente viene utilizzata per verificarla.

Esempi di casi d'uso per una firma digitale

Puoi convalidare le build utilizzando le firme digitali. Ad esempio, dato un file binario con firma digitale di una chiave privata, puoi verificarne la validità utilizzando la chiave pubblica corrispondente alla chiave privata. Se la firma del file binario non è valida, significa che il file è stato manomesso e/o danneggiato.

Un altro esempio è la convalida dell'oggetto di un certificato emesso da un'autorità di certificazione (CA). Un'autorità di certificazione emette un certificato a un soggetto in base alla proprietà da parte del soggetto della parte della chiave privata di una chiave pubblica/privata. Il certificato contiene una firma digitale creata con la chiave privata del soggetto. Il certificato contiene anche la parte della chiave pubblica dell'entità della chiave pubblica/privata. Un'entità che interagisce con il soggetto utilizza la chiave pubblica del soggetto e regole di verifica del certificato aggiuntive per convalidare la firma. Se la firma non corrisponde ai dati in questione o se vengono violate le regole di verifica prescritte dal certificato, la firma verrà considerata non valida.

Flusso di lavoro per la firma digitale

Di seguito è descritto il flusso per la creazione e la convalida di una firma. I due partecipanti a questo flusso di lavoro sono il firmatario dei dati e il destinatario dei dati.

  1. Il firmatario crea una chiave asimmetrica che supporta la firma digitale.

    Il firmatario può utilizzare questa chiave per creare più firme.

  2. Il firmatario esegue un'operazione con chiave privata sui dati per creare una firma digitale.

  3. Il firmatario fornisce i dati e la firma digitale al destinatario dei dati.

  4. Il destinatario utilizza la parte della chiave pubblica della coppia di chiave pubblica/privata del firmatario per verificare la firma digitale. Se la verifica non va a buon fine, significa che i dati sono stati alterati.

Algoritmi di firma

Cloud Key Management Service supporta gli algoritmi RSA e a curva ellittica (EC) per la firma digitale. Entrambi questi algoritmi standard di settore offrono la possibilità di scegliere le dimensioni della chiave e l'algoritmo di digest.

La crittografia con curve ellittiche si basa su funzioni hash unidirezionali e sulla moltiplicazione di punti per calcolare i punti su una curva ellittica, combinata con la complessità di determinare il moltiplicando per un punto in base alla sua origine. Questa difficoltà nella determinazione del moltiplicando è il vantaggio crittografico della crittografia EC. Maggiore è la dimensione della curva, più è difficile calcolare il moltiplicando. Un vantaggio della crittografia EC è che una chiave EC ha una dimensione inferiore rispetto a una chiave RSA che offre la stessa sicurezza crittografica.

La crittografia RSA si basa sulla difficoltà di fattorizzare un numero intero grande in due o più fattori. Maggiore è la dimensione della chiave, più è difficile fattorizzare gli interi.

Funzionalità di firma digitale di Cloud KMS

Cloud KMS fornisce le seguenti funzionalità per la creazione e la convalida delle firme digitali.

Cloud KMS non fornisce direttamente la possibilità di convalidare una firma digitale. Devi invece convalidare una firma digitale utilizzando SDK e strumenti disponibili pubblicamente, come OpenSSL. Questi SDK e strumenti richiedono la chiave pubblica recuperata da Cloud KMS. Per informazioni su come utilizzare SDK e strumenti aperti, consulta la sezione Convalida di una firma con curva ellittica e Convalida di una firma RSA.