I certificati utilizzano un algoritmo di firma digitale basato sulla crittografia asimmetrica. Quindi implica una coppia di chiavi (pubblica / privata).
L'idea globale è che il certificato deve essere firmato da qualcuno (normalmente una CA). La firma è un'operazione di crittografia che può essere eseguita se si conosce la chiave privata. La verifica della firma può essere effettuata se si conosce la chiave pubblica corrispondente a quella privata.
Quindi quando ottieni un certificato, c'è una firma digitale con esso e devi conoscere già la chiave pubblica della CA (segno globale nel tuo esempio).
Il processo di verifica garantisce che la firma sia stata eseguita da qualcuno in modo da conoscere la chiave privata corrispondente alla chiave pubblica che conosci.
Una CA non dovrebbe permettere a nessuno di conoscere la sua chiave privata.
Quindi nessuno può simulare una firma della CA, a meno che non sia riuscito a ottenere la chiave privata.
Per essere più precisi, la firma è:
La verifica è quindi
-
decripta la firma
-
hash il certificato
-
confronta i risultati
Se i risultati non sono gli stessi significa che la firma è un falso (realizzato senza la chiave privata) o che le informazioni sul certificato sono state modificate dopo la firma. Gli stessi risultati indicano che il certificato è valido.