Relativo a, naturalmente, la vulnerabilità heartbleed , ho letto le notizie sullo scenario peggiore per questo attacco è l'estrazione della chiave privata SSL, perché, naturalmente, questo consentirebbe all'utente malintenzionato di decrittografare tutto il traffico da e verso il server compromesso, incluso [probabilmente, a seconda del segreto di inoltro] qualsiasi traffico che è stato catturato e memorizzato da qualche parte.
Questo mi ha fatto pensare, ipotizzando lo scenario peggiore, che il tuo server vulnerabile Heartbleed avesse echeggiato la memoria posteriore contenente la tua chiave privata ... come l'hacker sarebbe stato in grado di distinguerlo da altri contenuti di memoria, o memoria non inizializzata, o cosa? hai? C'è un'intestazione / piè di pagina o uno schema rivelatore nei dati chiave stessi? So che alcuni moduli chiave RSA (PEM / base64) hanno intestazioni / piè di pagina nel file ( -----BEGIN FOO BAR KEY-----
e -----END FOO BAR KEY-----
), anche se ho difficoltà a immaginare quelle stringhe caricate in memoria. È forse dato via dall'avere qualcosa di riconoscibile usando un puntatore ad esso?
Non sembra qualcosa che puoi usare per forza bruta (provare ogni combinazione di bit di memoria X con 64 KB di memoria sembra che genererebbe un numero astronomicamente elevato di permutazioni).
Quindi, come va? In che modo una chiave crittografica in memoria viene riconosciuta come chiave crittografica? E in una domanda correlata, la risposta è diversa o uguale per una chiave crittografica simmetrica? (ad esempio potresti estrarre con un attacco di avvio a freddo contro un sistema che utilizza la crittografia completa del disco, per esempio.)