2012-07-26 22 views
30

Con la nueva versión de OS X 10.8, el Gatekeeper emergerá la siguiente advertencia, cuando se intenta iniciar un applet de Java firmado:OS X 10.8 Gatekeeper y applets de Java

enter image description here

El applet ha sido firmado con un certificado de firma de código válido y funcionará correctamente en otras plataformas, así como en versiones anteriores de OS X. Si cambio "Permitir aplicaciones descargadas desde:" a "En cualquier lugar", funciona correctamente.

Por lo que puedo deducir "La firma digital no se pudo verificar", en realidad significa algo así como "la firma no se ha realizado con una ID de desarrollador Mac".

Entonces: ¿Puedo firmar applets de Java con una ID de desarrollador de Mac? ¿Puedo firmarlo con una ID de desarrollador de Mac y un certificado de firma de código estándar? ¿Hay un mejor enfoque?

+2

Por cierto, creo que esto es estúpido, porque los Applets se usan en los navegadores web, y son independientes de la plataforma. Es una pena que Apple funcione de manera diferente que el resto del mundo (OS) ... – tiktak

+1

@tiktak Al mismo tiempo, Java ha demostrado ser una buena fuente de problemas para Apple. No te preocupes, lo mismo ocurre con Flash. Entonces, su fobia tiene algo de terreno en la realidad. –

Respuesta

10

Aquí está la respuesta que obtuve de Apple Developer Soporte Técnico:

Gracias por su paciencia mientras investigamos esto.

La alerta es presentada por Java, no por Gatekeeper. Sin embargo, eres correcto que la lógica de verificación se modificó en OS X Mountain Lion.

Desde hace un tiempo, a los usuarios se les ha presentado esta alerta cuando ejecuta un applet firmado, porque los applets firmados pueden escapar del entorno limitado Java y realizar cambios inesperados en el sistema del usuario. Los usuarios tienen la opción de marcar el cuadro "Permitir todos los applets desde" si confían en el desarrollador y por lo tanto no volverán a ver la alerta a menos que eliminen el elemento de las preferencias de seguridad de Java.

Qué ha cambiado en Mountain Lion es que la alerta de verificación ahora básicamente significa que la firma del applet es válido, pero el applet es de un desarrollador no identificado y está tratando de escalar privilegios cuando Gatekeeper está activada y el usuario tiene que decida si se permite eso.

"Desarrollador no identificado" hace referencia a una fuente que no sea la Mac App Store o un desarrollador identificado ID de Desarrollador. Tenga en cuenta que los applets de Java no pueden incluir en el programa Developer ID.

Si el controlador de acceso está configurado para confiar en aplicaciones sólo en Mac App Store, a continuación, usted no ser capaz de añadir el applet de la lista de confianza a menos que agregue el certificado del del applet para el llavero usando la hoja que aparece después de hacer clic Mostrar Detalles.

Los applets sin firma no pueden escapar del sandbox de Java.

Esto es coherente con el tratamiento que hace Gatekeeper de las aplicaciones nativas de Mac; aplicaciones de desarrolladores no identificados no pueden ejecutarse de manera predeterminada.

Si desea ver cambiar la redacción de la alerta, envíe un informe de error al https://developer.apple.com/bugreporter.

Esto básicamente significa que no hay forma de firmar el applet de forma que pueda evitar que se muestre este mensaje. Presenté un informe de error a Apple diciendo que quiero que se cambie la redacción del mensaje para que no contenga palabras como SIN IDENTIFICAR, SIN HABER VISTO, INSEGURO ... porque ese es el punto de la firma de los applets, para que los usuarios puedan sentirse a gusto y acogedor por dentro cuando necesitan permitir que se ejecute el applet, para asegurarles que lo que están a punto de permitir está bien y verificado y que no dañará su computadora, y debemos mostrarlo en un lugar donde será visible, para meter sus ojos con eso.

3

Respondió su propia pregunta. Gatekeeper considera que los certificados/firmas no emitidos por Apple no son confiables.

Apple Documentation le dirá cómo exportar su certificado. Puede usarlo como de costumbre. El comando codesign también puede hacer el truco.

+0

Parece que Gatekeeper no intenta verificar las firmas de jar, sino que está buscando un atributo extendido de HFS para verificar el ID de desarrollador de Apple. http://stackoverflow.com/a/17222479/101151 ¿Has probado tu solución o es especulación? – jla

Cuestiones relacionadas