Il modulo di un certificato TLS identifica in modo univoco il client?

3

Sto lavorando a un progetto utilizzando una configurazione peer fidato . Voglio un modo per identificare in modo univoco ciascun attore nel sistema, idealmente anche attraverso riemissioni di certificati.

Nella mia comprensione, il modulo di un certificato TLS identifica in modo univoco il client e non dovrebbe cambiare quando il certificato viene riemesso. L'unica cosa che cambierebbe il modulo sarebbe se la chiave privata fosse compromessa e quindi modificata. È corretto?

EDIT: inoltre, è corretto supporre che ci sia un mapping 1: 1 tra chiavi private e moduli?

    
posta Ryan Kennedy 09.07.2015 - 15:38
fonte

1 risposta

5

Se stiamo parlando di RSA, la chiave pubblica è, nominalmente, la combinazione di:

  • Il modulo n
  • L'esponente pubblico e

mentre la chiave privata è la conoscenza dei fattori primi di n (tradizionalmente, n è il prodotto di due fattori primi p e q di dimensioni simili). Formalmente , la chiave privata è in realtà la combinazione del modulo e l'esponente privato d , ma se conosci n , e e d quindi puoi ricalcolare i fattori p e q .

Quindi, se due chiavi pubbliche distinte condividono lo stesso modulo (quindi gli stessi fattori), allora hanno la "stessa" chiave privata, nel senso che chiunque conosca la chiave privata per una delle chiavi pubbliche conosce anche il chiave privata per l'altra chiave pubblica. Pertanto, le due chiavi sono "uguali" o almeno corrispondono alla stessa conoscenza privata.

Quindi puoi, in effetti, affermare che il modulo RSA da solo identifica in modo univoco una chiave privata, quindi (presumibilmente) un proprietario di una chiave privata.

Tuttavia , devi stare attento che mentre una chiave privata è normalmente nota a un singolo proprietario (altrimenti non è realmente "privata"), una singola persona può perfettamente possedere diversi coppie di chiavi. In particolare, quando un certificato viene "riemesso", questo è davvero un nuovo certificato, che può contenere o meno la stessa chiave. Ciò dipende dalle procedure CA: alcune emetteranno nuovamente i certificati con la stessa chiave pubblica, mentre altri ancora insisteranno sulla generazione di una nuova coppia di chiavi. Non puoi supporre che quando un server "rinnova" il suo certificato, il nuovo certificato includerà la stessa chiave pubblica.

Inoltre, la nozione di "modulo" è specifica per RSA e non si applica ad altri tipi di chiavi pubici, in particolare chiavi EC (utilizzate ad esempio per ECDSA). Se vuoi identificare le cose con la chiave pubblica, sei incoraggiato a utilizzare semplicemente la chiave pubblica intera , come codificata nel certificato.

    
risposta data 09.07.2015 - 16:13
fonte

Leggi altre domande sui tag