Ho notato solo questa sera che e` possibile avere lo swap cifrato (almeno con 10.4).
Una riga di /etc/hostconfig recita
ENCRYPTSWAP=-YES-
e viene letta al boot, nel momento in cui viene fatto il setup dello swap (da /etc/rc):
if [ ${ENCRYPTSWAP:=-NO-} = “-YES-” ]; then
encryptswap=”-E”
else
encryptswap=””
fi
/sbin/dynamic_pager ${encryptswap} -F ${swapdir}/swapfile
man dynamic_pager
-E Encrypt the data in the swap files.
mi rimane la curiosita` di capire 1) con che chiave cifra lo swap 2) con che algoritmo. Ho un paio di idee, ma devo verificare.
Ah, dimenticavo: “System Preferences” -> Security -> “Use Secure Virtual Memory” :-)
La chiave dovrebbe essere la password dell’utente è la cifratura immagino (ma non ho nessun dato certo per affermarlo) sia AES-128 che poi è quella raccomandata per i volumi crittografici secondo la apple, un pò come funziona il file_vault apple (cifratura delle home directory)
Per quello mi chiedevo… nel momento in cui cambio utente, come viene gestita la cifratura dello swap? Se e` personale, bisognerebbe che ogni utente avesse uno swap separato e cifrato con la propria chiave, ma non mi sono ancora dato la pena di approfondire :)
immagino che lo swap sia in chiaro come filesystem..
ma le pagine swappate siano codificate una ad una, e immagino sempre che il kernel codifichi in maniera differente pagine provenienti da uid diversi.
cmq.. ora il dubbio è venuto anche a me..
e mi sorge anche una domanda..
se fosse come dico (improbabile) le pagine swappate da processi di root come vengono cifrate ?
Potrebbe essere come su OpenBSD:
La memoria virtuale viene divisa in sezioni di 512 kb ed ad ognuna viene assegnata una chiave. La chiave crittografica consiste in una stringa di 128 bit, un contatore di richieste, e un tempo di scadenza. Per una partizione di swap di 256 MB sono richiesti 14 kB di memoria per le chiavi. Le chiavi a 128 bit delle sezioni sono create casualmente e il contatore associato sara’ incrementato di 1. Quando una pagina viene rimossa il contatore viene decrementato, la chiave viene rimossa quando il contattore ritorna a 0. In tutti i modi la durata totale della chiave non supera’ mai il tempo fissato “tr”. ecc…
http://www.opengeeks.it/docs/crypto_openbsd.ps