Importazione / esportazione delle firme di anteprima su OS X 10.10 (Yosemite)

7

Una delle cose che faccio sempre backup quando riformattate un Mac sono le firme digitali che ho salvato in Anteprima. Per questo, il mio riferimento go-to era qui: Posso esportare la mia firma da Preview su un Mac e importarla su un altro? . Ma OS X 10.10 (Yosemite) sembra fare le cose in modo un po 'diverso.

Poiché Anteprima sembra archiviare le firme in una nuova posizione non ovvia ora, ho utilizzato l'utilità opensnoop ( link ) per vedere quali file vengono toccati quando sto lavorando con la funzione di creazione della firma di Anteprima. Di seguito è riportata un'acquisizione di esempio:

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 

Mi sembra che ci sia qualcosa da trovare nel percorso del file:

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

ma quando provo a passare alla directory, il sistema mi dice che il percorso non esiste. Ho anche notato che all'interno dell'utilità KeyChain Access , se guardi i contenuti di Elementi locali - > Password vedrai che OS X ora crea singole voci per diverse firme ora etichettate Annotazione della firma sulla privacy .

Assistenza di benvenuto nella mia ricerca per capire come individuare, esportare e importare le firme digitali di Anteprima da una macchina Yosemite a un'altra.

    
posta ThumbDrive 07.11.2014 - 09:24
fonte

6 risposte

5

È un po 'troppo ovvio ora. I dati dell'immagine vengono registrati come voce della password in KeyChain. Quindi, per copiare una firma, crea una firma sul tuo nuovo Mac tramite fotocamera o touchpad. Poi:

  1. Trova la voce "Annotazione firme annotazione" desiderata in KeyChain sul tuo vecchio Mac.
  2. Clic con tasto destro e "Copia password negli appunti"
  3. Incolla il testo (base64 è tutto stampabile) in un file di testo
  4. Copia il file di testo sul tuo nuovo Mac
  5. Trova la nuova voce "Annotazione firme annotazione" sul tuo nuovo Mac
  6. Evidenzia ed elimina il campo Password da quella voce
  7. Copia il contenuto del file di testo negli appunti
  8. Incolla il contenuto nel campo della password
  9. Salva modifiche
risposta data 24.08.2015 - 18:32
fonte
2

Non ho ancora avuto la possibilità di provare questo, ma le voci KeyChain contengono in realtà un file plist codificato Base64 che sembra contenere i dati per la firma stessa. Ho provato a decodificare l'oggetto NSMutableData salvato nel file plist, ma non sono riuscito a superare quel punto. La mia ipotesi a questo punto è che si possa essere in grado di "condividere" la stessa entry del portachiavi e copiarla tra computer, ma di nuovo non si può confermare che funzioni.

    
risposta data 18.02.2015 - 19:27
fonte
2

Questa è una delle pochissime volte in cui utilizzo effettivamente quei 5 GB di spazio iCloud gratuiti. Se consenti a Anteprima di sincronizzarsi con iCloud verranno sincronizzate anche tutte le tue firme.

Ho appena seguito tutti questi passaggi e mi sono reso conto che, una volta terminato, avevo due della stessa firma su entrambi i computer; quando ne ho cancellato uno, uno è stato cancellato anche dal mio altro computer.

    
risposta data 22.09.2015 - 19:00
fonte
0

La risposta breve è, probabilmente è complicata e / o non ne vale la pena. È possibile recuperare più facilmente la firma semplicemente applicandola a un documento e salvando il documento. Le versioni precedenti ti consentono di copiare e incollare, ma questo sembra non farlo.

Versione lunga, con speculazioni:

Da opensnoop documentazione:

The returned file descriptor is printed, a value of -1 indicates an error. This can be useful for troubleshooting to determine if applications are attempting to open files that do not exist.

Il file che hai citato ha un -1 accanto ad esso, quindi è stato tentato l'apertura, ma non è riuscito poiché non esisteva.

Quindi dov'è la firma ora? Fa parte di AnnotationKit che ha poca documentazione online, ma sembra che utilizzi ancora la chiave Keychain "Firma annotazione della privacy" ... Sospetto che venga inserita in un database MDS (Module Directory Services).

Da MDSSession in libsecurity_mds possiamo vedere quanto segue:

 * 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

Il file mdsObject.db sembra essere un "Common Security Services Manager" o CSSM DB come documentato in libsecurity_cssm.

Da questo mi aspetto che stia utilizzando una sorta di archivio dati crittografato, poiché questa è una delle opzioni elencate nella documentazione di CDSA: link

L'evidenza principale che devo supportare questa asserzione è che esiste una struttura mdsObject / mdsDirectory / mds.lock separata all'interno di una cartella chiamata "com.application.Preview", quindi non è solo quella a livello di sistema, direi. Non al 100% su questo, l'uso principale di questo tipo di DB sembra essere per chiavi e certificati di sistema: link

    
risposta data 16.01.2015 - 20:40
fonte
0

Ho usato la risposta dall'utente 142836 e funziona: sfortunatamente il passaggio 1 non è ovvio se hai una macchina con una nuova installazione, anche se con tutti i backup del vecchio sistema operativo ... Quello che ho fatto prima del passaggio 1 è

  1. crea una VM con il vecchio sistema operativo (10.8 nel mio caso)
  2. "ripristina" da un vecchio sistema operativo esegue il backup del file

    ~/Library/Containers/com.apple.Preview/Data/Library/Preferences/com.apple.Preview.signatures.plist
    
  3. copia nel portachiavi della VM dal vecchio portachiavi di backup del sistema operativo la voce "Anteprima firma privacy" (la copia del file portachiavi nella VM consente di aprire sia il portachiavi VM sia il portachiavi di backup, quindi è possibile spostare / copiare voci da uno all'altro, ogni portachiavi è bloccato con di solito la password dell'utente e, a seconda della configurazione, la password del portachiavi VM può essere diversa dal portachiavi di backup)
  4. aggiorna la VM a Yosemite: ora il portachiavi sulla VM ha tutto ciò di cui ho bisogno!
risposta data 16.09.2015 - 07:16
fonte
0

Se attivi Keychain in iCloud (Preferenze di sistema - > iCloud - > Keychain), le firme si sincronizzano automaticamente.

    
risposta data 05.06.2016 - 19:46
fonte

Leggi altre domande sui tag