En general, si tiene un almacenamiento encriptado, debe encriptar su intercambio. Esto se aplica a cualquier sistema de cifrado, no solo a TrueCrypt. Los datos de cualquier programa pueden terminar en intercambio, incluidos los programas que manipulan los datos confidenciales. El kernel elige qué datos pone en el intercambio en función de la frecuencia de acceso, no sabe qué parte de los datos es más confidencial.
TrueCrypt sí solicita que el sistema operativo le dé memoria que está bloqueada en la RAM y no se puede intercambiar. Sin embargo, creo que no se niega a operar si el sistema operativo no está dispuesto a darle suficiente RAM, por lo que este comportamiento no está garantizado. E incluso si lo fuera, eso no ayudaría: los programas que manipulan los datos confidenciales no tendrían tal protección. Por ejemplo, si ejecuta un editor en un archivo en la partición TrueCrypt, la memoria del editor puede ser intercambiada.
También debe asegurarse de que todas las ubicaciones donde se almacenan los datos temporales estén encriptadas. En Linux, esto incluye /tmp
(también hay /var/tmp
pero su uso es explícito, mientras que cualquier programa puede terminar usando /tmp
). Muchos sistemas Linux modernos, incluido Ubuntu 14.04, colocan los archivos temporales bajo /run
, que siempre está en la memoria (memoria virtual, es decir, se puede intercambiar), pero algunas aplicaciones tienen un código duro /tmp
. Otras ubicaciones comunes donde los datos temporales pueden terminar incluyen /var/spool/cups
(cola de impresión, si imprime un documento confidencial), /var/spool/mail
(correo entrante), /var/spool/postfix
(correo saliente, con Postfix - adapte el nombre del directorio si usa un MTA diferente), ~/.cache
.