Il diagramma di seguito illustra il concatenamento di certificati digitali fino a un certificato di root pubblicamente attendibile:
Ho svolto ricerche su come le autorità di root di fiducia (come GlobalSign o Verisign) sono utilizzate per autenticare le chiavi pubbliche di qualcuno per identificare quella persona come un editore affidabile. Penso che mi manchi qualcosa, per favore fatemi sapere se sto fraintendendo qualcosa qui.
Quindi la firma digitale implica l'hashing di alcuni dati (digest di messaggi) con la chiave privata di un editore attendibile. I consumatori di tali dati possono utilizzare la chiave pubblica corrispondente del publisher di fiducia per verificare i dati con hash. La verifica della chiave pubblica del publisher attendibile (certificato) fino a un'autorità di radice attendibile stabilisce la fiducia che l'editore fidato è chi dicono di essere, corretto?
Affinché questa catena di fiducia funzioni, capisco l'importanza di mantenere private le chiavi private. Ma non riesco a vedere come questo offre fiducia o sicurezza su una macchina compromessa.
Supponiamo che io sia un malintenzionato che sta tentando di falsificare un utente su una macchina di cui sono già al comando. Come ogni buon malware, voglio che l'utente pensi che ciò che stanno facendo sia affidabile. Quindi sembra che tutto ciò che devo fare sia eliminare tutti i certificati validi rilevanti nell'archivio certificati di Windows di CA di fiducia e sostituirli con certificati autofirmati falsi che sembrano essere validi. Potrei anche ricreare una catena di certificati affidabili, come nell'immagine sopra.
Questo non sembra ancora troppo per me. Quindi, per completare lo spoof, avrei dovuto intercettare i dati validi e firmarlo di nuovo con il mio falso certificato dell'editore, "fidato" fino alla "CA radice". Questo sembra molto più semplice del furto della chiave privata di un editore.
EDIT: C'è un modo per proteggersi da un attacco così mirato? Per la mia applicazione molto specifica, ho bisogno di sapere con certezza che un certificato è affidabile, ma potrebbe non essere possibile su una macchina compromessa.