Sto osservando l'attributo Subject Key Identifier
di un Certificato CA e sto cercando di capire il ruolo che svolge nella convalida e deduco in che modo la validazione del software client potrebbe sbagliare.
-
Qual è il ruolo del codice identificativo della chiave soggetto nella convalida di un certificato CA o di fine?
Qualsiasi conoscenza su come implementare i pacchetti software più diffusi sarebbe utile -
Qual è la cosa peggiore che un utente malintenzionato potrebbe fare se potesse generare una chiave pubblica che contiene anche lo stesso hash?
Mentre leggo RFC3280 vedo che l'identificatore chiave oggetto (SKI) è come la colla usata per costruire e verificare la catena PKI. Lo SKI sembra anche essere una versione più sicura rispetto al numero seriale e al nome del certificato che è stato utilizzato anche per unire due certificati insieme.
Per quanto riguarda la convalida del client dell'hash del certificato, i client eseguono semplicemente un "pattern match" dello SKI, oppure lo SKI della catena è effettivamente calcolato come descritto di seguito:
For CA certificates, subject key identifiers SHOULD be derived from
the public key or a method that generates unique values. Two common
methods for generating key identifiers from the public key are:(1) The keyIdentifier is composed of the 160-bit SHA-1 hash of the value of the BIT STRING subjectPublicKey (excluding the tag, length, and number of unused bits). (2) The keyIdentifier is composed of a four bit type field with the value 0100 followed by the least significant 60 bits of the SHA-1 hash of the value of the BIT STRING subjectPublicKey (excluding the tag, length, and number of unused bit string bits).
Un rischio di esempio che sto tentando di mitigare è un certificato CA non valido con una chiave pubblica che non ha hash su uno SKI corretto (fatto da modifica manuale ASN.1 e dimettendo il certificato dalla radice dell'attaccante)