SSL / TLS intercepción de datos en memoria después del descifrado

2

En un escenario en el que un cliente lee datos de un servidor a través de SSL/TLS y luego los cifra con una clave simétrica del lado del cliente antes de guardarlos en el disco, ¿qué tan susceptibles son los datos a un ataque en la memoria ( por ejemplo, mediante herramientas como SSLsnoop )?

¿El cliente debería hacer algo adicional (por ejemplo, obtener los datos encriptados del servidor, independientemente de la parte SSL/TLS ) para garantizar la confidencialidad de la comunicación?

Además, ¿son los dispositivos móviles más vulnerables a tales ataques?

    
pregunta PNS 09.01.2014 - 22:26
fuente

1 respuesta

3

Cualquier atacante que obtenga los privilegios suficientes para inspeccionar la memoria de otro proceso es un atacante que tiene control total sobre la máquina, en cuyo punto todo lo que sucede en esa máquina puede ser conocido por el atacante. Esto es cierto para todas las máquinas y sistemas operativos, incluidos los dispositivos móviles; sin embargo, mientras que los servidores multiusuario con un sistema operativo similar a Unix son bastante tradicionales, los iPhones multiusuario son bastante más raros.

Si, por lo tanto, el cliente puede ser secuestrado, no hay forma de salir de él, excepto hacerlo para que el cliente nunca obtenga los datos de texto claro en primer lugar. Pero entonces, el cliente no tiene acceso a los datos de texto claro, lo que reduce su funcionalidad (por ejemplo, no puede mostrarlos al usuario).

Un escenario reducido es sobre memoria virtual . Cuando una computadora tiene datos en la memoria, esos datos pueden ser copiados en el espacio de intercambio por el sistema operativo, de manera automatizada. Un atacante que toma la máquina luego puede obtener extractos de datos confidenciales al observar el espacio de intercambio. Si una aplicación administra datos que son excepcionalmente sensibles, puede pedirle al kernel que nunca la escriba para intercambiar espacio; en sistemas Linux, esto se hace con mlock() . GnuPG hace eso cuando tiene claves privadas en la memoria.

Una alternativa tentadora es deshabilitar el espacio de intercambio por completo; las computadoras modernas tienen una gran cantidad de RAM y utilizan sistemas de programación que no interactúan bien con la memoria virtual de todos modos (eso es un problema conocido de los recolectores de basura). Por definición, una computadora sin espacio de intercambio nunca permitirá que los datos basados en memoria se escriban en el disco; no es que tal computadora no pueda entrar en el modo de hibernación basado en disco prolongado .

Vale la pena señalar que los "dispositivos móviles" (teléfonos inteligentes, tabletas ...), por regla general, no tienen memoria virtual, ya que su capacidad de almacenamiento no es suficiente. En ese sentido, los dispositivos móviles pueden ser una mejor opción que las computadoras tradicionales con configuración "normal", cuando se trata de limitar las fugas de datos a través del almacenamiento persistente.

    
respondido por el Tom Leek 09.01.2014 - 22:51
fuente

Lea otras preguntas en las etiquetas