Slik viser og verifiserer du kodesignaturer for apper i Mac OS X

Kode-signerte applikasjoner lar sikkerhetsbevisste brukere å verifisere skaperen og hash av en bestemt app for å bekrefte at den ikke er skadet eller manipulert. Dette er sjelden nødvendig for gjennomsnittlige Mac-brukere, særlig de som henter programvaren deres fra Mac App Store eller andre pålitelige kilder, siden appene er sertifisert. Det kan imidlertid være ekstremt nyttig å verifisere den digitale signaturen til en app for brukere som får apper fra tredjepart kilder.


Verifisere en kodesignatur er spesielt viktig for de som får programvare og installatører fra p2p og distribuerte kilder, kanskje et torrent-nettsted eller nyhetsgrupper, IRC, offentlig ftp eller en annen nettverksressurs. For et praktisk eksempel, la oss si at en bruker ikke kan få tilgang til Mac App Store, uansett grunn, men trenger å laste ned et OS X installasjonsprogram og dermed er avhengig av tredjeparts kilde. En slik situasjon er når det er viktig å vite og verifisere at installatøren ikke har blitt manipulert og er legitimt fra Apple, og bortsett fra å sjekke sha1 hash direkte, er den enkleste måten å gjøre det, å sjekke kodens signatur og kryptografiske hash av appen i spørsmålet.

For å komme i gang, start Terminal, funnet i / Programmer / Verktøy /. Vi bruker den riktige navnet "codeign" kommandoen, komplett med -dv og -verbose = 4 flagg for å vise identifiserende informasjon om et hvilket som helst program, inkludert det hash-type, hash checksum og signeringsautorisasjon.

Den grunnleggende syntaksen er som følger:

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

For eksempel, la oss sjekke signaturen på Terminal.app, som ligger i / Programmer / Verktøy /

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

Det du leter etter er hash type, hash og autorisasjon oppføringer. I dette tilfellet er hash-typen sha1 og den signerte myndigheten er Apple, noe som du kan forvente.

Ja, du kan også bruke kommandolinjen til å bare sjekke sha1 eller md5 hashes av programinstallatører og nedlastinger og sammenligne dem med en legitim kilde, men det vil ikke avsløre kodesignatur og sertifikatdetaljer.

Husk at de fleste kodesignerte programvarene som er endret av et uautorisert parti, vil bli avvist av Gatekeeper i OS X, med mindre Gatekeeper har blitt deaktivert eller på annen måte omgått, men selv med Gatekeeper igjen er det teoretisk mulig for en underholdende goon å finne en veien rundt det, og selvfølgelig programvare som ikke er sertifisert av en identifisert utvikler, kan alltid lanseres rundt gatekeeper uansett.

Du kan lese mer om kodesignering på Wikipedia og i Apple Developer-guiden for å kodesignere her.