Welche Belästigungen oder tatsächlichen Probleme können auftreten, wenn die digitale Signatur einer Mac-Anwendung beschädigt ist?
Anwendungen auf einem Mac können digital signiert werden. Wenn die Signatur irgendwie kaputt ist, weiß ich, dass einige Anwendungen dies bemerken. Aber ich weiß nicht, in welchem Detail dies nur Ärger sein oder Dinge wirklich kaputt machen wird:
Die OS X-Firewall ist möglicherweise nicht in der Lage, eine Ad-hoc-Signatur korrekt festzulegen. Dies führt dazu, dass wiederholt eine Aufforderung "Soll die Anwendung '[..]' eingehende Netzwerkverbindungen akzeptieren?" Angefordert wird.
Von der Kindersicherung zugelassene Anwendungen werden möglicherweise nicht mehr ausgeführt?
Der Schlüsselbundzugriff ist möglicherweise fehlerhaft?
Einige sagen, dass das Apple-Software-Update möglicherweise fehlschlägt. Wenn dies zutrifft, frage ich mich, ob dies tatsächlich von der Signatur der Codesignatur abhängt oder durch einen nicht übereinstimmenden Hash für die gesamte Anwendung oder durch Informationen aus Stücklistendateien verursacht wird .
Weitere Hintergrundinformationen finden Sie weiter unten.
Details zur Codesignatur können angezeigt werden mit:
codesign --display -vv /Applications/iTunes.app/
... was ungefähr Folgendes ergeben würde (aber nicht vor Änderungen warnen würde ):
[..]
CDHash=86828a2d631dbfd417600c458b740cdcd12b13e7
Signature size=4064
Authority=Software Signing
Authority=Apple Code Signing Certification Authority
Authority=Apple Root CA
[..]
Die Signatur kann validiert werden mit:
codesign --verify -vv /Applications/iTunes.app/
Welches würde ergeben:
/Applications/iTunes.app/: valid on disk
/Applications/iTunes.app/: satisfies its Designated Requirement
... oder (auch wenn Sie einfach eine zusätzliche Datei in den Ordner ./Contents/Resources einer Anwendung legen):
/Applications/iTunes.app/: a sealed resource is missing or invalid
... oder (vielleicht schlimmer als die obige Meldung):
/Applications/iTunes.app/: code or signature modified
Die Codesignatur geht auf OS 9 oder früher zurück, aber die aktuelle Implementierung wurde in 10.5 Leopard eingeführt. Ars Technica schreibt :
Durch die Codesignatur wird eine kryptografisch überprüfbare Identität mit einer Codesammlung verknüpft und sichergestellt, dass Änderungen an diesem Code erkannt werden. Über die beteiligten Parteien werden keine Garantien gegeben. Wenn Sie beispielsweise eine von Acme Inc. signierte Anwendung herunterladen, können Sie nichts darüber beweisen, außer dass sie von derselben Entität stammt, die behauptet, Acme Inc. zu sein, als Sie das letzte Mal etwas von ihrer Website heruntergeladen haben.
Dieses Beispiel zeigt tatsächlich die aus Verbrauchersicht nützlichste Anwendung der Technologie. Beim heutigen Upgrade einer Mac OS X-Anwendung [in 10.4 Tiger, AvB] wird der Benutzer häufig aufgefordert, erneut zu überprüfen, ob diese Anwendung auf den Schlüsselbund zugreifen darf, um Benutzernamen und Kennwörter abzurufen. Dies scheint eine gute Sicherheitsfunktion zu sein, aber alles, was es wirklich tut, ist, Mac-Benutzer zu schulen, jedes Mal blind auf "Immer zulassen" zu klicken, wenn es angezeigt wird. Und wirklich, was wird der durchschnittliche Benutzer tun, die ausführbare Datei über einen Disassembler ausführen und manuell überprüfen, ob der Code sicher ist?
Eine signierte Anwendung kann dagegen mathematisch beweisen, dass es sich tatsächlich um eine neue Version derselben Anwendung desselben Anbieters handelt, für die Sie in der Vergangenheit Vertrauen geäußert haben. Das Ergebnis ist ein Ende der Dialogfelder, in denen Sie aufgefordert werden, eine Auswahl zu bestätigen, deren Sicherheit Sie nicht angemessen überprüfen können.
Für die Firewall in 10.5 Leopard erklärt Apple :
Wenn Sie dieser Liste eine Anwendung hinzufügen, signiert Mac OS X die Anwendung digital (sofern sie noch nicht signiert wurde). Wenn die Anwendung später geändert wird, werden Sie aufgefordert, eingehende Netzwerkverbindungen zuzulassen oder zu verweigern. Die meisten Anwendungen ändern sich nicht selbst. Dies ist eine Sicherheitsfunktion, die Sie über die Änderung informiert.
[..]
Alle Anwendungen in der Liste, die von einer vom System vertrauenswürdigen Zertifizierungsstelle digital signiert wurden (zum Zwecke der Codesignatur), dürfen eingehende Verbindungen empfangen. Jede Apple-Anwendung in Leopard wurde von Apple signiert und darf eingehende Verbindungen empfangen. Wenn Sie eine digital signierte Anwendung ablehnen möchten, sollten Sie sie zuerst zur Liste hinzufügen und dann explizit ablehnen.
In 10.6 Snow Leopard wird letzteres expliziter gemacht (und kann deaktiviert werden), da "Signierte Software automatisch eingehende Verbindungen empfangen kann. Ermöglicht Software, die von einer gültigen Zertifizierungsstelle signiert wurde, Dienste bereitzustellen, auf die über das Netzwerk zugegriffen wird".
(In 10.6 wurden die 10.5.1-Optionen "Alle eingehenden Verbindungen zulassen", "Nur wichtige Dienste zulassen" und "Zugriff für bestimmte Dienste und Anwendungen festlegen" in eine Auswahl für "Alle eingehenden Verbindungen blockieren" oder eine Liste überarbeitet der zulässigen Anwendungen und Optionen "Signierter Software automatisch erlauben, eingehende Verbindungen zu empfangen" und "Stealth-Modus aktivieren ". Vor dem 10.5.1-Update wurde "Nur wesentliche Dienste zulassen" tatsächlich als "Alle eingehenden Verbindungen blockieren " bezeichnet.)
Bei (Apple-) Anwendungen, bei denen die ursprüngliche Signatur irgendwie beschädigt ist , wird diese Ad-hoc-Signatur möglicherweise nicht beibehalten, und es ist bekannt , dass sie Probleme für configd, mDNSResponder und racoon verursacht hat.