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. | |