Foros del Web » Programación para mayores de 30 ;) » Java »

Applet firmado y sin funcionar...

Estas en el tema de Applet firmado y sin funcionar... en el foro de Java en Foros del Web. Hola. estoy un poco desesperado... tengo un applet que tiene una función que es llamado por javascript ( document.applet.funcion1 (parametros) ) y que lee un ...
  #1 (permalink)  
Antiguo 11/02/2009, 02:19
 
Fecha de Ingreso: marzo-2006
Mensajes: 66
Antigüedad: 18 años, 1 mes
Puntos: 2
Applet firmado y sin funcionar...

Hola.
estoy un poco desesperado... tengo un applet que tiene una función que es llamado por javascript ( document.applet.funcion1 (parametros) ) y que lee un fichero del disco para comprobarlo (no es malicioso...).

He firmado el applet con un certificado propio (para pruebas) que lo saqué con keytool -genkey -alias unAlias -validity 120 -v. Lo he firmado con jarsigner:
jarsigner.exe appletfirmado.jar unAlias -verbose.

He creado una paginilla de prueba de applet, con el siguiente código (del BODY):

<APPLET
CODEBASE = "dist/"
CODE = "appletMain.class"
NAME = "TestApplet"
ARCHIVE = "appletfirmado.jar"
WIDTH = 1000
HEIGHT = 150
HSPACE = 0
VSPACE = 0
ALIGN = middle
>
</APPLET>

<input type="button" ID="btnFirmarEnviar" value="Firmar y enviar" onclick="document.TestApplet.funcion1 ('1', '2', 'B')" />

Estando el jar en la carpeta dist. Al cargar la página me sale la ventanita de que ese applet está firmado por alguien que no es de confianza... lo acepto.

Me aparece el error a pesar de todo...

Java: java.security.AccessControlException: access denied (java.io.FilePermission C:\fichero1 read)


¿Puede ser por algo de policy? He creado un fichero applet.policy para dar permisos a todo pero no se incluirlo en el jar y no se si hay que configurar java para que use este...

Espero me puedan ayudar muchas gracias. Se que este es un tema muy debatido pero creo que cada hilo tiene unas particularidades que no tienen otros, eso nos ayuda a tratar el problema de distintos ángulos.

Muchas gracias espero que me puedan ayudar...
  #2 (permalink)  
Antiguo 11/02/2009, 03:01
Avatar de HackmanC  
Fecha de Ingreso: enero-2008
Ubicación: Guatemala
Mensajes: 1.817
Antigüedad: 16 años, 3 meses
Puntos: 260
Sonrisa Respuesta: Applet firmado y sin funcionar...

Hola,

Cita:
Iniciado por druiz7 Ver Mensaje
... Estando el jar en la carpeta dist. Al cargar la página me sale la ventanita de que ese applet está firmado por alguien que no es de confianza... lo acepto.

Me aparece el error a pesar de todo...
El mensaje de Java es informativo. No está preguntando si quieres obviar la seguridad, te está informando que no se puede saltar la seguridad.

Cita:
Iniciado por druiz7 Ver Mensaje
... ¿Puede ser por algo de policy? He creado un fichero applet.policy para dar permisos a todo pero no se incluirlo en el jar y no se si hay que configurar java para que use este...
El archivo policy no lo puedes agregar al Jar. Solamente lo puedes usar para configurar la PC donde va a ejecutar el código.


Lo que tienes que hacer es agregar manualmente el certificado al almacén de certificados (keystore) de cada PC donde va a ejecutar el código. O crear el archivo 'policy' y copiarlo manualmente a cada PC.

http://www.forosdelweb.com/f45/permi...oracle-610487/
http://java.sun.com/docs/books/tutor...ity/index.html

Saludos,
  #3 (permalink)  
Antiguo 11/02/2009, 03:28
 
Fecha de Ingreso: marzo-2006
Mensajes: 66
Antigüedad: 18 años, 1 mes
Puntos: 2
Respuesta: Applet firmado y sin funcionar...

Muchas gracias por tu respuesta y ayuda...

El certificado ya lo añado a la keystore mediante keytool, por tanto eso ya lo hago.
Me he creado un fichero applet.policy pero no se configurarlo en mi máquina para que siga esas reglas de seguridad al ejecutar applets ¿me explicas eso un poco mejor por favor?

Gracias
  #4 (permalink)  
Antiguo 11/02/2009, 04:52
Avatar de HackmanC  
Fecha de Ingreso: enero-2008
Ubicación: Guatemala
Mensajes: 1.817
Antigüedad: 16 años, 3 meses
Puntos: 260
Sonrisa Respuesta: Applet firmado y sin funcionar...

Hola,

La herramienta para crear los archivos de políticas es : policytool. Y tienes que guardar el archivo en la carpeta del usuario con el nombre .java.policy (en Linux ~/.java.policy); de esa forma el usuario tiene los permisos efectivos en ese archivo.

Revisa el tutorial de Java,
http://java.sun.com/docs/books/tutor...ur1/index.html

Saludos,
  #5 (permalink)  
Antiguo 11/02/2009, 04:57
 
Fecha de Ingreso: marzo-2006
Mensajes: 66
Antigüedad: 18 años, 1 mes
Puntos: 2
Respuesta: Applet firmado y sin funcionar...

Era eso!!!!
Funciona!!!
Muchas gracias me faltaba colocar el .java.policy en la carpeta del usuario.

Muchas gracias por tu ayuda
  #6 (permalink)  
Antiguo 11/02/2009, 05:09
 
Fecha de Ingreso: marzo-2006
Mensajes: 66
Antigüedad: 18 años, 1 mes
Puntos: 2
Respuesta: Applet firmado y sin funcionar...

Una ultima pregunta...
¿se puede asignar los privilegios que le da el java.policy al jar sin que esté instalado dicho policy en el cliente?

Muchas gracias
  #7 (permalink)  
Antiguo 11/02/2009, 10:02
Avatar de HackmanC  
Fecha de Ingreso: enero-2008
Ubicación: Guatemala
Mensajes: 1.817
Antigüedad: 16 años, 3 meses
Puntos: 260
Sonrisa Respuesta: Applet firmado y sin funcionar...

Hola,

Creo que normalmente, con crear el certificado y agregarlo al almacén de la computadora donde va a ejecutarse el código es suficiente para darle los permisos necesarios, pero hay que agregarlo manualmente si no fué emitido por una entidad de emisión de certificados reconocida como Veri-Sign.

El archivo de políticas es algo más antiguo y no es tan seguro como un certificado, pero es otro método para poder ejecutar código en una PC y que tenga cierta protección, y siempre hay que crearlo o agregarlo manualmente.

Así en cualquier caso el usuario o el administrador del sistema tiene pleno conocimiento del certificado o las políticas a aplicar.

Saludos,
  #8 (permalink)  
Antiguo 12/02/2009, 01:25
 
Fecha de Ingreso: marzo-2006
Mensajes: 66
Antigüedad: 18 años, 1 mes
Puntos: 2
Respuesta: Applet firmado y sin funcionar...

Hola,
eso tiene mucha lógica. Lo que tú dices de instalar el certificado en el almacén ¿no se hace también cuando le dices al navegador que confías en él? Digo, cuando activas el tick de "confiar siempre" (este es el resumen) en la ventana que aparece cuando se carga el applet. Al activar esa casilla y luego darle a aceptar, la próxima vez que se cargue ya no aparecerá la ventana de que no confía en el certificado de ese applet. ¿es esto cierto? ¿es verdad que cuando activas esa casilla se instala el certificado?
Si lo anterior es así, a mi no me funcionó hasta que puse el policy...
¿tú que opinas HackmanC?

Muchas gracias por tus aclaraciones
  #9 (permalink)  
Antiguo 12/02/2009, 04:43
Avatar de HackmanC  
Fecha de Ingreso: enero-2008
Ubicación: Guatemala
Mensajes: 1.817
Antigüedad: 16 años, 3 meses
Puntos: 260
Sonrisa Respuesta: Applet firmado y sin funcionar...

Cita:
Iniciado por druiz7 Ver Mensaje
... ¿no se hace también cuando le dices al navegador que confías en él? Digo, cuando activas el tick de "confiar siempre" (este es el resumen) en la ventana que aparece cuando se carga el applet. Al activar esa casilla y luego darle a aceptar, la próxima vez que se cargue ya no aparecerá la ventana de que no confía en el certificado de ese applet. ¿es esto cierto? ¿es verdad que cuando activas esa casilla se instala el certificado? ...
Ummmhhh.... No sé

Eso es dependiente del navegador, creo, y va a funcionar diferente en cada browser y cada sistema operativo. Yo recuerdo instalar los certificados en el almacén de confianza con la herramienta de SUN y todo funcionaba correctamente, no me mostraba ningún mensaje del certificado por que ya estaba instalado manualmente.

(Pero tendría que probarlo actualmente para ver si es así, no estoy completamente seguro del comportamiento del certificado, ya tengo algún tiempo de no usarlos, y puede que existan algunas diferencias o exista algún paso intermedio, revisa la documentación del Tutorial de SUN)

Saludos,
  #10 (permalink)  
Antiguo 12/02/2009, 05:07
 
Fecha de Ingreso: marzo-2006
Mensajes: 66
Antigüedad: 18 años, 1 mes
Puntos: 2
Respuesta: Applet firmado y sin funcionar...

Yo lo he hecho en windows, en explroer y firefox y los dos me añadían el certificado en el contenedor. Esto se ve en Panel de control -> Java -> Seguridad -> Certificados ahíse ve que se acaba de instalar...
Y, efectivamente, una vez instalado ya no vuelve a avisar de que no confía en el certificado del applet porque ya lo tiene instalado...
La pregunta es: ¿como puedo ejecutar un applet que accede a disco del cliente únicamente con que acepte mi certificado y sin nada más? ¿sabes algo de esto?

Muchas gracias,
  #11 (permalink)  
Antiguo 12/02/2009, 12:28
Avatar de HackmanC  
Fecha de Ingreso: enero-2008
Ubicación: Guatemala
Mensajes: 1.817
Antigüedad: 16 años, 3 meses
Puntos: 260
Sonrisa Respuesta: Applet firmado y sin funcionar...

Hola,

Creo que este tema es demasiado extenso para poder explicarlo brevemente y existen algunos detalles que han cambiado últimamente, antes los certificados en el browser pasaban por la validación del browser y este era al final el que tomaba algunas decisiones si se ejecutaba el código o no, al parecer ahora ya no es así.

Pero podrías leer algo de la documentación de SUN :

Según el Tutorial de Java, es completamente necesario el archivo de políticas 'policy file', crearlo y configurarlo en el cliente para poder ejecutar código. En Security Features in Java SE podrías leer "Quick Tour of Controlling Applets" y "Signing Code and Granting It Permissions" donde te explica la forma de implementarlo.

Ahora en la documentación de Java Platform, Standard Edition (Java SE) da información relacionada a : "The guide includes a chapter on security and the signed applet support in Java Plug-in, which allows users to grant (signed) applets all permissions based on their authenticated signers, without having to configure and deploy any policy or keystore configuration files." Donde te explica como ejecutar un applet sin necesidad de configurar ningún archivo de políticas o keystore. Y como puedes observar hay diferencias entre el plug-in anterior a la versión Java SE 6u10 The JavaTM Plug-in.

Ahora si sigues investigando vas a encontrar en Overview—Applet Security Basics que también hay diferencias entre Windows XP y Windows Vista y una variable del archivo de políticas, configurable por el administrador para modificar el tipo de permisos (usePolicy Permission).

Tendrías que leer Development and Deployment Of JavaTM Web Apps para averiguar como usar el Applet sin necesidad del policy file; pero ese es otro tema (Tal ves alguien más tenga mayor experiencia con los archivos JNLP).

De igual forma espero haber sido de alguna ayuda,
Saludos,
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 19:32.