¿Cuáles son los métodos de encriptación de datos RAM, por qué no son populares?

RAM no es el nivel correcto para hacer el cifrado. A menos que la CPU tenga un encriptador en el hardware de administración del bus, la RAM no puede estar completamente encriptada. Es necesario que haya un software claro que pueda ejecutarse. Sin mencionar el espacio para las variables que no caben en los registros (especialmente porque el algoritmo de cifrado consumirá algunas de ellas), y el modo probablemente necesitará acceso a algunas matrices pequeñas. Todos esos son vectores de ataque que hacen que casi no valga la pena hacerlo. Si alguien tiene acceso a la RAM, probablemente pueda evitar el cifrado.

El cifrado también es lento en comparación con la velocidad de la RAM. Tome la velocidad de reloj de gigahercios y calcule a cuántos megahercios equivalentes va a operar. El cifrado de la RAM será una reducción en la velocidad efectiva medida en órdenes de magnitud.

En este momento, nuestros procesadores se encuentran en un punto en el que el costo del cifrado no es malo para las redes y el almacenamiento, pero sigue siendo un impacto en el rendimiento en ambos casos. La razón por la que normalmente podemos tolerar la desaceleración es que nuestras CPU y RAM son tan rápidas que el cifrado solo consume un pequeño porcentaje del tiempo. La RAM opera muchos órdenes de magnitud más rápido que el disco o la red (OK, el extremo superior es aproximadamente uno, pero tampoco lo encriptamos muy a menudo por razones de rendimiento).

Hay opciones para operar en espacios encriptados que son mucho más seguros que tratar de encriptar la RAM. El cifrado homomórfico es un campo donde el procesamiento se puede realizar en el espacio cifrado. Hasta hace poco, la velocidad solo permitía problemas triviales, pero el campo ha madurado y están surgiendo diferentes compensaciones que ofrecen algunas opciones lentas pero interesantes.

Esta es una situación difícil. Lo difícil es que, generalmente, todo en la RAM no está encriptado porque los datos encriptados son inútiles para el usuario y la CPU. La RAM es donde todo va cuando se usa activamente, lo que significa que no puede encriptarse Y ser útil al mismo tiempo. Sin embargo, he visto soluciones para este problema, pero es probable que renuncies a cierta comodidad y funcionalidad si las usas.

Entonces, la idea aquí es que es posible que desee ejecutar servidores en un país o entorno que no sea confiable o seguro físicamente. Desea alguna forma de protegerse contra un ataque de canal lateral contra RAM, como un ataque de arranque en frío. La solución general es que solo maneja claves de cifrado y operaciones confidenciales en la CPU (es decir, en la memoria caché de la CPU). Todo lo demás en RAM está encriptado en todo momento. Sí, esto suena loco, pero hay organizaciones que lo hacen a gran escala.

VCage de PrivateCore era un producto comercial. No estoy seguro de si todavía está disponible, porque Facebook los adquirió en 2014. Probablemente pueda ver el interés de Facebook aquí, ya que tienen servidores en todo el mundo, y esos servidores son objetivos importantes en algunos países. Sin embargo, el sitio web todavía está allí, así que ¿tal vez todavía lo están vendiendo?

Luego está TRESOR, que es un parche FOSS para el kernel de Linux.

Finalmente, está Cryptkeeper. Una vez más, basado en Linux y un producto de investigación académica. Es más un compromiso entre cómo funcionan normalmente los sistemas y la utopía de RAM encriptada ideal de PrivateCore. Un diagrama del documento ayuda a visualizar lo que están haciendo:

Personalmente, diría que cifrar RAM en este momento es posible , pero poco práctico.

Gracias por el A2A, pero solo puedo estar de acuerdo con los demás:

La CPU, suponiendo una CPU normal, debe poder leer las instrucciones y los datos de la memoria. Si están encriptados, esto no funcionará.

Además, todas las medidas de seguridad implican cierta compensación. Usualmente es Seguridad vs. Comodidad. En su escenario, buscamos una gran cantidad de comodidad para una pequeña medida de seguridad. Piénselo: si un atacante tiene acceso a su computadora física, el contenido de la RAM es probablemente la menor de sus preocupaciones.

Además de eso, hay métodos para asegurarse de que los datos confidenciales, como las claves de cifrado, solo permanezcan en la memoria todo el tiempo que sean necesarios. Su dirección se puede sobrescribir con datos aleatorios una vez que se realiza el cifrado / descifrado. Con una computadora rápida y sin interferencia del sistema operativo o una máquina virtual, esto significa que los datos podrían permanecer en la memoria solo por unos pocos microsegundos o menos. Hacer cualquier intento de extraerlo es bastante inútil.

Se supone que la RAM es la más rápida solo al lado del procesador. Cualquier retraso es un no, no! Cualquier cifrado / descifrado que valga la pena consume una gran cantidad de tiempo. Entonces, a menos que se trate de datos seriamente guardados, no se disfruta del cifrado / descifrado.

Para funcionar correctamente, el cifrado tendría que ocurrir en la CPU en el hardware. Cualquier otro método sería fallable.

Dado que este método interfiere con DMA (hacer que las lecturas / escrituras en el hardware sean mucho más lentas) no es realmente factible en un sistema donde la velocidad es la reina.

Además, aunque es posible, obtener datos significativos de RAM como método de criminalidad es demasiado complejo para ser una amenaza importante fuera de las agencias nacionales (y pueden cifrar su RAM, ¿quién sabe?).