Så här visar och verifierar du kodsignaturer för appar i Mac OS X

Kodsignerade program tillåter säkerhetsmedvetna användare att verifiera skaparen och hash för en viss app för att bekräfta att den inte har skadats eller manipulerats. Detta är sällan nödvändigt för genomsnittliga Mac-användare, särskilt de som hämtar sin programvara från Mac App Store eller andra betrodda källor, eftersom appen är certifierad, men att verifiera en digitals signatur kan vara till stor hjälp för användare som får appar från tredje part källor.


Verifiering av en kodsignatur är särskilt viktigt för dem som får program och installatörer från p2p och distribuerade källor, kanske en torrentplats eller nyhetsgrupper, IRC, public ftp eller annan nätverksresurs. För ett praktiskt exempel, låt oss säga att en användare inte kan komma åt Mac App Store av någon anledning, men behöver ladda ner ett OS X-installationsprogram och bygger således på en tredje part. En sådan situation är när det är viktigt att veta och verifiera att installatören inte har manipulerats och kommer legitimt från Apple, och förutom att kontrollera sha1 hash direkt är det enklaste sättet att göra det att kontrollera kodens signatur och kryptografiska hash av den aktuella appen.

För att komma igång, starta Terminal, hittade i / Program / Utilities /. Vi använder det lämpliga namnet "codeign" -kommandot, komplett med -dv och -verbose = 4 flaggor för att visa identifierande information om alla applikationer, inklusive ish-typ, hash checksum och signeringsmyndighet.

Den grundläggande syntaksen är som följer:

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

Till exempel, låt oss kolla signaturen på Terminal.app, som finns i / Program / Verktyg /

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

Vad du letar efter är hash typ, hash och auktoritet poster. I detta fall är hash-typen sha1 och den signerade myndigheten är Apple, vilket är vad du kan förvänta dig.

Ja, du kan också använda kommandoraden för att bara kontrollera sha1 eller md5 hashes av programinstallatörer och nedladdningar och jämföra dem med en legitim källa, men det kommer inte att avslöja kodens signatur- och certifikatinformation.

Tänk på att de flesta kodade program som har ändrats av en obehörig part kommer att avvisas av Gatekeeper i OS X, om inte Gatekeeper har inaktiverats eller på annat sätt kringgåtts, men även med Gatekeeper kvar på det är teoretiskt möjligt för en nybörjare att hitta en vägen runt det, och självklart kan programvara som inte har certifierats av en identifierad utvecklare alltid lanseras runt gatekeeper.

Du kan läsa mer om kodsignering på Wikipedia och på Apples utvecklarguide för att koda signering här.