OS X 10.10'da Önizleme İmzalarını Alma / Verme (Yosemite)


9

Mac'i yeniden biçimlendirirken her zaman yedeklediğim şeylerden biri Önizleme'ye kaydettiğim dijital imzalardır. Bunun için go-to-referansım buradaydı: İmzamı bir Mac'te Preview'dan başkalarına aktarabilir miyim? . Fakat OS X 10.10 (Yosemite) işleri biraz daha farklı yapıyor gibi görünüyor.

Preview, artık imzaları yeni ve açık olmayan bir yerde saklıyor gibi göründüğünden, opensnoop yardımcı programını kullanıyorum ( http://osxdaily.com/2011/04/22/monitor-mac-os-x-filesystem -usage-access-with-opensnoop / ) Önizleme'nin imza oluşturma özelliği ile çalışırken hangi dosyalara dokunulduğunu görmek için. Aşağıda bir örnek yakalama:

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 

Bana göre dosya yolunda bulunabilecek bir şey var:

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

fakat dizine girmeye çalıştığımda, sistem bana o yolun olmadığını söyledi. Ayrıca, KeyChain Access yardımcı programında, Yerel Öğeler -> Parolaların içeriğine bakarsanız, OS X'in artık İmza Ek Açıklama Gizliliği etiketli farklı imzalar için ayrı ayrı girişler oluşturduğunu göreceğinizi de fark ettim .

Preview'un dijital imzalarını bir Yosemite makinesinden bir başkasına nasıl yerleştireceğinizi, dışa aktaracağınızı ve içe aktaracağımı bulma arayışımdan hoş geldiniz.

Yanıtlar:


7

Şimdi biraz fazla açık. Görüntü verileri, KeyChain'e şifre girişi olarak kaydedilir. Bu nedenle, bir imzayı kopyalamak için yeni Mac'inizde kamera veya dokunmatik yüzeyde bir imza oluşturun. Sonra:

  1. Eski Mac'inizde KeyChain'de istediğiniz "İmza Açıklama Gizliliği" girişini bulun.
  2. Sağ Tıkla ve "Parolayı Panoya Kopyala"
  3. Metni (base64 tümü basılabilir) bir metin dosyasına yapıştırın
  4. Metin dosyasını yeni Mac'inize kopyalayın
  5. Yeni Mac'inizdeki "İmza Ek Açıklama Gizliliği" girişini bulun
  6. Parola alanını bu girişten vurgulayın ve silin
  7. Metin dosyasının içeriğini panoya kopyalayın
  8. İçeriği şifre alanına yapıştırın
  9. Değişiklikleri Kaydet

2

Bunu henüz deneme şansım olmadı, ancak KeyChain girdileri aslında imzaya ait verileri içerdiği anlaşılan bir Base64 kodlu pist dosyası içeriyor. Plist dosyasına kaydedilen NSMutableData nesnesinin kodunu çözmeye çalıştım, ancak bu noktaya ulaşamadı. Bu noktada benim varsayım, bir anahtarlık girişi kendisi "paylaşmak" ve onu bilgisayarlar arasında kopyalamak mümkün olabileceği, ancak yine de bunun çalıştığını teyit edemez olmasıdır.


2

Bu, şu 5 boş GB iCloud alanını kullandığım çok az zamandan biri. Preview'ın iCloud ile senkronize etmesine izin verirseniz, tüm imzalarınız da senkronize edilir.

Tüm bu adımları takip ettim ve bir kere yapıldığında, iki bilgisayarda da aynı imzayı aldığımı fark ettim; bir tanesini silerken diğer bilgisayarımdan da bir tanesi silindi.


1

İCloud'da Keychain'i etkinleştirirseniz (Sistem Tercihleri ​​-> iCloud -> Keychain), imzalar otomatik olarak senkronize edilir.


Farklı sormaya hoş geldiniz. Cevapların tek bir satırdan daha fazlası olmasını isteriz. .. Cevabınız * haklı neden İdeali, açıklamak istiyorum" Ayrıca bağlantılar, alıntıları ve / veya ekran görüntüleri sağlamak için yardımcı olur yardım bölümü inceleyin Nasıl Cevap için sorulara iyi cevaplar yazmaya
Allan

@Allan Bazen, bir çözüme giden en kısa yol en iyisi olabilir. Ve doğası gereği açıklamak için en az miktarda metni alacaktır. Bu durumda, bu 10 saniyelik çözüm için AdamR + 1'i kullanmam gerekiyor ve daha fazla açıklamak için tek bir kelime gerektirmiyor. "Yardım" bölümünün ne dediği önemli değil.
Guido

0

Kısa cevap, muhtemelen karmaşık ve / veya uğraşmaya değmez. İmzayı belgeye uygulayarak ve dokümanı kaydederek daha kolay alabilirsiniz. Önceki sürümler, kopyalayıp yapıştırmanıza izin verirdi, ancak bu görünmüyor.

Spekülasyonlu uzun versiyon:

Gönderen opensnoopbelgeler:

Döndürülen dosya tanıtıcısı yazdırıldı, bir değerin -1bir hata olduğunu gösterir. Bu, uygulamaların var olmayan dosyaları açmaya çalışıp çalışmadığını belirlemek için sorun gidermede yararlı olabilir.

Bahsettiğiniz dosya yanında bir -1 işaretine sahip; bu nedenle açık deneme girişiminde bulunuldu ancak mevcut olmadığı için başarısız oldu.

Peki şimdi imza nerede? Çevrimiçi olarak çok az belgeye sahip olan AnnotationKit'in bir parçası, ancak hala "İmza Ek Açıklama Gizliliği" Anahtarlık anahtarını kullanıyor gibi görünüyor ... Bunu bir Modül Dizini Hizmetleri (YTH) veritabanına koyduğundan şüpheleniyorum.

Libsecurity_mds içindeki MDSSession'dan aşağıdakileri görebiliriz:

 * 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

MdsObject.db dosyası, libsecurity_cssm'de belgelendiği gibi bir "Ortak Güvenlik Hizmetleri Yöneticisi" veya CSSM DB gibi görünüyor.

Bundan CDSA belgelerinde listelenen seçeneklerden biri olduğundan, bir tür şifreli veri deposu kullanmasını bekliyorum: https://developer.apple.com/library/mac/documentation/Security/Conceptual/cryptoservices/CDSA/CDSA. html

Bu iddiayı desteklemem gereken temel kanıt, "com.application.Preview" adındaki bir klasörde ayrı bir mdsObject / mdsDirectory / mds.lock yapısının bulunduğudur. % 100 değil, bu tür DB kullanımının sistem anahtarları ve sertifikalar için olduğu anlaşılıyor: http://pubs.opengroup.org/onlinepubs/9629299/2_chap06.htm


0

Kullanıcının yanıtını kullandım142836 ve işe yarıyor: ne yazık ki eski işletim sisteminin tüm yedekleri olsa bile, yeni kurulumlu bir makineye sahipseniz adım 1 açık değil ... 1. adımdan önce yaptığım şey

  1. eski işletim sistemiyle bir VM oluşturmak (benim durumumda 10.8)
  2. Eski bir işletim sisteminden "geri yükleme" dosyasını yedekle

    ~/Library/Containers/com.apple.Preview/Data/Library/Preferences/com.apple.Preview.signatures.plist
    
  3. Eski işletim sistemi yedek anahtarlığından VM anahtar zincirine kopyala "Önizleme Gizliliği Gizliliği" girişini kopyala (anahtarlık dosyasını VM'de kopyalamak, hem VM anahtarlığını hem de yedekleme anahtar zincirini birlikte açabilmenizi sağlar; diğeri, her anahtarlık genellikle kullanıcı şifresiyle kilitlenir ve yapılandırmaya bağlı olarak VM anahtarlığının şifresi yedek anahtarlıktan farklı olabilir)
  4. Sanal Makineyi Yosemite'ye yükseltin: Sanal makinedeki anahtarlık ihtiyacım olan her şeye sahip!
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.