¿Las características de versiones y currículums de OS X Lion almacenan los datos en caché para imágenes cifradas .sparsebundle de forma segura?

10

Almaceno información confidencial en mi computadora portátil en imágenes cifradas .sparsebundle que se hacen con aplicaciones como Disk Utility, Knox y Espionage. La pregunta es, si actualizo a Lion, cuando estoy trabajando en un archivo ubicado en una de estas imágenes de disco montadas y Lion está guardando versiones anteriores del archivo, ¿se almacenan estas versiones anteriores dentro de la imagen cifrada (como deberían ser)? ) ¿o en otra parte? Si las versiones se almacenan en otro lugar, ¿están encriptadas o no?

Phil M
fuente

Respuestas:

10

He realizado algunas pruebas y puedo ofrecer una respuesta autorizada (con suerte).

Respuesta corta: las versiones se almacenan en el mismo disco (o imagen de disco) que el archivo real, por lo que las versiones no deben filtrar información fuera de su imagen encriptada. Pero puede haber otra fuga, ver más abajo.

Respuesta larga: Versions crea una carpeta invisible en la parte superior de cada volumen, llamada ".DocumentRevisions-V100" con una estructura interna como esta:

.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            (???)

Para obtener información sobre el índice sqlite y el demonio de fondo que media el acceso a él, lea la excelente reseña de John Siracusa en ars technica .

Las versiones del documento se almacenan en subdirectorios en AllUID o PerUID / youruserid. Debajo de eso, cada documento versionado tiene su propio subdirectorio, numerado a partir de 1. Debajo de eso hay una sola carpeta llamada "com.apple.documentVersions", y debajo de eso, cada revisión se almacena como un documento separado (a menos que esté dividido en fragmentos: - No he experimentado con documentos grandes) nombrados con un UUID y extensión de tipo. Por ejemplo, si yo (usuario # 501) edito un documento rtf en mi volumen de arranque y guardo varias revisiones, podrían almacenarse como:

/.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 luego abrí otro archivo rtf y guardé una versión del mismo, podría llamarse:

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

Si lo guardara en mi imagen de SecretDocs (montada con la propiedad ignorada), las versiones se almacenarían como:

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

Por cierto, los permisos en los archivos de versión parecen ser clonados de los archivos originales. Los permisos en las carpetas adjuntas tienden a permitir solo la ejecución (es decir, no puede ver los nombres de los archivos, pero si conoce el nombre del archivo, puede acceder a él). Por ejemplo, PerUID / 501 está configurado para permitir la ejecución solo para el usuario 501, sin acceso para nadie más. La carpeta db-v1 solo permite el acceso de root. Sin investigar en detalle, parece estar bastante bloqueado.

Ahora, sobre esa otra filtración con la que te amenacé: las aplicaciones de Lion tienden a guardar su estado cuando dejas de fumar, por lo que si tienes un documento confidencial abierto cuando dejas de fumar, parte de su información (como creo que una captura de pantalla) puede almacenarse en ~ / Library / Estado de la aplicación guardada / someappid.savedState. Mientras cierres antes de guardar, creo que estás a salvo aquí.

Gordon Davisson
fuente
¿Qué sucede si el sparsebundle está ubicado en un disco externo (podría ser HFS, FAT o NTFS) o en una máquina Snow Leopard en la red? ¿Las versiones siguen almacenadas en el mismo disco que el archivo principal?
Phil M
Me gustaría establecer esta respuesta como la respuesta aceptada pero no veo el botón, no sé por qué.
Phil M
¿Existe la fuga del "Estado de la aplicación guardada" en Mountain Lion?
orome
@raxacoricofallapatorius: no he confirmado completamente esto (el formato de la información en la carpeta .savedState no es obvio), pero sospecho que la fuga todavía está allí en 10.8.
Gordon Davisson
2

¡Una excelente pregunta de Phil M!

Los datos relacionados con las versiones de Apple a veces no se limitan a /.DocumentRevisions-V100

Lo mantendré lo más breve posible. Conceptos clave:

  • Ciclo de vida de la aplicación transparente (TAL): guardado automático, reanudación de versiones
  • Soporte de sistemas de archivos para el almacenamiento permanente de versiones.

En algunas circunstancias,

... En 10.7 (compilación 11A511): ~/Libraryse utilizan subdirectorios de , con acceso no limitado al usuario root. ...

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

Además, ligeramente adaptado de https://discussions.apple.com/message/15741724#15741724


En mi prueba más reciente con el mismo servidor AFP, las versiones para una captura de pantalla remota .png:

...

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

Localmente puede haber algunos datos relacionados, /.DocumentRevisions-V100pero en este caso, las versiones del archivo remoto son locales y no se limitan al usuario raíz. Vea, por ejemplo, la captura de pantalla 001 en http://www.wuala.com/grahamperrin/public/2011/07/25/e/?mode=gallery que muestra las versiones locales del archivo remoto, que se abre después de desconectarse del servidor de archivos.


De vuelta a la pregunta de apertura aquí en Ask Different ... imágenes cifradas .sparsebundle, seguridad. Considera esto:

imagen de disco de paquete disperso cifrado, MS-DOS

En el contexto de una imagen de disco encriptada de paquete disperso, es más probable que los usuarios usen JHFS + (que admite el almacenamiento de versión permanente) que MS-DOS (que carece de soporte)

Sin embargo: alguien debería probar para ver si las versiones sin cifrar permanecen dentro del directorio de inicio del usuario, que puede estar sin cifrar, después de que un volumen como este no esté montado.

Personalmente, encuentro fseventer más útil en situaciones de prueba como esta. YMMV.

Separación

Parte de esta respuesta puede plantear preguntas que no son específicas del cifrado, no son específicas de las imágenes de disco de paquete disperso, no son específicas de la seguridad. Estos son temas potencialmente complejos, así que por favor: en lugar de hacer preguntas en los comentarios debajo de esta respuesta, probablemente debería alentar que cada pregunta se haga por separado.

Graham Perrin
fuente
Si se pregunta por qué "... las versiones del archivo remoto son locales ...", consulte AFP, versiones de Apple y seguridad / privacidad en apple.stackexchange.com/questions/19299/…
Graham Perrin
1

Revisé la documentación del desarrollador de Apple sobre la función de versiones y parece indicar que las versiones anteriores de un documento están almacenadas en el mismo "lugar" (es decir, el mismo archivo o la misma carpeta) que la versión actual del documento; pero la documentación es escasa en detalles.

También está el artículo de AppleInsider titulado "Inside Mac OS X 10.7 Lion: Auto Save, File Versions and Time Machine" , que dice:

A diferencia de Time Machine, Versions agrega todas las instantáneas de cambio dentro del archivo de documento local, evitando un desorden del sistema de archivos y la necesidad de acceder a las copias de seguridad desde Time Capsule u otro disco externo solo para volver a versiones anteriores creadas en las últimas horas.

Todavía no he encontrado ninguna descripción más detallada de cómo funciona la función Versiones.

Rinzwind
fuente
Tenía la impresión de que están almacenados .DocumentRevisions-V100(y no en el mismo archivo que el documento)
Thilo
1
@Thilo: sí, tienes razón. Me confundió la forma en que la documentación del desarrollador vincula la función de versiones con la función de "guardado automático en el lugar". Como se señaló en las respuestas más detalladas dadas por otros, las versiones anteriores de un documento no se almacenan en el mismo archivo o carpeta que la versión actual. El artículo de AppleInsider es incorrecto en ese sentido.
Rinzwind
0

Gordon, esta es una buena noticia para todos, así como para los desarrolladores de software para Knox y Espionage (uso ambas aplicaciones).

Sin embargo, aquí hay un escenario que los usuarios deben tener en cuenta. Si está accediendo a un archivo dentro de una imagen de disco cifrada montada en una unidad externa, los archivos de versión probablemente existirán en la unidad del sistema del usuario en una forma no cifrada. Una solución para esto sería copiar el .sparsebundle en la unidad del sistema antes de montarlo.

Otro escenario es si el .sparsebundle está en otro Snow Leopard Mac en la misma red y la imagen se comparte en la red, lo que permite el montaje en un Lion Mac navegando a través del Finder. (A veces hago esto). Esto definitivamente daría como resultado que cualquier archivo de versión se coloque en el disco del sistema del usuario en forma no cifrada. Una solución alternativa para esto sería usar el uso compartido de pantalla para controlar la Mac Snow Leopard, luego montar y trabajar en la imagen en esa Mac.

La conclusión es que en Lion, las personas necesitan entender más y tener más cuidado que nunca cuando usan imágenes de disco cifradas si las imágenes no se encuentran en la unidad del sistema. Espero que los desarrolladores de Knox y Espionage adviertan a sus clientes sobre estos problemas.

EDITAR: la respuesta de Graham parece apoyar la mayoría de mis suposiciones.

Phil M
fuente
"Si está accediendo a un archivo dentro de una imagen de disco cifrada montada en una unidad externa, los archivos de versión probablemente existirán en la unidad del sistema del usuario en una forma no cifrada". ¿De dónde obtienes esa información? Supongo que se colocará en .DocumentRevisions el volumen cifrado . La respuesta de @ Gordon también parece confirmar eso.
Thilo
@ Gordon I DK, donde tuve la idea de que si el archivo no reside en el disco del sistema, los archivos de la versión se almacenan en el disco del sistema (los discos externos podrían tener un sistema de archivos diferente, no sé si esto importa). Pensé leer esto en alguna parte, aunque ya no puedo encontrar la fuente. Supuse que Gordon solo se refería a mi caso específico. Gordon, ¿puedes confirmar que las versiones están almacenadas en el mismo disco que el archivo real, independientemente del formato, etc. del disco? Sé que Gordon dice "disco (o imagen de disco)", pero no mencionó este tipo de pruebas.
Phil M
@ Gordon Tal vez los 2 escenarios específicos mencionados (disco USB y sobre red en SL Mac) podrían probarse, me ENCANTARÍA que se demuestre que son incorrectos, realmente quiero que esto funcione.
Phil M
Buen punto sobre discos externos en un formato de archivo que no sea Mac. ¿Quizás no tienen versiones en absoluto? OTOH, la forma en que esto se "piratea" en la parte superior del sistema de archivos normal podría significar que también funciona en, por ejemplo, FAT32.
Thilo