Cum să afișați & Verificați semnăturile codului pentru aplicații în Mac OS X

Cuprins:

Anonim

Aplicațiile semnate de cod permit utilizatorilor conștienți de securitate să verifice creatorul și hash-ul unei anumite aplicații pentru a confirma că nu a fost coruptă sau alterată. Acest lucru este rareori necesar pentru utilizatorii medii de Mac, în special cei care își obțin software-ul din Mac App Store sau din alte surse de încredere, deoarece aplicațiile sunt certificate, dar verificarea semnăturii digitale a unei aplicații poate fi extrem de utilă pentru utilizatorii care obțin aplicații de la terți. surse.

Verificarea unei semnături de cod este deosebit de importantă pentru cei care obțin software și instalatori din p2p și surse distribuite, poate un site torrent sau grupuri de știri, IRC, ftp public sau altă resursă de rețea. Pentru un exemplu practic, să presupunem că un utilizator nu poate accesa Mac App Store din orice motiv, dar trebuie să descarce o aplicație de instalare Mac OS X și, astfel, se bazează pe o sursă terță parte. O astfel de situație este atunci când ar fi important să știți și să verificați că programul de instalare nu a fost manipulat și că provine în mod legitim de la Apple și, în afară de verificarea directă a hash-ului sha1, cel mai simplu mod de a face acest lucru este să verificați semnătura codului și criptografic. hash al aplicației în cauză.

Cum se verifică semnătura codului pentru aplicații pe Mac

Pentru a începe, lansați Terminal, care se găsește în /Aplicații/Utilități/. Vom folosi comanda „codesign”, bine numită, completă cu semnalizatoarele -dv și –verbose=4 pentru a afișa informații de identificare despre orice aplicație, inclusiv tipul hash, suma de control hash și autoritatea de semnare.

Sintaxa de bază este următoarea:

codesign -dv --verbose=4 /Path/To/Application.app

De exemplu, să verificăm semnătura pe Terminal.app, aflată în /Applications/Utilities/

codesign -dv --verbose=4 /Applications/Utilities/Terminal.app Executable=/Applications/Utilities/Terminal.app/Contents/MacOS/Terminal Identifier=com.apple.Terminal Format=pachet cu Mach-O subțire (x86_64) CodeDirectory v=20100 dimensiune=5227 flags=0x0(niciunul) hashes=255+3 location=embedded Platform identifier=1 Hash type=sha1 size=20 CDHash=0941049019f9fa3499333fb5b52b53735b498aed6cde6a23 Dimensiunea semnăturii=4105 Authority=Autoritatea de semnare a software-ului=Autoritatea de certificare a semnării codului Apple Autoritatea=Autoritatea Apple Root CA Info.plist Intrări interne=Versiune de informaţii=346 Reguli interne=34 Resurse1 Sealed=349

Ceea ce căutați sunt intrările de tip hash, hash și autoritate. În acest caz, tipul hash este sha1 și autoritatea semnată este Apple, ceea ce vă așteptați.

Da, puteți folosi și linia de comandă pentru a verifica hash-urile sha1 sau md5 ale instalatorilor și descărcărilor de aplicații și să le comparați cu o sursă legitimă, dar asta nu va dezvălui semnarea codului și detaliile certificatului.

Rețineți că majoritatea software-ului semnat de cod care a fost modificat de către o parte neautorizată va fi respins de Gatekeeper în Mac OS X, cu excepția cazului în care Gatekeeper a fost dezactivat sau eludat în alt mod, dar chiar și cu Gatekeeper lăsat activat. teoretic, este posibil ca un goon întreprinzător să găsească o cale de a o ocoli și, desigur, software-ul care nu a fost certificat de un dezvoltator identificat poate fi oricum lansat în jurul Gatekeeper.

Puteți despre semnarea codului pe Wikipedia și în ghidul pentru dezvoltatori Apple pentru semnarea codului aici.

Verificați vreodată dacă aplicațiile sunt semnate? Poate fi o modalitate validă de a determina care sunt unele procese și aplicații și, de asemenea, poate fi utilă pentru depanarea. Încercați data viitoare când vă întrebați ce este ceva și dacă este semnat sau nu!

Cum să afișați & Verificați semnăturile codului pentru aplicații în Mac OS X