Przeprowadziłem kilka testów i mogę (miejmy nadzieję) udzielić wiarygodnej odpowiedzi.
Krótka odpowiedź: wersje są przechowywane na tym samym dysku (lub obrazie dysku) co rzeczywisty plik, więc wersje nie powinny wyciekać informacji poza zaszyfrowanym obrazem. Ale może być inny wyciek, patrz poniżej.
Długa odpowiedź: wersje tworzą niewidoczny folder na górze każdego woluminu, o nazwie „.DocumentRevisions-V100” o wewnętrznej strukturze podobnej do tej:
.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 (???)
Aby uzyskać informacje na temat indeksu sqlite i demona działającego w tle, który pośredniczy w dostępie do niego, przeczytaj doskonałą recenzję Johna Siracusa na ars technica .
Same wersje dokumentów są przechowywane w podkatalogach w AllUIDs lub PerUID / youruserid. Poniżej każdy wersjonowany dokument otrzymuje własny podkatalog, ponumerowany od 1. Poniżej znajduje się pojedynczy folder o nazwie „com.apple.documentVersions”, a pod nim każda wersja jest przechowywana jako osobny dokument (chyba że jest podzielony na części - - Nie eksperymentowałem z dużymi dokumentami) o nazwie z UUID i rozszerzeniem typu. Na przykład, jeśli (użytkownik # 501) edytuję dokument RTF na moim woluminie rozruchowym i zapisuję kilka wersji, mogą one być przechowywane jako:
/.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
Jeśli następnie otworzę inny plik RTF i zapiszę jego wersję, może mieć nazwę:
/.DocumentRevisions-V100/PerUID/501/2/com.apple.documentVersions/74A6EF6E-A22A-4196-B560-40ABDBF46DF4.rtf
Gdybym zapisał go na moim obrazie SecretDocs (zamontowanym z pominięciem własności), wersje byłyby przechowywane w następujący sposób:
/Volumes/SecretDocs/.DocumentRevisions-V100/AllUIDs/1/com.apple.documentVersions/2ED4DAFD-9BCF-4158-BFDB-F9EEC631E44A.rtf
BTW, uprawnienia do plików wersji wydają się być klonowane z oryginalnych plików. Uprawnienia do załączających folderów zazwyczaj pozwalają tylko na wykonywanie (tzn. Nie widać nazw plików, ale jeśli znasz nazwę pliku, możesz uzyskać do niego dostęp). Na przykład PerUID / 501 jest ustawiony tak, aby zezwalał na wykonywanie tylko dla użytkownika 501, bez dostępu dla nikogo innego. Folder db-v1 umożliwia tylko dostęp do konta root. Bez szczegółowego badania wydaje się, że jest dość zamknięty.
Teraz, jeśli chodzi o inny wyciek, którym ci groziłem: aplikacje Lion zwykle zapisują swój stan, gdy wychodzisz, więc jeśli masz otwarty poufny dokument, kiedy wychodzisz, niektóre jego informacje (jak myślę zrzut ekranu) mogą być przechowywane w ~ / Library / Saved Application State / someappid.savedState. Tak długo, jak zamkniesz przed zapisaniem, myślę, że jesteś tutaj bezpieczny.