Devo utilizzare il numero di serie del certificato o l'identificativo della chiave soggetto per cercare la chiave pubblica?

1

Sto progettando un meccanismo di autenticazione API simile a quello utilizzato da AWS . Come parte di questo, ho bisogno di cercare quale chiave pubblica appartiene a quale utente verificare. Le chiavi pubbliche provengono da certificati x509 che abbiamo rilasciato all'utente, quindi so che hanno sia il numero di serie che l'identificatore della chiave soggetto (SKID). Devo utilizzare il numero di serie o lo SKID come ID univoco?

Il vantaggio di SKID è che è un hash della chiave pubblica, quindi può essere calcolato indipendentemente dal certificato. Tuttavia, il numero di serie è semplicemente un numero intero, molto più facile da gestire.

    
posta nullgraph 30.07.2015 - 23:38
fonte

1 risposta

0

Se accetti solo certificati emessi da te e convalidi tale circostanza, l'utilizzo di SKID non comporta alcun vantaggio in termini di sicurezza rispetto al numero di serie. Se utilizzi il numero di serie e accetti i certificati autofirmati (o altri certificati di CA che non sei), un utente malintenzionato che conosce la chiave pubblica può impersonare gli utenti.

Altrimenti, non c'è alcuna differenza di sicurezza. Naturalmente, dovrai assicurarti che gli SKID che emetti siano davvero unici e che l'autore dell'attacco non possa ad es. abusare del fatto che la tua infrastruttura di firma di backup non può fare a meno dei duplicati.

Poiché la tua risposta indica che tutti i certificati sono firmati da te, ti suggerirei di utilizzare gli SKID. Puoi fare in modo che la tua infrastruttura di firma risparmi alcuni bit della larghezza int desiderata (ad esempio 64 bit) e utilizzi quei bit risparmiati per archiviare il certificato del firmatario, sia sul lato storage che già con i firmatari, quindi puoi garantire anche l'unicità.

    
risposta data 31.07.2015 - 06:42
fonte

Leggi altre domande sui tag