Mac kod imzalaması değiştirilirse, ne başarısız olabilir?


11

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).

Mac OS X 10.6 Güvenlik Duvarı: İmzalı yazılımın gelen bağlantıları almasına otomatik olarak izin ver

(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 .


Sanırım Tentacle'ın cevabı her şeyi söylüyor (ve ne kadar zor çalışsam da: imzaları kırmak bana Anahtarlık Erişimi için henüz bir uyarı bile göstermedi). Yine de, kimsenin sorunlarla karşılaşıp karşılaşmadığını merak ediyorum. Umarım soru okumak için çok uzun değildir ... ;-)
Arjan

eklenen sertifika etiketi
quack quixote

Güzel: Birisi Anahtarlık ile uyumlu hale getirmek için (üstte onun sekmeleri ile) Safari 4 beta yeniden imzaladı: "petersconsult" tarafından yorumları görmek de macosxhints.com/article.php?story=20090925131057394
Arjan

Yanıtlar:


1

Kod imzalamanın bir uygulamayı nereden 'keseceği' örneği:

  • Keychain Access.app, kurcalandığını tespit ederse şifreleri görüntülemenize izin vermez.

Kaynak: Apple Posta Listesi ve Jaharmi'nin Irreality


Şüphesiz, şimdi sen söyleyince, bu şimdiye uygulamadır gerektiğini benim ilk testler için kullandık! :-)
Arjan

3

Size söyleyebileceğim, birçok insan tarafından kullanılan simge özelleştirme uygulaması Candybar, kaynak dosyalarını değiştirirken en azından Finder ve Dock'un (ve muhtemelen diğer bazı temel sistem uygulamalarının) dijital imzasını kırıyor ve henüz hiçbir şey bu nedenle bir sorun olarak rapor edilmiştir. Böylece çekirdek işletim sistemi bileşenlerini kullanan vahşi örnekleme çok fazla değil!

EDIT: İşte Snow Leopard'daki Dock için kod imzamı kontrol etmenin sonucu:

⚛$ codesign --verify --verbose /System/Library/CoreServices/Dock.app/
/System/Library/CoreServices/Dock.app/: a sealed resource is missing or invalid
/System/Library/CoreServices/Dock.app/Contents/Resources/expose-window-selection-big.png: resource modified
/System/Library/CoreServices/Dock.app/Contents/Resources/expose-window-selection-small.png: resource modified
/System/Library/CoreServices/Dock.app/Contents/Resources/finder.png: resource modified
/System/Library/CoreServices/Dock.app/Contents/Resources/frontline.png: resource modified
/System/Library/CoreServices/Dock.app/Contents/Resources/indicator_large.png: resource modified
/System/Library/CoreServices/Dock.app/Contents/Resources/indicator_medium.png: resource modified
/System/Library/CoreServices/Dock.app/Contents/Resources/indicator_small.png: resource modified
/System/Library/CoreServices/Dock.app/Contents/Resources/scurve-l.png: resource modified
/System/Library/CoreServices/Dock.app/Contents/Resources/scurve-m.png: resource modified
/System/Library/CoreServices/Dock.app/Contents/Resources/scurve-sm.png: resource modified
/System/Library/CoreServices/Dock.app/Contents/Resources/scurve-xl.png: resource modified
/System/Library/CoreServices/Dock.app/Contents/Resources/trashempty.png: resource modified
/System/Library/CoreServices/Dock.app/Contents/Resources/trashfull.png: resource modified

Aha, bunu biraz araştıracağım! Bazı manuel olarak değiştirilen simgeler, diğer bazı uygulamalar için kod imzalamayı bozmadı. Yapımcıların kendileri 2008'de yazdı: Uygulama simgelerinizi elle değiştirmek için, bunu yapmaktan daha fazlasına sahipsiniz! Uyarı olarak: Apple gelecekteki bir Mac OS X küçük güncellemesinde yerleşik kod imzalamayı etkinleştirirse, uygulamalarınız artık başlamaz. Planlarından Apple'dan bir anlam alana kadar bu özelliği devre dışı bırakarak güvenli bir şekilde kaçınmaya çalıştığımız şey budur. - macupdate.com/info.php/id/8948?rord=mod
Arjan

Snow Leopard'daki rıhtımı elle değiştirdikten sonra sonucu ekledim ...
Dokunaç

Ah, aptal. Şimdiye kadar test ettiğim tek şey program simgesiydi (Finder's Get Info aracılığıyla yeni bir simge yapıştırarak), programın kendisi tarafından kullanılan herhangi bir simge değildi. Tamam, kod imzalama kesinlikle kırıldı. Candybar geliştiricisinin yorumu benim için hala biraz korkutucu, ancak Apple mevcut (olmayan) etkileri aniden değiştirirken birçok insanın başını belaya sokacak.
Arjan

Test, ağa bakan bir uygulamadaki kaynakları değiştirmek ve imzalamayı kırmanın uygulama güvenlik duvarından otomatik geçişi durdurup durdurmadığını görmektir ...
Dokunaç

(Hmmm, CandyBar geliştiricisi 10 Ocak 2008 tarihli yorumu MacUpdate'den kaldırdı. Google önbelleği hala gösteriyor, ancak görünüşe göre OS X 6.1 için yeni bir sürüm var, bu yüzden ya sorun çözüldü ya da CandyBar uyuyan köpeklerin yatmasına izin vermek istiyor .. Diyelim ki o zaman sorun yok!)
Arjan

0

Snow Leopard'da kod imzalamanın biraz ayrıntılı bir açıklaması ars technica'nın Snow Leopard incelemesinde sağlanmıştır . Anlayabildiğim kadarıyla, kod imzalamayı kırmak hiçbir şeyi kırmayacak. Bununla birlikte, uygulamaların güvenilmez hale gelmesine neden olur, bu da eylemlerinin daha fazlasını doğrulamak zorunda olduğu anlamına gelir.


Aslında 10.5 Leopard incelemesi. Yine de 10.6 incelemesinden güzel bir alıntı: "Ve daha sonra öğrendiğimiz" Mac OS X "teknolojilerini iPhone için geliştirildiğini ve ilk önce Mac için duyurulduğunu unutmayalım (iPhone hala bir sır olduğu için), Çekirdek Animasyon ve kod imzalama gibi. " - arstechnica.com/apple/reviews/2009/08/mac-os-x-10-6.ars
Arjan

0

Geçen gün Disk İzinlerimi onarıyordum (Disk İzlencesi'nden) ve şu uyarıyı aldım:

Warning: SUID file "System/.../ARDAgent" has been modified and will not be repaired.

Yani olacak bir şey var. Bunun ne kadar önemli olduğunu bilmiyorum.


İlginç Apple bu listeler özellikle adresindeki "Mac OS X 10.5 Disk Utility adlı Repair disk izinler mesajlar güvenle görmezden gelemeyeceği" support.apple.com/kb/TS1448 üzerinde Apple Hayır kelimesi nasıl bu değiştirildi ve niçin 'Götürmezse önemli değil ... codesign --verifyGerçekten kırık bir imza gösteriyor mu?
Arjan

0

Kod imzalamanın mevcut uygulaması oldukça dişsiz ve muhtemelen iPhone geliştiricilerinin yararına kapı dışarı koştu. Umarım gelecekte bir noktada zorunlu hale gelir ve umarım o zamana kadar çok daha kolay ve daha ucuz hale gelir.

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.