Para obtener la máxima seguridad de FileVault2, ¿por qué se recomienda la hibernación?

Muchas discusiones sobre la seguridad de FileVault 2 sugieren usar:

sudo pmset -a destroyfvkeyonstandby 1 hibernatemode 25

Algunas de esas discusiones afirman que las claves de FileVault se almacenan en la RAM durante el uso normal despierto, mientras que otras dicen que se almacenan en el firmware EFI.

  1. ¿Dónde se almacenan las claves mientras la máquina está despierta y funcionando, en la RAM o en el firmware?

  2. ¿Qué, precisamente, hace destroyfvkeyonstandby? Por ejemplo, si elimino un archivo, puedo recuperarlo porque no se borra. ¿ destroyfvkeyonstandbyRealiza una liberación de memoria (eliminación) o un borrado (sobrescribe la memoria que se estaba utilizando para mantener la tecla)?

  3. Si uso destroyfvkeyonstandby, ¿cuál es el beneficio de pasar al modo de hibernación de inmediato (además de ahorrar energía)? Si la clave ha sido borrada, ¿qué peligro hay en dejar la RAM encendida?

Respuestas (1)

  1. Durante el uso normal, las claves se almacenan en la RAM, lo que las hace vulnerables a un ataque DMA a través de Firewire o Thunderbolt (usando algo como Inception ). Este es un conjunto antiguo de ataques, y Apple en realidad deshabilita algunas de las funciones de esos dispositivos durante algunos modos de suspensión (por ejemplo, hibernatemode 25que elimina la energía de la RAM después de descargar su contenido en el disco; para mayor seguridad, también debe deshabilitar Fast User ). Switching , ya que es otro vector de ataque).

  2. Eso es lo único que tiene sentido que haga Apple, ya que es bastante trivial. Se pueden extraer más detalles de este análisis de FileVault 2 , cortesía de algunos investigadores de seguridad de Cambridge.

  3. También se puede escribir en la RAM (consulte Inicio ) para omitir la contraseña real; volcar en el disco y recargar al despertar garantizará que el contenido sea a prueba de manipulaciones.

¡Gracias por la respuesta y los enlaces! Esas y lecturas adicionales sugieren que, además de un ataque de tipo inicial en un sistema donde la información todavía está en la RAM, la frase de contraseña que desbloqueó la clave de la bóveda de archivos también puede estar disponible en la RAM. Por lo tanto, incluso si uno destruye la clave de la bóveda de archivos a través de "destroyfvkeyonstandby 1", la frase de contraseña para desbloquear esa clave aún puede estar disponible en la RAM si la RAM todavía está encendida. Al usar el "modo de hibernación 25" y, por lo tanto, cortar la energía de la RAM, también se eliminarán todas las demás frases de contraseña en la RAM.
@Michael 👍 Su comentario respondió a mis últimas dudas no abordadas por los números 2 y 3 de roguesys: el volcado a disco de Hibernation solo contiene una serialización adecuada de RAM. Es decir, solo partes completas de RAM, omitiendo partes "liberadas/sobrescritas" de RAM, a las que se podría acceder en diferentes grados mediante un ataque DMA o un ataque de arranque en frío. Pregunta restante : ¿Cuándo la configuración destroyfvkeyonstandby=1permite pmsetuna configuración incorrecta de combinarla con hibernatemode= 3(copia de RAM en almacenamiento persistente más mantener la RAM encendida) o aplicar 25(almacenamiento persistente, luego apagar RAM)?