unidad 6 SO

22
Materia: Sistemas Operativos Unidad: 6 Protección y seguridad. Tema: 6.1 Concepto y objetivos de protección. 6.2 Funciones del sistema de protección. 6.3 Implantación de matrices de acceso. 6.4 Protección basada en el lenguaje. 6.5 Concepto de seguridad. 6.6 Clasificaciones de la seguridad. 6.7 Validación y amenazas al sistema. 6.8 Cifrado. Nombre: Roman Palacios José Juan Fecha: 16 de Mayo de 2011 *********************************************************************************** PROTECCIÓN Y SEGURIDAD. 6.1 CONCEPTO Y OBJETIVOS DE PROTECCIÓN. La seguridad en los sistemas de una computadora es un elemento muy importante en diseño de los sistemas operativos ya que manejan información muy valiosa para sus propietarios. [1] La seguridad de un sistema tiene múltiples facetas, desde la protección ante posibles daños físicos de los datos (fuego, terremotos, etc.) hasta el acceso indebido a los mismos (intrusos, fallos de confidencialidad, etc.). Los ataques contra la confidencialidad, la integridad o la disponibilidad de recursos en un sistema deben prevenirse y solventarse mediante la política y los mecanismos de seguridad de un sistema. La seguridad debe tener en cuenta eventos tanto internos como externos (provenientes del entorno en que opera el sistema), de nada sirve tener mecanismos de protección interna muy buenos, si el sistema operativo no es capaz de identificar a los usuarios que acceden al sistema o si no existe una política de salvaguarda de datos antes la rotura de un disco. La protección, consiste en evitar que se haga un uso indebido de los recursos que están dentro del ámbito del sistema operativo. Es necesario comprobar que los recursos (archivos, zonas de memoria, etc.) solo se usan por aquellos usuarios que tienen derechos de acceso. El sistema operativo debe proporcionar los medios para implementar políticas de protección deseadas por el usuario.

Transcript of unidad 6 SO

Page 1: unidad 6 SO

Materia: Sistemas Operativos

Unidad: 6 Protección y seguridad.

Tema:

6.1 Concepto y objetivos de protección.

6.2 Funciones del sistema de protección.

6.3 Implantación de matrices de acceso.

6.4 Protección basada en el lenguaje.

6.5 Concepto de seguridad.

6.6 Clasificaciones de la seguridad.

6.7 Validación y amenazas al sistema.

6.8 Cifrado.

Nombre: Roman Palacios José Juan

Fecha: 16 de Mayo de 2011

***********************************************************************************

PROTECCIÓN Y SEGURIDAD.

6.1 CONCEPTO Y OBJETIVOS DE PROTECCIÓN.

La seguridad en los sistemas de una computadora es un elemento muy importante en diseño de

los sistemas operativos ya que manejan información muy valiosa para sus propietarios. [1]

La seguridad de un sistema tiene múltiples facetas, desde la protección ante posibles daños

físicos de los datos (fuego, terremotos, etc.) hasta el acceso indebido a los mismos (intrusos, fallos de

confidencialidad, etc.).

Los ataques contra la confidencialidad, la integridad o la disponibilidad de recursos en un

sistema deben prevenirse y solventarse mediante la política y los mecanismos de seguridad de un

sistema. La seguridad debe tener en cuenta eventos tanto internos como externos (provenientes del

entorno en que opera el sistema), de nada sirve tener mecanismos de protección interna muy buenos, si

el sistema operativo no es capaz de identificar a los usuarios que acceden al sistema o si no existe una

política de salvaguarda de datos antes la rotura de un disco.

La protección, consiste en evitar que se haga un uso indebido de los recursos que están dentro

del ámbito del sistema operativo. Es necesario comprobar que los recursos (archivos, zonas de

memoria, etc.) solo se usan por aquellos usuarios que tienen derechos de acceso.

El sistema operativo debe proporcionar los medios para implementar políticas de protección

deseadas por el usuario.

Page 2: unidad 6 SO

La seguridad de un sistema operativo se basa principalmente en tres aspectos de diseño:

Evitar pérdida de datos

Controlar la confidencialidad

Controlar el acceso a los datos y recursos

La pérdida de datos puede deberse a catástrofes naturales o artificiales, a errores del hardware o

del software de la computadora (rotura de un disco) o a errores humanos. Una solución para estos

problemas es hacer que los administradores del sistema mantengan varias copias de los datos

almacenados en distintos lugares.

En el ámbito interno del sistema operativo hay operaciones que pueden violar la

confidencialidad de los datos. Una simple asignación de bloque de disco libre a un usuario le

proporcionará el bloque con el contenido del usuario anterior si el sistema operativo no tiene una

política definida para este tipo de situaciones. En estos casos, siempre hay que limpiar los recursos de

los datos anteriormente existentes.

Sin embargo la confidencialidad de los datos es un problema de seguridad que sobrepasa el

ámbito de los sistemas operativos.

En cuanto al control del acceso a datos y recursos, es necesario asegurar que los usuarios no

acceden archivos para los que no tienen permisos de acceso, a cuentas de otros usuarios o páginas de

memoria o bloques de disco que contienen información de otros usuarios.

Un sistema operativo puede dar soporte de ejecución a múltiples procesos de múltiples usuarios,

que ejecutan de manera concurrente. Por ello, una de las funciones principales del sistema operativo es

proteger los recursos de cada usuario para que pueda ejecutar en un entorno seguro. Donde los

mecanismos permiten controlar el acceso a los objetos del sistema permitiéndolo o denegándolo sobre

la base de información tal como la identificación del usuario, el tipo de recurso, la pertenencia del

usuario a cierto grupo de personas, las operaciones que puede ,hacer el usuario o el grupo con cada

recurso, etc. La existencia de los mecanismos de seguridad obliga a mantener un compromiso constante

entre separación y comparación. [2]

Autenticación de usuarios.

El objetivo de la identificación del usuario, también denominado autenticación, es determinar si

un usuario (persona, servicio o computadora) es quien dice ser. Para lo cual existen diversas formas de

establecer la identidad de un usuario, tales como:

Pedir información que solo él conoce a través de contraseñas, juegos de preguntas o algoritmos

de identificación.

Determinar características físicas del usuario tales como la pupila, la huella dactilar, el DNA, la

firma y etc.

Pedir un objeto que use el usuario, como puede ser una firma electrónica, unatarjeta con banda

magnética o con un chip.

Page 3: unidad 6 SO

Además, como criterio general de seguridad, los sistemas operativos modernos dan la

posibilidad de registrar todos los accesos al sistema, lo cual permite hacer controles interactivos ya

posteriori de dichos accesos.

El proceso de autenticación:

Habitualmente, cuando un usuario quiere acceder al sistema, aparece una pantalla o mensaje de

entrada. En el caso de Windows NT, la pantalla pide tres valores:

Identificación del usuario: nombre del usuario del sistema.

Palabra clave o contraseña: espacio para teclear la clave.

Dominio de protección al que pertenece el usuario.

Existen varios fallos posibles en el proceso de entrada al sistema, por lo que este proceso debe

ser robusto y no dar información a los intrusos. Donde un ataque a la seguridad del sistema relacionado

con el proceso de autenticación consiste en suplantar al proceso que pide los datos de entrada.

Palabras claves o contraseñas.

El método más usado actualmente para identificar a un usuario es el de contraseñas, o palabras claves.

Una contraseña es un conjunto de caracteres alfanuméricos y especiales conocido únicamente

por el usuario y por el sistema operativo sobre el que se ha llegado a un acuerdo para que sea usado

como clave de acceso al sistema. Normalmente, cuando se habilita un nuevo usuario en el sistema, este

introduce su contraseña, que puede cambiar posteriormente tantas veces como quiera. Dicha contraseña

se guarda cifrad en archivos especiales.

Este sistema es sencillo de implementar y de usar, funcionando de forma similar en todos los

sistemas operativos. Sin embrago es necesario tomar las siguientes cuatro decisiones básicas de diseño

para un sistema como este:

Asignación de claves:

La palabra clave es fijada por el usuario cuando entra en su cuenta y la puede cambiar tantas

veces como quiera.

Longitud y formato de claves:

La longitud y el formato de las claves han ido cambiando a través del tiempo, principalmente

debido a la detección de fallos asociados a las claves usadas en cada momento. Donde para aumentar la

complejidad de la clave se puede hacer que el mandato que permite cambiar la contraseña obligue al

usuario a meter caracteres no alfanuméricos y que fuerce la existencia de contraseñas de una longitud

mínima añadiendo números aleatorios a la palabra antes de cifrarla.

Almacenamiento de claves: Las claves suelen almacenarse en archivos cifrados, con lo cual se incrementa la seguridad.

Duración de las claves:

Page 4: unidad 6 SO

Para dificultar la detección de contraseñas válidas por parte de posibles intrusos se puede

configurar el sistema operativo: los sistemas operativos permiten que las contraseñas de usuario sean

válidas únicamente durante un cierto tiempo.

Dominios de protección.

Para poder implementar mecanismos de protección sobre los objetos del sistema, que pueden

ser hardware (UCP, memoria, etc.) o software (procesos, archivos, semáforos, etc.), es necesario en

primer lugar disponer de identificadores únicos de usuarios y objetos.

La relación entre objetos y derechos de acceso se define usando dominios de protección. Un

dominio de protección es un conjunto de pares (objeto, derechos), donde cada par especifica un objeto

y las operaciones que puede ejecutar sobre el mismo.

Un objeto puede pertenecer a varios dominios de protección simultáneamente. En cada

momento, un proceso ejecuta un dominio de protección, pudiendo cambiar de un dominio a otro, si el

sistema operativo lo permite.

Matrices de protección. La relación entre dominios y objetos se puede definir de forma completa mediante 6ba matriz

de protección, también denominada de acceso. Los dominios de protección son las filas de la matriz y

los objetos son las columnas de la misma. El elemento (i, j) expresa las operaciones que el dominio i ;

puede ejecutar sobre el objeto j. Si la matriz de protección esta completamente definida, los

mecanismos de protección pueden saber siempre qué hacer cuando un proceso de un dominio solicita

determinada operación sobre un objeto.

El modelo de matriz de protección, derivado del modelo teórico HRU punto devista conceptual,

pero tiene inconvenientes para su implementación:

La matriz de un sistema complejo puede ser muy grande y muy dispersa.

Una matriz tiene un número fijo de filas (dominios) y columnas (objetos), lo que es muy poco flexible

para sistemas cuyo número de dominios u objetos puede cambiar.

Para resolver estos problemas, la mayoría de los sistemas operativos implementan la matriz

mediante estructuras dinámicas de datos (listas) a las que se puede añadir o quitar elementos sin tener

que redefinir ninguna estructura de datos del sistema operativo. Para la implementación de la matriz

mediante elementos dinámicos, los sistemas operativos usan dos enfoques:

Almacenar la matriz por columnas, con una lista por objeto que especifica qué operaciones

puede hacer cada dominio sobre ese objeto. La lista resultante se denomina lista de control de acceso

(ACL, Acces Control List).

Almacenar la matriz por filas, con una lista por dominio que especifique qué operaciones se

pueden hacer sobre un objeto cuando se pertenece a ese dominio. La lista resultante se denomina lista

de capacidades (capabilities).

Lista de control de acceso.

Una forma frecuente de controlar los accesos a un objeto es usar el identificador del usuario

como criterio. Con listas de control de acceso es necesario especificar para cada dominio de protección,

Page 5: unidad 6 SO

e incluso para 'cada usuario, qué tipos de acceso al objeto son posibles. Para implementar esta solución,

a cada objeto (archivos, directorios, procesos, etc. I se le asocia una lista de pares:

(Dominio, operaciones).

Cuando un usuario pide acceso a un objeto, se determina a qué dominio de protección pertenece

y se recorre la lista para ver si se puede hacer la operación solicitada.

La lista de control de acceso se corresponde directamente con las necesidades de los usuarios.

Estas listas tienen dos problemas asociados:

Construir y mantener las listas es costoso en tiempo y recursos.

Es necesario disponer de estructuras de almacenamiento de tamaño variable porque las listas

pueden tener longitudes distintas dependiendo del objeto.

Listas de control de acceso en UNIX

En UNIX, solo existen tres dominios de protección: dueño, grupo, otros. Para cada dominio se

permiten tres tipos de operaciones sobre un objeto: leer (r), escribir (w) y ejecutar (x). Todas las

operaciones de interfaz Con el sistema operativo, estos permisos se indican Con números en octal. Se

usa un digito para cada dominio y el valor de loS bits de cada digito se pone a 1 si la operación es

posible a 0 si no lo es.

Los parámetros de protección de un objeto se pueden cambiar en UNIX mediante las llamadas

al sistema chmod y chown.

Listas de control de acceso en Windows NT

Todos los objetos de Windows NT tienen asignados descriptores de seguridad como parte de

sus fichas de acceso. La parte mas significativa de los descriptores de seguridad es la lista de control de

accesos.

Cada entrada de la ACL contiene los descriptores de seguridad de los distintos dominios del

sistema y los derechos de la ACL para permitir o denegar al acceso alobjeto.

El criterio de asignación de derechos en la ACL de un objeto nuevo en Windows NT es el siguiente:

Si el creador de un objeto proporciona una ACL de forma explicita, el sistema la incluye en la

ficha de acceso de dicho objeto.

Si no proporciona una ACL de forma explicita, pero el objeto tiene un nombre, el sistema

comprueba si el objeto debe heredar la de los objetos de su directorio. En ese caso se incluye en la fila

de acceso del objeto la ACL heredada de los objetos de su directorio.

Si ninguna de las dos condiciones anteriores se cumplen, el 'subsistema de seguridad aplica al objeto

una ACL por defecto.

Además, en los descriptores de seguridad de los objetos se puede activar un campo de auditoria

que indica al subsistema de seguridad que debe espiar al objeto y generar informes de seguridad cuando

algún usuario intente hacer un uso incorrecto del mismo.

Page 6: unidad 6 SO

Capacidades

La otra forma posible de implementar la matriz de protección es asociar a cada dominio un

conjunto de descriptores que indiquen las operaciones que los componentes de ese dominio pueden

efectuar sobre cada objeto del sistema. Estos descriptores se denominan capacidades (capabilities) y

son una combinación de una referencia a un objeto con los permisos de acceso al mismo desde el

dominio del poseedor de la capacidad. Las listas de capacidades son a su vez objetos, por 10 que

pueden ser incluidas dentro de otras listas de capacidades, facilitando la comparición de los objetos en

dominios y subdominios.

La mayoría de los sistemas que usan capacidades se basan en el hecho de que las listas de

capacidades están siempre dentro del espacio de memoria del sistema operativo, sin que exista

posibilidad de migrar a espacio de memoria de los procesos de usuario.

Una capacidad no pueda ser modificada. En casi todos los sistemas es necesario destruirla y

crear una nueva, siguiendo un esquema de uso de una única vez.

A nivel interno se han propuesto tres métodos para proteger las listas de capacidades:

Arquitectura etiquetada, en al cual la palabra de memoria tenga un bit de etiqueta adicional

diciendo si contiene o no una capacidad. En caso positivo, esa posición de memoria sólo puede ser

modificada por procesos que ejecuten dentro del núcleo del sistema operativo. Esta solución es cara y

poco adecuada para sistemas de propósito de general.

capacidades cifradas. La clave de cifrado es desconocida por los usuarios, que deben limitarse a

manipular las capacidades cifradas recibidas del sistema operativo. Este sistema se ajusta bien a las

necesidades de los sistemas operativos distribuidos.

Listas de control de acceso asociadas a cada capacidad.

Las capacidades no se corresponden directamente con las necesidades de los usuarios y son

menos intuitivas que las ACL. Debido a ello, la mayoría de los sistemas operativos proporcionan ACL

como mecanismo de protección. Sin embargo, las capacidades tienen varias ventajas:

Son muy útiles para incluir información de protección para un proceso en particular.

El mecanismo de comprobación de derecho es muy sencillo.

Se adaptan muy bien a sistemas distribuidos.

Su gran desventaja sigue siendo que la revocación de accesos a un objeto puede ser ineficiente

si se desea hacerla con criterios de selectividad entre dominios o para revocar derechos parciales.

Revocación de derechos de acceso:

El principal problema de las capacidades es que, en un sistema dinámico, pueden existir cientos

de capacidades concedidas para acceder a un objeto, lo que hace muy difícil su control. Por lo cual,

revocar los derechos de acceso para un objeto en particular es muy difícil, ya que el sistema debe

buscar todas las capacidades existentes sobre el mismo para aplicar la revocación de derechos.

Donde las capacidades se pueden implementar, para facilitar la revocación de derechos de

Acceso como:

Page 7: unidad 6 SO

Lista de control de acceso en la cual se puede mantener una lista desde cada objeto a todas sus

capacidades. Si hay modificaciones, se recorre dicha lista y se aplican.

Claves de versión donde cada objeto tiene una clave maestra que se copia en cada nueva

capacidad sobre ese objeto.

Indirecciones de manera que las capacidades no apunten directamente a los objetos, sino a una

tabla global intermedia desde la cual se apunta al objeto.

6.2 FUNCIONES DEL SISTEMA DE PROTECCIÓN. [3]

Control de acceso que hace referencia a las caracteristicas de seguridad que controlan quien

puede obtener acceso a los recursos de un sistema operativo. Las aplicaciones llaman a las funciones de

control de acceso para establecer quien puede obtener acceso a los recursos especificos o controlar el

acceso a los recursos proporcionados por la aplicacion.

Un sistema de proteccion debera tener la flexibilidad suficiente para poder imponer una

diversidad de politicas y mecanismos.

Existen varios mecanismos que pueden usarse para asegurar los archivos, segmentos de

memoria, CPU, y otros recursos administrados por el Sistema Operativo.

Por ejemplo, el direccionamiento de memoria asegura que unos procesos puedan ejecutarse solo

dentro de sus propios espacios de direccion. El timer asegura que los procesos no obtengan el control

de la CPU en forma indefinida.

La proteccion se refiere a los mecanismos para controlar el acceso de programas, procesos, o

usuarios a los recursos definidos por un sistema de computacion. Seguridad es la serie de problemas

relativos a asegurar la integridad del sistema y sus datos.

Hay importantes razones para proveer proteccion. La mas obvia es la necesidad de prevenirse

de violaciones intencionales de acceso por un usuario. Otras de importancia son, la necesidad de

asegurar que cada componente de un programa, use solo los recursos del sistema de acuerdo con las

politicas fijadas para el uso de esos recursos.

Un recurso desprotegido no puede defenderse contra el uso no autorizado o de un usuario

incompetente. Los sistemas orientados a la proteccion proveen maneras de distinguir entre uso

autorizado y desautorizado.

Mecanismos y Politicas

El sistema de proteccion tiene la funcion de proveer un mecanismo para el fortalecimiento de

las politicas que gobiernan el uso de recursos. Tales politicas se pueden establecer de varias maneras,

algunas en el diseno del sistema y otras son formuladas por el administrador del sistema. Otras pueden

ser definidas por los usuarios individuales para proteger sus propios archivos y programas.

Las politicas son diversas, dependen de la aplicacion y pueden estar sujetas a cambios a lo largo

del tiempo.

Un principio importante es la separacion de politicas de los mecanismos. ‘Los mecanismos

determinan como algo se hara. Las politicas deciden que se hara'.

Page 8: unidad 6 SO

La separacion es importante para la flexibilidad del sistema.

Dentro de las funciones del sistema de proteccion del sistema operativo encontramos:

Controlar el acceso a los recursos

Asegurarse que todos los accesos a los recursos del sistema estan controlados

6.3 IMPLANTACIÓN DE MATRICES DE ACCESO. [4]

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. Dado que los objetos son definidos

explícitamente por la columna, se puede omitir el nombre del objeto en el derecho 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".

Considérese la siguiente matriz de acceso:

Dominio \ Objeto A1 A2 A3 COM1 LPT1

D1 Leer Leer

D2 Leer Imprimir

D3 Leer Ejecutar

D4 Leer Escribir Leer Escribir

Hay 4 dominios y 5 objetos: 3 Archivos ("A1", "A2", "A3") 1 Puerto Serial y 1 impresora.

Cuando un proceso se ejecuta en O1, puede leer los archivos "A1" y "A3".

Un proceso ejecutándose en el dominio "D4" tiene los mismos privilegios que en "D1", pero

además puede escribir en los archivos. Nótese que en el puerto serial y la impresora solo se pueden ser

ejecutados por procesos del dominio "D2".

Estructuras de protección dinamicas.

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.

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.

Derecho de acceso 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. O sea, este derecho genera copias en columnas.

Page 9: unidad 6 SO

Por ejemplo, considérese la siguiente matriz de acceso:

Archivo 1 Archivo 1 COM1 Impresora

D1 Escribir Enviar+

D2 Leer+

Escribir

D3 Recibir

D4 Leer Imprimir

En este caso estará indicado el derecho copia añadiendo el signo (+) al nombre de los derechos

que pueden ser copiados.

En la tabla se indica que un proceso ejecutándose en el dominio 1 podrá copiar hacia cualquier

otro dominio, el derecho enviar sobre el objeto "COM1" y que un proceso ejecutándose en el dominio

"D2" podrá copiar el derecho "Leer" hacia cualquier otro dominio sobre el objeto "Archivo2".

De esta manera, en algún momento posterior, la situación de la tabla podría ser la siguiente:

Archivo 1 Archivo 2 COM 1 Impresora

D1 Escribir Leer Enviar+

D2 Leer+

Escribir

D3 Recibir

D4 Leer Enviar Imprimir

En la que se ha copiado el derecho "Enviar" del dominio "D1" al dominio "D4" sobre el objeto

"COM1" y se ha copiado el derecho "Leer" del dominio "D2" al dominio "D1" sobre el objeto

"Archivo 2".

Puede observarse que los derechos "copiados" no contienen el signo (+), o sea, se ha realizado

una copia limitada. 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 (+).

COPIA COMPLETA. La copia incluye el derecho "Copia", por lo que se pueden realizar copias

sucesivas del derecho. Se puede indicar con el signo (*).

TRANSLACIÓ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 10: unidad 6 SO

Derecho de acceso 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, o sea, 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. Considérese la siguiente matriz de acceso:

Arch1 Arch2 COM1 Impresora D1 D2 D3 D4

D1 Escribir Leer Enviar+ Cambio(a)

D2 Leer

Escribir

Cambio(b)

D3 Recibir

D4 Leer Enviar Imprimir Cambio(c)

Esta tabla indica que un proceso ejecutándose en "D1" puede cambiarse al dominio "D4" (a); un

proceso ejecutándose en "D2" puede cambiarse a "D3"(b) y un proceso ejecutándose en el dominio

"D4" puede cambiarse a "D1"(c).

6.4 PROTECCIÓN BASADA EN EL LENGUAJE.

Protección basada en el lenguaje. [5]

La especificación de protección en un lenguaje de programación permite la descripción de alto

nivel de políticas para la asignación y uso de recursos.

La implementación del lenguaje puede proveer software para hacer cumplir la protección

cuando no se pueda validar si el hardware está soportado.

Interpretar las especificaciones de protección para generar llamadas en cualquier sistema de

protección provisto por el hardware y el SO.

Protección en java 2

La protección la maneja la máquina virtual (JVM)

La JVM asigna un dominio de protección a una clase cuando la carga.

El dominio de protección indica qué operaciones puede (y no puede) realizar la clase.

Si se invoca un método de biblioteca y éste realiza una operación privilegiada, se examina el

stack para asegurar que la biblioteca pueda realizar la operación.

Page 11: unidad 6 SO

Inspección del Stack

La protección que se ofrece en los sistemas de computación existentes casi siempre se ha

logrado con la ayuda del núcleo de un sistema operativo, que actúa como agente de seguridad que

inspecciona y valida cada intento por acceder a un recurso protegido. Puesto que la validación de todos

los accesos puede dar pie a un gasto extra considerable, debemos apoyarla con hardware para reducir el

costo de cada validación o bien debemos aceptar que el diseñador del sistema podría inclinarse por

sacrificar los objetivos de la protección. Es difícil satisfacer todos estos objetivos si los mecanismos de

soporte con que se cuenta restringen la flexibilidad para implementar diversas políticas de protección. [6]

A medida que ha aumentado la complejidad de los sistemas operativos, sobre todo al trata de

ofrecer interfaces de más alto nivel con el usuario, lo objetivos de la protección se han vuelto mucho

más refinados. En esta refinación observamos que los diseñadores de los diseñadores de los sistemas de

protección se han apoyado mucho en ideas que se originaron en los lenguajes de programación y

especialmente en los conceptos de tipos de datos abstractos y objetos. Los sistemas de protección ahora

se ocupan no sólo de la identidad de un recurso al cual se intenta acceder, sino también de la naturaleza

funcional de ese acceso. En los sistemas de protección más nuevos, el interés en la función que se

invocará se extiende más allá de un conjunto de funciones definidas por el sistema, como los métodos

de acceso a archivos estándar, para incluir funciones que también podrían ser definidas por el usuario.

Las políticas para el uso de recursos también podrían variar, dependiendo de la aplicación, y

podrían cambiar con el tiempo. Por estas razones, la protección ya no puede considerarse como un

asunto que sólo concierne al diseñador de un sistema operativo; también debe estar disponible como

herramienta que el diseñador de aplicaciones pueda usar para proteger los recursos de un subsistema de

aplicación contra intervenciones o errores.

Aquí es donde los lenguajes de programación entran en escena. Especificar el control de acceso

deseado a un recurso compartido en un sistema es hacer una declaración acerca del recurso. Este tipo

de declaración se puede integrar en un lenguaje mediante una extensión de su mecanismo de

tipificación. Si se declara la protección junto con la tipificación de los datos, el diseñado de cada

subsistema puede especificar sus necesidades de protección así debería darse directamente durante la

redacción del programa, y en el lenguaje en el que el programa mismo se expresa. Este enfoque tiene

varias ventajas importantes:

Page 12: unidad 6 SO

Las necesidades de protección se declaran de forma sencilla en vez de programarse como una

secuencia de llamadas a procedimientos de un sistema operativo.

Las necesidades de protección pueden expresarse independientemente de los recursos que

ofrezca un sistema operativo en particular.

El diseñador de un subsistema no tiene que proporcionar los mecanismos para hacer cumplir la

protección.

Una notación declarativa es natural porque los privilegios de acceso están íntimamente

relacionados con el concepto lingüístico de tipo de datos.

Hay diversas técnicas que una implementación de lenguaje de programación puede utilizar para

hacer cumplir la protección, pero cualquiera de ellas deberá depender hasta cierto punto del grado de

soporte de una máquina subyacente y su sistema operativo.

¿Qué ventajas relativas tiene entonces el cumplimiento basado exclusivamente en un núcleo, en

comparación con el cumplimiento forzado en gran medida por un compilador?

Seguridad: La obligación del cumplimiento por un núcleo ofrece un mayor grado de seguridad

del sistema de protección mismo, que el que ofrece la generación de código de verificación de

protección por un compilador. En un esquema apoyado por compilador, la seguridad depende de lo

correcto que sea el traductor, de algún mecanismo subyacente de gestión de almacenamiento que

proteja los segmentos desde los cuales se ejecuta el código compilador y, en última instancia, de la

seguridad de los archivos desde los que se carga el programa.

Flexibilidad: Hay límites a la flexibilidad de un núcleo de protección para implementar una

política definida por el usuario, aunque podría proporcionar recursos suficientes para que el sistema

haga cumplir sus propias políticas. Con un lenguaje de programación, se puede declarar la política de

protección y hacerse cumplir según sea necesario en una implementación.

Eficiencia: Se logra la eficiencia máxima cuando hardware apoya directamente el cumplimiento

de la protección. En la medida en que se requiera soporte de software, el cumplimiento basado en el

lenguaje tiene la ventaja de que es posible verificar el cumplimiento del acceso estático fuera de línea

en el momento de la compilación.

En síntesis, la especificación de la protección en un lenguaje de programación permite describir

un alto nivel de políticas de asignación y uso de recursos.

6.5 CONCEPTO DE SEGURIDAD. [7]

La seguridad está definida en el diccionario como el conjunto de medidas tomadas para

protegerse contra robos, ataques, crímenes y espionajes o sabotajes. La seguridad implica la cualidad o

estado de estar seguro, es decir, la evitación de exposiciones a situaciones de peligro y la actuación

para quedar a cubierto frente a contingencias adversas.

El uso creciente y la confianza en los computadores en todo el mundo ha hecho surgir una

preocupación legítima con respecto a la seguridad informática. El uso de los computadores ha

extendido en ambientes comerciales, gubernamentales, militares e incluso en los hogares. Grandes

cantidades de datos vitales sensibles se están confiando y almacenado cada vez más en computadores.

Entre ellos se incluyen registros sobre individuos, negocios y diferentes registros públicos y

secretos gubernamentales y militares. Grandes transacciones monetarias tienen lugar diariamente en

Page 13: unidad 6 SO

forma de transferencia electrónicas de fondos. Más recientemente, informaciones tales como

notificaciones de propiedad intelectual y datos comerciales estratégicos son también almacenados,

procesados y diseminados mediante computadores. Entre ellos se incluyen diseños de ventas, contratos

legales y muchos otros.

La seguridad, no solo requiere un sistema de protección apropiado, sino también considerar el

entorno externo en el que el sistema opera. La protección interna no es útil si la consola del operador

está al alcance de personal no autorizado, o si los archivos se pueden sacar simplemente del sistema de

computación y llevarse a un sistema sin protección. Estos problemas de seguridad son esencialmente de

administración, no problemas del sistema operativo.

La información almacenada en el sistema, así como los recursos físicos del sistema de

computación, tienen que protegerse contra acceso no autorizado, destrucción o alteración mal

intencionado, y la introducción accidental de inconsistencia.

6.6 CLASIFICACIONES DE LA SEGURIDAD. [8]

La clasificación de los sistemas de computación según sus requisitos de seguridad ha sido un

tema ampliamente discutido desde los años setenta. La disparidad de criterios existentes se ha ampliado

más con la conexión de las computadoras para formar redes de computación que pueden compartir

recursos.

Algunas de las clasificaciones existentes en la actualidad son la clasificación del Departamento

de Defensa (DoD) de los Estados Unidos de América, el criterio alemán, el criterio Canadiense, el

ITSEC o el criterio común.

Clasificación del Departamento de Defensa (DoD) de los Estados Unidos

Esta clasificación especifica cuatro niveles de seguridad: A, B, C y D. A continuación, se

describen estos niveles de seguridad y las características de cada uno.

NIVEl A. Sistemas de seguridad certificados.

Para acceder a este nivel, la política de seguridad y los mecanismos de protección del sistema

deben ser verificados y certificados por un organismo autorizado para ello. Organismos de verificación

muy conocidos son el National Computer Security Center o el TEMPEST.

Clase Al. Diseño verificado. Clase B 1 mas modelo formal del sistema de seguridad. La

especificación formal del sistema debe ser probada y aprobada por un organismo certificador. Para ello

debe existir una demostración de que la especificación se corresponde con el modelo, una

implementación consistente con el mismo y un análisis formal de distintos problemas de seguridad.

Clase Ax. Desarrollo controlado. A1 más diseño con instalaciones y personal controlados. Se

podrían incluir requisitos de integridad de programas, alta disponibilidad y comunicaciones seguras.

NIVEL B. Control de acceso obligatorio.

En este nivel, los controles de acceso no son discrecionales de los usuarios o dueños de los

recursos, que deben existir obligatoriamente. Esto significa que todo objeto controlado debe tener

protección sea del tipo que sea. Este nivel se divide a su vez en tres subniveles:

Page 14: unidad 6 SO

Clase B1. Etiquetas de seguridad obligatorias. Cada objeto controlado debe tener su etiqueta de

seguridad.

Clase B2. Protección estructurada. Todos los objetos deben estar controlados mediante un

sistema de seguridad con diseño formal y mecanismos de verificación. Estos mecanismos permiten

probar que el sistema de seguridad se ajusta a los requisitos exigidos.

Clase B3. Dominios de seguridad. B2 ampliado con pruebas exhaustivas para evitar canales

encubiertos, trampas y penetraciones. El sistema debe ser capaz de detectar intentos de violaciones de

seguridad, para ello debe permitir la creación de listas de control de acceso para usuarios o grupos que

no tienen acceso a un objeto.

Nivel C. Capacidad discrecional para proteger recursos.

La aplicación de los mecanismos de protección depende del usuario, o usuarios, que tienen

privilegios sobre los mismos. Esto significa que un objeto puede estar disponible para lectura, escritura

o cualquier otra operación. Casi todos los sistemas operativos comerciales de propósito general, como

Unix, Linux o Windows NT se clasifican en este nivel. Este nivel a la vez se subdivide en dos niveles:

Clase CI. Control de acceso por dominios. No hay posibilidad de establecer qué elemento de un

determinado dominio ha accedido a un objeto. UNIX pertenece a esta clase. Divide a los usuarios en

tres dominios: dueño, grupo y mundo. Se aplican controles de acceso según los dominios, siendo todos

los elementos de un determinado dominio iguales ante el sistema de seguridad.

Clase C2. Control de acceso individualizado. Granularidad mucho más fina en el control de

acceso a un objeto. El sistema de seguridad debe ser capaz de controlar y registrar los accesos a cada

objeto a nivel de usuario. Windows NT pertenece a esta clase.

Nivel D. Sistemas con protección mínima o nula

No pasan las pruebas de seguridad mínima exigida en el DoD. MS-DOS y Windows 3. 1 son

sistemas de nivel D. Puesto que están pensados para un sistema monoproceso y monousuario, no

proporcionan ningún tipo de control de acceso ni de separación de recursos.

6.7 VALIDACIÓN Y AMENAZAS AL SISTEMA.

Deitel (1987) establece que la validación de datos es una de las áreas más importantes a tener en

cuenta, especialmente en el desarrollo de sistemas conectados a redes como internet. Validar datos hace

referencia a verificar, controlar o filtrar cada una de las entradas de datos que provienen desde el

exterior del sistema. [1]

La validación tiene que ver con:

La verificación y la auditoría del sistema.

La autentificación de los usuarios.

Los sistemas sofisticados de autentificación de usuarios resultan muy difíciles de evitar por

parte de los intrusos.

Un problema existente es la posibilidad de que el sistema rechace a usuarios legítimos:

Un sistema de reconocimiento de voz podría rechazar a un usuario legítimo resfriado.

Un sistema de huellas digitales podría rechazar a un usuario legítimo que tenga una cortadura o

una quemadura.

Page 15: unidad 6 SO

Deitel (1987) concluye que en definitiva, se debe identificar cada uno de los flujos de entrada,

verificar que el tipo de dato sea el esperado y no otro, verificar que no haya códigos ocultos, etc.

Amenazas a la seguridad de un sistema. [9]

Seguridad de la información debido a:

Expansión de los ordenadores.

Uso de Sistemas Distribuidos y Redes.

Diferenciación entre Seguridad y Protección:

Seguridad (política):

¿Qué accesos son permitidos?.

¿Qué usuarios tienen que tener qué accesos a qué recursos?

Protección (mecanismo):

¿Cómo controlar los accesos?.

Proporcionar los medios para llevar a cavo las políticas de seguridad.

Generalización del término “Seguridad”.

Mecanismo flexible para albergar políticas.

Requisitos a cumplir por el sistema:

Confidencialidad:

Los elementos del sistema sólo serán visibles por aquellos grupos autorizados.

Integridad:

Los elementos del sistema sólo serán modificados por los grupos autorizados.

Disponibilidad:

Los elementos del sistema sólo estarán disponibles para grupos autorizados.

Elementos amenazados:

Hardware.

Software.

Datos.

Líneas de comunicación

Page 16: unidad 6 SO

Elementos del sistema a los que afecta la seguridad:

Aspectos en que se agrupa la seguridad:

Seguridad en el uso de recursos y servicios: control de acceso. Utilizar un mecanismo de control

de acceso a los recursos que tan sólo permita el acceso si existe el permiso correspondiente.

Seguridad en el acceso al sistema:

Asegurar que sólo entran los usuarios autorizados.

Seguridad en el uso de redes:

Evitar que se puedan producir escuchas y alteraciones en los datos que viajan por la red.

Seguridad en el uso de recursos y servicios.

Evolución del control de acceso a recursos y servicios:

Ninguna protección: ej, MS-DOS.

Protección de recursos básicos:

Memoria, ficheros, modo usuario/supervisor.

Protección de servicios generales del sistema.

Protección de servicios proporcionados por los propios usuarios:

Arquitecturas cliente/ servidor.

Situación actual:

Heterogeneidad en la protección:

Page 17: unidad 6 SO

Base de computación fiable grande.

“Agujeros” por interacción no prevista entre mecanismos.

Inseguridad en distribución:

Falta de protección para interoperabilidad de objetos distribuidos.

Pocas y malas soluciones de seguridad.

Principios de Diseño de un Sistema de Seguridad:

Mínimo Privilegio:

Los derechos de acceso deben adquirirse sólo por permiso explícito; por omisión el acceso no

debe estar permitido.

Ahorro de Mecanismos:

Lo más simples y pequeños como sea posible.

Aceptación:

No deben interferir excesivamente en el trabajo de los usuarios.

Mediación Total:

Cada acceso debe ser cotejado con la información de control.

Diseño abierto.

Amenazas a la seguridad en el acceso al sistema. [10]

Intrusos.

Programas malignos.

Intrusos: Piratas o hackers: individuos que acceden al sistema sin autorización.

Los sistemas presentan agujeros por donde los hackers consiguen colarse.

Técnicas de intrusión:

Averiguar contraseñas (más del 80% de las contraseñas son simples).

Probar exhaustivamente.

Descifrar archivo de contraseñas.

Intervenir líneas.

Usar caballos de Troya.

Técnicas de prevención de intrusos:

Establecer una buena estrategia de elección de contraseñas:

Contraseñas generadas por ordenador (difícil memorización).

Inspección activa (proceso periódico de averiguación).

Inspección proactiva (decidir si es buena en su creación.

Técnicas de detección de intrusos:

Investigar actividades inusuales:

Detección de anomalías estadísticas.

Uso de registros de auditoría que recogen información del comportamiento de cada usuario.

Detección basada en reglas.

Conjunto de reglas empleadas para decidir si una actividad es inusual.

Page 18: unidad 6 SO

Tipos de amenazas:

Amenazas pasivas:

Revelación del contenido del mensaje.

Análisis del tráfico:

En caso de que los mensajes vayan encriptados.

Determinar las máquinas que se comunican y la frecuencia y longitud de los mensajes.

Amenazas activas:

Alteración del flujo de mensajes.

Privación del servicio:

Impide el uso normal de los servicios de comunicaciones.

Suplantación:

Cuando una entidad finge ser otra diferente.

Clasificación de programas malignos:

Programas malignos que necesitan anfitrión:

Forman parte de un programa.

Trampillas:

Punto de entrada secreto a un programa.

Se usan para depuración y prueba.

Pueden usarse para acceso no autorizado.

Bomba lógica:

Se ejecutan cuando se cumplen ciertas condiciones.

Ej: se borra el disco duro si programador no estáen nómina.

Caballo de Troya:

Código dañino incrustado en programa que se ejecuta cuando se ejecuta el programa.

Programas malignos que no necesitan anfitrión:

Gusanos:

Programas independientes.

Se reproducen a través de la red.

Además de propagarse pueden causar daños.

Bacterias:

No dañan explícitamente.

Su único objetivo es reproducirse.

Se reproducen exponencialmente agotando la capacidad del procesador.

Virus:

Código incrustado en un programa.

Se reproducen e insertan en otros programas.

Pueden causar daños.

Page 19: unidad 6 SO

Algoritmo de virus muy simple (tan sólo se reproduce):

Encontrar 1ª instrucción de un ejecutable del disco.

Sustituirla por salto a posición siguiente a la última instrucción.

Insertar copia del código de virus (este algoritmo) en dicha posición.

Hacer que el virus simule la instrucción sustituida por el salto.

Saltar a la segunda posición.

6.8 CIFRADO.

La criptografía (del griego κρύπτω krypto, «oculto», y γράφως graphos, «escribir», literalmente

«escritura oculta») es la técnica, bien sea aplicada al arte o la ciencia, que altera las representaciones

lingüísticas de un mensaje. [11]

Concepto de Cifrado. [12]

El cifrado es un método que permite aumentar la seguridad de un mensaje o de un archivo

mediante la codificación del contenido, de manera que sólo pueda leerlo la persona que cuente con la

clave de cifrado adecuada para descodificarlo. Por ejemplo, si realiza una compra a través de Internet,

la información de la transacción (como su dirección, número de teléfono y número de tarjeta de

crédito) suele cifrarse a fin de mantenerla a salvo. Use el cifrado cuando desee un alto nivel de

protección de la información.

Métodos y Técnicas de Cifrado.

Cifrado de sustitución

El cifrado de sustitución consiste en reemplazar una o más entidades (generalmente letras) de un

mensaje por una o más entidades diferentes.

Existen varios tipos de criptosistemas de sustitución:

La sustitución monoalfabética consiste en reemplazar cada una de las letras del mensaje por otra

letra del alfabeto.

La sustitución polialfabética consiste en utilizar una serie de cifrados monoalfabéticos que son

re-utilizados periódicamente.

La sustitución homófona hace posible que cada una de las letras del mensaje del texto plano se

corresponda con un posible grupo de caracteres distintos.

La sustitución poligráfica consiste en reemplazar un grupo de caracteres en un mensaje por otro

grupo de caracteres.

Cifrado César

Este código de cifrado es uno de los más antiguos ya que su uso se remonta a Julio César. El

principio de cifrado se basa en la adición de un valor constante a todos los caracteres de un mensaje o,

más precisamente, a su código ASCII.

Page 20: unidad 6 SO

Cifrado ROT 13

El caso específico del cifrado César donde la clave de cifrado es N (la 13º letra del alfabeto) se

denomina ROT 13? (se eligió el número 13, la mitad de 26, para que sea posible cifrar y descifrar

fácilmente mensajes textuales).

Cifrado de Transposición

El método de cifrado por transposición consiste en reordenar datos para cifrarlos a fin de

hacerlos ininteligibles. Esto puede significar, por ejemplo, reordenar los datos geométricamente para

hacerlos visualmente inutilizables.

El Cifrado Simétrico.

El cifrado simétrico (también conocido como cifrado de clave privada o cifrado de clave

secreta) consiste en utilizar la misma clave para el cifrado y el descifrado.

El cifrado consiste en aplicar una operación (un algoritmo) a los datos que se desea cifrar

utilizando la clave privada para hacerlos ininteligibles. El algoritmo más simple (como un OR

exclusivo) puede lograr que un sistema prácticamente a prueba de falsificaciones (asumiendo que la

seguridad absoluta no existe).

El Cifrado Asimétrico.

El cifrado asimétrico (también conocido como cifrado con clave pública). En un criptosistema

asimétrico (o criptosistema de clave pública), las claves se dan en pares:

Una clave pública para el cifrado.

Una clave secreta para el descifrado.

En un sistema de cifrado con clave pública, los usuarios eligen una clave aleatoria que sólo ellos

conocen (ésta es la clave privada). A partir de esta clave, automáticamente se deduce un algoritmo (la

clave pública). Los usuarios intercambian esta clave pública mediante un canal no seguro.

Criptografía [13]

El uso creciente de las redes de computadoras y la importancia del trafico cursado hace

necesario proteger a los datos.

La Oficina Nacional de Estándares de EE. UU. (NBS) ha adoptado la norma de cifrado de datos

(DES) para la transmisión de información federal delicada.

La criptografía es el uso de la transformación de datos para hacerlos incomprensibles a todos,

excepto a los usuarios a quienes están destinados.

El problema de la intimidad trata de cómo evitar la obtención no autorizada de información de un canal

de comunicaciones.

El problema de la autentificación trata sobre cómo evitar que un oponente:

Modifique una transmisión.

Le introduzca datos falsos.

Page 21: unidad 6 SO

El problema de la disputa trata sobre cómo proporcionar al receptor de un mensaje pruebas

legales de la identidad del remitente, que serían el equivalente electrónico de una firma escrita.

Un Sistema de Intimidad Criptográfica

El remitente desea transmitir cierto mensaje no cifrado (texto simple) a un receptor legítimo:

La transmisión se producirá a través de un canal inseguro:

Se supone que podrá ser verificado o conectado mediante un espía.

El remitente pasa el texto simple a una unidad de codificación que lo transforma en un texto

cifrado o criptograma:

No es comprensible para el espía.

Se transmite en forma segura por un canal inseguro.

El receptor pasa el texto cifrado por una unidad de descifrado para regenerar el texto simple.

Criptoanálisis

Es el proceso de intentar regenerar el texto simple a partir del texto cifrado, pero desconociendo

la clave de ciframiento:

Es la tarea del espía o criptoanalista:

Si no lo logra, el sistema criptográfico es seguro.

Sistemas de Clave Pública

La distribución de claves de un sistema criptográfico debe hacerse por canales muy seguros.

Los sistemas de clave pública rodean el problema de distribución de claves:

Las funciones de cifrado y descifrado están separadas y utilizan distintas claves.

No es computacionalmente posible (en un tiempo “razonable”) determinar la clave de desciframiento

“D” a partir de la clave de ciframiento “C”.

“C” puede hacerse pública sin comprometer la seguridad de “D”, que permanece privada:

Se simplifica el problema de la distribución de claves.

Firmas Digitales

Para que una firma digital sea aceptada como sustituta de una firma escrita debe ser:

Fácil de autentificar (reconocer) por cualquiera.

Producible únicamente por su autor.

En los criptosistemas de clave pública el procedimiento es:

El remitente usa la clave privada para crear un mensaje firmado.

El receptor:

Usa la clave pública del remitente para descifrar el mensaje.

Guarda el mensaje firmado para usarlo en caso de disputas.

Page 22: unidad 6 SO

Para mayor seguridad se podría actuar como sigue:

El remitente puede codificar el mensaje ya cifrado utilizando la clave pública del receptor.

La clave privada del receptor permite recuperar el mensaje cifrado firmado.

La clave pública del remitente permite recuperar el texto simple original.

Aplicaciones

La criptografía es especialmente útil en los sistemas multiusuario y en las redes de computadoras.

Se debe utilizar para proteger a las contraseñas, almacenándolas cifradas.

Se puede utilizar también para proteger todos los datos almacenados en un sistema de computación; se

debe considerar el tiempo de cifrado / descifrado.

También es aplicable en los protocolos de redes de capas, que ofrecen varios niveles de cifrado.

En el cifrado de enlace la red asume la responsabilidad de cifrado / descifrado de cada nodo:

Los datos se transmiten cifrados entre los nodos.

En cada nodo se descifran, se determina a dónde transmitirlos y se los vuelve a cifrar.

En el cifrado punto a punto un mensaje se cifra en su fuente y se descifra solo una vez, en su destino:

Existen ciertas limitaciones tales como la legibilidad de la dirección de destino en cada nodo:

Debe ser legible para el encaminamiento del mensaje.

Ej.: sistemas de conmutación de paquetes de almacenamiento y reenvío con cifrado punto a

punto; en este caso la dirección de destino asociada a un paquete no puede ser cifrada.

BIBLIOGRAFÍA

Libros: [1] H. M. Deitel. Introducción a los Sistemas Operativos. Addison-Wesley Iberoamericana, México,

1987.

Paguinas web:

[1] http://profinal0.tripod.com/seguridad.htm

[2] http://profinal0.tripod.com/concepto.htm

[3] http://sistemasoperativos.angelfire.com/html/6.2.html

[4]http://sistemas.itlp.edu.mx/tutoriales/sistemasoperativos2/unidad3.htm#IMPLANTACION%20DE%

20MATRICES%20CON%20DERECHOS%20DE%20ACCESO.

[5] http://www.itescam.edu.mx/principal/sylabus/fpdb/recursos/r43770.PDF

[6] http://www.mitecnologico.com/Main/ProteccionBasadaEnLenguaje

[7] http://www.mitecnologico.com/Main/ConceptoDeSeguridad

[8] http://profinal0.tripod.com/clasifica.htm

[9] http://www.itescam.edu.mx/principal/sylabus/fpdb/recursos/r29417.PDF

[10] http://sistemadearchivo-corral.blogspot.com/2008/11/67-validacin-y-amenazas-al-sistema.html

[11] http://es.wikipedia.org/wiki/Criptograf%C3%ADa

[12] http://www.mitecnologico.com/Main/Cifrado

[13] http://exa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/SO14.htm#Crip