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?
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 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) .
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:
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à)
Leggi altre domande sui tag tls certificates