Presenterò la mia domanda con la mia comprensione della PKI nel caso in cui abbia qualche idea sbagliata.
-
Il proprietario del dominio D genera una coppia di chiavi pubblica-privata (d, e) e costruisce un certificato c composto da (d, D, intervallo di tempo, altri metadati).
-
D convince l'autorità di certificazione X che le informazioni in c sono accurate.
-
X calcola H (c) usando una funzione di hash crittografica H.
-
X crittografa H (c) usando la loro chiave privata per generare c ', e restituisce a D.
-
Provo ad accedere a D, e D mi invia (c, c ')
-
Il mio browser applica la chiave pubblica di X a c 'e la confronta con H (c).
-
Se corrispondono, il mio browser si fida di c condizionale per fidarsi di X. Ripeti fino all'autorità di certificazione radice implicitamente attendibile.
I problemi con H possono indebolire lo schema; questo è il motivo per cui le persone smettono di usare MD5 e si stanno allontanando da SHA1. Quindi, perché non saltare semplicemente il passaggio 3 e crittografare c direttamente?
Da quanto ho capito, uno dei motivi è limitare la lunghezza del messaggio da crittografare / decifrare nei passaggi 4, 6. Tuttavia il mio browser ha solo bisogno di (d, D, intervallo di tempo) (e nemmeno di D per le CA intermedie ). Questo è limitato, probabilmente < 10 volte la lunghezza di H (c), e in genere molto più breve del contenuto della pagina che il mio browser presumibilmente decrypt comunque. I metadati potrebbero essere utili per controllare le CA per mantenerle oneste, ma tali informazioni potrebbero essere fornite separatamente dalla CA (ad esempio, scritte in questo append solo log ).