Protección de seguridad
6.8 CIFRADOS
Mecanismo general de autenticacion
Distribucion
de claves
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.
No hay comentarios:
Publicar un comentario