Les fonctionnalités et versions d'OS X Lion stockent-elles les données mises en cache pour les images .sparsebundle chiffrées de manière sécurisée?

10

Je stocke des informations sensibles sur mon ordinateur portable dans des images cryptées .sparsebundle qui sont faites avec des applications comme Disk Utility, Knox et Espionage. La question est, si je mets à niveau vers Lion, lorsque je travaille sur un fichier situé dans l'une de ces images de disque montées et que Lion enregistre les anciennes versions du fichier, ces anciennes versions sont-elles stockées dans l'image cryptée (comme elles devraient l'être ) ou ailleurs? Si les versions sont stockées ailleurs, sont-elles cryptées ou non?

Phil M
la source

Réponses:

10

J'ai fait quelques tests et je peux offrir une réponse (espérons-le) faisant autorité.

Réponse courte: les versions sont stockées sur le même disque (ou image disque) que le fichier réel, de sorte que les versions ne doivent pas divulguer d'informations en dehors de votre image cryptée. Mais il pourrait y avoir une autre fuite, voir ci-dessous.

Réponse longue: Versions crée un dossier invisible en haut de chaque volume, nommé ".DocumentRevisions-V100" avec une structure interne comme celle-ci:

.DocumentRevisions-V100
    .cs
        ChunkStorage    (this is presumably used to store chunks of large files that didn't entirely change between versions)
    AllUIDs             (this is only created on disks that have permissions ignored)
    ChunkTemp
    db-v1
        db.sqlite      (this is the primary index of document IDs, etc)
    PerUID             (this is only created on disks that have ownership respected)
        501            (documents created/owned by user #501)
        502            (etc...)
    staging            (???)

Pour plus d'informations sur l'index sqlite et le démon d'arrière-plan qui en assure l'accès, lisez l'excellente critique de John Siracusa sur ars technica .

Les versions des documents elles-mêmes sont stockées dans des sous-répertoires dans AllUIDs ou PerUID / youruserid. Sous cela, chaque document versionné obtient son propre sous-répertoire, numéroté à partir de 1. Sous c'est un dossier unique nommé "com.apple.documentVersions", et sous cela, chaque révision est stockée en tant que document séparé (sauf s'il est divisé en morceaux - - Je n'ai pas testé de gros documents) nommés avec un UUID et une extension de type. Par exemple, si je (utilisateur # 501) édite un document rtf sur mon volume de démarrage et enregistre plusieurs révisions, elles peuvent être stockées comme:

/.DocumentRevisions-V100/PerUID/501/1/com.apple.documentVersions/0787B7C3-DE11-4065-9FD9-61870212011D.rtf
/.DocumentRevisions-V100/PerUID/501/1/com.apple.documentVersions/D533CF36-0D49-4910-B0EB-C92395C05726.rtf

Si j'ai ensuite ouvert un autre fichier rtf et enregistré une version de celui-ci, il pourrait être nommé:

/.DocumentRevisions-V100/PerUID/501/2/com.apple.documentVersions/74A6EF6E-A22A-4196-B560-40ABDBF46DF4.rtf

Si je l'ai enregistré sur mon image SecretDocs (montée avec la propriété ignorée), les versions seraient stockées comme:

/Volumes/SecretDocs/.DocumentRevisions-V100/AllUIDs/1/com.apple.documentVersions/2ED4DAFD-9BCF-4158-BFDB-F9EEC631E44A.rtf

BTW, les autorisations sur les fichiers de version semblent être clonées à partir des fichiers d'origine. Les autorisations sur les dossiers qui les entourent ont tendance à autoriser l'exécution uniquement (c'est-à-dire que vous ne pouvez pas voir les noms de fichiers, mais si vous connaissez le nom du fichier, vous pouvez y accéder). Par exemple, PerUID / 501 est défini pour autoriser l'exécution uniquement pour l'utilisateur 501, aucun accès pour quiconque. Le dossier db-v1 n'autorise que l'accès root. Sans enquêter en détail, il semble être assez verrouillé.

Maintenant, à propos de cette autre fuite dont je vous menaçais: les applications Lion ont tendance à enregistrer leur état lorsque vous quittez, donc si vous avez un document confidentiel ouvert lorsque vous quittez, certaines de ses informations (comme je pense qu'une capture d'écran) peuvent être stockées dans ~ / Library / Saved Application State / someappid.savedState. Tant que vous fermez avant d'enregistrer, je pense que vous êtes en sécurité ici.

Gordon Davisson
la source
Que faire si le sparsebundle se trouve sur un disque externe (peut être HFS, FAT ou NTFS) ou sur une machine Snow Leopard sur le réseau? Les versions sont-elles toujours stockées sur le même disque que le fichier principal?
Phil M
Je voudrais définir cette réponse comme la réponse acceptée mais je ne vois pas le bouton, je ne sais pas pourquoi.
Phil M
La fuite "État d'application enregistré" existe-t-elle dans Mountain Lion?
orome
@raxacoricofallapatorius: Je n'ai pas entièrement confirmé cela (le format des informations dans le dossier .savedState n'est pas évident), mais je soupçonne fortement que la fuite est toujours là en 10.8.
Gordon Davisson
2

Une excellente question de Phil M!

Les données relatives aux versions d'Apple ne sont parfois pas limitées à /.DocumentRevisions-V100

Je serai aussi bref que possible. Concepts clés:

  • Transparent App Lifecycle (TAL) - sauvegarde automatique, les versions reprennent
  • prise en charge des systèmes de fichiers pour le stockage permanent des versions.

Dans certaines circonstances,

… En 10.7 (Build 11A511): des sous-répertoires de ~/Librarysont utilisés, avec un accès non limité à l'utilisateur root. …

https://discussions.apple.com/message/15739595#15739595 (2011-07-25)

Aussi, légèrement adapté de https://discussions.apple.com/message/15741724#15741724


Dans mon test le plus récent avec le même serveur AFP, les versions pour une capture d'écran .png à distance:

reunion:~ centrimadmin$ ls -ld  /.DocumentRevisions-V100
ls: /.DocumentRevisions-V100: No such file or directory

Localement il pourrait y avoir des données associées à , /.DocumentRevisions-V100mais dans ce cas, les versions du fichier distant sont locaux, et non limité à l'utilisateur root. Voir par exemple la capture d'écran 001 sur http://www.wuala.com/grahamperrin/public/2011/07/25/e/?mode=gallery illustrant les versions locales du fichier distant, ouverte après la déconnexion du serveur de fichiers.


Retour à la question d'ouverture ici dans Ask Different… images cryptées .sparsebundle, sécurité. Considère ceci:

image de disque groupée clairsemée chiffrée, MS-DOS

Dans le contexte d'une image de disque groupée clairsemée, les utilisateurs sont plus susceptibles d'utiliser JHFS + (prenant en charge le stockage de version permanente) que MS-DOS (manquant de prise en charge)

Cependant: quelqu'un devrait tester pour voir si les versions non chiffrées restent dans le répertoire personnel de l'utilisateur - qui peut être non chiffré - après qu'un volume tel que celui-ci soit démonté.

Personnellement, je trouve fseventer très utile dans des situations de test comme celle-ci. YMMV.

Séparation

Certaines de ces réponses peuvent soulever des questions qui ne sont pas spécifiques au chiffrement, non spécifiques aux images de disque groupées clairsemées, non spécifiques à la sécurité. Ce sont des sujets potentiellement complexes, alors s'il vous plaît: plutôt que de poser des questions dans les commentaires sous cette réponse, je devrais probablement encourager chaque question à être posée séparément.

Graham Perrin
la source
Si vous vous demandez pourquoi «… les versions du fichier distant sont locales…», voir AFP, versions d'Apple et sécurité / confidentialité sous apple.stackexchange.com/questions/19299/…
Graham Perrin
1

J'ai vérifié la documentation du développeur d'Apple sur la fonctionnalité des versions et cela semble indiquer que les versions précédentes d'un document sont stockées au même «endroit» (c'est-à-dire le même fichier ou le même dossier) que la version actuelle du document; mais la documentation manque de détails.

Il y a aussi l'article d'AppleInsider intitulé "Inside Mac OS X 10.7 Lion: sauvegarde automatique, versions de fichiers et Time Machine" , qui dit:

Contrairement à Time Machine, Versions ajoute tous les instantanés de modification dans le fichier de document local, évitant ainsi un désordre du système de fichiers et la nécessité d'accéder aux sauvegardes à partir d'une Time Capsule ou d'un autre disque externe juste pour revenir aux versions précédentes créées au cours des dernières heures.

Je n'ai pas encore trouvé de description plus détaillée du fonctionnement de la fonction Versions.

Rinzwind
la source
J'avais l'impression qu'ils sont stockés dans .DocumentRevisions-V100(et non dans le même fichier que le document)
Thilo
1
@Thilo: oui, vous avez raison. J'ai été induit en erreur par la façon dont la documentation du développeur lie la fonctionnalité des versions à la fonctionnalité «enregistrement automatique sur place». Comme indiqué dans les réponses plus détaillées données par d'autres, les anciennes versions d'un document ne sont pas stockées dans le même fichier ou dossier que la version actuelle. L'article AppleInsider a tort à cet égard.
Rinzwind
0

Gordon, c'est une bonne nouvelle pour tout le monde, ainsi que pour les développeurs de logiciels pour Knox et Espionage (j'utilise ces deux applications).

Voici un scénario auquel les utilisateurs doivent faire attention cependant. Si vous accédez à un fichier dans une image disque chiffrée montée sur un lecteur externe, les fichiers de version existeront probablement sur le lecteur système de l'utilisateur sous une forme non chiffrée. Une solution consiste à copier le .sparsebundle sur le lecteur système avant de le monter.

Un autre scénario est si le fichier .sparsebundle se trouve sur un autre Mac Snow Leopard sur le même réseau et que l'image est partagée sur le réseau, ce qui permet le montage sur un Mac Lion en y accédant via le Finder. (Je le fais parfois.) Cela entraînerait certainement la mise en place de fichiers de version sur le disque système de l'utilisateur sous forme non cryptée. Une solution consiste à utiliser le partage d'écran pour contrôler le Snow Leopard Mac, puis à monter et à travailler dans l'image sur ce Mac.

L'essentiel, c'est que dans Lion, les gens ont besoin de mieux comprendre et d'être plus prudents que jamais lorsqu'ils utilisent des images de disque chiffrées si les images ne se trouvent pas sur le lecteur système. J'espère que les développeurs de Knox et Espionage avertiront leurs clients de ces problèmes.

EDIT: La réponse de Graham semble soutenir la plupart de mes hypothèses.

Phil M
la source
"Si vous accédez à un fichier dans une image disque chiffrée montée sur un lecteur externe, les fichiers de version existeront probablement sur le lecteur système de l'utilisateur sous une forme non chiffrée". D'où obtenez-vous ces informations? Je suppose qu'il serait placé .DocumentRevisions sur le volume chiffré . @ La réponse de Gordon semble également le confirmer.
Thilo
@Gordon I DK où j'ai eu l'idée que si le fichier ne réside pas sur le disque système, les fichiers de version sont stockés sur le disque système (les disques externes peuvent avoir un système de fichiers différent, je ne sais pas si cela importe). Je pensais l'avoir lu quelque part, bien que je ne trouve plus la source. J'ai supposé que Gordon ne faisait référence qu'à mon cas spécifique. Gordon, pouvez-vous confirmer que les versions sont stockées sur le même disque que le fichier réel, quel que soit le formatage, etc. du disque? Je sais que Gordon dit «disque (ou image disque)», mais il n'a pas mentionné ce genre de test.
Phil M
@Gordon Peut-être que les 2 scénarios spécifiques mentionnés (disque USB et réseau sur SL Mac) pourraient être testés, je serais ravi d'être prouvé incorrect, je veux vraiment que cela fonctionne.
Phil M
Bon point sur les disques externes dans un format de fichier non-Mac. Peut-être qu'ils n'ont pas du tout de versions? OTOH, la façon dont cela est «piraté» au-dessus du système de fichiers normal pourrait signifier qu'il fonctionne également sur, disons, FAT32.
Thilo