Importar / exportar firmas de vista previa en OS X 10.10 (Yosemite)

6

Una de las cosas que siempre hago una copia de seguridad al formatear una Mac son las firmas digitales que he guardado en Vista previa. Para esto, mi referencia de referencia solía estar aquí: ¿Puedo exportar mi firma desde Preview a una Mac e importarla a otra? . Pero OS X 10.10 (Yosemite) parece estar haciendo las cosas un poco diferente.

Ya que la Vista previa parece estar almacenando las firmas en una ubicación nueva y no obvia ahora, he estado usando la utilidad opensnoop ( enlace ) para ver qué archivos están siendo tocados cuando estoy trabajando con la función de creación de firmas de Preview. A continuación se muestra una captura de muestra:

501    791 Preview       26 /System/Library/Security 
501    791 Preview       -1 /Users/user1/Library/Containers/com.apple.Preview/Data/Library/Security 
501    791 Preview       25 /var/folders/l_/47ypnnb951qdym78xvjgsn8r0000gn/C/com.apple.Preview//mds/mdsDirectory.db 
501    791 Preview       25 /Users/user1/Library/Keychains/login.keychain 
501    791 Preview       25 /Users/user1/Library/Keychains/login.keychain 
501    791 Preview       26 /var/folders/l_/47ypnnb951qdym78xvjgsn8r0000gn/C/com.apple.Preview//mds/mdsDirectory.db_ 
501    791 Preview       27 /private/var/db/mds/system/mdsDirectory.db 
501    791 Preview       26 /var/folders/l_/47ypnnb951qdym78xvjgsn8r0000gn/C/com.apple.Preview//mds/mdsObject.db 
501    791 Preview       25 /System/Library/PrivateFrameworks/AnnotationKit.framework/Resources/Base.lproj/AKSignaturesView.nib 
501    791 Preview       25 /System/Library/PrivateFrameworks/AnnotationKit.framework/Resources/Base.lproj/AKSignatureCaptureView.nib 
501    791 Preview       25 /System/Library/PrivateFrameworks/AnnotationKit.framework/Resources/Base.lproj/AKSignatureGestureCaptureView.nib 
501    791 Preview       25 /System/Library/PrivateFrameworks/AnnotationKit.framework/Resources/en.lproj/AKSignatureModelController.strings 
501    791 Preview       -1 /System/Library/PrivateFrameworks/AnnotationKit.framework/Resources/en.lproj/AKSignatureModelController.stringsdict 
501    791 Preview       26 /System/Library/Security 
501    791 Preview       -1 /Users/user1/Library/Containers/com.apple.Preview/Data/Library/Security 
501    791 Preview       25 /Users/user1/Library/Keychains/login.keychain 
501    791 Preview       25 /var/folders/l_/47ypnnb951qdym78xvjgsn8r0000gn/C/com.apple.Preview//mds/mds.lock 
501    791 Preview       26 /var/folders/l_/47ypnnb951qdym78xvjgsn8r0000gn/C/com.apple.Preview//mds/mdsObject.db_ 
501    791 Preview       27 /private/var/db/mds/system/mdsObject.db 
501    791 Preview       26 /var/folders/l_/47ypnnb951qdym78xvjgsn8r0000gn/C/com.apple.Preview//mds/mdsDirectory.db_ 
501    791 Preview       27 /private/var/db/mds/system/mdsDirectory.db 
501    791 Preview       26 /var/folders/l_/47ypnnb951qdym78xvjgsn8r0000gn/C/com.apple.Preview//mds/mdsObject.db 
501    791 Preview       25 /Users/user1/Desktop/sample.pdf 

Me parece que hay algo que se puede encontrar en la ruta del archivo:

/Users/user1/Library/Containers/com.apple.Preview/Data/Library/Security

pero cuando intento atravesar el directorio, el sistema me dice que la ruta no existe. También me he dado cuenta de que, dentro de la utilidad Acceso a la cadena clave , si observa el contenido de Elementos locales - > Contraseñas verá que OS X ahora crea entradas individuales para diferentes firmas ahora etiquetadas como Privacidad de anotación de firma .

Bienvenido a la asistencia en mi búsqueda para descubrir cómo localizar, exportar e importar las firmas digitales de Preview desde una máquina de Yosemite a otra.

    
pregunta ThumbDrive 07.11.2014 - 09:24

6 respuestas

4

Es un poco demasiado obvio ahora. Los datos de la imagen se registran como la entrada de contraseña en KeyChain. Entonces, para copiar una firma, cree una firma en su nueva Mac con una cámara o un panel táctil. Entonces:

  1. Busque la entrada deseada "Privacidad de anotación de firma" en KeyChain en su vieja Mac.
  2. Haz clic derecho y "Copiar contraseña al portapapeles"
  3. Pegue el texto (base64 se puede imprimir todo) en un archivo de texto
  4. Copie el archivo de texto a su nueva Mac
  5. Encuentre la nueva entrada "Privacidad de anotación de firma" en su nueva Mac
  6. Resalta y elimina el campo Contraseña de esa entrada
  7. Copie el contenido del archivo de texto en su portapapeles
  8. Pegue el contenido en el campo de contraseña
  9. Guardar cambios
respondido por el user142836 24.08.2015 - 18:32
2

Todavía no he tenido la oportunidad de probar esto, pero las entradas de KeyChain en realidad contienen un archivo plist codificado en Base64 que parece contener los datos de la firma en sí. Intenté decodificar el objeto NSMutableData guardado en el archivo plist, pero no pude superar ese punto. Supongo que en este punto es que uno podría "compartir" la entrada del llavero y copiarla entre computadoras, pero nuevamente no puede confirmar que esto funcione.

    
respondido por el Percy 18.02.2015 - 19:27
2

Esta es una de las pocas veces que utilizo esos 5 GB libres de espacio de iCloud. Si permites que la vista previa se sincronice con iCloud, todas tus firmas también se sincronizarán.

Simplemente seguí todos estos pasos y, una vez que terminé, me di cuenta de que tenía dos de la misma firma en ambas computadoras; cuando eliminé uno, también eliminé uno de mi otra computadora.

    
respondido por el Harley Garner 22.09.2015 - 19:00
0

La respuesta corta es, probablemente sea complicada y / o no valga la pena. Puede recuperar la firma más fácilmente simplemente aplicándola a un documento y guardando el documento. Las versiones anteriores le permitirían copiar y pegar, pero parece que esta no.

Versión larga, con especulación:

De la documentación de opensnoop :

  

El descriptor de archivo devuelto se imprime, un valor de -1 indica un error. Esto puede ser útil para resolver problemas y determinar si las aplicaciones intentan abrir archivos que no existen.

El archivo que mencionas tiene un -1 al lado, por lo que se intentó abrir, pero falló porque no existía.

Entonces, ¿dónde está la firma ahora? Es parte de AnnotationKit, que tiene poca documentación en línea, pero parece que todavía usa la clave de llavero "Privacidad de anotación de firma" ... sospecho que lo coloca en una base de datos de servicios de directorio de módulos (MDS).

Desde MDSSession en libsecurity_mds podemos ver lo siguiente:

 * The layout of the various MDS DB files on disk is as follows:
 *
 * /var/db/mds              -- owner = root, mode = 01777, world writable, sticky
 *    system/               -- owner = root, mode = 0755
 *       mdsObject.db       -- owner = root, mode = 0644, object DB
 *       mdsDirectory.db    -- owner = root, mode = 0644, MDS directory DB
 *       mds.lock           -- temporary, owner = root, protects creation of and 
 *                             updates to previous two files
 *       mds.install.lock   -- owner = root, protects MDS_Install operation
 *    <uid>/                -- owner = <uid>, mode = 0700
 *       mdsObject.db       -- owner = <uid>, mode = 000, object DB
 *       mdsDirectory.db    -- owner = <uid>, mode = 000, MDS directory DB
 *       mds.lock           -- owner = <uid>, protects updates of previous two files

El archivo mdsObject.db parece ser un "Administrador de servicios de seguridad común" o CSSM DB como se documenta en libsecurity_cssm.

Por esto, espero que esté usando algún tipo de almacén de datos encriptados, ya que esa es una de las opciones enumeradas en la documentación de CDSA: enlace

La principal evidencia que tengo para respaldar esta afirmación es que hay una estructura mdsObject / mdsDirectory / mds.lock separada dentro de una carpeta llamada "com.application.Preview", por lo que no es solo la de nivel de sistema, creo. No al 100%, el uso principal de este tipo de DB parece ser para las claves y certificados del sistema: enlace

    
respondido por el Louis St-Amour 16.01.2015 - 20:40
0

Usé la respuesta del usuario 142836 y funciona: desafortunadamente, el paso 1 no es obvio si tiene una máquina con una instalación nueva, incluso con todas las copias de seguridad del sistema operativo anterior ... Lo que he hecho antes del paso 1 es

  1. crear una máquina virtual con el sistema operativo anterior (10.8 en mi caso)
  2. "restaurar" desde una copia de seguridad del archivo del sistema operativo anterior

    ~/Library/Containers/com.apple.Preview/Data/Library/Preferences/com.apple.Preview.signatures.plist
    
  3. copie en el llavero de VM del antiguo llavero de copia de seguridad del sistema operativo la entrada "Vista previa de la privacidad de la firma" (al copiar el archivo de llavero en la VM, podemos abrir el llavero de VM y el llavero de respaldo juntos, de modo que es posible mover / copiar entradas de uno a otro, cada llavero está bloqueado con generalmente la contraseña del usuario y, dependiendo de la configuración, la contraseña del llavero VM puede ser diferente del llavero de respaldo)
  4. actualice la máquina virtual a Yosemite: ¡ahora el llavero de la máquina virtual tiene todo lo que necesito!
respondido por el marcodome 16.09.2015 - 07:16
0

Si habilita Llavero en iCloud (Preferencias del sistema - > iCloud - > Llavero), las firmas se sincronizarán automáticamente.

    
respondido por el AdamR 05.06.2016 - 19:46

Lea otras preguntas en las etiquetas