java applet code-signing osx-mountain-lion osx-gatekeeper

OS X 10.8 Gatekeeper y Java applets



code-signing osx-mountain-lion (2)

Esta es la respuesta que recibí del Soporte técnico para desarrolladores de Apple:

Gracias por su paciencia mientras investigábamos esto.

La alerta es presentada por Java, no por Gatekeeper. Sin embargo, tiene razón en 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 ejecutan un applet firmado, porque los applets firmados pueden escapar del entorno limitado de Java y realizar cambios inesperados en el sistema del usuario. Los usuarios tienen la opción de marcar la casilla "Permitir todos los applets de" 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.

Lo que cambió en Mountain Lion es que la alerta de verificación ahora básicamente significa que la firma del applet es válida, pero el applet es de un desarrollador no identificado y está tratando de aumentar los privilegios cuando Gatekeeper está habilitado y el usuario tiene que decidir si lo permite.

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

Si Gatekeeper está configurado para confiar solo en las aplicaciones de Mac App Store, no podrá agregar el applet a la lista de confianza a menos que agregue el certificado del applet al llavero usando la hoja que aparece después de hacer clic en Mostrar detalles.

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

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

Si desea que se modifique la redacción de la alerta, presente un informe de error en https://developer.apple.com/bugreporter .

Básicamente, esto significa que no hay forma de firmar el applet de tal manera que pueda evitar que se muestre este mensaje. Presenté un informe de error a Apple diciendo que quiero que se modifique la redacción del mensaje para que no contenga palabras como NO IDENTIFICADO, NO IDIFICADO, INSEGURAR ... porque ese es el punto principal de la firma de los applets, para que los usuarios puedan sentirse calurosos. y acogedor por dentro cuando necesitan permitir que el applet se ejecute, para asegurarles que lo que están a punto de permitir está bien y verificado y que no hará ningún daño a su computadora, y debemos mostrarlo en un lugar donde Será visible, para meter sus ojos con ella.

Con la nueva versión de OS X 10.8, Gatekeeper mostrará la siguiente advertencia cuando intente iniciar un applet Java firmado:

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 de:" a "En cualquier lugar", funciona correctamente.

Hasta donde puedo entender "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 un ID de desarrollador de Mac? ¿Puedo firmarlo con un ID de desarrollador de Mac y un certificado de firma de código estándar? ¿Hay un mejor enfoque?


Ha respondido a su propia pregunta. Gatekeeper considera que los certificados / firmas no emitidos por Apple no son confiables.

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