Я провел некоторое тестирование и могу предложить (надеюсь) авторитетный ответ.
Краткий ответ: версии хранятся на том же диске (или образе диска), что и сам файл, поэтому версии не должны пропускать информацию за пределы вашего зашифрованного образа. Но может быть другая утечка, см. Ниже.
Длинный ответ: Версии создают невидимую папку в верхней части каждого тома с именем .DocumentRevisions-V100 с внутренней структурой, подобной этой:
.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 (???)
Информацию об индексе sqlite и фоновом демоне, обеспечивающем доступ к нему, можно прочитать в превосходном обзоре Джона Сиракузы на ars technica .
Сами версии документов хранятся в подкаталогах либо в AllUID, либо в PerUID / youruserid. В соответствии с этим каждый версионный документ получает свой собственный подкаталог, который нумеруется начиная с 1. Под этим находится одна папка с именем «com.apple.documentVersions», и при этом каждая ревизия сохраняется как отдельный документ (если он не разбит на куски - - Я не экспериментировал с большими документами) с именем UUID и расширением типа. Например, если я (пользователь № 501) отредактирую документ rtf на своем загрузочном томе и сохраню несколько ревизий, они могут быть сохранены как:
/.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
Если я затем открою другой файл RTF и сохраню его версию, он может быть назван:
/.DocumentRevisions-V100/PerUID/501/2/com.apple.documentVersions/74A6EF6E-A22A-4196-B560-40ABDBF46DF4.rtf
Если бы я сохранил его на своем образе SecretDocs (смонтированном с игнорированием владельца), версии будут сохранены как:
/Volumes/SecretDocs/.DocumentRevisions-V100/AllUIDs/1/com.apple.documentVersions/2ED4DAFD-9BCF-4158-BFDB-F9EEC631E44A.rtf
Кстати, права доступа к файлам версий, похоже, клонированы из исходных файлов. Разрешения на вложенные папки, как правило, позволяют только выполнять (т.е. вы не можете видеть имена файлов, но если вы знаете имя файла, вы можете получить к нему доступ). Например, PerUID / 501 установлен для разрешения выполнения только для пользователя 501, без доступа для кого-либо еще. Папка db-v1 разрешает только root-доступ. Без подробного расследования, это кажется довольно запертым.
Теперь об этой другой утечке, которой я угрожал вам: приложения Lion, как правило, сохраняют свое состояние при выходе, поэтому, если у вас открыт конфиденциальный документ, когда вы выходите, часть его информации (например, снимок экрана) может храниться в ~ / Библиотека / Состояние сохраненного приложения / someappid.savedState. Пока вы закрывались перед сохранением, я думаю, что вы здесь в безопасности.