10 votos

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

Una de las cosas de las que siempre hago una copia de seguridad cuando formateo un Mac son las firmas digitales que tengo guardadas en Vista Previa. Para esto, mi referencia a ir a ser aquí: ¿Puedo exportar mi firma desde Vista Previa en un Mac e importarla en otro? . Pero OS X 10.10 (Yosemite) parece que hace las cosas de forma un poco diferente.

Como parece que ahora la Vista Previa almacena las firmas en una nueva ubicación no obvia, he estado utilizando la utilidad opensnoop ( http://osxdaily.com/2011/04/22/monitor-mac-os-x-filesystem-usage-access-with-opensnoop/ ) para ver qué archivos se tocan cuando estoy trabajando con la función de creación de firmas de Vista Previa. Abajo hay 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 encuentra en la ruta del archivo:

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

pero cuando intento ir al directorio, el sistema me dice que esa ruta no existe. También me he dado cuenta de que dentro del Acceso al llavero si se mira el contenido de Artículos locales --> Contraseñas verá que OS X crea ahora entradas individuales para diferentes firmas ahora etiquetadas Privacidad de las anotaciones de la firma .

Bienvenida la ayuda en mi búsqueda de cómo localizar, exportar e importar las firmas digitales de Vista Previa de una máquina Yosemite a otra.

12voto

Thijs Puntos 157

Ahora es demasiado obvio. Los datos de la imagen se registran como la entrada de la contraseña en KeyChain. Así que, para copiar una firma, cree una firma en su nuevo Mac mediante la cámara o el panel táctil. Entonces:

  1. Encuentre la entrada deseada de "Privacidad de Anotaciones de Firma" en KeyChain en su antiguo Mac.
  2. Haga clic con el botón derecho y "Copiar la contraseña al portapapeles"
  3. Pegar el texto (base64 es todo imprimible) en un archivo de texto
  4. Copie el archivo de texto en su nuevo Mac
  5. Encuentre la nueva entrada "Privacidad de Anotaciones de Firma" en su nuevo Mac
  6. Resalte y elimine el campo Contraseña de esa entrada
  7. Copiar el contenido del archivo de texto en el portapapeles
  8. Pegue el contenido en el campo de la contraseña
  9. Guardar cambios

3voto

Harley Garner Puntos 1

Esta es una de las pocas veces que realmente utilizo esos 5 GB gratuitos de espacio en iCloud. Si permites que Vista Previa se sincronice con iCloud, todas tus firmas también se sincronizarán.

Acabo de seguir todos estos pasos y me he dado cuenta, una vez que he terminado, de que entonces tenía dos de la misma firma en ambos ordenadores; cuando he borrado una, también se ha borrado otra de mi otro ordenador.

2voto

Percy Puntos 121

Todavía no he tenido la oportunidad de probarlo, pero las entradas de KeyChain contienen en realidad un archivo plist codificado en Base64 que parece contener los datos de la propia firma. Intenté decodificar el objeto NSMutableData guardado en el archivo plist, pero no pude pasar de ese punto. Mi suposición en este punto es que uno podría ser capaz de "compartir" la entrada del llavero en sí y copiarla entre ordenadores, pero de nuevo no puedo confirmar que esto funcione.

0voto

user109945 Puntos 21

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

Versión larga, con especulaciones:

Desde opensnoop documentación:

El descriptor de archivo devuelto se imprime, un valor de -1 indica un error. Esto puede ser útil para la resolución de problemas para determinar si las aplicaciones están intentando abrir archivos que no existen.

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

¿Y dónde está la firma ahora? Es parte de AnnotationKit, que tiene poca documentación en línea, pero parece que sigue utilizando la clave del llavero "Privacidad de la Anotación de la Firma" ... Sospecho que la pone 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 "Common Security Services Manager" o CSSM DB como se documenta en libsecurity_cssm.

Por ello, supongo que está utilizando algún tipo de almacén de datos encriptado, ya que es una de las opciones que aparecen en la documentación de CDSA: https://developer.apple.com/library/mac/documentation/Security/Conceptual/cryptoservices/CDSA/CDSA.html

La principal evidencia que tengo para apoyar esta afirmación es que hay una estructura separada mdsObject/mdsDirectory/mds.lock dentro de una carpeta llamada "com.application.Preview" por lo que no es sólo el nivel del sistema, yo pensaría. No es 100% en eso, el uso principal de este tipo de DB parece ser para las claves del sistema y los certificados: http://pubs.opengroup.org/onlinepubs/9629299/2_chap06.htm

0voto

marcodome Puntos 1

He utilizado la respuesta del usuario142836 y funciona: desgraciadamente el paso 1 no es obvio si tienes una máquina con una instalación fresca, aunque con todas las copias de seguridad del antiguo SO... Lo que he hecho antes del paso 1 es

  1. crear una VM con el sistema operativo antiguo (10.8 en mi caso)

  2. "restaurar" desde una copia de seguridad del sistema operativo antiguo el archivo

    ~/Library/Containers/com.apple.Preview/Data/Library/Preferences/com.apple.Preview.signatures.plist
  3. copiar en el llavero de la VM desde el llavero de la copia de seguridad del antiguo sistema operativo la entrada "Preview Signature Privacy" (copiar el archivo del llavero en la VM permite abrir tanto el llavero de la VM como el de la copia de seguridad juntos, por lo que es posible mover/copiar entradas de uno a otro; cada llavero está bloqueado con normalmente la contraseña del usuario y, dependiendo de la configuración, la contraseña del llavero de la máquina virtual puede ser diferente de la del llavero de reserva)

  4. actualizar la VM a Yosemite: ¡ahora el llavero de la VM tiene todo lo que necesito!

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X