Relacionado con, por supuesto, la vulnerabilidad del corazón , he estado leyendo las noticias sobre el peor escenario para este ataque, que es la extracción. de la clave privada SSL, porque, por supuesto, esto permitiría al atacante descifrar todo el tráfico hacia y desde el servidor comprometido, incluyendo [probablemente, dependiendo de la confidencialidad directa] cualquier tráfico que haya sido capturado y almacenado en algún lugar.
Esto me hizo pensar, asumiendo el peor de los casos, que su servidor vulnerable Heartbleed se había hecho eco de la memoria que contenía su clave privada ... ¿cómo podría el atacante diferenciarlo de otros contenidos de la memoria, o memoria no inicializada, o qué? ¿Tienes? ¿Hay un encabezado / pie de página, o un patrón revelador en los datos clave en sí? Sé que algunos formularios de clave RSA (PEM / base64) tienen encabezados / pies de página en el archivo ( -----BEGIN FOO BAR KEY-----
y -----END FOO BAR KEY-----
), aunque tengo problemas para imaginar esas cadenas cargadas en la memoria. ¿Se puede regalar por tener algo reconocible con un puntero?
No parece ser algo que se pueda hacer con fuerza bruta (al probar cada combinación de X bits de contenido de memoria contra 64 KB de memoria parece que generaría un gran número de permutaciones astronómicas).
Entonces, ¿cómo se hace? ¿Cómo se reconoce una clave criptográfica en la memoria como una clave criptográfica? Y en una pregunta relacionada, ¿es la respuesta diferente o la misma para una clave criptográfica simétrica? (como el que podría extraer con un ataque de arranque en frío contra un sistema que usa cifrado de disco completo, por ejemplo).