Bir Mac uygulamasının dijital imzası bozulduğunda ne gibi sıkıntılar veya gerçek sorunlar meydana gelebilir?
Mac'teki uygulamalar dijital olarak imzalanabilir. İmza bir şekilde bozulduğunda, birkaç uygulamanın bunu fark edebileceğini biliyorum. Ama bunların sadece ne kadar can sıkıcı olacağını ya da bir şeyleri gerçekten kıracağını bilmiyorum:
OS X güvenlik duvarı geçici bir imzayı doğru ayarlayamayabilir ve bu durumun sürekli olarak sorulmasına neden olabilir "'[..]' uygulamasının gelen ağ bağlantılarını kabul etmesini istiyor musunuz?"
Ebeveyn Denetimleri tarafından izin verilen uygulamalar artık çalışmayabilir mi?
Anahtarlık Erişimi bozuk olabilir mi?
Bazıları Apple yazılım güncellemesinin başarısız olabileceğini söylüyor. Eğer doğruysa, o zaman bu gerçekten Kod İmza imzasına bağlı mı, yoksa tüm uygulama için bazı eşleşmeyen karma veya BOM dosyalarından bilgi neden olacağını merak ediyorum .
Aşağıda daha fazla arka plan bilgisi.
Kod imzalama ayrıntıları aşağıdakiler kullanılarak gösterilebilir:
codesign --display -vv /Applications/iTunes.app/
... Aşağıdaki gibi bir şey doğuracak (ama hangi değil değişiklikler hakkında uyarmak):
[..]
CDHash=86828a2d631dbfd417600c458b740cdcd12b13e7
Signature size=4064
Authority=Software Signing
Authority=Apple Code Signing Certification Authority
Authority=Apple Root CA
[..]
İmza aşağıdakiler kullanılarak doğrulanabilir:
codesign --verify -vv /Applications/iTunes.app/
Hangi sonuç verir:
/Applications/iTunes.app/: valid on disk
/Applications/iTunes.app/: satisfies its Designated Requirement
... veya (bir uygulamanın ./Contents/Resources klasörüne fazladan bir dosya koyarken bile):
/Applications/iTunes.app/: a sealed resource is missing or invalid
... veya (yukarıdaki mesajdan daha kötü olabilir):
/Applications/iTunes.app/: code or signature modified
Kod imzalama OS 9 veya öncesine kadar gider, ancak mevcut uygulama 10.5 Leopard'da tanıtıldı . Ars Technica şöyle yazıyor :
Kod imzalama, bir kriptografik olarak doğrulanabilir kimliği bir kod koleksiyonuna bağlar ve bu kodda yapılan herhangi bir değişikliğin algılanmasını sağlar. İlgili taraflar hakkında herhangi bir garanti verilmemektedir. Örneğin, Acme Inc. tarafından imzalanan bir uygulamayı indirirseniz, web sitesinden en son bir şey indirdiğinizde Acme Inc. olduğunu iddia eden aynı kuruluştan gelmesi dışında hiçbir şey kanıtlayamazsınız.
Bu örnek aslında tüketicinin bakış açısından teknolojinin en kullanışlı uygulamasını vurgular. Bugün bir Mac OS X uygulamasını [10.4 Tiger, AvB'de) yükseltirken, kullanıcıdan sık sık bu uygulamanın kullanıcı adlarını ve parolaları almak için Anahtarlık'a erişmesine izin verildiğini yeniden doğrulaması istenir. Bu iyi bir güvenlik özelliği gibi görünüyor, ancak gerçekten yaptığı her şey, Mac kullanıcılarını her göründüğünde körü körüne "Her Zaman İzin Ver" i tıklamaları için eğitmektir. Ve gerçekten, ortalama kullanıcı ne yapacak, yürütülebilir bir sökücü ile çalıştırın ve manuel olarak kod güvenli olduğunu doğrulamak?
İmzalı bir uygulama ise, geçmişte güvendiğinizi ifade ettiğiniz aynı satıcıdan aynı uygulamanın gerçekten yeni bir sürümü olduğunu matematiksel olarak kanıtlayabilir. Sonuç, güvenliğini doğrulamak için makul bir yolunuz olmayan bir seçimi onaylamanızı isteyen iletişim kutularının sonu olur.
Apple 10.5 Leopard'daki güvenlik duvarı için şunları açıklıyor :
Bu listeye bir uygulama eklediğinizde, Mac OS X uygulamayı dijital olarak imzalar (henüz imzalanmamışsa). Uygulama daha sonra değiştirilirse, gelen ağ bağlantılarına izin vermeniz veya reddetmeniz istenir. Çoğu uygulama kendilerini değiştirmez ve bu size değişikliği bildiren bir güvenlik özelliğidir.
[..]
Listede bulunmayan ve sistem tarafından güvenilen bir Sertifika Yetkilisi tarafından dijital olarak imzalanmış tüm uygulamaların (kod imzalama amacıyla) gelen bağlantıları almasına izin verilir. Leopard'daki her Apple uygulaması Apple tarafından imzalanmıştır ve gelen bağlantıları almasına izin verilir. Dijital olarak imzalanmış bir uygulamayı reddetmek istiyorsanız, önce listeye eklemeniz ve sonra açıkça reddetmeniz gerekir.
10.6 Snow Leopard'da, ikincisi "İmzalı yazılımın gelen bağlantıları almasına otomatik olarak izin ver. Geçerli bir sertifika yetkilisi tarafından imzalanan yazılımın ağdan erişilen hizmetleri sağlamasına izin verir" olarak daha açık hale getirilir (ve devre dışı bırakılabilir).
(10.6'da, "Tüm gelen bağlantılara izin ver", "Yalnızca temel hizmetlere izin ver" ve "Belirli hizmetler ve uygulamalar için erişimi ayarla" seçenekleri "Tüm gelen bağlantıları engelle" seçeneği veya bir liste için yenilendi izin verilen uygulamalar ve seçenekler "İmzalı yazılımın gelen bağlantıları almasına otomatik olarak izin ver " ve "Gizli modu etkinleştir". 10.5.1 güncellemesinden önce "Yalnızca gerekli hizmetlere izin ver" seçeneğine "Gelen tüm bağlantıları engelle" adı verildi.)
Bir şekilde orijinal imzası bozulan (Apple) uygulamalar için bu geçici imza bir şekilde kalıcı olmayabilir ve configd, mDNSResponder ve racoon için sorun yarattığı bilinmektedir .