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 para cifrar y D para descifrar un mensaje en claro P, tal que D (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 (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:
- El usuario solicita acceso a un sistema.
- El sistema solicita al usuario que se autentique.
- El usuario aporta las credenciales que le identifican y permiten verificar la autenticidad de la identificacion.
- 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. |