Wie kann ich feststellen, ob eine bestimmte .app-Datei signiert ist?

45

Get Info on an .app erzeugt keine Signaturinformationen. Wenn Sie beispielsweise unter Windows mit der rechten Maustaste auf> Eigenschaften klicken, wird angezeigt, wer die Datei signiert hat.

Wie erhalte ich diese Informationen für eine bestimmte .app unter OS X?

JasonGenX
quelle
Was passiert, wenn Sie in Contents / _CodeSignature nachsehen?
GEdgar

Antworten:

51

Sie können eine Datei überprüfen, indem Sie den folgenden Befehl in Terminal ausführen:

 codesign -dv /Applications/Whatever.app

Es gibt ein kostenloses Tool, das die Funktionen des Befehls codesign implementiert und mit einer schönen GUI erweitert. Es heißt RB App Checker (im App Store) und enthält eine Website, die das Programm beschreibt: http://brockerhoff.net/RB/AppCheckerLite/

Ich habe nur diese beiden Tools benötigt, um die Codesignatur unter OS X zu überprüfen, damit sie hoffentlich Ihren Anforderungen entsprechen. Schauen Sie sich den AppChecker an, wenn Ihr Mac kein Codesign hat (einige ältere benötigen Xcode, um dieses Tool zu erhalten, bevor der Gatekeeper ausgeliefert wird).

Wie Sie wissen, zeigt das Betriebssystem nicht vertrauenswürdige Apps als schwach und mit einem allgemeinen Symbol an, bis der Gatekeeper-Prozess die Ausführung eines Bundles genehmigt. Dieser Code könnte jedoch weiterhin signiert sein, sodass Sie sich nicht unbedingt auf einen visuellen Hinweis verlassen können wenn ein Code signiert wurde oder nicht - insbesondere, wenn man bedenkt, dass der Gatekeeper auf einem bestimmten Mac deaktiviert werden könnte.

bmike
quelle
16
-dvvv fügt Zeilen für die Zertifizierungsstellen, den Hash-Typ und den Literal-Hash hinzu. -dv (oder -dvvv) zeigt nicht an, ob die Signatur gültig oder ungültig ist. -v zeigt an, ob die Signatur gültig ist, und wenn dies nicht der Fall ist, druckt -vv auch geänderte Dateien.
Lri
1
@Lri Die aufgeführten Zertifizierungsstellen sind nur Textzeichenfolgen. Jeder kann eine beliebige Zertifizierungsstelle mit einem beliebigen Namen erstellen. Wie können wir also zusätzlich überprüfen, ob die Hashes vertrauenswürdigen Zertifizierungsstellen entsprechen? Wollen wir den CandidateCDHash oder den CDHash? Stellt dies fest, dass keine falschen Root-Berechtigungen oder ähnliches installiert sind?
Nealmcb