Perché la chiave privata del certificato Superfish è così facilmente estraibile?

62

Robert Graham ha dettagliato su sul blog Errata Security come è stato in grado di ottenere il chiave privata del certificato Superfish. Comprendo che ora gli aggressori possono utilizzare questa chiave per generare certificati propri che saranno firmati dalla Superfish CA.

Lo stesso attacco non funzionerà su altri certificati di root già presenti su un computer? Perché la chiave privata era sul computer in primo luogo?

    
posta jogabonito 20.02.2015 - 05:40
fonte

4 risposte

59

A meno che il malware Superfish non sia stato installato sul tuo sistema (che potrebbe essere se hai acquistato una macchina Lenovo), non devi preoccuparti. Questo attacco ha funzionato perché il segreto rivelato era necessario per il malware per dirottare i dati; non fa parte del modo in cui i certificati legittimi sono autenticati.

Aiuta a capire le relazioni tra un certificato, una chiave pubblica e una chiave privata. Una chiave privata è un numero segreto utilizzato per firmare i messaggi con le firme digitali (o per crittografare il traffico web) e ha una chiave pubblica corrispondente che può essere utilizzata per verificare tali firme. Un certificato è un documento pubblico che contiene una chiave pubblica; i proprietari dei siti Web inseriscono le loro chiavi pubbliche sui certificati e li inviano alle società denominate Autorità di certificazione (CA) che li firmano digitalmente per dimostrare che i loro certificati sono autentici. Le firme digitali assicurano che il documento non sia stato modificato, assicurandoti che la chiave pubblica che contiene sia la chiave autentica del sito che stai visitando.

Le CA sono aziende che tutti accettano di affidarsi solo ai certificati firmati da fonti legittime. Hanno anche una coppia di chiavi privata e pubblica. Mantengono la chiave privata molto segreta, bloccata in un dispositivo crittografico sicuro chiamato HSM (Hardware Security Module) e limitano l'accesso ad esso in modo che possa essere utilizzato solo per firmare il certificato di un cliente quando il cliente genera una nuova chiave. Ma per essere utili, tutti sul web devono conoscere le loro chiavi pubbliche. Quindi queste CA mettono la propria chiave pubblica su un certificato speciale e firmano con la propria chiave privata ("autofirmazione"). Quindi inviano questi "certificati radice" autofirmati ai venditori di browser e ai fornitori di sistemi operativi, che li includono con i loro prodotti. Una vera CA non manderebbe mai e poi mai le proprie chiavi private!

I certificati radice dell'autorità attendibile sono i documenti che convalidano tutti i certificati di tutte le connessioni effettuate dal computer. Pertanto, il tuo computer deve fidarsi di loro. Questo malware sta installando un certificato inaffidabile in una posizione di massima affidabilità, compromettendo la sicurezza della macchina consentendo a chiunque conosca questa chiave di falsificare un certificato per qualsiasi sito, nascondendo le prove della sua manomissione.

Il malware abusa della sua posizione generando false chiavi pubbliche e private per ogni sito che visiti; dopo averlo collegato, inserisce il suo carico utile nella pagina del sito web. Affinché il tuo browser si fidi di queste false chiavi e non ti dia avvertenze, il malware genera un certificato contraffatto che induce il tuo browser a credere che le chiavi siano legittime. Ma come ogni certificato, la contraffazione deve essere firmata da una CA attendibile. Per firmare, il malware ha bisogno di una chiave pubblica e privata, proprio come una vera CA. Poiché la fasulla CA sta forgiando questi certificati direttamente nel tuo computer, anche la chiave privata deve essere all'interno del tuo computer. È impossibile mantenere tali cose segrete dal proprietario del computer, ma hanno provato prendendo alcuni passi rudimentali per nasconderlo. Il blog che hai collegato descrive come ha scoperto il segreto.

Nessuna autorità di certificazione legittima consentirebbe mai la divulgazione della propria chiave privata, tanto meno di inviarla a un gruppo di proprietari di computer casuali. C'è stato un caso in cui un'autorità di certificazione ha fatto trapelare la sua chiave segreta; la loro reputazione è stata rovinata e sono andati in bancarotta in un mese. Dato che il tuo computer non contiene le chiavi private delle legittime autorità di certificazione, non c'è alcun segreto per l'attacco di un hacker.

    
risposta data 20.02.2015 - 06:58
fonte
31

A causa di come funziona Superfish, il certificato e la sua chiave privata devono essere facilmente estraibili.

Superfish crea rapidamente certificati firmati per le connessioni di rete che intercetta, senza contattare un server centrale. Per fare ciò, la chiave privata per la Superfish CA deve essere incorporata nel software in una forma facile da usare. Ora, non avevano bisogno di renderlo un file .pem in chiaro, ma anche la migliore sicurezza non avrebbe rallentato un serio lavoro di reverse engineering di più di un giorno o due.

Non puoi condividere un segreto con il mondo intero e non aspettarti che qualcuno lo trovi. Le autorità di certificazione reali fanno un lavoro molto migliore per proteggere la loro chiave privata, garantendo che non lasci mai il loro computer con firma dei certificati.

    
risposta data 20.02.2015 - 06:13
fonte
2

Se segui le best practice quando si tratta di proteggere le chiavi private dei certificati di root, sicuramente non sarebbe stato così facile.

Se comprendo correttamente il blog di Robert, la password che protegge la chiave privata è stata incorporata come stringa nei binari adware forniti con i laptop. È come spedire la tua cassastrong insieme alla tua chiave fissata in modo oscuro sul fondo della cassastrong. Non è una buona idea! Anche la password non era molto strong, il che significava che anche se non era incorporato nell'adware perché qualcuno potesse vederlo, una determinata persona con conoscenza e risorse potrebbe essere in grado di craccarla in un ragionevole lasso di tempo.

La password per estrarre la chiave privata era molto probabilmente incorporata nell'adware per consentire all'adware di decodificare il traffico firmato dal certificato radice Superfish al volo per iniettare il markup pubblicitario che l'utente avrebbe finalmente visualizzato sulla pagina web.

Questo non accadrebbe mai alle Autorità di certificazione responsabili e sono abbastanza sicuro che una CA debba rispettare determinati standard, o anche leggi, che vieterebbero loro di fare una cosa del genere.

Se fosse così facile ottenere le chiavi private di tutti i certificati di root, PKI non avrebbe avuto alcuno scopo e avrebbe protetto assolutamente la notazione.

    
risposta data 20.02.2015 - 06:02
fonte
2

Superfish agisce come un uomo nel mezzo. Genera dinamicamente le chiavi che il tuo browser si fida dei domini che visiti. Per generare quelle chiavi ha bisogno del certificato privato, e mentre è possibile più offuscamento, alla fine non può nascondere quella chiave.

Tuttavia, ciò che potrebbe essere fatto è generare una coppia di chiavi univoca per la coppia di certificati su ciascun computer in cui è installato il software. Ciò significherebbe che l'estrazione della chiave utilizzata per la CA principale installata su un computer non consentirebbe l'accesso alle comunicazioni di un altro computer con il software installato. Questo non è esattamente scienza missilistica, ed è imperdonabile che Komodia non lo faccia.

Vorrei sapere se altre società che fanno questo tipo di MITM stanno emettendo chiavi univoche. Per esempio. localmente ho trovato certificati per "Skype Click to Call" e "avast! WEb / Mail Shield", che presumibilmente funzionano in modo simile. Ho verificato che se visito il link il mio browser vede un certificato firmato dalla chiave avast.

    
risposta data 22.02.2015 - 17:45
fonte

Leggi altre domande sui tag