FileVault & Time Machine sont deux utilitaires inclus dans Mac OS X. Ils sont tous deux très utiles : le premier s’occupe en particulier de chiffrer le répertoire personnel de l’utilisateur de manière transparente, le deuxième permet de faire des sauvegardes incrémentales automatiques de manière transparente (ben ouais, c’est un Mac).
Programme intéressant…
FileVault permet de chiffrer son répertoire personnel (avec tous les fichiers qu’il contient, bien entendu).
A la mise en œuvre du service, FileVault remplace le répertoire personnel classique, par un alias pointant vers un fichier où les données contenues sont chiffrées/déchirées à la volée. Il prend tout ce qui était dans le répertoire personnel et le met dans une image disque appelée SparseBundle chiffrée en AES-256.
Attention, par défaut, lors de création du SparseBundle, les données originales ne sont pas effacées de manière sécurisée. Cependant, il suffit juste de demander gentiment à FileFault de le faire, et il le fera.
Dans le cas où il est trop tard, il est également possible de sécuriser cet espace libre de manière simple :
$ diskutil secureErase freespace Mode /dev/diskXsY , avec Mode = 1 -> 1 passe / 2 -> 7 passes / 3 -> 35 passes.
A l’initialisation, FileVault demande un « master password ». A quoi peut-il bien servir ? Imaginons que tu t’appelles Sarah, que tu mets le nom de l’endroit où tu as rencontré ton mari (Wasilla High) comme « master password » et que tu paumes ton MacBook. Ben là, un hacker en culotte courte aura accès à l’intégralité de ton méga SparseBundle en clair ! Plus sérieusement, ce « master password » permet de pouvoir déchiffrer l’image disque du répertoire personnel chiffrée en cas de perte du couple nom d’utilisateur et mot de passe lui étant associé.
D'un point de vue "comment ça se passe", c'est très simple : l’image disque chiffrée est montée quand l’utilisateur ouvre sa session, elle est démontée lorsque l’utilisateur quitte sa session.
FileVault chiffre les données en AES-256 avec une clé nommée Data Key. Cette clé est stockée (2 fois : chiffrée avec le mot de passe utilisateur et chiffrée avec le « master password ») dans les entêtes du SparseBundle.
Le format de SparseBundle permet à l’image disque d’avoir à peu près la taille des données qu’il contient (de manière dynamique). De plus, le SparseBundle est divisé en « bande » de bloc de données de 8 Mo. Ainsi, si un fichier est modifié, juste le ou les « bande(s) » de blocs utile(s) au stockage de ce fichier est(sont) à mettre à jour.
Passons à Time Machine maintenant. Il permet de faire des copies de tous les fichiers se trouvant dans le Mac. Ainsi, Time Machine permet de restaurer son Mac très facilement. Mais également de retrouver un fichier effacé ou l’état d’un fichier à l'instant -t. Il est bien évidemment possible d’exclure des répertoires des sauvegardes.
Time Machine ne chiffre rien, ce n’est pas son rôle. Apple préconise de mettre le disque servant à Time Machine dans un lieu physiquement sûr. En version disque réseau, penser à y limiter également les accès (ACL).
A la première utilisation de Time Machine, il copie tout le disque. Ca peut prendre un peu de temps… Après cette première opération, toutes les autres sauvegardes sont incrémentales.
Première interrogation : si j’efface un fichier ou un répertoire sur mon Mac, il restera à vie sur le volume de sauvegarde ?
Par défaut, oui (c’est un peu le but du truc). Néanmoins, dans l’interface de Time Machine, il vous est possible d’effacer le fichier ou le répertoire. Ils sont forts chez Apple.
Mais comment ça se passe pour le dossier personnel chiffré par FileVault ?
Ce dont je suis sûr, c’est que l’image SpareBundle chiffrée du répertoire personnel est bien sauvegardée, et qu’il n’est pas possible d’avoir accès élément par élément dans l’interface de Time Machine.
Pour avoir accès aux fichiers contenus dans l’image SparseBundle chiffrée, il est nécessaire de passer par Finder. Se rendre dans son volume Time Machine, puis dans le répertoire « Backups.backupdb », suivi du répertoire portant le nom de la machine (oui, un volume de sauvegarde peut servir à plusieurs machines). S’affiche alors dans le Finder un répertoire (date/heure) par sauvegarde faite par Time Machine. Choisir le répertoire correspondant à la date de la restauration désirée. Après, aller où se trouve le répertoire personnel (configuration standard : Macintosh HD > Utilisateurs > Nom de l’utilisateur). Ici se trouve l’image chiffrée du répertoire personnel (le SparseBundle) nommé « username.sparsebundle ». En double-cliquant sur ce fichier et en indiquant le nom d’utilisateur et le mot de passe correspondant, le répertoire personnel restauré est monté comme un volume, ce qui donne accès à la ressource désirée.
Bien, ça fait son boulot. C’est plus très « User Friendly », mais ça marche bien. Il est certain que d’implémenter l’accès à tout élément de son espace personnel chiffré ne doit pas être trivial à implémenter. Mais je pense que ça viendra.
Et voici le deuxième effet KissCool de la cohabitation FileVault / Time Machine.
Je l’ai dit en introduction, le but est que les deux services soient « transparents » pour l’utilisateur. En fonctionnement, on ne se rend compte ni de Time Machine qui fait ses sauvegardes, ni de travailler avec des documents se trouvant dans un environnement chiffré. Dans le cas d’application type « Direct-To-Disk » (musique, vidéo, photo), il est quand même préférable d’adapter ses zones de sauvegarde et de chiffrement. Mais bon, ça c’est normal.
Ce qui me gène vraiment arrive à la fermeture de session. Je ne pense pas que Time Machine fait une sauvegarde incrémentale de l'intérieur du SparseBundle, comme il le ferait pour le système de fichier normal. J’ai l’impression que Time Machine attend la fin de la session pour que le SparseBundle soit démonté pour en faire la sauvegarde. Le problème ? Si le Mac est sur un LAN en Gb, il y en a aucun. Cependant, si le Mac est un portable en Wi-Fi, ben il ne faut pas être trop pressé. Car même en 802.11n, 3 Go c’est long
Ca oblige du coup a ne pas tout mettre dans son répertoire personnel.
Certains dirons que le type d’image disque utilisée (SparseBundle) est conçu pour justement être mis à jour plus facilement (histoire des bandes de 8 Mo). J’uis d’accord avec des données en clair, mais avec un chiffrement en mode chainé, je comprends pourquoi faut pousser l’image complète…
Je précise que Mac OS X permet à tout moment d'interrompre cette sauvegarde de fin de session. Ce qui autorise quand même de pouvoir partir de chez soi avec son MacBook Pro sans attendre qu’il finisse gentiment de faire sa sauvegarde. Merci la Pomme !