unidad iii mecanismos de protección m.c. juan carlos olivares rojas

81
Unidad III Mecanismos de protección M.C. Juan Carlos Olivares Rojas

Upload: amidio-leal

Post on 23-Jan-2016

220 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Unidad III Mecanismos de protección M.C. Juan Carlos Olivares Rojas

Unidad III Mecanismos de protección

M.C. Juan Carlos Olivares Rojas

Page 2: Unidad III Mecanismos de protección M.C. Juan Carlos Olivares Rojas

Temario

3.1 Introducción

3.2 Funciones de un sistema de protección

3.3 Limitaciones

3.4 Implantación de matrices de derechos

3.5 Mecanismos de protección

Page 3: Unidad III Mecanismos de protección M.C. Juan Carlos Olivares Rojas

3.1 Introducción

• El problema como se había comentado la unidad anterior, no es la compartición de recursos de software sino el control de los mismos por la concurrencia. Por este motivo, todo Sistema Operativo debe tener implementado un módulo dedicado a la protección.

• Generalmente esos mecanismos de protección se encargan de la gestión de los procesos a los recursos compartidos. 

Page 4: Unidad III Mecanismos de protección M.C. Juan Carlos Olivares Rojas

3.2 Funciones de un sistema de protección

• Las principales actividades de un sistema operativo son:

1.Protección de los procesos del sistema contra los procesos de usuario.

2.Protección de los procesos de usuario contra los de otros procesos de usuario.

3.Protección de Memoria. 4.Protección de los dispositivos.

Page 5: Unidad III Mecanismos de protección M.C. Juan Carlos Olivares Rojas

3.3 Limitaciones• La función de la protección en un sistema

computacional es la de proveer un mecanismo para la aplicación de políticas que gobiernen el uso de los recursos.

• Estas políticas pueden ser establecidas de varias maneras:– Definidas durante el diseño del sistema, – Definidas en la ejecución del sistema. – Definidas por usuarios individuales para proteger sus

archivos y programas.

Page 6: Unidad III Mecanismos de protección M.C. Juan Carlos Olivares Rojas

Limitaciones

• Las políticas para el uso de recursos puede variar, dependiendo de la aplicación y pueden estar sujetas a cambios. Por estas razones, la protección no puede ser considerada como un problema que solamente concierne al diseñador de un Sistema Operativo, sino que debe considerarse, como una herramienta para los programadores de aplicaciones, de manera que los recursos creados y soportados por un subsistema de aplicación, puedan ser protegidos contra el mal uso.

Page 7: Unidad III Mecanismos de protección M.C. Juan Carlos Olivares Rojas

Limitaciones• Un principio importante es la separación entre

política y mecanismo.

• Los mecanismos determinan como será realizado algo. En contraste, las políticas deciden que es lo que se realizará.

• Es posible que las políticas cambien de lugar en lugar o de tiempo en tiempo. En el peor de los casos, cada cambio en la política requerirá un cambio en el mecanismo.

Page 8: Unidad III Mecanismos de protección M.C. Juan Carlos Olivares Rojas

Dominio de protección

• Un sistema computacional es una colección de objetos. Los objetos pueden ser objetos hardware (como CPU, segmentos de memoria, impresoras, etc.) y objetos software (como archivos, programas, semáforos, etc.).

• Cada objeto tiene un nombre único que lo diferencia de los demás objetos del sistema y cada una puede ser accedido solamente mediante operaciones bien definidas.

Page 9: Unidad III Mecanismos de protección M.C. Juan Carlos Olivares Rojas

Dominio de protección• Obviamente, un proceso tendrá permitido acceder

solamente a aquellos recursos a los que está autorizado

• Este requerimiento comúnmente llamado el principio "Need_To_Know" es útil en la limitación de la cantidad de daño que un proceso defectuoso pueda causar al sistema.

• Por ejemplo, cuando un proceso "P" invoque al procedimiento "A", al procedimiento le será permitido acceder solamente a sus propias variables y los parámetros actuales pasados a él; no podrá acceder a todas las variables del proceso "P".

Page 10: Unidad III Mecanismos de protección M.C. Juan Carlos Olivares Rojas

Dominios de protección

• Para facilitar este esquema se introduce el concepto de dominio de protección. Un proceso opera dentro de un dominio de protección, el cual especifica los recursos que el proceso puede acceder.

• Cada dominio define un conjunto de objetos y los tipos de operaciones que pueden ser realizadas sobre cada objeto.

Page 11: Unidad III Mecanismos de protección M.C. Juan Carlos Olivares Rojas

Dominios de protección

• La capacidad de ejecutar una operación sobre un objeto es un derecho de acceso.

• Un dominio es una colección de derechos de acceso, cada uno de los cuales es un par ordenado <Nombre_Objeto, Conjunto_de_Operaciones>.

Page 12: Unidad III Mecanismos de protección M.C. Juan Carlos Olivares Rojas

Dominios de protección

• Por ejemplo, si el dominio "D" tiene derecho de acceso <Archivo F, {Leer, Escribir}>, entonces un proceso que se está ejecutando en el dominio "D" puede tanto leer como escribir en el archivo F; no podrá realizar alguna otra operación sobre este objeto.

• Los dominios de protección no necesitan ser distintos; por el contrario, pueden compartir derechos de acceso.

Page 13: Unidad III Mecanismos de protección M.C. Juan Carlos Olivares Rojas

Dominios de protección

• ¿Qué pasa en los siguientes casos?

• Se tienen 3 dominios: D1, D2 y D3; y los siguientes objetos:

• D1: <O3, {Leer, Escribir}><O2, {Escribir}><01, {Ejecutar}>

• D2: <O1, {Leer, Escribir}><O4, {Imprimir}>• D3: <O3, {Leer}><O4, {Imprimir}>

Page 14: Unidad III Mecanismos de protección M.C. Juan Carlos Olivares Rojas

3.4 Implantación de matrices de derechos

• Un modelo de protección puede ser visto abstractamente como una matriz, llamada matriz de derecho. Los renglones de la matriz representan dominios y las columnas representan objetos.

• Cada entrada en la matriz contiene un conjunto de derechos de acceso. La entrada "Matriz[i, j]" define el conjunto de operaciones que un proceso ejecutándose en el dominio "Dj" puede realizar sobre el objeto "Oj".

Page 15: Unidad III Mecanismos de protección M.C. Juan Carlos Olivares Rojas

Estructuras de Protección Dinámica

• Las matrices de acceso vistas hasta el momento, en las que no cambian los derechos en cada dominio durante su ejecución, son un ejemplo de Estructuras de Protección Estáticas.

• Con el fin de ofrecer flexibilidad y de implementar eficientemente la protección, un Sistema Operativo debe soportar cambios en los derechos de acceso. Para esto se requiere implementar alguna estructura de protección dinámica.  

Page 16: Unidad III Mecanismos de protección M.C. Juan Carlos Olivares Rojas

Estructuras de Protección Dinámica

• En este caso continuaremos considerando las matrices de acceso, aunque en su versión dinámica.

• Básicamente se requieren cuatro nuevos derechos de acceso: Copia, Cambio, Propietario y Control.

Page 17: Unidad III Mecanismos de protección M.C. Juan Carlos Olivares Rojas

Derechos de acceso de copia

• Este derecho de acceso da la facultad a un proceso de copiar derechos existentes en un dominio hacia otro dominio para el objeto en cuestión; es decir, este derecho genera copias en columnas.

• Se puede representar este derecho con un signo + dentro del dominio de protección

Page 18: Unidad III Mecanismos de protección M.C. Juan Carlos Olivares Rojas

Derechos de acceso de copia

• En general se podría hablar de 3 variantes del derecho "copia": Copia Limitada, Copia Completa, Translación.

• Copia Limitada: La copia no incluye el derecho "Copia", con lo que no se podrán hacer copias sucesivas del derecho. Se puede indicar con el signo (+).

Page 19: Unidad III Mecanismos de protección M.C. Juan Carlos Olivares Rojas

Derechos de acceso de copia

• Copia completa: la copia incluye el derecho "Copia", por lo que se pueden realizar copias sucesivas del derecho. Se puede indicar con el signo (*).

• Traslación: el derecho en cuestión junto con el derecho copia se eliminan del dominio original y se coloca en el nuevo dominio. Esta es una forma básica de retirar derechos de un dominio para asignarlo a otro. Se puede indicar con el signo (?).

Page 20: Unidad III Mecanismos de protección M.C. Juan Carlos Olivares Rojas

Derechos de acceso de cambio• Este derecho de acceso indica la posibilidad

de un proceso para cambiarse de un dominio a otro.

• La operación cambio actúa sobre dominios; es decir, en este caso los dominios son los objetos. Entonces, para considerar este derecho de acceso se deberán incluir los dominios como objetos adicionales en la matriz de acceso.    

Page 21: Unidad III Mecanismos de protección M.C. Juan Carlos Olivares Rojas

3.5 Mecanismos de protección

• Protección de memoria: siempre que una aplicación intenta acceder a una zona de memoria que no está comprendida dentro de su mapa actual de memoria, el procesador 386 y posteriores, genera una interrupción y pasa al sistema operativo un conjunto de información relativa  al problema.

Page 22: Unidad III Mecanismos de protección M.C. Juan Carlos Olivares Rojas

Mecanismos de protección

• La protección de la memoria se logra por medio de:– Tablas de paginas que describen exactamente

las áreas de memoria física a las que un programa puede acceder.

– Un indicador de lectura/escritura para impedir modificar una página de sólo lectura o de código de programa.

– Un indicador de usuario/supervisor que permite al sistema operativo proteger su propia memoria de cualquier intento de acceso.

Page 23: Unidad III Mecanismos de protección M.C. Juan Carlos Olivares Rojas

Mecanismos de protección

• La mejor protección hacia los recursos se logra a través del control de los procesos, dado que estos son los que utilizan los recursos.

• Existen dos tipos de control de los procesos para el acceso a los recursos: cooperativos donde los procesos se ponen de acuerdo y centralizados a nivel del núcleo del sistema operativo.

Page 24: Unidad III Mecanismos de protección M.C. Juan Carlos Olivares Rojas

Mecanismos de protección

• La mayoría del control de procesos se hace a nivel de sistema operativo a través de las llamadas del sistema, dado que la cooperación de los procesos no siempre es justa.

• El sistema de archivo forma parte importante de las primitivas de sincronización entre procesos.

Page 25: Unidad III Mecanismos de protección M.C. Juan Carlos Olivares Rojas

IPC

• La comunicación entre procesos (IPC) es parte fundamental de las primitivas de sincronización de procesos y de los mecanismos de protección.

• Los mecanismos de comunicación entre procesos no sólo aplican a aplicaciones centralizadas sino también distribuidas.

Page 26: Unidad III Mecanismos de protección M.C. Juan Carlos Olivares Rojas

Procesos

• Son la unidad básica de atención del sistema operativo.

• Se pueden copiar procesos en diferentes segmentos del sistema operativo.

• Los procesos son dependientes del sistema operativo por lo que no se ejecutan en todos los sistemas.

Page 27: Unidad III Mecanismos de protección M.C. Juan Carlos Olivares Rojas

Terminación de procesos

• A el código de estado de un proceso formalmente se llama señal.

• Un proceso huérfano es aquel que se ha quedado sin padre.

• Un proceso zombi es aquel que se ha quedado ocupando una posición de la tabla de descriptor de procesos.

Page 28: Unidad III Mecanismos de protección M.C. Juan Carlos Olivares Rojas

wait()

• En algunas ocasiones un proceso padre necesita esperar a que sus hijos termine. Para ello necesita sincronizarse los procesos.

• La función que nos permite parar un proceso hasta que termine otro es wait

• pid = wait(&estado);

Page 29: Unidad III Mecanismos de protección M.C. Juan Carlos Olivares Rojas

wait()

• Algunas macros que nos ayudan en este proceso son:

• WIFEXITED

• WEXITSTATUS

• WIFSIGNALED

• WTERMSIG

• WCOREDUMP

Page 30: Unidad III Mecanismos de protección M.C. Juan Carlos Olivares Rojas

Más sobre procesos

• Un ejemplo de clonación de procesos es la ejecución de la función system() que nos permite ejecutar una llamada al sistema, generalmente un comando de la shell.

• hijo = getpid();

• Padre = getppid();

• Grupo = getpgrp();

Page 31: Unidad III Mecanismos de protección M.C. Juan Carlos Olivares Rojas

Identificadores de usuario y de grupo

• En muchas ocasiones no sólo es necesario conocer los identificadores de procesos sino conocer los usuarios y los grupos.

• uid_t getuid(); /*usuario real*/• uid_t geteuid(); /*usuario extendido*/• gid_t getgid();• gid_t getegid();

Page 32: Unidad III Mecanismos de protección M.C. Juan Carlos Olivares Rojas

Procesos bloqueantes y no bloqueantes

• Para el buen manejo de los recursos, se necesita en la mayoría de los casos que los procesos se puedan bloquear, en otros no se podrá hacerlo.

• La función sleep() permite dormir un proceso una cantidad determinada de milisegundos, es un ejemplo de una llamada bloqueante.

Page 33: Unidad III Mecanismos de protección M.C. Juan Carlos Olivares Rojas

Señales

• Las señales permiten a los procesos comunicarse a través de un evento, dicha comunicación es la base para una adecuada protección.

• A continuación se muestran los tipos de señales más comunes en sistemas Unix, las cuales se encuentran definidas en signal.h

Page 34: Unidad III Mecanismos de protección M.C. Juan Carlos Olivares Rojas

Señales

1. SIGHUP

2. SIGINT

3. SIGQUIT

4. SIGILL

5. SIGTRAP

6. SIGIOT

7. SIGEMT

8. SIGFPE

9. SIGKILL

10. SIGBUS11. SIGSEGV12. SIGSYS13. SIGPIPE14. SIGALARM15. SIGTERM16. SIGUSR117. SIGUSR218. SIGCLD19. SIGPWR

Page 35: Unidad III Mecanismos de protección M.C. Juan Carlos Olivares Rojas

Señales

• int kill(pid, sig) sirve para mandar una señal de un proceso a otro.

• pid > 0 proceso; pid = 0 a todos los procesos que pertenecen al mismo grupo.

• La función signal sirve para capturar una señal y realizar una función con ella.

Page 36: Unidad III Mecanismos de protección M.C. Juan Carlos Olivares Rojas

Señalesmain() { void sigint_handler();if(signal(SIGINT,sigint_handler)== SIG_ERR) perror(“Error en la señal”);……..}

void sigint_handler(int sig) { printf(“señal recibida”);}

Page 37: Unidad III Mecanismos de protección M.C. Juan Carlos Olivares Rojas

IPC

• El mecanismo de comunicación entre procesos más famosos es el IPC (Inter Process Comunication) de Unix System V.

• Para evitar los problemas de cómo establecer los mecanismos de comunicación entre procesos de distintos sistemas operativos surgió el estándar POSIX (Portable Operating System Interconection X) para el mejoramiento de los mismos.

Page 38: Unidad III Mecanismos de protección M.C. Juan Carlos Olivares Rojas

Tuberías

• Las tuberías con nombre se manejan igual que las tuberías sin nombre con la salvedad de que presentan un nombre que ocupa una entrada de directorio.

• Se trabajan igual que un archivo sólo que se bloquea cuando un proceso escribe en la tubería.

Page 39: Unidad III Mecanismos de protección M.C. Juan Carlos Olivares Rojas

Tuberías• Para crear una tubería con nombre desde shell

se debe ejecutar: mknod fifo_1 p

• Desde programación las tuberías con nombre se crean: mknod(“tubo”, S_IFIFO | permisos, 0)

• Las comunicaciones vistas hasta ahora son half-duplex. Se puede utilizar un poll o select para realizar comunicación full-duplex

Page 40: Unidad III Mecanismos de protección M.C. Juan Carlos Olivares Rojas

3.2.2 Semáforos• Los semáforos son mecanismos que permiten

sincronizar procesos.

• Todos los mecanismos IPC tienen una entrada en una tabla especial con una llave definida por el usuario.

• Los posibles valores de la llave son IPC_PRIVATE, IPC_CREATE, IP_EXECL, entre otros.

Page 41: Unidad III Mecanismos de protección M.C. Juan Carlos Olivares Rojas

Semáforos• Cada entrada de la tabla tiene un registro de

permisos (rw), información de estado y llamadas de control.

• Las llaves son del tipo key_t. Para crear una llave se utiliza:

#include <types.h>

#include <sys/ipc.h>

key_t ftok(path, id)

Page 42: Unidad III Mecanismos de protección M.C. Juan Carlos Olivares Rojas

Semáforos

• Es un mecanismo para prevenir colisiones cuando uno o más procesos solicitan simultáneamente un recurso.

• Dijsktra los define como un objeto tipo entero en los cuales se puede aplicar dos operaciones: P (Proberen, comprobar) y V (Verhogen, incrementar), donde P sirve para obtener el recurso y V para liberarlo.

Page 43: Unidad III Mecanismos de protección M.C. Juan Carlos Olivares Rojas

Semáforos• Las operaciones sobre un semáforo son semget

para crear un semáforo o habilitar uno existente, semctl para realizar operaciones de control e inicialización, semop para realizar operaciones P y V.

#include <sys/types.h>

#include <sys/ipc.h>

#include <sys/sem.h>

int semget(key, nsems, semflg)

Page 44: Unidad III Mecanismos de protección M.C. Juan Carlos Olivares Rojas

Semáforos

int llave, semid;

if((llave= ftok(“auxiliar”, ‘K’)) ==(key_t)-1)/*Tratamiento del error*/

if((semid= semget(llave, 4, IPC_CREAT | 0600)) == -1)/*Error al crear el semáforo*/

Page 45: Unidad III Mecanismos de protección M.C. Juan Carlos Olivares Rojas

Semáforosint semctl(semid, semnum, cmd, arg)

union semun{int val;

struct semid_ds *buf;

ushort *array;

}arg;

• Las opciones de control son: GETVAL, SETVAL, GETPID, GETNCNT, GETZCNT, GETALL, SETALL, IPC_STAT, IPC_SET

Page 46: Unidad III Mecanismos de protección M.C. Juan Carlos Olivares Rojas

Semáforos

ushort asem;

asem[0]=5; asem[1]=3; asem[2]=4; asem[3]=8;

semctrl(semid, 0, SETALL, asem)

valor = semctrl(semid, 3, GETVAL, 0)

int semop(semid, sops, nsops)

struct sembuf *sops;

Page 47: Unidad III Mecanismos de protección M.C. Juan Carlos Olivares Rojas

Semáforosstruct sembuf{

ushort sem_num;

short sem_op;

short sem_flg;

};

• Si semop es negativo se decrementará (P), si se incrementa (V) y si es 0 no hace nada.

• Las banderas son: IPC_WAIT, IPC_NOWAIT, SEM_UNDO

Page 48: Unidad III Mecanismos de protección M.C. Juan Carlos Olivares Rojas

Semáforos

struct sembuf operacines[4];

Operaciones[0].semnum = 1;

Operaciones[0].sem_op = -1;

Operaciones[0].sem_flg = 0;

Operaciones[1].semnum = 4;

Operaciones[1].sem_op = 1;

Operaciones[1].sem_flg = 0;

semop(semid, operaciones, 2);

Page 49: Unidad III Mecanismos de protección M.C. Juan Carlos Olivares Rojas

3.2.3 Colas (mensaje)

• La filosofía de las colas de mensajes es similar a las tuberías, pero con mayor versatilidad.

• Una cola es una estructura de datos gestionada por el kernel, en la cual varios procesos pueden escribir sobre ella. El sincronismo para evitar colisión lo realiza el kernel.

Page 50: Unidad III Mecanismos de protección M.C. Juan Carlos Olivares Rojas

Colas de mensajes#include <sys/msg.h>

int msgget(key, msgflg)

If((msqid= msgget(llave, IPC_CREATE | 0600)) == -1)/*Error al crear la cola de mensajes*/

• msgctrl(msq, cmd, buf) sirve para leer y modificar la información estadística y de control de una cola.

Page 51: Unidad III Mecanismos de protección M.C. Juan Carlos Olivares Rojas

Colas de mensajes• Los comandos de control son: IPC_STAT,

IPC_SET, IPC_RMID. Por ejemplo: msgctrl(msqid, IPC_RMID, 0);

• Las operaciones básicas de una cola de mensajes son enviar y recibir los mensajes que se realizan con las siguientes funciones:

int msgsnd(msqid, msgp, msgsz, msgflg);

int msgrcv(msqid, msqp, msgtyp, msgflag);

Page 52: Unidad III Mecanismos de protección M.C. Juan Carlos Olivares Rojas

Cola de mensajes

• El parámetro msgtyp indica el tipo de mensaje que se desea leer: 0 para el primer mensaje, > 0 el primer mensaje de tipo msgtyp que haya en la cola, <0 lee el primer mensaje que sea menor o igual al valor absoluto de msgtyp y además sea el mensaje más pequeño de los que hay.

Page 53: Unidad III Mecanismos de protección M.C. Juan Carlos Olivares Rojas

Cola de mensajes

struct{

long tipo;

char cadena[20];

}mensaje;

strcpy(mensaje.cadena, “SD1”);

mensaje.tipo = 1;

longitud = strlen(mensaje.cadena)

if(msgsnd(msqid,&mensaje,longitud,0)==-1) /*Err*/

if(msgrcv(msqid,&mensaje,longitud,1,0) ==-1) /*Er*/

Page 54: Unidad III Mecanismos de protección M.C. Juan Carlos Olivares Rojas

3.2.5 Monitores

• Es un procesos que se encarga de verificar el funcionamiento de algún recurso garantizando la exclusión mutua (mutex).

• En un monitor los procesos se bloquean y desbloquean.

• Pueden existir diversas implementaciones no estandarizadas de un monitor.

Page 55: Unidad III Mecanismos de protección M.C. Juan Carlos Olivares Rojas

Hilos

• Son procesos ligeros ya que no se duplican completamente, sólo duplican su segmento de código. Por tal motivo, comparten datos fácilmente, la desventaja es que ocurren muchos problemas del tipo “race conditions”, pero al igual que IPC se soluciona con mecanismos como regiones críticas, zonas de exclusión mutua, etc.

Page 56: Unidad III Mecanismos de protección M.C. Juan Carlos Olivares Rojas

Hilos

• PThreads (POSIX Threads) es la biblioteca para la creación de hilos más implementada en sistemas *X.

• Se utiliza la biblioteca pthread por lo que algunos compiladores ya la incluyen de manera predeterminada sino habrá que indicar su uso: gcc … -lpthread

Page 57: Unidad III Mecanismos de protección M.C. Juan Carlos Olivares Rojas

Hilos

• Crear hilos:

int pthread_create(pthread_t *thread, pthread_attr_t *attr, void * (*start_routine)(void *), void *arg)

• Esperar la finalización de hilos:

int pthread_join(pthread_t th, void **thread_return)

Page 58: Unidad III Mecanismos de protección M.C. Juan Carlos Olivares Rojas

Hilos

• No guardar estado del hilo:

int pthread_detach(pthread_t h)

• Salir de un hilo:

pthread_exit(void *retval)

• Biblioteca a utilizar: #include <pthread.h>

Page 59: Unidad III Mecanismos de protección M.C. Juan Carlos Olivares Rojas

Hilos

typedef struct parametros {int id;char *nombre

};

void *funcion(parametros *p) {printf(“%s %d”, p->cadena, p->id);pthread_exit(&(p->id))

}

Page 60: Unidad III Mecanismos de protección M.C. Juan Carlos Olivares Rojas

Hilos

• Referencia asi mismo:Yo = pthread_self(); /*Demás funciones*/

• Enviar una señal a un hilo:pthread_kill(pthread_t hilo, int señal);

• Los hilos no están tan extendidos por que existen muchas variantes: hilos mach, hilos solaris, Gthreads, etc.

Page 61: Unidad III Mecanismos de protección M.C. Juan Carlos Olivares Rojas

Hilos

• Mutex:

pthread_mutex_init(pthread_mutex_t *mutex, const pthread_mutex_attr_t *attr)

int pthread_mutex_lock(pthread_mutex_t *mutex)

int pthread_mutex_unlock(pthread_mutext_t *mutex)

int pthread_mutex_destroy(pthread_mutext_t *mutex)

Page 62: Unidad III Mecanismos de protección M.C. Juan Carlos Olivares Rojas

4.6. Criptografía • Viene del griego crypto que significa oculto y

grafía escritura.

• La criptografía es el arte de cifrar la información.

• El criptoanálisis es el arte de descifrar un mensaje.

• Criptografía y criptoanálisis van de la mano.

Page 63: Unidad III Mecanismos de protección M.C. Juan Carlos Olivares Rojas

Criptografía

• Los primeros métodos de cifrado fueron el de transposición (cambiar el orden de las letras) y el de sustitución (cambiar una letra por otra).

• En la actualidad los métodos de cifrados son más robustos pero no indescifrables. Se trata de que el obtener el mensaje en claro sea más costoso que obtener el original.

Page 64: Unidad III Mecanismos de protección M.C. Juan Carlos Olivares Rojas

Criptografía• Los métodos actuales de cifrado basan la

codificación d e la información en base a una llave, dicha llave puede ser simétrica o asimétrica.

• Algunos algoritmos importantes de cifrado son:

• DES (Data Encryption System) creado por IBM en 1974 utilizando claves de 64.

Page 65: Unidad III Mecanismos de protección M.C. Juan Carlos Olivares Rojas

Criptografía• En 1999 DES fue roto, por lo que ya no se utiliza

en sistemas de alta seguridad.

• La firma digital es una clave muy grande utilizada para cifrar información.

• Otro algoritmo de cifrado importante es RSA (Rivest-Shamir-Adleman).

• El algoritmo de cifrado más robusto es AES.

Page 66: Unidad III Mecanismos de protección M.C. Juan Carlos Olivares Rojas

Criptografía• AES (Advanced Encryption System) fue

presentado en 2001, utiliza el algoritmo RIJNDAEL con llaves de 128, 192 y 256 bits. Se espera tenga una vida útil de 20 años.

• Existen variaciones de los algoritmos como 3DES, o algoritmos de libre distribución como PGP (Pretty Good Privacy)

• RSA basa sus llaves en números primos.

Page 67: Unidad III Mecanismos de protección M.C. Juan Carlos Olivares Rojas

4.7. Protección • La protección de la información en cualquier

sistema sea distribuido o no resulta vital.

• Para la protección se necesita plantearse metodologías adecuadas que garanticen una mayor protección.

• Una de las mejoras maneras de tener protegido un sistema es a través de la autenticación y autorización de usuarios.

Page 68: Unidad III Mecanismos de protección M.C. Juan Carlos Olivares Rojas

Protección

• La autenticación generalmente se da a través de esquemas de contraseñas, las cuales si no cuentan con una política robusta de generación y mantenimiento se vuelven fácilmente vulnerables.

• Un esquema de autenticación seguro es kerberos, el cual se utiliza para autenticar el uso de servicios como NFS, etc.

Page 69: Unidad III Mecanismos de protección M.C. Juan Carlos Olivares Rojas

Protección

• Kerberos se basa en un esquema de boletos entregados para la autenticación y de dos llaves secretas una dada por kerberos y otra conocida por los usuarios para entrar al sistema.

• Un buen mecanismo de protección debe evitar que usuarios roben ciclos de CPUs a otros, tener más derechos que otros sin habercelos otorgado previamente, etc.

Page 70: Unidad III Mecanismos de protección M.C. Juan Carlos Olivares Rojas

Protección• Se debe garantizar la integridad y provacidad de

los datos de los usuarios.

• Se debe proteger la cesión de derechos de algún recurso en el sistema.

• El esquema básico de protección radica en una matriz de acceso, en la cual se listan los recursos y las actividades que se pueden realizar sobre él.

Page 71: Unidad III Mecanismos de protección M.C. Juan Carlos Olivares Rojas

Protección• Las matrices de acceso no son tan eficientes ya

que dependen de la cantidad de recursos, usuarios y accesos.

• Un mejor esquema son las lista de control de acceso en las cuales se puede especificar el acceso a cada recurso de una mejor forma.

• Un mejor esquema de protección es el acceso a través de roles

Page 72: Unidad III Mecanismos de protección M.C. Juan Carlos Olivares Rojas

4.8. Seguridad

• Existen muchos riesgos en los sistemas distribuidos y en general en cualquier sistema basado en red, por ejemplo:

• Virus y troyanos• Entrada no autorizada a sistemas• Destrucción o pérdida de información• Alteración de transacciones• Etcétera

Page 73: Unidad III Mecanismos de protección M.C. Juan Carlos Olivares Rojas

Seguridad

• Los principales ataques y vulnerabilidades de seguridad son los siguientes:

• Ingeniería social

• Spoofing (suplantación)

• Denegación de servicio

• Uso de sniffers

Page 74: Unidad III Mecanismos de protección M.C. Juan Carlos Olivares Rojas

Seguridad

• Algunas recomendaciones para mejorar la seguridad de un sistema son:

• Revisar patrones de acceso y comportamiento a cuentas de usuarios y servicios.

• Verificar que las políticas del sistema no hayan cambiado, de tal forma que no se permitan muchos puertos abiertos, etc.

Page 75: Unidad III Mecanismos de protección M.C. Juan Carlos Olivares Rojas

Seguridad• Se debe hacer especial énfasis en la seguridad

física por que muchos problemas de seguridad vienen desde el interior.

• Las políticas de seguridad deben ser independientes de la tecnología empleada.

• En general existen dos tipos de ataque: pasivos y activos, siendo éstos últimos los más perjudiciales.

Page 76: Unidad III Mecanismos de protección M.C. Juan Carlos Olivares Rojas

Seguridad

• Una buena forma de otorgar seguridad a los sistemas distribuidos es a través de un Firewall, el cual se encarga de autorizar o no el acceso a determinados recursos en base algunas reglas definidas.

• Otro mecanismo de seguridad son los proxys que permiten centralizar el tráfico de cierto servicio pudiendo denegar el acceso o bien limitarlo para los diferentes usuarios.

Page 77: Unidad III Mecanismos de protección M.C. Juan Carlos Olivares Rojas

Seguridad

• La implantación de políticas de seguridad puede hacerse desde dispositivos de red como conmutadores y encaminadores.

• La seguridad es un área con un crecimiento exponencial en los últimos años. Se recomienda basar las políticas de seguridad en estándares internacionales de tecnologías de la información como ITIL, COBIT, etc.

Page 78: Unidad III Mecanismos de protección M.C. Juan Carlos Olivares Rojas

Referencias

• Tanebaum, A., Woodhull, A. (1997) Sistemas Operativos. Diseño e Implementación. México, Prentice Hall. ISBN: 970-17-0165-8.

• Tutorial de Sistemas Operativos 2. Instituto Tecnológico de la Paz. http://sistemas.itlp.edu.mx/tutoriales/sistemasoperativos2/ [octubre 2007]

Page 79: Unidad III Mecanismos de protección M.C. Juan Carlos Olivares Rojas

Referencias

• Villegas, Cristobal. Material Curso de Sistemas Operativos 2 (2002). Instituto Tecnológico de Morelia, México.

• Silberschatz, Abraham, Galvin, Peter, Sistemas Operativos, Quinta edición (1999). México, Pearson.

Page 80: Unidad III Mecanismos de protección M.C. Juan Carlos Olivares Rojas

Referencias

• Tanenbaum, Andrew (1996). Sistemas Operativos Distribuidos. México, Prentice Hall.

• Shah, Steve (2001). Manual de administración de Linux. Capítulo 18: Sistema de archivos de red (NFS), pp 375-386. España, Osborne McGraw-Hill.

Page 81: Unidad III Mecanismos de protección M.C. Juan Carlos Olivares Rojas

¿Preguntas?