Seguridad en las Applets

Transferencia segura de las applets

Las applets no tienen acceso a la memoria local del sistema ni a su sistema de archivos. No obstante, los hackers cuentan con mecanismos para evadir estos obstáculos. El entorno de tiempo de ejecución de las applets realiza dos tareas adicionales para asegurarse de que éstas no vayan a destruir el sistema.

En primer lugar, se verifican el tipo de archivo que está siendo transferido. El archivo .class contiene información adicional que garantiza que el programa se ciñe por completo a las reglas del lenguaje Java. El entorno de tiempo de ejecución de las applets examina cuidadosamente el archivo.class para asegurarse de que la información está presente. Si no lo hiciese, un hacker con un conocimiento suficiente de una plataforma específica podría tener acceso a la memoria de cualquier ordenador.

El entorno de tiempo de ejecución carga el programa en su propio espacio de memoria. Este detalle es importante, ya que si el programa Java no estuviera cargado en el espacio de memoria asignado por el entorno de tiempo de ejecución, el hacker podrá sustituir parte de dicho entorno por sus propios elementos funcionales. A continuación podría utilizar esta clase para llevar a cabo otro tipo de maniobras perjudiciales para el host.

Restricciones de seguridad para los applets

Los applets que se cargan a través de la red son frecuentemente considerados como códigos de poca confianza, la única manera de asegurar que una applet desconfiable no realice ninguna acción maliciosa como borrar los archivos, enviar correo electrónico falso y usar la computadora del usuario como un servidor remoto de archivos, entre otros, es ejecutarlo en un ambiente cerrado y controlado.

Es por esta razón que los navegadores y visualizadores de applet restringen cuidadosamente lo que hace un applet. Cuando el usuario diseña un applet, debe conocer una lista bastante larga de cosas que un applet no tiene permitido hacer, esta lista detalla las restricciones de seguridad impuestos por la aplicación del appletviewer. Los diferentes navegadores del Web y los visualizadores del applet probablemente impongan otras restricciones sobre los applets y algunos, incluido el appletviewer tal vez permitan al usuario disminuir o personalizar las restricciones.

El código poco confiable no puede:

  • Leer o escribir en los sistemas de archivos locales.

  • Listar directorios.

  • Verificar la existencia de archivos.

  • Obtener el tamaño o modificar la fecha de los archivos.

  • Obtener los permisos de lectura y escritura de un archivo.

  • Probar si un nombre de archivo o archivo es un archivo o un directorio.

  • Escribir archivos

  • Eliminar archivos.

  • Crear directorios.

  • Renombrar archivos.

Appletviewer permite al administrador del sistema configurar propiedades que permitan a los applets leer y escribir archivos dentro de una lista específica de directorios.

 

Cómo cargar applets de manera segura

Otro componente de seguridad en Java es la forma en que las clases de Java se cargan por la red. (Clase java.lang ClassLoader ) los visualizadores de la Web y los navegadores crean subclases de esta clases que instrumentan políticas de seguridad y define como cargan los archivos de clase mediante varios protocolos.

Una función importante del cargador de clase es asegurar que las clases cargadas residan en un espacio de nombre separado de las clases cargadas desde el sistema local. Esto previene conflictos de nombre y evita que un applet maligno reemplace las clases estándares de Java con sus propias versiones.

 

Applet firmados

En Java es posible burlar las restricciones de seguridad en los applets asignando una firma digital a un archivo JAR.

Firmar un applet se hace con la herramienta javakey, proporcionada por el JDK. Primero el usuario debe configurar una base de datos de seguridad, esta base de datos debe contener el certificado y las claves públicas y privadas que se quieran usar para firmar el applet, cuando la base de datos de datos de seguridad esté configurada apropiadamente, debe crear un "archivo de directiva" siempre que dé a javakey la información necesaria para firmar el archivo JAR.

La herramienta javakey se emplea para todo lo relacionado con la administración de la base de datos de seguridad Java.