Seguridad Interna y Externa // Seguridad Operacional // Protección. Metas de la protección // Mecanismos y políticas // La vigilancia // Monitoreo de amenazas // Amplificación // Protección por contraseña // Auditoria // Controles de acceso // Políticas // Criptografía // Métodos y Técnicas de Encriptación // Sistemas de clave pública // Firmas digitales // Medidas básicas de seguridad // Bibliografía

Esta página fue confeccionada por:

Avalos Fernandez, Juan Marcelo
Dutruel, Mabel Adriana
Ebertz, Diego Hernan
Enriquez, Carlos Sebastian
Esquivel, Leonardo
Nunin, Luis Antonio
Olijavetzky, Sergio José
Pucheta, Claudia

Computación V - Año 2000


Introducción

El Sistema operativo es normalmente solo una porción del total de software que corre en un sistema particular. Pero el Sistema Operativo controla el acceso a los recursos del sistema. La seguridad de los Sistemas Operativos es solo una pequeña parte del problema total de la seguridad en los sistemas de computación, pero éste viene incrementándose en gran medida. Hay muchas razones para que la seguridad de los Sistemas Operativos reciba especial atención hoy en día.
La evolución de los sistemas de computación, ha sido en las últimas décadas de una magnitud asombrosa. Las computadoras se han tornado más accesibles, también se tiene un aumento en los riesgos vinculados con la seguridad. Pero hay una cosa que se ha mantenido constante a través de todo este tiempo, y es que los sistemas digitales se han vuelto cada vez más complejos. Los microprocesadores se han vuelto más complejos. Los sistemas operativos se han vuelto más complejos. Los ordenadores se han vuelto más complejos. Las redes se han vuelto más complejas. Las redes individuales se han combinado y han aumentado todavía más su complejidad. Ejemplo claro de ello es Internet, la gran red de computadoras, a medida que aumenta su complejidad va tornándose más insegura.

Si tenemos en cuenta que todo software no está libre fallos, entonces un software complejo es probable que falle y un porcentaje de estos fallos afecte a la seguridad.
También es importante mencionar que los sistemas complejos son necesariamente modulares, ya que de otra manera no se podría manejar su complejidad. Pero el aumento de la modularidad significa que la seguridad disminuye porque falla a menudo donde dos módulos se comunican.
La única manera razonable de probar la seguridad de un sistema es realizar evaluaciones de seguridad en él. Sin embargo, cuanto más complejo es el sistema, más dura se vuelve la evaluación de su seguridad. Un sistema más complejo tendrá más errores relacionados con la seguridad en su análisis, diseño y programación. Y desgraciadamente, el número de errores y la dificultad de evaluación no crece de acuerdo con la complejidad, crece mucho más rápido.
Cuanto más complejo es un sistema, más difícil es de entender. Hay toda clase de puntos de vulnerabilidad -interface entre usuario y máquina, interacciones del sistema- esto crece exponencialmente cuando no se puede mantener el sistema completo en la cabeza.
Cuanto más complejo es un sistema, más duro es hacer este tipo de análisis. Todo es más complicado: su análisis, su diseño, su programación y su uso.
Los sistemas operativos no escapan a esta realidad y se tornan cada vez más complejos. Un ejemplo es Microsoft Windows, que cuando se publicó en 1992 (Versión 3.1) tenía alrededor de 3 millones de líneas de código; Windows 95 alcanzó a los 15 millones y Windows 98 tiene 18 millones; Windows NT lanzado en 1992 tenía 4 millones de líneas de código; Windows NT 4.0 tiene 16.5 millones; Windows 2000 tiene entre 35 y 80 millones de líneas.
Como punto de comparación tenemos a Solaris que mantuvo su código fuente en aproximadamente 7 a 8 millones de líneas y Linux (Incluso con la suma del entorno gráfico X Windows y de Apache) que todavía se mantiene por debajo de los 5 millones de líneas.
En el pasado la seguridad física fue suficiente para resguardar un computadora contra ataques de intrusos, actualmente controles sofisticados deben instrumentarse para prevenir intentos de login desde terminales remotas y sobre otras redes de comunicación.
Por último, cabe destacar que el nivel de seguridad apropiado para un sistema en particular depende del valor de los recursos que se aseguran.
Más información en www.kriptopolis.com

 Ir al principio

Seguridad Interna y Externa

La seguridad interna está relacionada a los controles incorporados al hardware y al Sistema Operativo para asegurar los recursos del sistema.
La seguridad externa está compuesta por la seguridad física y la seguridad operacional. La seguridad física incluye la protección contra desastres (como inundaciones, incendios, etc.) y protección contra intrusos.

 Ir al principio

Seguridad Operacional

La seguridad operacional  consiste en varias políticas y procedimientos implementados por el administrador del sistema de computación.
Mediante la autorización se determina qué acceso se permite y a qué entidad.

Como punto crítico se destaca la selección del personal y la asignación del mismo. Generalmente se dividen responsabilidades, de esta manera un operario no debe conocer la totalidad del sistema para cumplir con esas responsabilidades.
Se deben instrumentar diversos controles, y el personal debe saber de la existencia de dichos controles, pero desconocer cuáles son, para reducir la probabilidad de que intrusos puedan evadirlos.

 Ir al principio

 Protección. Metas de la protección

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 dirección. El timer asegura que los procesos no obtengan el control de la CPU en forma indefinida.
La protección se refiere a los mecanismos para controlar el acceso de programas, procesos, o usuarios a los recursos definidos por un sistema de computación. Seguridad es la serie de problemas relativos a asegurar la integridad del sistema y sus datos.
Hay importantes razones para proveer protección. La más 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 políticas 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 protección proveen maneras de distinguir entre uso autorizado y desautorizado.

 Ir al principio

Mecanismos y Políticas

El rol de la protección es proveer un mecanismo para el fortalecimiento de las políticas que gobiernan el uso de recursos. Tales políticas se pueden establecer de varias maneras, algunas en el diseño 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 políticas son diversas, dependen de la aplicación y pueden estar sujetas a cambios a lo largo del tiempo.

Un principio importante es la separación de políticas de los mecanismos.
‘Los mecanismos determinan cómo algo se hará. Las políticas deciden que se hará’.

La separación es importante para la flexibilidad del sistema.

 Ir al principio

Vigilancia

La vigilancia se compone de la verificación  y la auditoria del sistema, y la identificación de usuarios. En la vigilancia se utilizan sistemas muy sofisticados, a tal punto, que a veces pueden surgir problemas en la autentificación generando un rechazo al usuario legítimo.

 Ir al principio

    Monitoreo de amenazas

Una manera de reducir los riesgos de seguridad es tener rutinas de control en el sistema operativo para permitir o no el acceso a un usuario. Estas rutinas interactúan con los programas de usuario y con los archivos del sistema. De esta manera, cuando un usuario desea realizar una operación con un archivo, las rutinas determinan si se niega o no el acceso y en caso de que el mismo fuera permitido devuelven los resultados del proceso.

Además las rutinas de control permiten detectar los intentos de penetración al sistema y advertir en consecuencia.

 Ir al principio

    Amplificación

Como ya dijimos, los programas de vigilancia interactúan con los programas de usuario y los archivos del sistema. A veces estos programas (los primeros) requieren de más derechos de acceso de los que posee el usuario para realizar una operación determinada. Esto se conoce como amplificación.

  Ir al principio

  Protección por contraseña

Existen tres clases principalmente de elementos que permiten establecer la identidad de un usuario:
        ·        Algo sobre las personas. Esto incluye huellas digitales, reconocimiento de voz, fotografía y firmas.
        ·        Algo poseído por la persona. Esto incluye distintivos, tarjetas de identificación y llaves.
        ·        Algo conocido por el usuario. Esto incluye contraseñas, nombre de la suegra, combinación de cerraduras.El esquema de autentificación más común es la simple protección por contraseña. El usuario elige una palabra que se le viene a la memoria, y la tipea de inmediato para ganar admisión al sistema de computación.
Muchos sistemas no muestran la contraseña tal como ha sido ingresada (mostrar asteriscos en lugar de letras).
La protección por contraseña es un esquema débil. En el sentido de que los usuarios tienden a elegir contraseñas fáciles de recordar. Entonces alguien que conoce al usuario podría intentar ingresar al sistema usando nombres de gente que la persona conoce. Esto puede resultar en una violación de la seguridad por los intentos repetitivos de ingreso.
Algunos sistemas usan contraseñas cortas lo que facilita la conformación rápida de la lista de todas las posibles combinaciones. Los sistemas actuales utilizan contraseñas largas para frenar tales intentos de penetración.

  Ir al principio

Auditoría

La auditoria normalmente es realizada en sistemas manuales “después del hecho”. Los auditores son llamados periódicamente para examinar las transacciones recientes de una organización y  para determinar si ha ocurrido actividad fraudulenta. 
El registro de auditoria es un registro permanente de acontecimientos de importancia que ocurren en el sistema de computación. Se produce automáticamente cada vez que ocurren los eventos y es almacenado en un área protegida del sistema. 
Las auditorias periódicas prestan atención regularmente a problemas de seguridad; las auditorias al azar ayudan a detectar intrusos.

 

  Ir al principio

Controles de acceso

Los derechos de acceso definen qué acceso tienen los sujetos sobre los objetos. Los objetos son entidades que contienen información, pueden ser físicos o abstractos. Los sujetos acceden a los objetos, y pueden ser usuarios, procesos, programas u otras entidades. 
Los derechos de accesos más comunes son: acceso de lectura, acceso de escritura y acceso de ejecución. Estos derechos pueden implementarse usando una matriz de control de acceso.

 Matriz de acceso

 El modelo de protección del sistema se puede ver en forma abstracta como una matriz, la matriz de acceso.
Las filas de la matriz representan dominios (o sujetos) y las columnas representan objetos. Las entradas de la matriz consisten en una serie de derechos de acceso. Por ejemplo, la entrada access(i,j) define el conjunto de operaciones que un proceso, ejecutándose en el dominio Di, puede invocar sobre un objeto Oj.

                                    Objeto
Dominio

F1

F2

F3

Lector  de tarjeta

Impresora

D1

Read

 

Read

 

 

D2

 

 

 

Read

Print

D3

 

Read

Execute

 

 

D4

Read Write

 

Read write

 

 

 Ir al principio

Políticas

El esquema de matriz de acceso provee el mecanismo para especificar una variedad de políticas. Se debe asegurar que un proceso que se ejecuta en el dominio Di puede acceder sólo a aquellos objetos especificados en la fila i.
Las decisiones de política concernientes a la protección pueden implementarse por la matriz de acceso. Las decisiones políticas definen qué derechos deben estar incluidos en las  entradas (i,j). A veces decide el dominio de cada proceso ejecutable. Esta última política es generalmente decidida por el sistema operativo.
Los usuarios normalmente deciden el contenido de las entradas de la matriz de acceso. Cuando un usuario crea un nuevo objeto Oj, la columna Oj es agregada a la matriz de acceso con las entradas de inicialización apropiadas.

   Ir al principio

Criptografía 

  La criptografía es usada para la transformación de datos para hacerlos incomprensibles para todos, excepto para el usuario destinatario. El problema de la privacidad tiene relación con la prevención de la no autorización para la extracción de información desde un canal de comunicación. Los problemas de autentificación están relacionados con la prevención contra intrusos que intentan modificar una transmisión o insertar falsos datos dentro de una transmisión. Los problemas de disputa están relacionados con la providencia de reserva de un mensaje con prueba legal de la identidad enviada.

    Sistema de privacidad criptográfico

     En un sistema de privacidad criptográfico, el remitente desea transmitir cierto mensaje no cifrado a un receptor legítimo, la transmisión ocurre sobre un canal inseguro asume ser monitoreado o grabado en cinta por un intruso.
El remitente pasa el texto a una unidad de encriptación que transforma el texto a un texto cifrado o criptograma; el mismo no es entendible por el intruso. El mensaje es transmitido entonces, sobre un canal seguro. Al finalizar la recepción el texto cifrado pasa a una unidad de descripción que regenera el texto.
 

    Criptoanálisis

    Criptoanálisis es el proceso de intentar regenerar el mensaje desde el texto cifrado pero sin conocimiento de las claves de encriptación. Esta es la tarea normal de los intrusos. Si el intruso o criptoanalista no puede determinar un mensaje desde  el texto cifrado (sin la clave), entonces el sistema de criptografiado es seguro.

    Ir al principio

Metodos y técnicas de encriptación

Cesar

 Está técnica consistía simplemente en sustituir una letra por la situada tres lugares más allá en el alfabeto esto es la A se transformaba en D, la B en E y así sucesivamente hasta que la Z se convertía en C.

Gronsfeld

 Este método utiliza más de un alfabeto cifrado para poner en clave el mensaje y que se cambia de uno a otro según se pasa de una letra del texto en claro a otra.
Es decir que deben tenerse un conjunto de alfabetos cifrados y una forma de hacer corresponder cada letra del texto original con uno de ellos.

RSA

 En los sistemas tradicionales de cifrado debe comunicarse una clave entre el emisor y el receptor del mensaje, el problema aquí es encontrar un canal seguro para transmitir dicha clave. Este problema viene a resolverse en los sistemas de clave pública la clave de cifrado, pues un tiempo enormemente de ordenador es necesario para encontrar una transformación de descifrado a partir de la de cifrado.

DES

DES fue desarrollado por IBM a mediados de los setenta. Aunque tiene un buen diseño, su tamaño de clave de 56 bits es demasiado pequeño para los patrones de hoy.
DES (Data Encryption Standard) es un mecanismo de encriptación de datos de uso generalizado. Hay muchas implementaciones de hardware y software de DES. Este transforma la información de texto llano en datos encriptados llamados texto cifrado mediante el uso de un algoritmo especial y valor semilla llamado clave. Si el receptor conoce la clave, podrá utilizarla para convertir el texto cifrado en los datos originales. Es un mecanismo de encriptado simétrico.

Chaffing & Winnowing

Esta técnica propuesta por Donald Rivest. Es más un intento de esquivar las restricciones a la criptografía en EE.UU. (y otros países) que una propuesta razonable debido al tamaño de los mensajes resultantes.
El término inglés “winnowing” se tomará como aventar es decir separar el grano de la paja y el término “chaffing” por el castellano empajar (cubrir o rellenar con paja). La idea básica consiste en mezclar la información real (grano) con otra de relleno (paja) de modo que sea imposible separarlas excepto para el destinatario.

SKIPJACK

 Este algoritmo fue descalificado por el gobierno de Estados Unidos. Algunos detalles sobre el algoritmo en sí y sus aplicaciones en la práctica a los chips Clipper y Capstone.
Skipjack fue desarrollado por la NSA inicialmente para los chips Clipper y Capstone. Su diseño comenzó en 1985 y se completó su evaluación en 1990.

 BÍFIDO

 El método Bífido es un cifrado fraccionario. Es decir que cada letra viene representada por una o más letras o símbolos, y donde se trabaja con estos símbolos más que con las letras mismas.

 WLBYKYAAOTB

 Este método altera la frecuencia de los caracteres a diferencia de lo que ocurre por ejemplo con los cifrados monoalfabéticos. Admite algunas variaciones como por ejemplo dividir la lista en 3,4,..., n partes.

 Cifrado exponencial

 Es un sistema basado en la exponenciación modular, debido  Pohlig y Hellman (1978). Este método es resistente al criptoanálisis.

 Blowfish

 Este algoritmo realiza un cifrado simple en 16 ciclos, con un tamaño de bloque de 64 bytes para un total de 448 bits. Aunque hay una fase compleja de la inicialización. El cifrado de datos es muy eficiente en los microprocesadores grandes.

En la dirección www.cyberia.com puede encontrar más información sobre técnicas y métodos de encriptación.

    Ir al principio

  Sistemas de clave pública

Un sistema criptográfico de clave pública es tan seguro como su clave. La distribución de las claves debe ser manejada sobre canales altamente seguros. Esto suele consumir mucho tiempo. A veces, tales canales de seguridad no están disponibles.
Los sistemas de clave pública no tienen tal problema en la distribución de la clave. En el sistema criptográfico convencional el cifrado y descifrado están íntimamente relacionados. Estos sistemas usan una clave encriptada, E, y una clave descifrado, D, de manera que no es computacionalmente viable (dentro de un tiempo razonable) determinar E a partir de D.
De esta forma, E puede ser hecha pública sin comprometer la seguridad de D. Esto simplifica el problema de la distribución de la clave. Cada usuario genera una clave de cifrado y una de descifrado, la clave de cifrado está hecha pública y la clave cifrada se mantiene secreta. Así cualquiera puede enviar un mensaje encriptado a un usuario particular (porque la clave de cifrado es pública), pero solo aquellos usuarios pueden descifrar el mensaje (porque la clave de descifrado es privada). E es llamada una clave pública y D es llamada una clave privada.

    Ir al principio

   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 cripto-sistemas de clave pública el procedimiento es:
   
        ·        El remitente usa la clave privada para crear un mensaje firmado.
           ·        El receptor:
   
                 o       Usa la clave pública del remitente para descifrar el mensaje
                    o       Guarda el mensaje firmado para usarlo en caso de disputas

    Ir al principio

Medidas básicas de seguridad

En general se puede afirmar que si la llave privada solo es conocida y accesible por el sujeto A, sería prácticamente imposible, para otro sujeto B, falsificar una firma digital del sujeto A, o abrir un sobre digital dirigido al sujeto A, utilizando métodos matemáticos. El atacante de un  sistema va a centrar su esfuerzo en encontrar debilidades en la implementación del software o hardware de seguridad. A continuación se mencionan los dos puntos de ataque más comunes:
·        Generación de números aleatorios
La generación de las llaves utiliza métodos pseudoaleatorios por lo que es muy importante que un sujeto B no puede replicar el procedimiento que siguió un sujeto A cuando este generó sus llaves. 

·       
Ataque a la Llave Privada
La llave privada, que normalmente reside en un archivo debe mantenerse encriptada con un algoritmo simétrico, utilizando como llave una contraseña. La contraseña debe ser elegida por el usuario en forma tal que resulte impredecible para quien intente adivinarlo por asociación de ideas. La encriptación por contraseña es normalmente presa de ataques denominados de diccionario que buscan exhaustivamente entre un conjunto de palabras formadas por letras del abecedario. Otro ataque más sutil se concentra en intentar por prueba y error las posibles contraseñas que un sujeto utiliza en base a acciones de ideas, por ejemplo, su apodo, el nombre de su esposa, su apodo y fecha de nacimiento, etc.
La llave privada solo se debe de encontrar desencriptada cuando está en la memoria de la computadora y mientras el programa de seguridad esté funcionando. Si el sujeto se encuentra en un entorno de cómputo en donde sea posible que un atacante realice un vaciado a disco del estado de la memoria del programa de seguridad, entonces la llave privada está en peligro. Si se está en un entorno de cómputo en donde sea posible que un atacante intercepte el teclado entonces, su llave privada está en peligro. Si se está en un entorno de cómputo en donde sea posible sustituir el programa de seguridad por uno falso que capture su contraseña y su llave privada encriptada entonces, su llave privada está en peligro.
Las formas más seguras de evitar el robo de llaves privadas es de firmar y abrir sobres en una computadora aislada física y virtualmente del mundo exterior. A dicha computadora deben de entrar mensajes a firmar y deben de salir mensajes firmados, nunca debe de salir ni exponer la llave privada. Este es el caso de por ejemplo, los Agentes Certificadores, Autoridades Certificadoras y en general aplicaciones altamente sensitivas.

     Ir al principio

Bibliografía y páginas de consulta

www.cyberia.com  

www.kriptopolis.com

www.selseg.com

www.openbsd.org

Operating System concepts - Peterson, J/L/ & Silberschatz, A. - Capítulo 11

An Introduction to Operating Systems - Deitel, H. M. - Capítulo 17

     Ir al principio

                      

   Anterior          Indice          Siguiente

Para mayor información, seleccione una opción:

Número de visitas efectuadas desde el 17/12/2001: 
 
Estadísticas diarias desde el 10/07/2002:    

Número de visitantes actuales disponible desde el 14/07/2002:

 

AddFreeStats.com Free Web Stats in real-time !  

 

 

 

Autor: lrmdavid@exa.unne.edu.ar

Ó FACENA - http://exa.unne.edu.ar

Servicios WEB: webmaster@exa.unne.edu.ar