Está en la página 1de 6

INF413

UNIDAD IV

SEGURIDAD Y PROTECCION

INTRODUCCION

La protección se refiere a un mecanismo para controlar el acceso de: los programas, procesos o
usuarios a los recursos definidos por un sistema de computación. Este mecanismo debe permitir
especificar los controles que se impondrán, y debe contar con alguna forma de hacerlos cumplir. La
seguridad en cambio, 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 (almacenados, por ejemplo, en cintas y
discos) 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.

4.1 PROTECCION

4.1.1 Objetivos de la protección

El papel de la protección de un sistema de computación es ofrecer un mecanismo para hacer


cumplir las políticas que gobiernan el uso de los recursos. Dichas políticas se pueden establecer
de varias maneras. Algunas están determinadas por el diseño del sistema, mientras que otras las
formulan los administradores del sistema. Otras más las definen los usuarios individuales para
proteger sus propios archivos y programas. Un sistema de protección debe tener la suficiente
flexibilidad para hacer cumplir diversas políticas que puedan establecerse en él.

Un principio importante es la separación entre política y mecanismo. Los mecanismos


determinan cómo se hacen las cosas. En contraste, las políticas deciden qué cosas se harán. La
separación entre política y mecanismo es importante para la flexibilidad. Es probable que las
políticas cambien de un lugar a otro o de un tiempo a otro. En el peor de los casos, cada cambio
de política requerirá un cambio en el mecanismo subyacente. Los mecanismos generales son
más deseables, porque un cambio en una política requerirá solo la modificación de algunos
parámetros o tablas del sistema.

4.1.2 Dominio de protección

Un sistema de computación es una colección de procesos y objetos. Los objetos pueden ser de
hardware (CPU, segmentos de memoria, impresoras, discos y unidades de cinta) y de software
(archivos, programas y semáforos).

Queda claro que a un proceso solo debe permitírsele acceder a los recursos para los cuales
tiene autorización de acceso. Este requisito, conocido como el principio de “necesidad de

1
INF413

conocer”, es útil para limitar la cantidad de daño que un proceso que falla podría causar en el
sistema.
Un proceso opera dentro de un dominio de protección, que especifica los recursos a los que el
proceso puede acceder. Cada dominio define un conjunto de objetos y los tipos de operaciones
que se pueden invocar para cada objeto. La capacidad para ejecutar una operación con 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-de-objeto, conjunto-de-derechos>. Por ejemplo, si el
dominio D tiene el derecho acceso <archivo F, {leer, escribir}>, un proceso que se ejecute en el
dominio D podrá leer y escribir el archivo F, pero no podrá realizar ninguna otra operación con
ese objeto.

4.1.3 Matriz de acceso

Las filas de la matriz de acceso representan dominios, y las columnas, objetos. Cada entrada
de la matriz consiste en un conjunto de derechos de acceso. Dado que la columna define
explícitamente el objeto, podemos omitir el nombre del objeto en el derecho de acceso. La
entrada “acceso(i,j)” define el conjunto de operaciones que un proceso que se ejecuta en el
dominio Di puede invocar con el objeto Oj.

Consideremos la matriz de acceso, que tiene cuatro dominios y cuatro objetos: tres archivos
(F1, F2, y F3) y una impresora láser. Cuando un proceso se ejecuta en el dominio D1, puede leer
los archivos F1 y F3. Un proceso que se ejecuta en el dominio D4 tiene los mismos privilegios
que en el dominio D1, pero además puede escribir en los archivos F1 y F3. Sólo los procesos que
se ejecutan en el dominio D2 tienen acceso a la impresora.

Objeto
F1 F2 F3 Impresora
dominio
D1 leer leer
D2 imprimir
D3 leer ejecutar
D4 leer y escrib. leer y escrib.

El esquema de matriz de acceso nos proporciona el mecanismo para especificar diversas


políticas. El mecanismo consiste en implementar la matriz de acceso y asegurar que se cumplan
realmente las propiedades semánticas que bosquejamos. En términos más específicos, debemos
asegurar que un proceso que se ejecuta en el dominio D i pueda acceder solo a los objetos
especificados en la fila i, y solo como lo especifican las entradas de la matriz de acceso.

2
INF413

4.2 SEGURIDAD

4.2.1 Validación

En general la validación se basa en uno o más de tres elementos: posesión del usuario (una
llave o tarjeta), conocimiento del usuario (un identificador de usuario y una contraseña) y un
atributo del usuario (huella dactilar, patrón de retina o firma).

4.2.2 Contraseñas

Es común usar contraseñas para proteger objetos en el sistema de computación. Podría


asociarse una contraseña a cada recurso. Podrían asociarse diferentes contraseñas a diferentes
derechos de acceso.

Los problemas de las contraseñas tienen que ver con la dificultad de mantener secreta una
contraseña. Una forma de adivinar una contraseña es que el intruso (humano o programa)
conozca al usuario o tenga información acerca de él. La otra forma es usar fuerza bruta,
probando todas las combinaciones de letras, números y signos de puntuación hasta hallar la
contraseña. Las contraseñas cortas no tienen suficientes opciones para impedir que se adivinen
mediante intentos repetidos. Por ejemplo, una contraseña de cuatro dígitos decimales solo tiene
10000 variaciones. En promedio, bastarán 5000 pruebas para lograr un acierto. Si se puede
escribir un programa que pruebe una contraseña cada milisegundo, sólo tardaría unos cinco
segundos en adivinar una contraseña de cuatro dígitos. Las contraseñas más largas son menos
susceptibles a ser adivinadas por enumeración, y los sistemas que distinguen entre letras
mayúsculas y minúsculas, y que permiten usar números y todos los signos de puntuación en las
contraseñas hacen mucho más difícil la tarea de adivinar la contraseña.

4.2.2.1 Contraseñas cifradas

Cada usuario tiene una contraseña. El sistema contiene una función que es extremadamente
difícil de invertir, pero fácil de calcular. Es decir, dado un valor x, es fácil calcular el valor de
la función f(x). Pero dado un valor de la función f(x), es imposible calcular x. Esta función se
usa para codificar todas las contraseñas. Sólo se almacenan las contraseñas codificadas. Cuando
un usuario presenta una contraseña, se codifica y compara con la contraseña codificada
almacenada. Aun si se logra ver esta última, no podrá decodificarse, y no podrá determinarse la
contraseña. Así, no es necesario mantener en secreto el archivo de contraseñas. La función f(x)
casi siempre es un algoritmo de cifrado que se ha diseñado y probado rigurosamente.

El defecto de este método es que el sistema ya no tiene control sobre las contraseñas.
Aunque las contraseñas están cifradas, cualquiera que tenga una copia del archivo de
contraseñas podrá ejecutar rutinas de cifrado rápido y cotejar los resultados con él.
3
INF413

Una buena técnica es generar la contraseña usando la primera letra de cada palabra de una
frase que sea fácil de recordar, usando mayúsculas y minúsculas e incluyendo algún número
o un signo de puntuación por añadidura. Por ejemplo, la frase “El nombre de mi madre es
Catalina.” Podría dar la contraseña “EndmmeC.”. La contraseña es difícil de descifrar, pero
fácil de recordar para el usuario.

4.2.2.2 Contraseñas de un solo uso

Cuando se inicia una sesión, el sistema selecciona al azar y presenta una parte de un par de
contraseñas; el usuario deberá proporcionar la otra parte.

En este sistema, se presenta un reto al usuario y éste debe responder con la respuesta correcta
a ese reto.
Se podría usar un algoritmo como contraseña, por ejemplo. El sistema selecciona un entero
al azar y lo presenta al usuario. Este aplica la función y responde con el resultado correcto.

El sistema también aplica la función. Si los dos resultados coinciden, se permite el acceso.

Las contraseñas algorítmicas consisten en que el usuario y el sistema comparten un secreto.

El secreto nunca se trasmite por un medio que permita la exposición. Más bien, el secreto se
usa como entrada de la función, junto con una semilla compartida. Una semilla es un
número o secuencia alfanumérica aleatoria, y es el reto de validación del computador. El
secreto y la semilla se usan como entrada de la función f (secreto, semilla). El resultado de
esta función se trasmite como contraseña al computador. El computador realiza el mismo
cálculo. Si los resultados coinciden, el usuario queda validado.

En este sistema de contraseña de un solo uso, la contraseña es diferente en cada ocasión.

Cualquiera que capture la contraseña de una sesión y trate de utilizarla en otra, fallará.

4.2.2.3 Amenazas por programas

Se refiere al caso en el que un programa escrito por un usuario podría ser utilizado por
otro usuario, y que de esto surja un comportamiento inesperado. Dos métodos comunes para
causar tal comportamiento son: Caballo de troya y Puerta secreta

4.2.2.4 Amenazas al sistema

4
INF413

La mayoría de los sistemas operativos tienen un mecanismo para que un proceso


engendre otros procesos. Los gusanos y los virus usan este mecanismo para crear una
situación en que se abuse de los recursos del sistema operativo y de los archivos del usuario

4.2.2.5 Vigilancia de amenazas

Un ejemplo común de este esquema es un sistema de tiempo compartido que cuenta


las veces que se proporcionan contraseñas incorrectas. Los computadores conectados en red
son mucho más susceptibles a ataques contra la seguridad que los sistemas autónomos. Los
sistemas son tan seguros como la conexión más lejana del sistema.
Una solución es emplear una pared cortafuego (firewall) para separar los sistemas en
los que se confía y en los sistemas que no se confía. Una pared cortafuego es un computador
o encaminador que se coloca entre lo confiable y lo no confiable.

4.2.2.6 Sistemas de confianza

Una manera de proteger los datos ó los recursos es en base a los niveles de seguridad
como ser mediante la organización de la información por categorías, donde los usuarios
reciben autorización para acceder a ciertas categorías de datos. Con varias categorías ó
niveles de datos, el requisito se conoce como seguridad multinivel, y debe cumplir lo
siguiente:

- No leer arriba: Un sujeto puede leer un objeto solo de nivel de seguridad menor o
igual.
- No escribir abajo: Un sujeto puede escribir un objeto solo a nivel de seguridad
mayor o igual.

4.2.3 Cifrado

El cifrado es un método común de proteger información que se trasmite por enlaces no


confiables. Hay varios métodos que logran este objetivo. Los más comunes consisten en un
algoritmo de cifrado general, E, un algoritmo de descifrado general, D, y una o más claves
secretas proporcionadas. Sean Ek y Dk los algoritmos de cifrado y descifrado
respectivamente. El algoritmo de cifrado deberá satisfacer las siguientes propiedades para un
mensaje m

1. Dk(Ek(m)) = m
2. Tanto Ek como Dk se pueden calcular de forma eficiente
3. La seguridad del sistema depende únicamente de mantener en secreto la clave; no
depende de mantener en secreto los algoritmos E y D

Un algoritmo que es casi imposible de romper, donde la clave de cifrado pública es un


par (e, n); la clave privada es un par (d, n), donde e, d y n son enteros positivos. Cada mensaje
se representa como un entero entre 0 y n-1. (un mensaje largo se divide en una serie de
5
INF413

mensajes más pequeños, cada uno de los cuales se puede representar con un entero así) Las funciones
E y D se definen como:

E(m) = me mod n = C,
D(C) = Cd mod n.

El problema principal es seleccionar las claves de cifrado y descifrado. El entero n se calcula


como el producto de dos números primos p y q grandes (de 100 o más dígitos) escogidos al azar, con:

n=pxq

El valor de d se escoge al azar y debe ser un entero grande primo relativo a (p – 1) x (q – 1).
Es decir, d satisface
Máximo común divisor [d, (p – 1) x (q – 1)] = 1

Por último, el entero e se calcula a partir de p, q y d como el inverso multiplicativo de

d módulo (p – 1) x (q – 1)

Es decir, e satisface e x d mod (p – 1) x (q – 1) = 1

A pesar de que n se conoce públicamente, p y q no se conocen públicamente. Se permite esta


condición, porque, como es bien sabido, es difícil factorizar n. Por consiguiente, no es fácil adivinar
los enteros d y e.

Ejemplo. Sea p=5 y q=7. Entonces, n=35 y (p – 1) x (q – 1) = 24 .

Puesto que 11 es primo relativo a 24, podemos escoger d = 11; y dado que

11 x 11 mod 24 = 121 mod 24 = 1, e = 11

Supongamos ahora que m = 3, entonces

C = me mod n = 311 mod 35 = 12

Y
Cd mod n = 1211 mod 35 = 3 = m

De este modo, si codificamos m usando e, podremos decodificarlo usando d.

También podría gustarte