2012-07-26 23 views
30

Con la nuova versione di OS X 10.8, il Gatekeeper popup il seguente avviso, quando si tenta di avviare un applet Java firmato:OS X 10.8 Gatekeeper e applet Java

enter image description here

L'applet è stata firmato con un certificato di firma del codice valido e funzionerà correttamente su altre piattaforme e su versioni precedenti di OS X. Se cambio "Consenti applicazioni scaricate da:" a "Ovunque", funziona correttamente.

Per quanto posso capire "La firma digitale non può essere verificata", in realtà significa qualcosa come "la firma non è stata effettuata con un ID sviluppatore Mac".

Quindi: Posso firmare applet Java con un ID sviluppatore Mac? Posso firmarlo sia con un ID sviluppatore Mac che con un certificato di firma codice standard? C'è un approccio migliore?

+2

A proposito, penso che sia stupido, perché le applet sono utilizzate nei browser web e sono indipendenti dalla piattaforma. È un peccato che Apple funzioni in modo diverso rispetto al resto del mondo (OS) ... – tiktak

+1

@tiktak Allo stesso tempo, Java ha dimostrato di essere una buona fonte di problemi per Apple. Non preoccuparti, lo stesso vale per Flash. Quindi, la loro fobia ha qualche fondamento nella realtà. –

risposta

10

Ecco la risposta che ho ricevuto da Apple Developer Supporto tecnico:

Grazie per la vostra pazienza mentre abbiamo studiato questo.

L'avviso è presentato da Java, non da Gatekeeper. Tuttavia, sei corretto che la logica di verifica è stata modificata su OS X Mountain Lion.

Per un po 'di tempo, gli utenti sono stati presentati con questo avviso quando l'esecuzione di un applet firmato, perché applet firmati possono sfuggire alla sandbox Java e apportare modifiche senza preavviso presso il sistema dell'utente. Gli utenti dispongono di l'opzione per selezionare la casella "Consenti tutte le applet da" se si fidano dello sviluppatore e quindi non vedranno l'avviso di nuovo a meno che non rimuovano l'elemento dalle preferenze di Sicurezza Java.

Cosa è cambiato in Mountain Lion è che l'avviso di verifica ora in pratica significa che la firma del applet è valido, ma l'applet è da uno sviluppatore non identificato e sta cercando di aumentare i privilegi quando Gatekeeper è abilitata e l'utente deve decidere se consentire lo .

"Sviluppatore non identificato" indica una fonte diversa dal Mac App Store o uno sviluppatore identificato dallo sviluppatore. Si noti che le applet Java non possono partecipare al programma ID sviluppatore.

Se Gatekeeper è impostato a fidarsi solo applicazioni Mac App Store, allora si sarà non essere in grado di aggiungere l'applet alla lista di fiducia a meno che non si aggiunge il certificato dell'applet al portachiavi utilizzando il foglio che appare dopo aver cliccato Visualizza Dettagli.

Le applet non firmate non sono affatto in grado di uscire dalla sandbox Java.

Questo è coerente con il trattamento da parte di Gatekeeper delle app native Mac; Le app di sviluppatori non identificati non possono essere eseguite per impostazione predefinita.

Se si desidera visualizzare la formulazione dell'avviso modificato, si prega di presentare una segnalazione di bug allo https://developer.apple.com/bugreporter.

Ciò significa in sostanza che non è possibile firmare l'applet in modo da evitare che questo messaggio venga visualizzato. Ho inoltrato un bug report ad Apple dicendo che voglio che la formulazione del messaggio venga modificata per non contenere parole come UNIDENTIFIED, UNVERIFIED, INSECURE ... perché è tutto il punto di firmare le applet, in modo che gli utenti possano sentirsi al caldo e accogliente quando hanno bisogno di far funzionare l'applet, per assicurare loro che quello che stanno per consentire è OK e verificato e non arrecherà alcun danno al loro computer, e dobbiamo mostrarlo in un posto dove sarà visibile, a colpire i loro occhi con esso.

3

Hai risposto alla tua domanda. Gatekeeper ritiene che i certificati/le firme non emessi da Apple non siano attendibili.

Apple Documentation indicherà come esportare il certificato. Puoi quindi usarlo come al solito. Il comando codesign può anche fare il trucco.

+0

Sembra che Gatekeeper non stia tentando di verificare le firme del vaso, ma che stia cercando un attributo esteso HFS per verificare l'id dello sviluppatore emesso da Apple. http://stackoverflow.com/a/17222479/101151 Hai testato la tua soluzione o è una speculazione? – jla

Problemi correlati