So zeigen Sie Code-Signaturen für Apps in Mac OS X an

Code-signierte Anwendungen ermöglichen es sicherheitsbewussten Benutzern, den Ersteller und den Hash einer bestimmten App zu überprüfen, um zu bestätigen, dass sie nicht beschädigt oder manipuliert wurden. Dies ist für durchschnittliche Mac-Benutzer selten erforderlich, insbesondere für diejenigen, die ihre Software aus dem Mac App Store oder anderen vertrauenswürdigen Quellen beziehen, da die Apps zertifiziert sind. Die Überprüfung der digitalen Signatur einer App kann jedoch sehr hilfreich für Benutzer sein, die Apps von Drittanbietern erhalten Quellen.


Das Verifizieren einer Codesignatur ist besonders wichtig für diejenigen, die Software und Installationsprogramme von p2p und verteilten Quellen beziehen, vielleicht eine Torrent-Site oder Newsgroups, IRC, öffentliches FTP oder eine andere Netzwerkressource. Ein praktisches Beispiel: Ein Benutzer kann aus irgendeinem Grund nicht auf den Mac App Store zugreifen, muss jedoch eine OS X-Installationsanwendung herunterladen und muss daher auf eine Drittanbieterquelle zurückgreifen. In solch einer Situation ist es wichtig zu wissen und zu verifizieren, dass das Installationsprogramm nicht manipuliert wurde und rechtmäßig von Apple kommt, und abgesehen von der direkten Überprüfung von sha1-Hash, ist der einfachste Weg, die Code-Signatur und kryptografisch zu überprüfen Hash der betreffenden App.

Um zu starten, starten Sie Terminal, gefunden in / Programme / Dienstprogramme /. Wir verwenden den passenden Befehl 'codesign', komplett mit den Flags -dv und -verbose = 4, um identifizierende Informationen über jede Anwendung anzuzeigen, einschließlich Hash-Typ, Hash-Prüfsumme und Signaturberechtigung.

Die grundlegende Syntax lautet wie folgt:

code sign -dv --verbose=4 /Path/To/Application.app

Lassen Sie uns zum Beispiel die Signatur in Terminal.app überprüfen, die sich in / Applications / Utilities /

codesign -dv --verbose=4 /Applications/Utilities/Terminal.app
Executable=/Applications/Utilities/Terminal.app/Contents/MacOS/Terminal
Identifier=com.apple.Terminal
Format=bundle with Mach-O thin (x86_64)
CodeDirectory v=20100 size=5227 flags=0x0(none) hashes=255+3 location=embedded
Platform identifier=1
Hash type=sha1 size=20
CDHash=0941049019f9fa3499333fb5b52b53735b498aed6cde6a23
Signature size=4105
Authority=Software Signing
Authority=Apple Code Signing Certification Authority
Authority=Apple Root CA
Info.plist entries=34
TeamIdentifier=not set
Sealed Resources version=2 rules=13 files=996
Internal requirements count=1 size=68

Sie suchen nach den Hash-Typ-, Hash- und Autorisierungseinträgen. In diesem Fall ist der Hash-Typ sha1 und die signierte Autorität ist Apple, was Sie erwarten würden.

Ja, Sie können die Befehlszeile auch verwenden, um nur Hashes von sha1 oder md5 von Installationsprogrammen und Downloads von Anwendungen zu überprüfen und sie mit einer legitimen Quelle zu vergleichen. Dabei werden jedoch die Codesignatur- und Zertifikatsdetails nicht angezeigt.

Denken Sie daran, dass die meisten Code-signierten Software, die von einer nicht autorisierten Partei modifiziert wurde, von Gatekeeper in OS X zurückgewiesen wird, es sei denn, Gatekeeper wurde deaktiviert oder anderweitig umgangen, aber selbst mit Gatekeeper ist es für einen unternehmungslustigen Goon theoretisch möglich Um es herum und natürlich Software, die nicht von einem bestimmten Entwickler zertifiziert wurde, kann immer um Gatekeeper sowieso gestartet werden.

Sie können hier mehr über das Signieren von Codes in Wikipedia und im Apple Developer Guide zum Signieren von Codes lesen.