Hvordan vise & bekrefte kodesignaturer for apper i Mac OS X
Innholdsfortegnelse:
Kodesignerte applikasjoner lar sikkerhetsbevisste brukere verifisere skaperen og hashen til en bestemt app for å bekrefte at den ikke har blitt ødelagt eller tuklet med. Dette er sjelden nødvendig for gjennomsnittlige Mac-brukere, spesielt de som skaffer programvaren fra Mac App Store eller andre pålitelige kilder siden appene er sertifisert, men å bekrefte den digitale signaturen til en app kan være svært nyttig for brukere som får apper fra tredjeparter kilder.
Bekreftelse av en kodesignatur er spesielt viktig for de som får programvare og installasjonsprogrammer fra p2p og distribuerte kilder, kanskje et torrentnettsted 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 må laste ned et Mac OS X-installasjonsprogram og dermed stole på en tredjepartskilde. En slik situasjon er når det ville være viktig å vite og verifisere at installasjonsprogrammet ikke har blitt tuklet med og kommer fra Apple, og bortsett fra å sjekke sha1 hash direkte, er den enkleste måten å gjøre det på å sjekke kodesignaturen og kryptografikken. hash for den aktuelle appen.
Hvordan sjekke kodesignatur for apper på Mac
For å komme i gang, start Terminal, funnet i /Applications/Utilities/. Vi vil bruke den passende navngitte 'codesign'-kommandoen, komplett med -dv- og -verbose=4-flaggene for å vise identifiserende informasjon om enhver applikasjon, inkludert dens hash-type, hash-sjekksum og signeringsautoritet.
Den grunnleggende syntaksen er som følger:
codesign -dv --verbose=4 /Path/To/Application.app
La oss for eksempel sjekke signaturen på Terminal.app, som ligger i /Applications/Utilities/
codesign -dv --verbose=4 /Applications/Utilities/Terminal.app Executable=/Applications/Utilities/Terminal.app/Contents/MacOS/Terminal Identifier=com.apple.Terminal Format=bunt med Mach-O tynn (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 Signaturstørrelse=4105 Authority=Software Signing Authority=Apple Code Signing Certification Authority Authority=Apple Root CA Info.plist entries=34 TeamIdentifier-størrelser=34 TeamIdentifier-filer=34 TeamIdentifier-filer=34 TeamIdentifier-størrelse 9
Det du leter etter er hash-type, hash- og autorisasjonsoppføringer. I dette tilfellet er hash-typen sha1 og den signerte autoriteten er Apple, som er hva du forventer.
Ja, du kan også bruke kommandolinjen til å bare sjekke sha1- eller md5-hasher for applikasjonsinstallatører og nedlastinger og sammenligne dem med en legitim kilde, men det vil ikke avsløre kodesigneringen og sertifikatdetaljene.
Husk at det meste av kodesignert programvare som har blitt endret av en uautorisert part, vil bli avvist av Gatekeeper i Mac OS X, med mindre Gatekeeper har blitt deaktivert eller på annen måte omgått, men selv med Gatekeeper igjen. teoretisk mulig for en driftig goon å finne en vei rundt det, og selvfølgelig kan programvare som ikke er sertifisert av en identifisert utvikler alltid lanseres rundt Gatekeeper uansett.
Du kan om kodesignering på Wikipedia og på Apple Developer guide for kodesignering her.
Sjekker du noen gang om apper er signert? Det kan være en gyldig måte å finne ut hva enkelte prosesser og apper er, og kan også være nyttig for feilsøking. Prøv det neste gang du lurer på hva noe er og om det er signert eller ikke!