¿Se puede recuperar texto descifrado con volcado de memoria con privilegios de root en Linux?

3

Supongamos que Alice y Bob se están comunicando mediante un canal seguro y ambos usan la clave simétrica algo (AES) para el cifrado / descifrado. El escenario es como

1. Alice encrypt data M1 with secret key K and sends cipher text C1 to Bob.
2. Bob receives cipher text C1 and decrypt it to get plaintext M1.

3. Bob encrypt data M2 with secret key K and sends cipher text C2 to Alice.
4. Alice receives cipher text C2 and decrypt it to get plaintext M2.

Estas secuencias se siguen repetidamente hasta que finaliza la comunicación.

Tanto Alice como Bob están usando el sistema Linux con el último kernel.

Tengo las siguientes preguntas con respecto al punto de vista de seguridad.

  1. Si un intruso logra obtener privilegios de root en el sistema de Alice, ¿podrá el intruso capturar el texto plano M2 almacenado en la memoria mientras Alice realiza la operación de descifrado?

  2. En caso de que la clave secreta K se almacene en la memoria (no estoy seguro ** si lo es) durante la encriptación / descifrado, entonces el Intruder también puede recuperar la clave secreta K de la misma manera?

Edición 1:

A partir de ambas respuestas, se conoce mediante MEMORY DUMP, es posible recuperar la clave secreta y el texto sin formato.

¿Puedes explicar con el ejemplo?

    
pregunta bholanath 22.06.2017 - 08:05
fuente

2 respuestas

5

A esta pregunta le falta el contexto de implementación, es decir, el software que implementa el algoritmo en cuestión. Con esa advertencia, las respuestas son SÍ y SÍ. Los intrusos con privilegios de raíz pueden extraer tanto los mensajes de texto plano como la clave.

Las implementaciones recientes son conscientes de esto, y tratan de borrar la clave de la memoria lo antes posible (las interpretaciones de este "ASAP" varían). Sin embargo, es prácticamente imposible reducir la exposición a cero tanto para el mensaje como para la clave.

En el mejor de los casos, la clave se puede proteger en una solución asistida por hardware ( SGX o un HSM ) - o incluso una solución de descifrado separada (no como implícito por usted: descifrado en el mismo sistema / kernel.

El mensaje en sí no puede protegerse siempre que sea necesario para su uso en ese sistema. Sin embargo, se puede manejar algo de oscuridad. por ejemplo, algunas técnicas de uso de software que superan un simple análisis de "cadenas". Desearía haber almacenado la referencia en algún lugar. No se puede enlazar aquí.

    
respondido por el Sas3 22.06.2017 - 08:33
fuente
3

Sí a ambas preguntas. No importa mucho qué kernel estés usando, o qué sistema operativo. El texto simple descifrado estará en la memoria, a menos que esté usando un sistema muy especializado que envíe el texto simple de un byte a la vez y desinfecte las estructuras de memoria posteriormente.

Sería posible ofuscar el texto plano (por ejemplo, almacenarlo a través de un mapeo de aleatorización, por ejemplo, una red Feistel o una S-Box cuadrada), pero los parámetros de aleatorización deberían estar en la memoria, lo que hace que esta "seguridad sea segura. ofuscación "y por lo tanto ninguna seguridad en absoluto.

Lo mismo se aplica a la clave secreta, que además tiene para estar disponible durante el descifrado; lo que, a su vez, hace que el envío del texto en claro y la limpieza posterior sean un tanto inútiles (se supone que el atacante conoce el texto cifrado mediante la intercepción. Una vez que se recupera K, el juego está muy por encima de lo que sea que hagan Alice y Bob). / p>     

respondido por el LSerni 22.06.2017 - 08:27
fuente

Lea otras preguntas en las etiquetas