El Problema Del Confinamiento
Considere un cliente y un servidor. Cuando el cliente publica una petición al servidor, el cliente envía el servidor un ciertos datos. El servidor después utiliza los datos para realizar una cierta función y vuelve un resultado (o ningún resultado) al cliente. El control de acceso afecta la función del servidor de dos maneras.
El primer requisito representa la meta del abastecedor de servicio. Esa meta es evitar que el cliente envíe los mensajes al servidor que lo causan al acceso, alteran, transmiten, o consumen los recursos que no autorizan el cliente a tener acceso, a alterarse, a transmitir, o a consumir. El segundo requisito representa la meta del usuario de servicio. Esa meta es evitar que el servidor transmita la información confidencial al abastecedor de servicio. En ambos casos, el servidor se debe confinar a tener acceso solamente a un sistema específico de recursos.
Lampson llama esto el problema del confinamiento.
Una característica de los procesos que no se escapan la información viene de la observación que un proceso debe almacenar los datos para una recuperación más última (el escaparse). Un proceso que no almacena la información no puede escaparse la. Sin embargo, en el extremo, tales procesos también no pueden realizar ninguna cómputos, porque un analista podría observar el flujo del control (o el estado del proceso) y de ese flujo deduzca la información sobre las entradas. Esto conduce a la observación que un proceso que no se puede observar y no puede comunicarse con otros procesos no puede escaparse la información. Lampson llama este aislamiento total. En la práctica, la realización del aislamiento total es difícil. Los procesos a ser generalmente confinados recursos de la parte tales como CPUs, redes, y almacenamiento en discos con otro, unconfined procesos. Unconfined procesos puede transmitir el excedente de la información esos recursos compartidos.
El confinamiento es transitivo. Asuma que un proceso p está confinado para prevenir salida. Si invoca un segundo proceso q, entonces q debe ser confinado semejantemente o q podría escaparse la información que p pasa.
El confinamiento es un mecanismo para hacer cumplir el principio de menos privilegio. Un proceso correctamente confinado no puede transmitir datos a un segundo proceso a menos que la transmisión sea necesaria terminar su tarea. El problema es que el proceso confinado necesita el acceso a los datos ser transmitido y así que el confinamiento debe estar en la transmisión, no en el acceso de los datos. Para complicar materias, el proceso puede tener que transmitir una cierta información al segundo proceso. En este caso, el mecanismo del confinamiento debe distinguir entre la transmisión de datos autorizados y la transmisión de datos desautorizados. La combinación de estos problemas ilustra la dificultad de prevenir salida. El dilema es que las computadoras modernas están diseñadas para compartir recursos, pero por el acto que comparte de ellos crea los canales de la comunicación a lo largo de los cuales la información puede ser escapada. Lipner examina el problema de una política y aspecto el modelar. Él considera dos tipos de canales secretos. El primer implica el uso del almacenaje de transmitir la información. Si un modelo describe correctamente todas las maneras en las cuales la información pueda ser almacenada y leer, entonces el modelo abstrae los canales legítimos y secretos a lo largo de los cuales la información puede fluir. El modelo obliga todos los accesos al almacenaje. Los únicos accesos permitidos son ésos autorizados por la política, así que los flujos de la información son legítimos. Sin embargo, si el modelo no captura todos tales flujos, entonces flujos desautorizados, o los canales secretos, preséntese. Lipner entonces observa que todos los procesos pueden obtener por lo menos una idea aproximada del tiempo. Esto hace tiempo un canal de comunicaciones. Una lata del programa "leyó" tiempo comprobando el reloj del sistema o (alternativomente) contando el número de instrucciones que se ha ejecutado durante un período del tiempo de reloj de la pared. Una lata del programa "escribe" tiempo ejecutando un número del sistema de instrucciones y parando, permitiendo que otro proceso se ejecute. Este canal compartido no puede ser hecho exclusivo a menos que un proceso no comparta la computadora con otro proceso, que sugiere el aislamiento como remedio. Los ataques de la sincronización de Kocher contra cryptosystems ilustran este problema. Kocher observa que las instrucciones ejecutadas por puestas en práctica de cryptosystems dependen del ajuste de pedacitos en la llave. Por ejemplo, el algoritmo debajo de los instrumentos una función modular rápida del exponentiation. Si un pedacito es 1, dos multiplicaciones ocurren; si no, una multiplicación ocurre. La multiplicación adicional toma tiempo adicional. Kocher determina pedacitos del exponente confidencial midiendo tiempo del cómputo. Una rutina modular rápida del exponentiation. Esta rutina computa x = MOD n del az. Los pedacitos de z son zk1. . . ,z0.x: = 1; atmp: = a; para i: = 0 a k-1 comienza si zi = 1 entonces x: = (x * atmp) MOD n; atmp: = (atmp * atmp) MOD n; extremo; resultado: = x; Exploramos el mecanismo del aislamiento primero. Entonces examinamos los canales secretos más detalladamente y discutimos otros acercamientos a analizarlos, incluyendo las técnicas para identificar los canales secretos y aislarlos. esto es un artículo agregado por Bill Kuriko
|
|||||
|