Protección Basada en El Lenguaje
Protección Basada en El Lenguaje
Protección Basada en El Lenguaje
Introduccin Explica A. Tanenbaum. (1993) que la proteccin que se ofrece en los sistemas de computacin existentes casi siempre se ha logrado con la ayuda del ncleo de un sistema operativo, que acta como agente de seguridad que inspecciona y valida cada intento por acceder a un recurso protegido.
Otra definicin mencionada por Silberschantz. (1999). Las polticas para el uso de recursos tambin podran variar, dependiendo de la aplicacin, y podran cambiar con el tiempo. Por estas razones, la proteccin ya no puede considerarse como un asunto que slo concierne al diseador de un sistema operativo; tambin debe estar disponible como herramienta que el diseador de aplicaciones pueda usar para proteger los recursos de un subsistema de aplicacin contra intervenciones o errores.
La proteccin que se ofrece en los sistemas de computacin existentes casi siempre se ha logrado con la ayuda del ncleo de un sistema operativo, que acta como agente de seguridad que inspecciona y valida cada intento por acceder a un recurso protegido
Puesto que la validacin de todos los accesos puede dar pie a un gasto extra considerable, debemos apoyarla con hardware para reducir el costo de cada validacin o bien debemos aceptar que el diseador del sistema podra inclinarse por sacrificar los objetivos de la proteccin.
La proteccin ya no puede considerarse como un asunto que slo concierne al diseador de un sistema operativo; tambin debe estar disponible como herramienta que el diseador de aplicaciones pueda usar para proteger los recursos de un subsistema de aplicacin contra intervenciones o errores.
Aqu es donde los lenguajes de programacin entran en escena. Especificar el control de acceso deseado a un recurso compartido en un sistema es hacer una declaracin acerca del recurso. Este tipo de declaracin se puede integrar en un lenguaje mediante una extensin de su mecanismo de tipificacin. Si se declara la proteccin junto con la tipificacin de los datos, el diseado de cada subsistema puede especificar sus necesidades.
Las necesidades de proteccin se declaran sencillamente y no llamando procedimientos del SO. Las necesidades de proteccin pueden expresarse independientemente de los recursos que ofrece el SO. El diseador no debe proporcionar mecanismos para hacer cumplir la proteccin. Los privilegios de acceso estn ntimamente relacionados con el tipo de datos que se declara.
En sntesis, la especificacin de la proteccin en un lenguaje de programacin permite describir un alto nivel de polticas de asignacin y uso de recursos.
Proteccin de Java
Como java fue diseado para ejecutarse en un entorno distribuido la maquina virtual de java tiene muchos mecanismos de proteccin integrados. Los programas java estn compuestos por clases, cada una de las cuales es una coleccin de campos de datos y funciones (denominadas mtodos) que operan sobre esos campos.
Una de las caractersticas mas novedosas y tiles de java es su soporte para cargar dinmicamente clases que no sean de confianza a travs de una red y para ejecutar clases que desconfan mutuamente una de otra dentro de una misma Java Virtual Machine (Maquina Virtual de Java).
La proteccin la maneja la mquina virtual (JVM) La JVM asigna un dominio de proteccin a una clase cuando la carga. El dominio de proteccin indica qu operaciones puede (y no puede) realizar la clase. Si se invoca un mtodo de biblioteca y ste realiza una operacin privilegiada, se examina el stack para asegurar que la biblioteca pueda
La proteccin del lenguaje se basa en la seguridad de los tipos de sistema de un idioma. El lenguaje proporciona un conjunto de tipos (enteros, funciones y registros, por ejemplo), y las operaciones que se pueden manipular las instancias de diferentes tipos.
Un programa de Java puede invocar un mtodo de un objeto, pero no puede realizar una llamada a un mtodo en un nmero entero. La seguridad de tipos significa que un programa slo puede realizar operaciones en casos de un tipo que considera el lenguaje sensible para ese tipo.
Siempre es con seguridad de tipos para leer caracteres de un objeto String de Java, pero esto no significa que una tarea debe ser capaz de leer los caracteres de tarea de las cadenas otro.
un mtodo definido dentro de una clase Java tiene acceso a los campos privados de objetos de esa clase, mientras que los mtodos definidos fuera de la clase no se pueden tener acceso a estos campos privados Un aspecto clave de la proteccin basada en el lenguaje es garantizar que la seguridad de tipos y control de acceso se aplican.
Ejemplos El modo dual (usuario monitor) es una forma de proteger el SO. Cada uno tiene su propio dominio. En un sistema multiusuario no alcanza con esta proteccin puesto que se debe proteger un usuario de otro.
UNIX
Asocia un dominio a cada usuario, y cambiar de dominio significa cambiar temporalmente la identificacin de usuario. Cada archivo tiene asociados una identificacin de propietario y un bit de dominio.
Multics Los dominios de proteccin se organizan jerrquicamente en una estructura de anillos. Cada anillo corresponde a un dominio. El proceso que se ejecuta en el dominio D0 es el que ms privilegios tiene.