Sunteți pe pagina 1din 30

Proteccion y Seguridad

Sistemas Operativos

Catedrtico: M.T.I FELIPE RODRIGUEZ RAMIREZ Elaborado por: Fabiola Aguilar Martnez 09360099 Julieta Osorio Mendrano 09360607 Alejandro Gamaliel Anzures Olaya Fernando Hernndez 10360538

Tehuacn, Pue;29 de mayo del 2013

Proteccin y Seguridad
Sistemas Operativos

Catedrtico: M.T.I FELIPE RODRIGUEZ RAMIREZ Elaborado por: Fabiola Aguilar Martnez 09360099 Julieta Osorio Mendrano 09360607 Alejandro Gamaliel Anzures Olaya Fernando Hernndez

Mecanismos de Proteccin La funcin de la proteccin en un sistema computacional es la de proveer un mecanismo para la aplicacin de polticas que gobiernen el uso de los recursos. Estas polticas pueden ser establecidas de varias maneras. Algunas son fijadas durante el diseo del sistema, mientras que otras son formuladas como parte de la administracin en la ejecucin del sistema. Algunas otras son definidas por usuarios individuales para proteger sus archivos y programas. Las polticas para el uso de recursos pueden variar, dependiendo de la aplicacin y pueden estar sujetas a cambios. Por estas razones, la proteccin no puede ser considerada como un problema que solamente concierne al diseador 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 aplicacin, puedan ser protegidos contra el mal uso. Como veremos ms adelante, una de las funciones del sistema operativo es la proteccin de unos usuarios contra otros: ni por malicia ni por descuido un usuario deber acceder a la informacin de otro. La proteccin hay que comprobarla en tiempo de ejecucin, por lo que se ha de basar en mecanismos hardware. En esta seccin se analizaran estos mecanismos para estudiar ms adelante cmo los aplica el sistema operativo. Se analizara en primer lugar los mecanismos de proteccin que ofrece el procesador para pasar seguidamente a los mecanismos de proteccin de memoria. Mecanismos de proteccin del procesador Los mecanismos de proteccin del procesador se basan en los niveles de ejecucin del mismo. En nivel de ejecucin de ncleo se pueden ejecutar todas las instrucciones de maquina y se pueden acceder a todos los registros y a la totalidad de los mapas de memoria y de E/S. Sin embargo, en modo usuario se ejecuta un subconjunto de las instrucciones y se limitan los registros y los mapas accesibles. Uno de los objetivos prioritarios de proteccin son los perifricos. En efecto, prohibiendo el acceso directo de los usuarios a los perifricos se impide que puedan acceder a la informacin almacenada por otros usuarios en esos perifricos. Por esta razn, toda la E/S es accesible solamente en nivel de ncleo, nivel que debe estar reservado al sistema operativo. Para evitar que un programa de usuario pueda poner el procesador en nivel de ncleo, no existe ninguna instruccin mquina que realice este cambio. Sin embargo, existe la instruccin mquina inversa, que cambia de nivel de ncleo a

nivel de usuario. Esta instruccin es utilizada por el sistema operativo antes de dejar que ejecute un programa de usuario. El mecanismo suministrado por el hardware para que el procesador pase a nivel de ncleo es la interrupcin. En efecto, toda interrupcin, ya sea interna o externa, tiene como efecto poner al procesador en nivel de ncleo. Siempre y cuando el sistema operativo se encargue de atender todas las interrupciones y de poner en nivel de usuario procesador antes de lanzar la ejecucin de los programas de usuario, se garantiza que solamente sea el sistema operativo el que ejecute en nivel de ncleo. Mecanismos de proteccin de memoria Los mecanismos de proteccin de memoria deben evitar que un programa en ejecucin direccione posiciones de memoria que no le hayan sido asignadas por el sistema operativo. Una solucin empleada en algunas mquinas que no tienen memoria virtual consiste en incluir una pareja de registros valla (lmite y base), como los mostrados en la Figura. En esta solucin se le asigna al programa una zona de memoria contigua. Todos los direccionamientos se calculan sumando el contenido del registro base, de forma que para el programa es como si estuviese cargado a partir de la posicin 0 de memoria. Adems, en cada acceso un circuito comparador comparara la direccin generada con el valor del registro lmite. En caso de desbordamiento, el comparador genera una excepcin de violacin de memoria, para que el sistema operativo trate el tema, lo en la prctica, supone que parar el programa produciendo un volcado de memoria. En los sistemas con memoria virtual existen dos mecanismos de proteccin de memoria. Por un lado, en nivel de usuario el procesador no permite acceder ms que a una parte del mapa de memoria. Una solucin es que en nivel de ncleo se pueda direccional todo el mapa de memoria virtual, mientras que en nivel de usuario solamente se pueda direccional una parte del mapa (por. ej.: las direcciones que empiezan por 0). La MMU generar una excepcin de violacin de memoria en caso de que en nivel de usuario se genere una direccin no permitida (por. ej.: que empiece por 1). Adems, una solucin bastante frecuente consiste en dotar al procesador de un registro RIED (registro de identificador de espacio de direccionamiento). De esta forma se consigue que cada programa ejecucin disponga de su propio espacio

virtual, por lo que no puede acceder a tos clon espacios de memoria de los otros procesos. El otro mecanismo se basa en la tabla de pginas. La tabla de pginas de cada programa en ejecucin se selecciona mediante el RIED y especifica los espacios de memoria asignados por el sistema operativo a ese programa. La MMU, al mismo tiempo que realiza la traduccin de cada direccin, comprueba que no se sobrepase el lmite de ninguna de las tablas involucradas. En caso de sobrepasarse, generara una excepcin de violacin de memoria, para que el sistema operativo realice la accin correctora oportuna. Funciones de un sistema de proteccin La proteccin, sin embargo, consiste en evitar que se haga un uso indebido de los recursos que estn dentro del mbito del sistema operativo. Para ello deben existir mecanismos y polticas que aseguren que los usuarios slo acceden a sus propios recursos (archivos, zonas de memoria, etc.). Adems, es necesario comprobar que los recursos slo se usan por aquellos usuarios que tienen derechos de acceso a los mismos. Las polticas de proteccin y seguridad de hardware, software y datos deben incluirse dentro del sistema operativo, pudiendo afectar a uno o varios componentes del mismo. En cualquier caso, el sistema operativo debe proporcionar medios para implementar la poltica de proteccin deseada por el usuario, as como medios de hacer cumplir dicha poltica. La seguridad de un sistema operativo se basa principalmente en tres aspectos de diseo: Evitar la prdida de datos. Controlar la confidencialidad de los datos. Controlar el acceso a los datos y recursos.

La prdida de datos puede deberse a catstrofes naturales o artificiales que afecten al sistema (terremotos, guerras, etc.), a errores del hardware o del software de la computadora (rotura de un disco, por ejemplo) o a errores humanos (p. ej.: borrado accidental de archivos). La proteccin frente a fallos fsicos, para conseguir que el sistema sea fiable, est ms relacionada con la gestin de datos que con el sistema operativo. Una solucin frecuente para estos problemas es hacer que los administradores del sistema mantengan varias copias de los datos almacenadas en distintos lugares. En el mbito interno del sistema operativo hay operaciones que pueden violar la confidencialidad de los datos. Una simple asignacin 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 poltica definida para este tipo de situaciones. En estos casos, siempre hay que limpiar los recursos de los datos anteriormente existentes. Sin embargo, controlar la confidencialidad de los datos es un problema de seguridad que sobrepasa el mbito de los sistemas operativos, aunque una parte del problema puede resolverse en su mbito interno. De nada sirve controlar muy bien el acceso a la base de datos de nminas, si un operador de una compaa distribuye listas de personal con sus nminas y datos personales. Otro ejemplo es la realizacin de transacciones comerciales a travs de Internet, en muchas de las cuales se envan nmeros de tarjeta de crdito sin proteccin. La solucin de este tipo de problemas requiere actuaciones externas al sistema operativo, que pueden ser incluso policiales. El control del acceso a datos y recursos s es competencia directa del sistema operativo. Es necesario asegurar que los usuarios no acceden a archivos para los que no tienen permisos de acceso, a cuentas de otros usuarios o a pginas de memoria o bloques de disco que contienen informacin de otros usuarios (aunque ya estn en desuso). Para conseguirlo hay que aplicar criterios de diseo rigurosos y ejecutar pruebas de seguridad exhaustivas para todos los elementos del sistema, aunque se consideren seguros. El control de acceso incluye dos problemas que estudiaremos ms adelante: autenticacin de usuarios y proteccin frente a accesos indebidos. Evitar: Problemas de seguridad Todos los sistemas operativos comerciales desarrollados hasta el momento han tenido algn problema de seguridad.

Uso indebido o malicioso de programas Dos formas frecuentes de generar fallos de seguridad usando estas tcnicas son el caballo de Troya y la puerta de atrs. Los problemas de seguridad generados por programas maliciosos son generalmente difciles de detectar y corregir. Convencer a un programador de sistema para que le deje acceder con privilegios anormales. Permitir que el diseador de un programa se reserve el acceso por medios no conocidos, tales como una identificacin reservada. Meter parches en un compilador para que aada cdigo no autorizado a cualquier programa.

Usuarios inexpertos o descuidados

Los usuarios inexpertos o descuidados son potencialmente muy peligrosos. Cosas tales como borrar archivos no deseados, dejar abiertos los accesos al sistema durante largo tiempo o escribir la palabra clave en un papel junto a la computadora son ms frecuentes de lo que parece. Los problemas de seguridad debidos a usuarios descuidados deben tener atencin especial por parte del administrador del sistema, que puede conseguir paliar muchos de ellos. Por ejemplo, ciertos mandatos, como delete o rm (borrar archivos), se pueden configurar para pedir confirmacin de cada accin que realizan, el acceso a un sistema se puede cerrar si se detecta que lleva un cierto tiempo inactivo, etc.

Usuarios no autorizados Los sistemas operativos, como UNIX o Windows NT, mantienen cuentas para los usuarios autorizados. El acceso a dichas cuentas se protege mediante contraseas, o palabras clave, que slo debe conocer el dueo de las mismas. Uno de estos usuarios, denominado administrador o sperusuario puede acceder a todo el sistema saltndose las protecciones del resto de los usuarios. La posibilidad de cargar programas externos en un sistema o de que existan usuarios no autorizados se incrementa mucho en sistemas con arquitectura abierta conectados en redes. La existencia de sistemas con arquitectura abierta origina muchas situaciones azarosas en el entorno de seguridad, por ello los administradores siempre prefieren tener sistemas sin interferencias externas, de forma que se pueda evitar que programas externos entren en dominios de otros usuarios. Sin embargo, actualmente es muy difcil tener sistemas completamente aislados. La existencia de sistemas abiertos da lugar a cuatro tipos principales de ataques de seguridad: virus, gusanos, rompedores de claves y bombardeos. Todos ellos estn relacionados con la capacidad de propagacin de unos sistemas a otros, lo que permite atacar desde sistemas remotos o enviar programas de ataque a otros sistemas.

Virus Se denomina con este nombre a todos los programas que se auto-replican con fines destructivos o de violacin de seguridad. Se llaman as por analoga con los virus que actan sobre los seres vivos. Como ellos, necesitan de un programa que transporte el virus y de un

agente que los transmita para infectar a otros programas. En todos los casos se trata de un programa o un trozo de cdigo que se aade a otro y que se activa cuando se ejecuta el programa portador. Cuando esto ocurre, adems de ejecutarse el portador, se ejecuta el virus. El fabricante de un virus genera un programa y lo almacena en un disquete. Cuando se copia dicho archivo en una computadora y se ejecuta, el virus se instala en el disco duro del sistema. A partir de este momento, infecta a todos los discos extrables que se instalen en el sistema. En un determinado momento, el virus se activa y destruye los datos del sistema.

Gusanos El 2 de noviembre de 1988, R. T. Morris, un estudiante de Cornell, liber un programa gusano en Internet. Anteriormente haba descubierto dos fallos de seguridad en el UNIX de Berkeley que le permitan acceder a miles de mquinas conectadas a Internet, especialmente aquellas que permitan accesos por ftp a usuarios annimos. Aprovechando esta circunstancia, fabric un gusano que explotaba los fallos de seguridad para acceder a sistemas remotos y, adems, se replicaba a s mismo para acceder a ms sistemas. El gusano estaba compuesto por dos programas: un pequeo programa de 99 lneas en C y el gusano principal. El programa pequeo era un cargador que, una vez compilado y ejecutado en el sistema destino, cargaba el gusano principal. El gusano lea las tablas de encaminamiento del sistema infectado y enviaba el cargador a todos los sistemas remotos que poda, usando para ello tres mecanismos de penetracin: o Intrprete de mandatos remoto (rsh). o Demonio del finger. o Sendmail. El principal problema de los gusanos no es que sean destructivos, que la mayora no lo son, sino que colapsan las redes de comunicaciones.

Rompedores de sistemas de proteccin Estos programas llevan a cabo distintas pruebas sobre sistemas, generalmente remotos, para tratar de romper la seguridad de los mismos y poder ejecutar accesos ilegales. Para ello prueban con los mecanismos que dieron fallos de seguridad anteriormente en virus y gusanos: archivos con se-tuid, intrpretes de mandatos remotos, ftp annimo, finger, etc. Una de las pruebas que ejecutan tpicamente consiste en tratar de adivinar las palabras clave que tienen los usuarios para acceder al sistema. Esta prueba, que se basa en distintos tipos de programas de cifrado y un diccionario de palabras clave, compara las del diccionario con las de los

usuarios del sistema. Es sorprendente comprobar que las palabras clave que se usan para acceder al sistema son en muchos casos palabras de uso comn, nombres propios o incluso la misma identificacin del usuario. Por ello, la mayora de los sistemas operativos exigen actualmente el uso de palabras clave con una longitud mnima, con caracteres especiales, etc. Bombardeo Un ataque de seguridad con mucho xito en Internet es el que consiste en llevar a cabo bombardeos masivos con peticiones de servicio o de establecimiento de conexin a un servidor determinado. Estos ataques masivos provocan que el servidor deniegue sus servicios a los clientes legales y pueden llegar a bloquear al servidor. Este problema caus a principios del ao 2000 el bloqueo de servidores de Internet famosos como yahoo o altavista. Para lograr que estos ataques tengan xito, los atacantes se enmascaran con las direcciones e identidades de otros usuarios (spoofing) y llevan a cabo los ataques desde mltiples clientes. Ataques similares pueden ocurrir en cualquier computadora, ya que todas ellas tienen recursos limitados. La tabla de procesos, por ejemplo, es crtica, ya que si se llena, la computadora no puede crear ni siquiera el proceso de apagar el sistema. Un usuario descuidado, o malicioso, que cree procesos de forma recursiva y sin lmite colapsar el sistema continuamente. Para evitarlo, los administradores deben poner lmites, siempre que sea posible, a los recursos que cada usuario puede tener simultneamente (nmero de procesos, impresoras, etc.).

6.3 Clasificacin de los mecanismos de proteccin. Dominios de proteccin Un sistema computacional contiene muchos objetos que necesitan proteccin. Estos objetos pueden ser de hardware (por ejemplo, CPUs, segmentos de memoria, unidades de disco o impresoras) o de software (por ejemplo, procesos, archivos, bases de datos o semforos). Cada objeto tiene un nombre nico que se utiliza como referencia, y hay un conjunto finito de operaciones que los procesos pueden llevar a cabo con los objetos Es obvio que se necesita una manera de prohibir que los procesos utilicen objetos sin autorizacin. Adems, mediante este mecanismo se debe poder restringir a los

procesos para que slo puedan utilizar un conjunto de las operaciones legales cuando sea necesario En cada instante cada proceso se ejecuta en cierto dominio de proteccin. En otras palabras, hay cierta coleccin de objetos a los que puede acceder, y para cada objeto tiene cierto conjunto de permisos. Los procesos tambin pueden cambiar de un dominio a otro durante la ejecucin. Las reglas para cambiar de domino son muy dependientes del sistema. Para que la idea sobre un dominio de proteccin sea ms concreta, vamos a analizar a UNIX En UNIX, el dominio de un proceso se define mediante su UID y su GID. Cuando un usuario inicia sesin, su shell recibe en el archivo de contraseas el UID y el GID contenidos en su entrada, y todos sus hijos los heredan. Dada cualquier combinacin (UID, GID), es posible crear una lista completa de todos los objetos (archivos, incluyendo los dispositivos de E/S representados por archivos especiales, etc.) a los que se puede acceder, y si se pueden utilizar para leer, escribir o ejecutar. Dos procesos con la misma combinacin (UID, GID) tendrn acceso al mismo conjunto exacto de objetos. Los procesos con distintos valores (UID, GID) tendrn acceso a un conjunto distinto de archivos, aunque se pueden traslapar en forma considerable. Adems, cada proceso en UNIX tiene dos mitades: la parte del usuario y la parte del kernel. Cuando el proceso realiza una llamada al sistema, cambia de la parte del usuario a la parte del kernel. Esta parte tiene acceso a un conjunto distinto de objetos que el de la parte del usuario Por ejemplo, el kernel puede acceder a todas las pginas en la memoria fsica, todo el disco y todos los dems recursos protegidos. Por ende, una llamada al sistema produce un cambio de dominio. Cuando un proceso realiza una operacin exec en un archivo con el bit SETUID o SETGID encendido, adquiere un nuevo UID o GID efectivo. Con una combinacin distinta de (UID, GID), tiene a su disposicin un conjunto distinto de archivos y operaciones. La ejecucin de un programa con SETUID o SETGID tambin produce un cambio de dominio, ya que cambian los permisos disponibles.

Una cuestin importante es la forma en que el sistema lleva el registro de los dominios y qu objetos pertenecen a cada uno de ellos. En concepto, podemos por lo menos imaginar una gran matriz donde las filas son los dominios y las columnas los objetos. Cada cuadro lista los permisos (si los hay) que contiene el

dominio para el objeto. En la figura se muestra la matriz para la figura anterior. Dada esta matriz y el nmero de dominio actual, el sistema puede saber si se permite el acceso a un objeto dado de una manera especfica, y desde cierto dominio. Listas de control de acceso La mayora de los dominios no tienen acceso a la mayora de los objetos, por lo que se desperdicia mucho espacio en disco al almacenar una matriz muy grande y en su mayor parte vaca. Sin embargo, hay dos mtodos prcticos: almacenar la matriz por filas o columnas, y despus almacenar slo los elementos no vacos. Los dos mtodos son en extremo diferentes Analizaremos el mtodo de almacenar la matriz por columna Consiste en asociar con cada objeto una lista (ordenada) que contenga todos los dominios que pueden acceder al objeto, y la forma de hacerlo. A esta lista se le conoce como Lista de control de acceso (Access Control List, o ACL) y se ilustra en la figura 9-7. Aqu podemos ver tres procesos, cada uno de los cuales pertenece a un dominio distinto: A, B y C, y tres archivos F1, F2 y F3. Por simplicidad vamos a suponer que cada dominio corresponde a slo un usuario; en este caso, los usuarios A, B y C. En la literatura sobre seguridad, a los usuarios se les denomina con frecuencia sujetos o protagonistas, para contrastarlos con las cosas que tienen dueo: los objetos, como los archivos. Cada archivo tiene una ACL asociada. El archivo F1 tiene dos entradas en su ACL (separadas por un punto y coma). La primera entrada indica que cualquier proceso que sea propiedad del usuario A puede leer y escribir en el archivo. La segunda entrada indica que cualquier proceso que sea propiedad del usuario B puede leer el archivo. Todos los dems accesos para estos usuarios y los accesos para otros usuarios estn prohibidos. Observe que los permisos se otorgan por usuario y no por proceso. En cuanto a lo que el sistema de proteccin concierne, cualquier proceso que sea propiedad del usuario A puede leer y escribir en el archivo F1. No importa si hay un proceso o 100; lo que importa es el propietario y no la ID del proceso. El archivo F2 tiene tres entradas en su ACL: A, B y C pueden leer el archivo, y adems B puede escribir en l. No se permiten otros accesos. Parece ser que el archivo F3 es un programa ejecutable, ya que B y C pueden leerlo y ejecutarlo. B tambin puede escribir en l. Este ejemplo ilustra la forma ms bsica de proteccin con las ACLs. A menudo se utilizan sistemas ms sofisticados en la prctica. Muchos sistemas integran el concepto de un grupo de usuarios. Los grupos tienen nombres y se pueden incluir en las ACLs. Hay dos variaciones posibles en la

semntica de los grupos. En ciertos sistemas, cada proceso tiene un ID de usuario (UID) y un ID de grupo (GID). En dichos sistemas, una entrada en la ACL contiene entradas de la forma

UID1, GID1: permisos1; UID2, GID2: permisos2; Bajo estas condiciones, cuando se hace una peticin para acceder a un objeto, se realiza una comprobacin mediante el uso del UID y el GUID del proceso que hizo la llamada. Si estn presentes en la ACL, estn disponibles los permisos listados. Si la combinacin (UID, GID) no est en la lista, no se permite el acceso. Al utilizar los grupos de esta forma se introduce en efecto el concepto de un rol. Considere una instalacin de computadoras en la que Tana es administradora del sistema, y por ende est en el grupo sysadm. Sin embargo, suponga que la empresa tambin tiene clubs para empleados y que Tana es miembro del club de colombfilos. Los miembros del club pertenecen al grupo fanpichones y tienen acceso a las computadoras de la empresa para administrar su base de datos de pichones. En la figura 9-8 se muestra una porcin de lo que podra ser la ACL. Si Tana trata de acceder a uno de estos archivos, el resultado depende del grupo al que se encuentre conectada en ese momento. Cuando inicie sesin, el sistema le puede pedir que seleccione cul de sus grupos est utilizando, o podra inclusive tener distintos nombres de inicio de sesin y/o contraseas para mantenerlos separados. El objetivo de este esquema es evitar que Tana acceda al archivo de contraseas cuando est utilizando el grupo de fanticos de pichones. Slo puede hacer eso cuando est conectada como administradora del sistema. En algunos casos, un usuario puede tener acceso a ciertos archivos sin importar qu grupo est utilizando en ese momento. Para manejar este caso vamos a introducir el concepto de comodn, que representa a todos los usuarios. Por ejemplo, la entrada tana, *: RW para el archivo de contraseas proporciona acceso a Tana sin importar en qu grupo se encuentre. Capacidades Al utilizar este mtodo, a cada proceso se le asocia una lista de objetos que puede utilizar, junto con una indicacin de las operaciones permitidas en cada objeto; en otras palabras, su dominio. A esta lista se le conoce como lista de capacidades (o lista-C) y a los elementos individuales que contiene se les conoce como capacidades

En la figura 9-9 se muestra un conjunto de tres procesos y sus listas de capacidades. Cada capacidad otorga al propietario ciertos derechos sobre un objeto. Por ejemplo, en la figura 9-9, el proceso que pertenece al usuario A puede leer los archivos F1 y F2. Por lo general, una capacidad consiste en un identificador de archivo (o un objeto, en sentido ms general) y un mapa de bits para los diversos permisos. Debemos proteger las listas de capacidades contra los usuarios que quieran alterarlas. Hay tres mtodos para protegerlas: El primero requiere una arquitectura etiquetada, un diseo de hardware en el que cada palabra de memoria tiene un bit adicional (o etiqueta) que indica si esa palabra contiene o no una capacidad. El bit de etiqueta no se utiliza en las instrucciones aritmticas, de comparacin o instrucciones ordinarias similares, y slo los programas que se ejecutan en modo de kernel (es decir, el sistema operativo) pueden modificarlo. Se han construido mquinas con arquitectura etiquetada y pueden funcionar bien (Feustal, 1972). La IBM AS/400 es un ejemplo popular. 2. El segundo mtodo es mantener la lista-C dentro del sistema operativo. As, se hace referencia a las capacidades con base en su posicin en la lista. Un proceso podra decir: Leer 1 KB del archivo al que apunta la capacidad 2. Esta forma de direccionamiento es similar al uso de los descriptores de archivos en UNIX. Hydra 3. El tercer mtodo es mantener la lista-C en espacio de usuario, pero administrar las capacidades de manera criptogrfica, de tal forma que los usuarios no puedan alterarlas. Este mtodo se adapta en especial a los sistemas distribuidos y funciona de la siguiente manera. Cuando un proceso cliente enva un mensaje a un servidor remoto para crear un objeto, el servidor crea el objeto y genera un nmero aleatorio extenso que le corresponda. Se reserva una posicin en la tabla de archivos del servidor para el objeto, y el campo de comprobacin se almacena en el servidor, en el nodo-i. No se enva de vuelta al usuario y nunca se pone en la red. Despus, el servidor genera y devuelve una capacidad al usuario, de la forma como se muestra en la figura 9-10. Los derechos especficos dependientes del objeto, como lectura y ejecucin, las capacidades (que se protegen mediante el kernel y criptografa) por lo general tienen permisos genricos que se pueden aplicar a todos los objetos. Algunos ejemplos de permisos genricos son: 1. Capacidad de copia: crea una nueva capacidad para el mismo objeto.

2. Copiar objeto: crea un objeto duplicado con una nueva capacidad. 3. Eliminar capacidad: elimina una entrada de la lista-C; el objeto no se ve afectado. 4. Destruir objeto: elimina un objeto y una capacidad de manera permanente. Sistemas confiables En las noticias podemos leer todo el tiempo sobre virus, gusanos y otros problemas. Una persona ingenua podra hacer por lgica dos preguntas con respecto a estas cosas:

1. Es posible construir un sistema computacional seguro? 2. De ser as, por qu no se ha hecho?

La respuesta a la primera pregunta es bsicamente s. Desde hace dcadas se conoce la forma de construir un sistema seguro. Por ejemplo, el sistema MULTICS que se dise en la dcada de 1960 tena la seguridad como uno de sus objetivos principales, y lo logr bastante bien.

La segunda cuestin es ms sutil. La nica forma conocida de construir un sistema seguro es mantenerlo simple. Las caractersticas son enemigas de la seguridad. Los diseadores de sistemas creen (pueden estar equivocados o no) que los usuarios quieren ms caractersticas. Esto significa ms complejidad, ms cdigo, ms errores y ms errores de seguridad. POR EJEMPLO: Cuando el servicio Web consista en pginas de HTML pasivas, no impona un problema grave de seguridad. Ahora que muchas pginas Web contienen programas (applets) que el usuario tiene que ejecutar para ver el contenido, aparece una fuga de seguridad tras otra. Tan pronto como se corrige una, otra toma su lugar. Cuando el servicio Web era completamente esttico, los usuarios demandaban contenido dinmico? No segn lo que el autor recuerda, pero la introduccin del contenido dinmico trajo consigo mltiples de problemas de seguridad. Parece como si el vicepresidente a cargo de decir No estuviera dormido en su silln

Para construir un sistema seguro, hay que tener un modelo de seguridad en el ncleo del sistema operativo que sea lo bastante simple como para que los diseadores puedan comprenderlo de verdad, y que resistan toda la presin de desviarse de este modelo para agregar nuevas caractersticas. Base de cmputo confiable En el mundo de la seguridad, todos hablan con frecuencia sobre los sistemas confiables en vez de sistemas seguros. stos son sistemas que han declarado formalmente requerimientos de seguridad y cumplen con ellos. En el centro de todo sistema confiable hay una TCB (Trusted Computing Base, Base de cmputo confiable) mnima que consiste en el hardware y software necesarios para cumplir con todas las reglas de seguridad. Si la base de cmputo confiable funciona segn las especificaciones, no se puede comprometer la seguridad el sistema, sin importar qu otra cosa est mal. Por lo general, la TCB consiste en la mayora del hardware (excepto los dispositivos de E/S que no afectan a la seguridad), una porcin del kernel del sistema operativo, y la mayora o todos los programas de usuario que tienen poder de superusuario (por ejemplo, los programas raz SETUID en UNIX). Las funciones del sistema operativo que deben formar parte de la TCB son: creacin de procesos, cambio de procesos, administracin del mapa de memoria y parte de la administracin de archivos y de la E/S. En un diseo seguro es frecuente que la TCB est muy separada del resto del sistema operativo para poder minimizar su tamao y verificar que sea correcto.

El monitor de referencia es una parte importante de la TCB, como se muestra en la figura 9-11. El monitor de referencia acepta todas las llamadas al sistema relacionadas con la seguridad (como abrir archivos), y decide si se deben procesar o no. Por ende, el monitor de referencia permite que todas las decisiones de seguridad se coloquen en un solo lugar, sin posibilidad de pasarlo por alto. La mayora de los sistemas operativos estn diseados de esta forma, lo cual es una de las razones por las que son tan inseguros. Modelos formales de los sistemas seguros Hace unas dcadas, Harrison y sus colaboradores (1976) identificaron seis operaciones primitivas en la matriz de proteccin, que se pueden utilizar como base para modelar cualquier sistema de proteccin. Estas operaciones primitivas son create object, delete object, create domain, delete domain, insert right y remove right. Las ltimas dos primitivas insertan y eliminan permisos de elementos

especficos de la matriz, como al otorgar al dominio 1 permiso para leer el Archivo6. Estas seis primitivas se pueden combinar en comandos de proteccin. Los programas de usuario pueden ejecutar estos comandos de proteccin para cambiar la matriz. No pueden ejecutar las primitivas en forma directa En cualquier instante, la matriz determina qu es lo que puede hacer un proceso en un dominio, no lo que est autorizado para hacer. La matriz es lo que el sistema hace cumplir; la autorizacin est relacionada con la directiva de administracin. Como ejemplo de esta distincin, consideremos el sistema simple de la figura 9-12, en el cual los dominios corresponden a los usuarios. En la figura9-12(a) podemos ver la directiva de proteccin deseada: Henry puede leer y escribir en bandejacorreo7,Robert puede leer y escribir en secreto y los tres usuarios pueden leer y ejecutar compilador. Seguridad multinivel La mayora de los sistemas operativos permiten a los usuarios individuales determinar quin puedeleer y escribir en sus archivos y dems objetos. A esta directiva se le conoce como control de acceso discrecional. El modelo Bell-La Padula Este modelo se dise para manejar la seguridad militar, pero tambin se puede aplicar a otras organizaciones. En el mundo militar, los documentos (objetos) pueden tener un nivel de seguridad, como no clasificado, confidencial, secreto y de alta confidencialidad. A las personas tambin se les asignan estos niveles, dependiendo de los documentos que puedan ver.} Como hay varios niveles de seguridad, a este esquema se le conoce como sistema de seguridad multinivel. El modelo Bell-La Padula tiene reglas sobre la forma en que debe fluir la informacin: La propiedad de seguridad simple Un proceso que se ejecuta en el nivel de seguridad k slo puede leer objetos que estn en su nivel o en uno menor 2. La propiedad * Un proceso que se ejecuta en el nivel de seguridad k slo puede escribir objetos en su nivel o en uno mayor. En sntesis, los procesos pueden leer en niveles menores y escribir en niveles mayores, pero no al revs. Si el sistema implementa con rigor estas dos propiedades, se puede demostrar que no puede haber fuga de informacin de un

nivel de seguridad ms alto a uno ms bajo. La propiedad * se denomin as debido a que en el informe original, los autores no podan idear un buen nombre para ella y utilizaron * como un receptculo temporal hasta que pudieran idear un nuevo nombre. Nunca lo hicieron, y el informe se imprimi con el *. En este modelo, los procesos leen y escriben objetos, pero no se comunican entre s de una manera directa. El modelo Bell-La Padula se ilustra en modo grfico en la figura 9-13. El modelo Biba Para sintetizar el modelo Bell-La Padula en trminos militares, un teniente puede pedir a un soldado raso que revele todo lo que sabe, para despus copiar esta informacin en el archivo de un general sin violar la seguridad. Ahora usemos el mismo modelo en trminos de civiles. Imagine una empresa en la que los conserjes tienen el nivel de seguridad 1, los programadores tienen el nivel de seguridad 3 y el presidente de la empresa tiene el nivel de seguridad 5. Mediante el uso del modelo Bell-La Padula, un programador puede consultar con un conserje sobre los futuros planes de la empresa y despus sobrescribir los archivos del presidente que contengan la estrategia corporativa. No todas las empresas se sentiran igual de entusiasmadas con este modelo. El problema con el modelo Bell-La Padula es que se ide para guardar secretos, no para garantizar la integridad de los datos. Para esto ltimo necesitamos precisamente las propiedades inversas:

1. El principio de integridad simple Un proceso que se ejecuta en el nivel de seguridad k slo puede escribir objetos en su nivel o en uno inferior (no hay escrituras hacia arriba). 2. La propiedad * de integridad Un proceso que se ejecute en el nivel de seguridad k puede leer slo los objetos en su nivel o en uno superior (no hay lecturas hacia abajo). Concepto de seguridad y sus estndares Seguridad, en pocas palabras, es asegurar la Confidencialidad, Integridad, y Disponibilidad de sus sistemas y redes. La seguridad se divide (groseramente) en seguridad fsica y seguridad lgica.

Un Sistema Operativo es un proyecto de programacin grande que requiere controles necesarios en su desarrollo. Existen estndares que describen un sistema fiable, como por ejemplo DoD-2167 A, el SSE-CMM ellSO 9000. . 6.5 IDENTIFICAR LAS AMENAZAS AL SISTEMA Y SU VULNERABILIDAD. Una Amenaza es la posibilidad de ocurrencia de cualquier tipo de evento o accin que puede producir un dao (material o inmaterial) sobre los elementos de un sistema, en el caso de la Seguridad Informtica, los Elementos de Informacin. Debido a que la Seguridad Informtica tiene como propsitos de garantizar la confidencialidad, integridad, disponibilidad y autenticidad de los datos e informaciones, las amenazas y los consecuentes daos que puede causar un evento exitoso, tambin hay que ver en relacin con la confidencialidad, integridad, disponibilidad y autenticidad de los datos e informaciones. Los tipos de amenazas a la seguridad de un sistema informtico los podemos caracterizar teniendo en cuenta como esta informacin es suministrada por el sistema. Tipos de amenazas: Amenazas pasivas: Revelacin del contenido del mensaje. Anlisis del trfico: En caso de que los mensajes vayan encriptados. Amenazas activas: Alteracin del flujo de mensajes Privacin del servicio: Impide el uso normal de los servicios de comunicaciones. Suplantacin: Cuando una entidad finge ser otra diferente.

En general, hay un flujo de informacin de una fuente a un destino. El flujo normal es:

Dentro de las amenazas que existen podemos mencionar las siguientes:

Interrupcin: Un elemento del sistema es destruido o se hace inservible. Es una amenaza a la disponibilidad. Ejemplos son la destruccin de algn elemento hardware y la desactivacin del sistema de gestin de ficheros.

Intercepcin: Una parte no autorizada obtiene acceso a un elemento relacionado con la seguridad. Es una amenaza a la privacidad. Ejemplos son la copia ilcita de programas y la visualizacin de ficheros que han de permanecer ocultos.

Modificacin: Una parte no autorizada no slo obtiene acceso sino que puede modificar un elemento relacionado con la seguridad. Es una amenaza a la integridad. Ejemplos son la alteracin del contenido de un fichero y modificar un programa para que funcione de forma diferente.

Fabricacin: Una parte no autorizada inserta nuevos elementos en el sistema. Es una amenaza a la integridad. Ejemplos son adicin de registros a un fichero y la inclusin de mensajes espurios en una red. Intrusos: dentro de ellos tenemos lo que son los piratas o hackers: que son los individuos que acceden al sistema sin autorizacin y hacen que los sistemas presenten agujeros que es el lugar por donde consiguen colarse. AMENAZAS DE TIPO SOFTWARE Programas malignos que necesitan anfitrin:

Bomba Lgica: Es un cdigo incrustado en un programa que comprueba si ciertas condiciones se cumplen, en cuyo caso ejecuta alguna accin no autorizada. Un ejemplo de uso de bomba lgica es el caso de un programador que vende un programa a una empresa. Si transcurrido un cierto tiempo la empresa no ha pagado, el programador revela la existencia de la bomba lgica con el fin de obtener su dinero. Puerta Falsa (Trapdoor): Es un punto de entrada secreto en un programa, de forma que alguien que conozca la existencia de dicha puerta puede obtener permisos de acceso sin tener que pasar por los mecanismos normales de autentificacin. Caballo de Troya (Trojan Horse): Es una rutina oculta en un programa de utilidad. Cuando el programa se ejecuta, se ejecuta la rutina y sta realiza acciones no autorizadas. Estos programas permiten realizar de forma indirecta acciones que no puede realizar de forma directa. Por ejemplo, puede ser un editor que cuando es ejecutado modifica los permisos de los ficheros que edita de forma que stos puedan ser accedidos por cualquier usuario.

Programas malignos que no necesitan anfitrin: Virus: Es cdigo introducido en un programa que puede infectar otros programas mediante la copia de s mismo en dichos programas. Bacteria: Programa que consume recursos del sistema replicndose asimismo, pero no daa explcitamente ningn fichero. Se suele reproducir exponencialmente, por lo que puede acaparar recursos como CPU, memoria y disco. Gusano (Worm): Es un programa que usa las redes de computadores para pasar de unos sistemas a otros. Una vez que llega a un sistema, el gusano se puede comportar como un virus o una bacteria, puede implantar programas caballo de troya, o puede realizar acciones no autorizadas.

ATAQUES GENRICOS A SISTEMAS OPERATIVOS Asincronismo: Se tienen procesos mltiples que progresan asincrnicamente. Un proceso podra modificar los parmetros ya validados por otro proceso pero an no utilizados.

Rastreo: Un usuario revisa el sistema intentando localizar informacin privilegiada.

Entre lneas: Se utiliza una lnea de comunicaciones mantenida por un usuario habilitado que est inactivo. Cdigo clandestino: Se modifica el S. O. bajo una presunta depuracin pero se incorpora cdigo que permite ingresos no autorizados. Procesos sincronizados interactivos: Se utilizan las primitivas de sincronizacin del sistema para compartir y pasarse informacin entre s. Disfraz: El intruso asume la identidad de un usuario legtimo luego de haber obtenido la identificacin apropiada por medios clandestinos. Ataque nak: Si el S. O. permite a un usuario: Interrumpir un proceso en reconocimiento negativo. Realizar otra operacin. Reanudar el proceso interrumpido. ejecucin mediante una tecla de

Un intruso podra encontrar al sistema en un estado no protegido y hacerse con el control. Engao al operador: Con un engao se hace realizar al operador una accin que comprometa la seguridad del sistema. Parmetros inesperados: El intruso suministra valores inesperados a una llamada al ncleo. Intenta aprovechar una debilidad de los mecanismos de verificacin de la legalidad del S. O.

PENETRACIN AL SISTEMA OPERATIVO La penetracin definitiva puede consistir en cambiar el bit de estado de la mquina del estado problema al estado supervisor; el intruso podr as ejecutar instrucciones privilegiadas para obtener acceso a los recursos protegidos por el S. O. [7, Deitel]. Los estudios de penetracin estn diseados para: Determinar si las defensas de un sistema contra ataques de usuarios no privilegiados son adecuadas. Descubrir deficiencias de diseo para corregirlas.

El control de entrada / salida es un rea favorita para intentar la penetracin a un sistema, ya que los canales de entrada / salida tienen acceso al almacenamiento primario y por consiguiente pueden modificar informacin importante. Una de las metas de las pruebas de penetracin consiste en estimar el factor de trabajo de penetracin: Indicacin de cunto esfuerzo y recursos son necesarios para conseguir un acceso no autorizado a los recursos del sistema: Debera ser tan grande que resulte disuasivo.

Temas Foro E-Mail Links Proteccion y Seguridad 6.7 Cifrado

Existen muchas defensas frente a los ataques informaticos, que abarcan toda la gama que va desde la metodologia a la tecnologia. La herramienta de caracter mas general que esta a disposicion de los usuarios y de los disenadores de sistemas es la criptografia. En esta seccion vamos a explicar algunos detalles acerca de la criptografia y de su uso en el campo de la seguridad informatica. En una computadora aislada, el sistema operativo puede determinar de manera fiable quienes son el emisor y el receptor de todas las comunicaciones interprocesos, ya que el sistema operativo controla todos los canales de comunicaciones de la computadora. En una red de computadoras, la situacion es bastante distinta. Una computadora conectada a la red recibe bits desde el exterior, y no tiene ninguna forma inmediata y fiable de determinar que maquina o aplicacion ha enviado esos bits. De forma similar, la propia computadora envia bits hacia la red sin tener ninguna forma de determinar quien puede llegar a recibirlos.

Comunmente, se utilizan las direcciones de red para inferir los emisores y receptores potenciales de los mensajes que circulan por la red. Los paquetes de red llegan con una direccion de origen, como por ejemplo una direccion IP. Y cuando una computadora envia mensajes, indica quinen es el receptor pretendido del mismo especificando una direccion de destino. Sin embargo, para aquellas aplicaciones en que la seguridad tenga importancia, correriamos el riesgo de meternos en problemas si asumieramos que la direccion de origen o de destino de un paquete permite determinar con fiabilidad quien a enviado o recibido dicho paquete. Una computadora maliciosa podria enviar un mensaje con una direccion de origen falsificada y, asimismo, otras muchas computadoras distintas de la especificada por la direccion de destino podrian (y normalmente hacen) recibir un paquete. Por ejemplo, todos los encaminadores ubicados en la ruta hacia el destino recibiran tambien el paquete. ?como puede, entonces, decidir el sistema operativo si debe conceder una solicitud, cuando no puede confiar en el origen especificado en dicha solicitud? ?y como se supone que debe proporcionar proteccion para una solicitud o para un conjunto de datos, cuando no puede determinar quien recibira la respuesta o el contenido del mensaje que envie a traves de la red? Generalmente, se considera impracticable construir una red (de cualquier tamano) en la que se pueda confiar en este sentido en las direcciones de origen y destino de los paquetes. Por tanto, la unica alternativa es eliminar, de alguna manera, la necesidad de confiar en la red; este es el trabajo de la criptografia. Desde un punto de vista abstracto, la criptografia se utiliza para restringir los emisores y/o receptores potenciales de un mensaje. La criptografia moderna se basa en una serie de secretos, denominados clave , que se distribuyen selectivamente a las computadoras de una red y se utilizan para procesar mensajes. La criptografia permite al receptor de un mensaje verificar que el mensaje ha sido creado por alguna computadora que posee una cierta clave: esa clave es el origen del mensaje. De forma similar, un emisor puede codificar su mensaje de modo que solo una computadora que disponga de una cierta clave pueda decodificar el mensaje, de manera que esa clave se convierte en el destino . Sin embargo, a diferencia de las direcciones de red, las claves estan disenadas de modo que no sea computacionalmente factible calcularlas a partir de los mensajes que se hayan generado con ellas, ni a partir de ninguna otra informacion publica. Por tanto, las claves proporcionan un medio mucho mas fiable de restringir los emisores y receptores de los mensajes. Observe que la criptografia es un campo de estudio completo por derecho propio, con una gran complejidad; aqui, vamos a explorar unicamente los aspectos mas importantes de aquellas partes de la criptografia que se relacionan con los sistemas operativos. Sistema de privacidad criptografico En un sistema de privacidad criptografico, el remitente desea transmitir cierto mensaje no cifrado a un receptor legitimo, la transmision ocurre sobre un canal inseguro asume ser monitoreado o grabado en cinta por un intruso.

El remitente pasa el texto a una unidad de encriptacion 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 recepcion el texto cifrado pasa a una unidad de descripcion que regenera el texto. Criptoanalisis Criptoanalisis es el proceso de intentar regenerar el mensaje desde el texto cifrado pero sin conocimiento de las claves de encriptacion. 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. Metodos y tecnicas de encriptacion Cesar Esta tecnica consistia simplemente en sustituir una letra por la situada tres lugares mas alla en el alfabeto esto es la A se transformaba en D, la B en E y asi sucesivamente hasta que la Z se convertia en C. Gronsfeld Este metodo utiliza mas de un alfabeto cifrado para poner en clave el mensaje y que se cambia de uno a otro segun 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 aqui es encontrar un canal seguro para transmitir dicha clave. Este problema viene a resolverse en los sistemas de clave publica la clave de cifrado, pues un tiempo enormemente de ordenador es necesario para encontrar una transformacion de descifrado a partir de la de cifrado. DES DES fue desarrollado por IBM a mediados de los setenta. Aunque tiene un buen diseno, su tamano de clave de 56 bits es demasiado pequeno para los patrones de hoy. DES (Data Encryption Standard) es un mecanismo de encriptacion de datos de uso generalizado. Hay muchas implementaciones de hardware y software de DES. Este transforma la informacion 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, podra utilizarla para convertir el texto cifrado en los datos originales. Es un mecanismo de encriptado simetrico. Chaffing & Winnowing Esta tecnica propuesta por Donald Rivest. Es mas un intento de esquivar las restricciones a la criptografia en EE.UU. (y otros paises) que una propuesta razonable debido al tamano de los mensajes resultantes. El termino ingles winnowing se tomara como aventar es decir separar el grano de la paja y el termino chaffing por el castellano empajar (cubrir o rellenar con paja). La idea basica consiste en mezclar la informacion 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 si y sus aplicaciones en la practica a los chips Clipper y Capstone. Skipjack fue desarrollado por la NSA inicialmente para los chips Clipper y Capstone. Su diseno comenzo en 1985 y se completo su evaluacion en 1990. BIFIDO El metodo Bifido es un cifrado fraccionario. Es decir que cada letra viene representada por una o mas letras o simbolos, y donde se trabaja con estos simbolos mas que con las letras mismas. WLBYKYAAOTB Este metodo altera la frecuencia de los caracteres a diferencia de lo que ocurre por ejemplo con los cifrados monoalfabeticos. Admite algunas variaciones como por ejemplo dividir la lista en 3,4,..., n partes. Cifrado exponencial Es un sistema basado en la exponenciacion modular, debido Pohlig y Hellman (1978). Este metodo es resistente al criptoanalisis. Blowfish Este algoritmo realiza un cifrado simple en 16 ciclos, con un tamano de bloque de 64 bytes para un total de 448 bits. Aunque hay una fase compleja de la inicializacion. El cifrado de datos es muy eficiente en los microprocesadores

grandes. Cifrado

La gran desventaja de las llaves secretas es que requieren un canal seguro para ser distribuidas - Si una contrasena es enviada por un canal inseguro puede ser interceptada, y no habria manera de lograr que quien la intercepte descifre con ella los mensajes enviados, o evitar que modifique o envie mensajes falsificando su identidad. No siempre disponemos de un canal seguro. Lo que es mas, estrictamente hablando, los canales seguros simplemente no existen. Sea como sea que la informacion sea transmitida, siempre podra ser escuchada por un tercero. Si hace falta tener un canal seguro para intercambiar las contrasenas, la utilidad de las contrasenas se vuelve nula. La primera respuesta a estos problemas viene de Diffie y Hellman [ 5 ], siendo una de las implementaciones mas comunes la RSA (por las siglas de sus autores, Rivest, Shamir y Adelman). Ellos proponen un sistema en el cual haya dos funciones: E (P)) = P. [ 4 ] Las funciones E y D se traducen en un par unico de llaves para llevar a cabo una comunicacion encriptada: Una llave publica y una llave privada. La llave publica es distribuida a cuantas personas esten interesadas en ella, mientras que la llave privada se guarda celosamente. Cuando una persona quiere enviarme un mensaje cifrado, lo cifra utilizando mi llave publica, y solo yo podre descifrarlo utilizando mi llave privada. Estas funciones, ademas, tienen la caracteristica que si bien calcularlas en el sentido correcto es relativamente sencillo, pero intentar aplicarlas en el sentido inverso (encontrar una funcion inversa a E que nos permita encontrar P) es tan dificil que se vuelve altamente impractico. Otra importante caracteristica de los algoritmos derivados del trabajo de Diffie y Hellman es que las funciones aplicadas son simetricas: Se puede aplicar tanto D para cifrar y D para descifrar un mensaje en claro P, tal que D (E

(E (P)) = P como E (D (P)) = P. Una fuerte desventaja de las llaves asimetricas es su complejidad matematica. Ademas de ser mucho mas complejas las funciones necesarias para realizar este tipo de cifrado, esto se refleja desde el tamano de la llave: Las mas cortas empleadas hoy en dia son de 512 bits, y no se consideran seguras de menos de 1024. No es poco comun, por otra parte, encontrar llaves de hasta 2048 bits. Sistemas de cifrado simetrico. Los sistemas de cifrado simetrico son aquellos que utilizan la misma clave para cifrar y descifrar un documento. El principal problema de seguridad reside en el intercambio de claves entre el emisor y el receptor ya que ambos deben usar la misma clave. Por lo tanto se tiene que buscar tambien un canal de comunicacion que sea seguro para el intercambio de la clave. Es importante que dicha clave sea muy dificil de adivinar ya que hoy en dia los ordenadores pueden adivinar claves muy rapidamente. Por ejemplo el algoritmo de cifrado DES usa una clave de 56 bits, lo que significa que hay 72 mil billones de claves posibles. Actualmente ya existen ordenadores especializados que son capaces de probar todas ellas en cuestion de horas. Hoy por hoy se estan utilizando ya claves de 128 bits que aumentan el "espectro" de claves posibles (2 elevado a 128) de forma que aunque se uniesen todos los ordenadores existentes en estos momentos no lo conseguirian en miles de millones de anos. Sistemas de cifrado asimetrico. Tambien son llamados sistemas de cifrado de clave publica. Este sistema de cifrado usa dos claves diferentes. Una es la clave publica y se puede enviar a cualquier persona y otra que se llama clave privada, que debe guardarse para que nadie tenga acceso a ella. Para enviar un mensaje, el remitente usa la clave publica del destinatario para cifrar el mensaje. Una vez que lo ha cifrado, solamente con la clave privada del destinatario se puede descifrar, ni siquiera el que ha cifrado el mensaje puede volver a descifrarlo. Por ello, se puede dar a conocer perfectamente la clave publica para que todo aquel que se quiera comunicar con el destinatario lo pueda hacer. Un sistema de cifrado de clave publica basado en la factorizacion de numeros primos se basa en que la clave publica contiene un numero compuesto de dos numeros primos muy grandes. Para cifrar un mensaje, el algoritmo de cifrado usa ese compuesto para cifrar el mensaje. Para descifrar el mensaje, el algoritmo de descifrado requiere conocer los factores primos, y la clave privada tiene uno de esos factores, con lo que puede facilmente descifrar el mensaje. Es facil, con los ordenadores de hoy en dia, multiplicar dos numeros grandes para conseguir un numero compuesto, pero es muy dificil la operacion inversa, Dado ese numero compuesto, factorizarlo para conocer cada uno de los dos numeros. Mientras que 128 bits se considera suficiente en las claves de cifrado simetrico, y

dado que la tecnologia de hoy en dia se encuentra muy avanzada, se recomienda en este caso que la clave publica tenga un minimo de 1024 bits. Para un ataque de fuerza bruta, por ejemplo, sobre una clave publica de 512 bits, se debe factorizar un numero compuesto de hasta 155 cifras decimales. Autenticacion Autenticacion ( Griego : ?? = verdadero o genuino, de ' los authentes' = el autor) es el acto de establecimiento o confirmacion de algo (o alguien) como autentico, es decir que reclama hecho por o sobre la cosa son verdadero. La autenticacion de un objeto puede significar (pensar) la confirmacion de su procedencia, mientras que la autenticacion de una persona a menudo consiste en verificar su identidad. La autenticacion depende de uno o varios factores de autenticacion. En terminos de seguridad de redes de datos, se puede considerar uno de los tres pasos fundamentales (AAA). Cada uno de ellos es, de forma ordenada: Autenticacion En la seguridad de ordenador, la autenticacion es el proceso de intento de verificar la identidad digital del remitente de una comunicacion como una peticion para conectarse. El remitente siendo autenticado puede ser una persona que usa un ordenador, un ordenador por si mismo o un programa del ordenador. En un web de confianza, "autenticacion" es un modo de asegurar que los usuarios son quien ellos dicen que ellos son - que el usuario que intenta realizar funciones en un sistema es de hecho el usuario que tiene la autorizacion para hacer asi. Mecanismo general de autenticacion La mayor parte de los sistemas informaticos y redes mantienen de uno u otro modo una relacion de identidades personales (usuarios) asociadas normalmente con un perfil de seguridad, roles y permisos. La autenticacion de usuarios permite a estos sistemas asumir con una seguridad razonable que quien se esta conectando es quien dice ser para que luego las acciones que se ejecuten en el sistema puedan ser referidas luego a esa identidad y aplicar los mecanismos de autorizacion y/o auditoria oportunos. El primer elemento necesario (y suficiente estrictamente hablando) por tanto para la autenticacion es la existencia de identidades biunivocamente identificadas con un identificador unico (valga la redundancia). Los identificadores de usuarios pueden tener muchas formas siendo la mas comun una sucesion de caracteres conocida comunmente como login . El proceso general de autenticacion consta de los siguientes pasos: 1. El usuario solicita acceso a un sistema.

2. El sistema solicita al usuario que se autentique. 3. El usuario aporta las credenciales que le identifican y permiten verificar la autenticidad de la identificacion. 4. El sistema valida segun sus reglas si las credenciales aportadas son suficientes para dar acceso al usuario o no. Distribucion de claves Lo ideal seria que pudieramos distribuir nuestra clave entregandosela en persona a nuestros corresponsales. Sin embargo, en la practica las claves se distribuyen a menudo por correo electronico o algun otro medio de comunicacion electronica. La distribucion por correo electronico es una buena practica solo cuando tengamos unos pocos corresponsales, e incluso si tuvieramos muchos corresponsales, podriamos usar un medio alternativo como puede ser publicar nuestra clave publica en nuestra pagina en Internet. Sin embargo, esto es inutil si las personas que necesitan nuestra clave publica no saben donde encontrar nuestra pagina. Para solventar este problema existen los servidores de claves publicas, que recolectan y distribuyen las claves publicas. Cuando un servidor recibe una clave publica, bien la anade a la base de datos o bien la fusiona con una copia de la clave. Cuando alguien requiere al servidor una clave publica, este la busca en la base de datos, y si la encuentra, la envia a quien se la haya solicitado. Los servidores de claves tambien son utiles cuando hay muchas personas que firman las claves de otras con frecuencia. Sin un servidor de claves, cuando Arranca firma la clave de Javier, deberia enviar a esta una copia de la clave firmada por el, de manera que Javier pudiera anadir la clave firmada a su anillo de claves asi como distribuirla a todos sus corresponsales. Mediante este proceso Javier y Arancha sirven a la totalidad de la comunidad construyendo lazos en forma de anillos de confianza, o lo que es lo mismo, mejorando la seguridad de PGP. De todos modos esto es una molestia si se firman las claves con frecuencia. El uso de un servidor de claves facilita este proceso. Despues de firmar la clave de Javier, Arancha puede enviar la copia firmada por el al servidor de claves. El servidor de claves anade la firma de Arancha a la copia que ya posee de Javier. Las personas que esten interesadas en actualizar su copia de la clave de Javier, consultan al servidor por propia iniciativa para obtener la clave actualizada. Javier no necesita distribuir la clave, y puede obtener las firmas en su clave requiriendolas al servidor. Se pueden enviar una o mas claves usando la opcion de la linea de ordenes -send-keys . Esta opcion toma uno o mas especificadores de claves, y envia las claves especificadas al servidor de claves. El servidor al que se envian las claves es especifica con la opcion de la linea de ordenes --keyserver . Paralelamente, la opcion --recv-keys se usa para obtener claves desde un servidor de claves, pero la opcion --recv-keys requiere el uso de un identificador de claves para poder especificar la clave deseada. En el siguiente ejemplo Javier envia su clave publica

al servidor de claves certserver.pgp.com , y a continuacion actualiza su copia de la clave de Arancha desde el mismo servidor. javier:~$ gpg --keyserver certserver.pgp.com --recv-key D58711B7 gpg: requesting key D58711B7 from certserver.pgp.com ... gpg: key D58711B7: 1 new signature gpg: Total number processed: 1 gpg: new signatures: 1 javier:~$ gpg -keyserver certserver.pgp.com --send-key arancha@nav.es gpg: success sending to 'certserver.pgp.com' (status=200) Existen varios servidores de claves en funcionamiento en todo el mundo. Los servidores mas importantes estan sincronizados, de modo que es posible elegir un servidor de claves cercano a nosotros en Internet, y usarlo de forma regular para enviar y recibir claves.

S-ar putea să vă placă și