Quali fastidi o problemi reali possono verificarsi quando la firma digitale di un'applicazione Mac viene interrotta?
Le applicazioni su un Mac possono essere firmate digitalmente. Quando la firma viene in qualche modo rotta, so che alcune applicazioni potrebbero accorgersene. Ma non so in quale dettaglio questi saranno solo fastidi o romperanno davvero le cose:
Il firewall OS X potrebbe non essere in grado di impostare correttamente una firma ad hoc, causando la richiesta ripetuta di uno "Vuoi che l'applicazione" [..] "accetti le connessioni di rete in arrivo?"
Le applicazioni consentite dal Controllo genitori potrebbero non essere più in esecuzione?
L'accesso al portachiavi potrebbe essere rotto?
Alcuni sostengono che l'aggiornamento del software Apple potrebbe non riuscire. Se è vero, allora mi chiedo se questo effettivamente dipende dalla firma della firma del codice, o sarebbe causato da un hash non corrispondente per l'intera applicazione o dalle informazioni dai file BOM .
Ulteriori informazioni di base di seguito.
I dettagli della firma del codice possono essere visualizzati utilizzando:
codesign --display -vv /Applications/iTunes.app/
... che produrrebbe qualcosa di simile al seguente (ma non avvertirebbe di modifiche):
[..]
CDHash=86828a2d631dbfd417600c458b740cdcd12b13e7
Signature size=4064
Authority=Software Signing
Authority=Apple Code Signing Certification Authority
Authority=Apple Root CA
[..]
La firma può essere convalidata utilizzando:
codesign --verify -vv /Applications/iTunes.app/
Che produrrebbe:
/Applications/iTunes.app/: valid on disk
/Applications/iTunes.app/: satisfies its Designated Requirement
... o (anche semplicemente inserendo un file extra nella cartella ./Contents/Resources di un'applicazione):
/Applications/iTunes.app/: a sealed resource is missing or invalid
... o (forse peggio del messaggio sopra):
/Applications/iTunes.app/: code or signature modified
La firma del codice risale a OS 9 o precedenti, ma l'attuale implementazione è stata introdotta in 10.5 Leopard. Ars Technica scrive :
La firma del codice lega un'identità crittograficamente verificabile a una raccolta di codice e garantisce che venga rilevata qualsiasi modifica a quel codice. Non viene fornita alcuna garanzia sulle parti coinvolte. Ad esempio, se scarichi un'applicazione firmata da Acme Inc., non puoi provare nulla al riguardo tranne che proviene dalla stessa entità che afferma di essere Acme Inc. l'ultima volta che hai scaricato qualcosa dal loro sito web.
Questo esempio evidenzia in realtà l'applicazione più utile della tecnologia dal punto di vista del consumatore. Quando si aggiorna un'applicazione per Mac OS X oggi [in 10.4 Tiger, AvB], all'utente viene spesso richiesto di verificare nuovamente che questa applicazione sia autorizzata ad accedere al Portachiavi per recuperare nomi utente e password. Questa sembra una buona funzionalità di sicurezza, ma tutto ciò che fa è addestrare gli utenti Mac a fare clic alla cieca su "Consenti sempre" ogni volta che appare. E davvero, che cosa farà l'utente medio, eseguire l'eseguibile tramite un disassemblatore e verificare manualmente che il codice sia sicuro?
Un'applicazione firmata, d'altra parte, può dimostrare matematicamente che si tratta effettivamente di una nuova versione della stessa applicazione dello stesso fornitore per cui hai espresso fiducia in passato. Il risultato è la fine delle finestre di dialogo che ti chiedono di confermare una scelta di cui non hai modo ragionevole di verificare la sicurezza.
Per il firewall in 10.5 Leopard, Apple spiega :
Quando aggiungi un'applicazione a questo elenco, Mac OS X firma digitalmente l'applicazione (se non è già stata firmata). Se l'applicazione viene successivamente modificata, verrà richiesto di consentire o negare le connessioni di rete in entrata. La maggior parte delle applicazioni non si modifica da sé, e questa è una funzione di sicurezza che ti avvisa della modifica.
[..]
Tutte le applicazioni non presenti nell'elenco che sono state firmate digitalmente da un'autorità di certificazione attendibile dal sistema (ai fini della firma del codice) possono ricevere connessioni in entrata. Ogni applicazione Apple in Leopard è stata firmata da Apple e può ricevere connessioni in entrata. Se si desidera negare un'applicazione con firma digitale, è necessario prima aggiungerla all'elenco e quindi negarla esplicitamente.
In 10.6 Snow Leopard, quest'ultimo è reso più esplicito (e può essere disabilitato) in quanto "Consenti automaticamente al software firmato di ricevere connessioni in entrata. Consente al software firmato da un'autorità di certificazione valida di fornire servizi accessibili dalla rete".
(In 10.6, le opzioni 10.5.1 "Consenti tutte le connessioni in entrata", "Consenti solo servizi essenziali" e "Imposta accesso per servizi e applicazioni specifici" sono state rinnovate in una scelta per "Blocca tutte le connessioni in entrata" o un elenco delle applicazioni e opzioni consentite "Consenti automaticamente al software firmato di ricevere connessioni in entrata" e "Abilita modalità invisibile". Prima dell'aggiornamento 10.5.1 , "Consenti solo servizi essenziali" era in realtà chiamato "Blocca tutte le connessioni in entrata".)
Per le applicazioni (Apple) che hanno in qualche modo rotto la loro firma originale, questa firma ad hoc potrebbe in qualche modo non essere mantenuta, ed è noto che ha causato problemi per configd, mDNSResponder e racoon.