Come mostrare & Verificare le firme del codice per le app in Mac OS X
Sommario:
Le applicazioni firmate con codice consentono agli utenti attenti alla sicurezza di verificare il creatore e l'hash di una particolare app per verificare che non sia stata danneggiata o manomessa. Questo è raramente necessario per gli utenti Mac medi, in particolare quelli che ottengono il loro software dal Mac App Store o da altre fonti attendibili poiché le app sono certificate, ma la verifica della firma digitale di un'app può essere estremamente utile per gli utenti che ottengono app da terze parti fonti.
La verifica di una firma del codice è particolarmente importante per coloro che ottengono software e programmi di installazione da fonti p2p e distribuite, ad esempio un sito torrent o newsgroup, IRC, ftp pubblico o un' altra risorsa di rete. Per un esempio pratico, supponiamo che un utente non possa accedere al Mac App Store per qualsiasi motivo, ma debba scaricare un'applicazione di installazione di Mac OS X e quindi si affidi a una fonte di terze parti. Una situazione del genere è quando sarebbe importante sapere e verificare che il programma di installazione non sia stato manomesso e provenga legittimamente da Apple, e oltre a controllare direttamente l'hash sha1, il modo più semplice per farlo è controllare la firma del codice e il codice crittografico hash dell'app in questione.
Come controllare la firma del codice per le app su Mac
Per iniziare, avvia Terminal, che si trova in /Applicazioni/Utility/. Useremo il comando 'codesign' dal nome appropriato, completo dei flag -dv e –verbose=4 per mostrare le informazioni identificative su qualsiasi applicazione, incluso il tipo di hash, il checksum dell'hash e l'autorità di firma.
La sintassi di base è la seguente:
codesign -dv --verbose=4 /Percorso/A/Application.app
Ad esempio, controlliamo la firma su Terminal.app, che si trova in /Applicazioni/Utility/
codesign -dv --verbose=4 /Applications/Utilities/Terminal.app Executable=/Applications/Utilities/Terminal.app/Contents/MacOS/Terminal Identifier=com.apple.Terminal Format=bundle con Mach-O thin (x86_64) CodeDirectory v=20100 size=5227 flags=0x0(none) hash=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=Apple Root CA Info.plist entries=34 TeamIdentifier=non impostato Sealed Resources version=2 rules=13 files=996 Internal requirements count=1 size=68
Quello che stai cercando sono il tipo di hash, l'hash e le voci di autorità. In questo caso il tipo di hash è sha1 e l'autorità firmata è Apple, che è quello che ti aspetteresti.
Sì, puoi anche utilizzare la riga di comando per controllare solo gli hash sha1 o md5 degli installatori e dei download delle applicazioni e confrontarli con una fonte legittima, ma ciò non rivelerà la firma del codice ei dettagli del certificato.
Ricorda che la maggior parte del software con codice firmato che è stato modificato da una parte non autorizzata verrà rifiutato da Gatekeeper in Mac OS X, a meno che Gatekeeper non sia stato disabilitato o aggirato in altro modo, ma anche con Gatekeeper lasciato attivo teoricamente possibile per un teppista intraprendente trovare un modo per aggirare il problema, e ovviamente il software che non è stato certificato da uno sviluppatore identificato può sempre essere comunque lanciato attorno a Gatekeeper.
Puoi trovare informazioni sulla firma del codice su Wikipedia e sulla guida per gli sviluppatori Apple alla firma del codice qui.
Controlli mai se le app sono firmate? Può essere un modo valido per determinare quali sono alcuni processi e app e può anche essere utile per la risoluzione dei problemi. Provalo la prossima volta che ti chiederai cos'è qualcosa e se è firmato o meno!