Apps auf eine „GateKeeper“-Entwickler-ID prüfen?

Gibt es für einen Mac-Benutzer, der derzeit Snow Leopard oder Lion ausführt, eine Möglichkeit, möglicherweise über die Terminal-Befehlszeile zu überprüfen, ob eine aus dem Internet heruntergeladene Anwendung mit einer von Apple ausgestellten Entwickler-ID digital signiert wurde?

Wenn ja, was könnten die Vorteile für einen Mac-Benutzer sein, wenn er jetzt eine solche Überprüfung durchführt?

Apple hat Mac-Entwickler ermutigt, ihre Mac-Anwendungen mit einer von Apple ausgegebenen Entwickler-ID digital zu signieren, die Apple angekündigt hat, irgendwann in der Zukunft vom Mac OS verwendet zu werden.

Mein Verständnis ist nicht so sehr, dass Apple die Entwickler-ID ausstellt, sondern ein Entwicklerzertifikat signiert, sodass Macs mit aktiviertem Gatekeeper diesen signierten Code validieren, wenn sie das Apple-Zertifikat zum Signieren ihres Codes verwenden, wenn er unter Quarantäne gestellt und noch nicht freigegeben wurde für läuft auf deinem mac.
Da dies eher eine Frage-und-Antwort-Site für Benutzer ist, können Sie das so erklären, dass ein Nicht-Entwickler es besser verstehen könnte?
Entwickler werden mit Apple zusammenarbeiten, um sicherzustellen, dass Apps ordnungsgemäß signiert sind.

Antworten (2)

Wenn Sie die Entwicklertools installiert haben, können Sie die Signaturinformationen für eine Binärdatei mit diesem Befehl anzeigen:

codesign -dvvv <path to app.app>

Die Ausgabe sieht so aus:

Executable=/Volumes/Big Disk/F376/Projects/<My App>
Identifier=<My Bundle ID>
Format=bundle with Mach-O thin (x86_64)
CodeDirectory v=20100 size=3958 flags=0x0(none) hashes=189+5 location=embedded
Hash type=sha1 size=20
CDHash=761b0d1XXXXXXXXXX0dc8dd42e38eb445fb5341f
Signature size=8504
Authority=Developer ID Application: XXXXXX
Authority=Developer ID Certification Authority
Authority=Apple Root CA
Timestamp=May 7, 2013 3:07:59 PM
Info.plist entries=30
Sealed Resources rules=4 files=128
Internal requirements count=1 size=224

Ohne zu weit vom Thema abzuschweifen, können Sie überprüfen, ob eine Binärdatei in Vorbereitung auf Gatekeeper signiert wurde, indem Sie die otooloder pagestuffBefehlszeilentools verwenden, die Xcode als Teil der optionalen Downloads installiert.

Geben Sie hier die Bildbeschreibung ein

Wenn Sie diese nicht installieren möchten, können Sie diese Tools auch dort verwenden xcode-selectund xcrunausführen, wo sie sich in der Xcode-App befinden, die in /Applications heruntergeladen wird.

Hier ist eine App, die für Gatekeeper signiert und einsatzbereit zu sein scheint – MarsEdit

mac:Applications me$ xcrun otool -l /Applications/MarsEdit.app/Contents/MacOS/MarsEdit |grep LC_CODE_SIGNATURE
      cmd LC_CODE_SIGNATURE
mac:Applications me$ xcrun pagestuff /Applications/MarsEdit.app/Contents/MacOS/MarsEdit -a | grep signature
File Page 241 contains data of code signature (x86_64)
File Page 242 contains data of code signature (x86_64)
File Page 243 contains data of code signature (x86_64)
File Page 423 contains data of code signature (i386)
File Page 424 contains data of code signature (i386)
File Page 425 contains data of code signature (i386)
File Page 426 contains data of code signature (i386)

Nun, dies sagt Ihnen nicht einmal, ob der Schlüssel gültig ist, wenn er mit Ihrem Schlüsselbund verglichen wird. Dazu muss der Entwickler einen Schlüssel verwenden, den Apple signiert hat, und Apple muss den entsprechenden Signaturschlüssel an Ihren Mac gesendet haben, um zu überprüfen, ob der Entwicklerschlüssel „vertrauenswürdig“ ist.

Da dies ziemlich kompliziert ist, könnten Sie einfach die Überprüfung auf 10.7.3 einschalten (bitte speichern Sie alle kritischen Arbeiten und BITTE ERSTELLEN SIE IHREN MAC, BEVOR SIE DIES TUN):

  • sudo spctl --enable#Wenn Sie nicht wissen, was sudo ist, sollten Sie dies überspringen, bis Sie verstehen, dass der falsche Befehl Ihr System oder Ihre Dateien löschen könnte. Alle, total weg.

Es sieht so aus , als ob spctles für 10.7.4 verbessert wurde, aber ich habe es nicht weiter untersucht, als die Manpage für das Tool zu lesen. Auf diese Weise kann eindeutig überprüft werden, ob eine bestimmte App freigegeben ist oder nicht, und auf niedrigerer Ebene verschiedene Regeln und Prüfungen aktiviert / deaktiviert werden, die den Marketingbegriff von Gatekeeper unterstützen.

Warum Sie dies überprüfen könnten, wäre nur aus reiner Neugier oder einer Art Prahlerei, wenn Sie nicht wirklich ein Entwickler sind, der dies testen und sicherstellen muss, dass Ihr Code auf beiden Betriebssystemen (Mountain Lion und Lion) ausgeführt wird.

Für die meisten Menschen wäre es gut genug zu wissen, was Gatekeeper ist. Für Neugierige - hier eine schöne Leseliste:

Dies kann also derzeit nur durch Herunterladen von Xcode erfolgen?
Sie sollten es spctlauf Ihrem Mac (10.7.3 und höher) haben, aber es ist noch nicht klar, wie Sie es zum Überprüfen verwenden können. Die gleichen Apps, die ich habe, die ein Zertifikat anzeigen, werden nicht von validiert spctl. Xcode ist ein kostenloser Download und Sie können die xcrunVersion der Tools verwenden. Wenn Sie also Xcode aus /Applicatins löschen, sind alle Spuren von Ihrem Mac verschwunden.