Czy wersje OS X Lion i funkcje Resume przechowują w pamięci podręcznej dane dla zaszyfrowanych obrazów .sparsebundle w bezpieczny sposób?

10

Przechowuję poufne informacje na moim laptopie w zaszyfrowanych obrazach .sparsebundle, które są tworzone za pomocą aplikacji takich jak Disk Utility, Knox i Espionage. Pytanie brzmi: jeśli uaktualnię do Lion, kiedy pracuję nad plikiem znajdującym się na jednym z zamontowanych obrazów dysku, a Lion zapisuje starsze wersje pliku, czy te starsze wersje są przechowywane w zaszyfrowanym obrazie (tak jak powinny ) Lub gdzie indziej? Jeśli wersje są przechowywane gdzie indziej, czy są szyfrowane, czy nie?

Phil M.
źródło

Odpowiedzi:

10

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.

Gordon Davisson
źródło
Co się stanie, jeśli pakiet sparsebundle znajduje się na dysku zewnętrznym (może to być HFS, FAT lub NTFS) lub na maszynie Snow Leopard w sieci? Czy wersje są nadal przechowywane na tym samym dysku co główny plik?
Phil M
Chciałbym ustawić tę odpowiedź jako zaakceptowaną, ale nie widzę przycisku, nie wiem dlaczego.
Phil M
Czy w Mountain Lion występuje wyciek „Saved Application State”?
orome
@raxacoricofallapatorius: Nie do końca to potwierdziłem (format informacji w folderze .savedState nie jest oczywisty), ale mocno podejrzewam, że przeciek nadal występuje w wersji 10.8.
Gordon Davisson
2

Doskonałe pytanie od Phila M.!

Dane związane z wersjami Apple czasami nie są ograniczone do /.DocumentRevisions-V100

Będę mówił tak krótko, jak to możliwe. Kluczowe idee:

  • Transparent App Lifecycle (TAL) - automatyczne zapisywanie, wersje są wznawiane
  • obsługa systemów plików dla trwałego przechowywania wersji.

W niektórych okolicznościach

… W 10.7 (kompilacja 11A511): ~/Libraryużywane są podkatalogi , z dostępem nieograniczonym do użytkownika root. …

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

Również lekko dostosowany z https://discussions.apple.com/message/15741724#15741724


W moim ostatnim teście z tym samym serwerem AFP wersje zdalnego zrzutu ekranu .png:

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

Lokalnie mogą istnieć pewne powiązane dane, /.DocumentRevisions-V100ale w tym przypadku wersje pliku zdalnego są lokalne i nie ograniczają się do użytkownika root. Zobacz na przykład zrzut ekranu 001 na stronie http://www.wuala.com/grahamperrin/public/2011/07/25/e/?mode=gallery przedstawiający lokalne wersje pliku zdalnego, otwartego po odłączeniu od serwera plików.


Wróć do pytania otwierającego tutaj w Ask Different… zaszyfrowane .sparsebundle obrazy, bezpieczeństwo. Rozważ to:

zaszyfrowany rzadki obraz dysku pakietu, MS-DOS

W kontekście zaszyfrowanego, rzadkiego obrazu dysku pakietu, użytkownicy mogą częściej korzystać z JHFS + (obsługującego przechowywanie wersji stałej) niż MS-DOS (brak wsparcia)

Jednak: ktoś powinien sprawdzić, czy niezaszyfrowane wersje pozostają w katalogu domowym użytkownika - który może być niezaszyfrowany - po odłączeniu takiego woluminu.

Osobiście uważam, że fseventer jest najbardziej przydatny w takich sytuacjach testowych. YMMV.

Separacja

Niektóre z tych odpowiedzi mogą powodować pytania, które nie są specyficzne dla szyfrowania, nie są specyficzne dla rzadkich obrazów dysków pakietu, nie są specyficzne dla bezpieczeństwa. Są to potencjalnie złożone tematy, więc proszę: zamiast zadawać pytania w komentarzach pod tą odpowiedzią, prawdopodobnie powinienem zachęcić każde pytanie do zadawania osobno.

Graham Perrin
źródło
Jeśli zastanawiasz się, dlaczego „… wersje pliku zdalnego są lokalne…”, zobacz AFP, wersje Apple oraz bezpieczeństwo / prywatność pod apple.stackexchange.com/questions/19299/...
Graham Perrin
1

Sprawdziłem dokumentację programistyczną Apple dotyczącą funkcji wersji i wydaje się, że poprzednie wersje dokumentu są przechowywane w tym samym „miejscu” (co oznacza ten sam plik lub ten sam folder), co bieżąca wersja dokumentu; ale w dokumentacji brakuje szczegółowych informacji.

Jest też artykuł AppleInsider zatytułowany „Inside Mac OS X 10.7 Lion: Auto Save, wersje plików i Time Machine” , który mówi:

W przeciwieństwie do Time Machine, Wersje dołączają wszystkie migawki zmian w lokalnym pliku dokumentu, unikając bałaganu systemu plików i konieczności uzyskiwania dostępu do kopii zapasowych z Time Capsule lub innego zewnętrznego dysku tylko po to, aby wrócić do poprzednich wersji utworzonych w ciągu ostatnich kilku godzin.

Nie znalazłem jeszcze bardziej szczegółowych opisów działania funkcji Wersje.

Rinzwind
źródło
Miałem wrażenie, że są one przechowywane .DocumentRevisions-V100(i nie w tym samym pliku co dokument)
Thilo
1
@Thilo: tak, masz rację. Zostałem wprowadzony w błąd przez to, jak dokumentacja programisty łączy funkcję wersji z funkcją „automatycznego zapisywania na miejscu”. Jak wskazano w bardziej szczegółowych odpowiedziach udzielonych przez innych, starsze wersje dokumentu nie są przechowywane w tym samym pliku lub folderze co bieżąca wersja. Artykuł AppleInsider jest w tym względzie błędny.
Rinzwind
0

Gordon, to dobra wiadomość dla wszystkich, a także dla programistów Knox i Espionage (korzystam z obu tych aplikacji).

Oto scenariusz, na który użytkownicy powinni jednak uważać. Jeśli uzyskujesz dostęp do pliku w zamontowanym obrazie zaszyfrowanego dysku na dysku zewnętrznym, pliki wersji prawdopodobnie będą istnieć na dysku systemowym użytkownika w niezaszyfrowanej formie. Jednym z obejść tego problemu byłoby skopiowanie pliku .sparsebundle na dysk systemowy przed jego zamontowaniem.

Innym scenariuszem jest sytuacja, gdy plik .sparsebundle znajduje się na innym komputerze Mac Snow Leopard w tej samej sieci, a obraz jest udostępniany w sieci, co umożliwia montaż na komputerze Mac Lion poprzez przeglądanie go w Finderze. (Robię to czasami.) Zdecydowanie spowodowałoby to umieszczenie plików wersji na dysku systemowym użytkownika w niezaszyfrowanej formie. Jednym z obejść tego problemu byłoby użycie udostępniania ekranu do sterowania komputerem Mac Snow Leopard, a następnie zamontowanie i praca na obrazie na tym komputerze Mac.

Najważniejsze jest to, że w Lion ludzie muszą zrozumieć więcej i być bardziej ostrożni, gdy używają zaszyfrowanych obrazów dysków, jeśli obrazy nie znajdują się na dysku systemowym. Mam nadzieję, że programiści Knox i Espionage ostrzeżą swoich klientów przed tymi problemami.

EDYCJA: Odpowiedź Grahama wydaje się potwierdzać większość moich założeń.

Phil M.
źródło
„Jeśli uzyskujesz dostęp do pliku w zamontowanym obrazie zaszyfrowanego dysku na dysku zewnętrznym, pliki wersji prawdopodobnie będą istnieć na dysku systemowym użytkownika w niezaszyfrowanej formie”. Skąd czerpiesz te informacje? Zakładam, że zostanie on umieszczony .DocumentRevisions na zaszyfrowanym woluminie . Odpowiedź @ Gordona również wydaje się to potwierdzać.
Thilo
@ Gordon I DK, gdzie wpadłem na pomysł, że jeśli plik nie znajduje się na dysku systemowym, pliki wersji są zapisywane na dysku systemowym (dyski zewnętrzne mogą mieć inny system plików, nie wiem, czy to ma znaczenie). Myślałem, że gdzieś to przeczytałem, chociaż nie mogę już znaleźć źródła. Zakładałem, że Gordon miał na myśli jedynie mój konkretny przypadek. Gordon, czy możesz potwierdzić, że wersje są przechowywane na tym samym dysku co rzeczywisty plik, niezależnie od formatowania itp. Dysku? Wiem, że Gordon mówi „dysk (lub obraz dysku)”, ale nie wspomniał o tego rodzaju testach.
Phil M
@Gordon Być może dwa wymienione scenariusze (dysk USB i sieć na SL Mac) mogłyby zostać przetestowane, chciałbym, aby okazało się, że są niepoprawne, naprawdę chcę, żeby to zadziałało.
Phil M
Dobra uwaga na temat dysków zewnętrznych w formacie innym niż Mac. Może w ogóle nie dostają wersji? OTOH, sposób, w jaki jest „zhakowany” na zwykłym systemie plików, może oznaczać, że działa on również, powiedzmy, na FAT32.
Thilo,