Anzeigen von & Verifizieren von Code-Signaturen für Apps in Mac OS X
Inhaltsverzeichnis:
Codesignierte 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 wurde. 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, aber die Überprüfung der digitalen Signatur einer App kann für Benutzer, die Apps von Drittanbietern beziehen, äußerst hilfreich sein Quellen.
Das Verifizieren einer Code-Signatur 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. Nehmen wir als praktisches Beispiel an, ein Benutzer kann aus irgendeinem Grund nicht auf den Mac App Store zugreifen, muss aber eine Mac OS X-Installationsanwendung herunterladen und ist daher auf eine Drittanbieterquelle angewiesen. In einer solchen Situation wäre es wichtig zu wissen und zu verifizieren, dass das Installationsprogramm nicht manipuliert wurde und rechtmäßig von Apple stammt, und abgesehen von der direkten Überprüfung des sha1-Hashs ist der einfachste Weg, dies zu tun, die Code-Signatur und die Kryptografie zu überprüfen Hash der betreffenden App.
So überprüfen Sie die Code-Signatur für Apps auf dem Mac
Um loszulegen, starten Sie Terminal, zu finden unter /Applications/Utilities/. Wir verwenden den treffend benannten Befehl „codesign“, komplett mit den Flags -dv und –verbose=4, um identifizierende Informationen zu jeder Anwendung anzuzeigen, einschließlich Hash-Typ, Hash-Prüfsumme und Signaturberechtigung.
Die grundlegende Syntax lautet wie folgt:
codesign -dv --verbose=4 /Path/To/Application.app
Überprüfen wir beispielsweise die Signatur auf Terminal.app unter /Applications/Utilities/
codesign -dv --verbose=4 /Applications/Utilities/Terminal.app Executable=/Applications/Utilities/Terminal.app/Contents/MacOS/Terminal Identifier=com.apple.Terminal Format=Paket mit Mach-O Thin (x86_64) CodeDirectory v=20100 Größe=5227 Flags=0x0(keine) Hashes=255+3 Ort=eingebettet Plattformkennung=1 Hash-Typ=sha1 Größe=20 CDHash=0941049019f9fa3499333fb5b52b53735b498aed6cde6a23 Signaturgröße=4105 Autorität=Software Signing Authority=Apple Code Signing Certification Authority Authority=Apple Root CA Info.plist entries=34 TeamIdentifier=nicht gesetzt Sealed Resources Version=2 Regeln=13 Dateien=996 Anzahl der internen Anforderungen=1 Größe=68
Was Sie suchen, sind Hash-Typ, Hash und Autoritätseinträge. In diesem Fall ist der Hash-Typ sha1 und die signierte Autorität ist Apple, was Sie erwarten würden.
Ja, Sie können auch die Befehlszeile verwenden, um einfach sha1- oder md5-Hashes von Anwendungsinstallationsprogrammen und Downloads zu überprüfen und sie mit einer legitimen Quelle zu vergleichen, aber das wird die Codesignatur- und Zertifikatsdetails nicht preisgeben.
Denken Sie daran, dass die meiste Code-signierte Software, die von einer nicht autorisierten Partei modifiziert wurde, von Gatekeeper in Mac OS X abgelehnt wird, es sei denn, Gatekeeper wurde deaktiviert oder anderweitig umgangen, aber selbst wenn Gatekeeper darauf gelassen wurde theoretisch möglich für einen unternehmungslustigen Idioten, einen Weg darum zu finden, und natürlich kann Software, die nicht von einem identifizierten Entwickler zertifiziert wurde, sowieso immer um Gatekeeper herum gestartet werden.
Informationen zum Code Signing finden Sie auf Wikipedia und im Apple Developer Guide to Code Signing hier.
Überprüfen Sie jemals, ob Apps signiert sind? Es kann eine gültige Methode sein, um festzustellen, was einige Prozesse und Apps sind, und kann auch bei der Fehlerbehebung hilfreich sein. Probieren Sie es das nächste Mal aus, wenn Sie sich fragen, was etwas ist und ob es signiert ist oder nicht!