Qual è la differenza tra un "Algoritmo di impronta" "Algoritmo di firma" e "Algoritmo hash di firma" per un certificato?

35

Sono un po 'confuso sulle differenze tra Signature Algorithm , Signature Hash Algorithm e Thumbprint Algorithm che sono presenti nei certificati SSL / TLS. Qualcuno può elaborare per favore?

    
posta Mike B 20.10.2014 - 22:31
fonte

2 risposte

39

Sei confuso perché alcune persone (sì, sto guardando te, Microsoft) hanno usato i termini in modo incoerente.

Un algoritmo di firma è un algoritmo crittografico tale che:

  • Il firmatario possiede una coppia di chiavi pubblica / privata . La chiave pubblica è pubblica, la chiave privata è privata; anche se entrambe le chiavi sono collegate matematicamente insieme, non è possibile ricalcolare la chiave privata dalla chiave pubblica (motivo per cui la chiave pubblica potrebbe essere resa pubblica in modo sicuro).
  • Su un dato messaggio di input, il firmatario può usare la sua chiave privata per calcolare una firma , che è specifica sia per la coppia di chiavi del firmatario, sia per il messaggio di input.
  • Esiste un algoritmo di verifica che accetta come input il messaggio, la firma e la chiave pubblica e risponde "true" (corrispondono) o "false" (non lo fanno).

Il cardine della sicurezza della firma è che non dovrebbe essere possibile, senza la conoscenza della chiave privata, generare coppie di messaggi + firma che l'algoritmo di verifica accetterà.

Potresti incontrare alcune "spiegazioni" che provano a dire che le firme digitali sono una sorta di crittografia; di solito lo descrivono come "crittografate con la chiave privata". Non crederci; queste spiegazioni sono in realtà sbagliate e confuse.

Per motivi tecnici, gli algoritmi di firma (sia per la firma che per la verifica) spesso iniziano con una funzione di hash . Una funzione di hash è un algoritmo completamente pubblico senza chiave. Il punto delle funzioni hash è che possono consumare fino a terabyte di dati e produrre un "digest" (detto anche "impronta digitale" o anche "impronta digitale") che ha dimensioni fisse e ridotte. Gli algoritmi di firma ne hanno bisogno, perché lavorano con valori in una struttura algebrica di dimensioni finite, e quindi non possono ospitare messaggi enormi. Pertanto, il messaggio viene prima sottoposto a hash e solo il valore hash viene utilizzato per generare o verificare una firma.

Questo algoritmo di hash, quando viene usato come primo passo di un algoritmo di generazione o verifica della firma, sarà chiamato "algoritmo hash della firma". Quando diciamo qualcosa come "RSA / SHA-256", intendiamo "firma RSA, con SHA-256 come funzione hash di accompagnamento".

Un "algoritmo di identificazione del pollice" è un altro nome per una funzione di hash. Si incontra spesso quando si parla di certificati : la "identificazione personale" di un certificato è in realtà il risultato di una funzione di hash applicata al certificato stesso (nei sistemi Windows viene utilizzata la funzione hash SHA-1) .

    
risposta data 20.10.2014 - 22:45
fonte
1

Sebbene la risposta accettata fornisca alcuni dettagli su come viene eseguito il calcolo, non risolve affatto la questione originale: Algoritmo della firma, Algoritmo hash della firma e Algoritmo di identificazione personale presenti nei certificati SSL / TLS. qual è il pezzo dell'equazione (specialmente se Microsoft lo confonde)?

La risposta sembra abbastanza semplice - da:

link

e contrassegnato come risposta corretta laggiù:

Differences between "Signature algorithm" and "Signature Hash Algorithm"

They are used to determine the signature algorithm and hash function used to sign the certificate. This information is used by certificate chaining engine to validate the signature of the certificate. Certificate chaining engine calculates a hash over a certificate (signed part). Hash method is selected from Signature Hash Algorithm field. Then certificate chaining engine decodes attached signature by using signature algorithm specified in the Signature Algorithm field and recovers signed hash. If both hashes match, then signature is valid, if they differ, the signature is considered invalid.

La mia aggiunta da un'altra fonte - Thumbprint Algo - semplice proprietà non crittografica utilizzata per identificare il certificato su un determinato sistema (non autentificarlo o verificarne la validità)

    
risposta data 30.03.2017 - 00:47
fonte

Leggi altre domande sui tag