Tema 7. Criptografía.
A lo largo de la historia el ser humano ha desarrollado unos sistemas de seguridad que le permiten comprobar en una comunicación la identidad del interlocutor(tarjetas de identificación, firmas) , asegurarse que solo obtendrá la información el destinatario solicitado(correo certificado) que además ésta no podrá ser modificada(notariado) e incluso que ninguna de las 2 partes podrá negar el hecho(notariado firma) ni cuando se produjo(fechado de documentos).
En la mayor parte de los casos el sistema de seguridad se basa en la identificación física de la persona, información que contrasta con el documento de identidad.
Actualmente, cada vez mayor número de actividades se están trasladando al mundo electrónico a través de internet, se hace por lo tanto necesario trasladar también los sistemas de seguridad a este contexto en el que el principal problema reside en que no existe contacto directo entre las partes implicadas.
Necesitamos un documento digital que ofrezca las mismas funcionalidades que los documentos físicos con el añadido de ofrecer garantías aun sin presencia física.
¿Cómo se resuelve este problema? Gracias a mecanismos criptográficos cuyos elementos fundamentales son el certificado digital y la firma electrónica.
7.1. Principios de la criptografía.
La criptografía es el arte o la ciencia de cifrar o descifrar información mediante técnicas especiales y se emplea frecuentemente para permitir un intercambio de mensajes que solo puedan ser leídos por personas a las que van dirigidos y que poseen los medios para descifrarlos.
Con mas precisión cuando se habla de esta área de conocimiento como ciencia se debería hablar de criptología que engloba tanto a las técnicas de cifrado, es decir la criptografía como sus técnicas complementarias entre las cuales se incluye el criptoanálisis que estudia métodos empleados para romper textos cifrados con objeto de recuperar la información original en ausencia de claves.
La criptografía se considera una rama de las matemáticas y en la actualidad de la informática y la telemática que hace uso de métodos y técnicas matemáticas con el objeto principal de cifrar un mensaje o archivo por medio de un algoritmo usando una o mas claves.
En la jerga de la criptografía, la información original que debe protegerse se denomina texto en claro o texto plano, el cifrado es el proceso de convertir el texto plano en un galimatías ilegible denominado texto cifrado o criptograma. Por lo general, la aplicación concreta del algoritmo de cifrado(cifra) se basa en la existencia de una clave, información secreta que adapta el algoritmo de cifrado para cada uso distinto.
Las 2 técnicas mas sencillas de cifrado en la criptografía clásica son la sustitución(que supone el cambio de significado de los elementos básicos del mensaje, las letras, los símbolos o los dígitos) y la transposición(supone una reordenación de los mismos).
La gran mayoría de las cifras básicas son combinaciones de estas 2 operaciones bascas.
El descifrado es el proceso inverso que recupera el texto plano a partir del criptograma y la clave. El protocolo criptográfico especifica los detalles de como se utiliza los algoritmos y las claves(y otras operaciones primitivas) para conseguir el efecto deseado. El conjunto de protocolos, algoritmos de cifrado, procesos de gestión de claves y actuaciones de los usuarios es lo que constituye en conjunto un criptosistema que es con lo que el usuario final trabaja e interactúa.
Existen 2 grandes grupos de cifras, los algoritmos que solo utilizan una clave tanto en el proceso de cifrado como en el de descifrado y los que emplean una clave para cifrar mensajes y una clave distinta para descifrarlos. Los primeros se denominan cifrar simétricas de clave simétrica o de clave privada y son la base de los algoritmos de cifrado clásico. Los segundos se denomina cifras asimétricas de clave asimétrica o de clave publica y forman el núcleo de las técnicas de cifrado modernas.
En el lenguaje cotidiano la palabra código se usa de forma indistinta con cifra, en la jerga de la criptografía sin embargo el termino tiene un uso técnico especializado: los códigos son un método de criptografía básica que consiste en sustituir unidades textuales mas o menos larga o complejas al igualmente palabras o frases para ocultar el mensaje; por ejemplo cielo azul podría significar apagar al amanecer. Por el contrario las cifrar clásicas normalmente sustituyen o reordenan los elementos básicos del mensaje, letras, dígitos o símbolos en el ejemplo anterior “RCNM ARCTEEAAL AAA” seria un criptograma obtenido por transposición. Cuando se usa una técnica de códigos la información secreta suele recompilarse en un libro de códigos.
7.1.1. Criptografía simétrica.
La criptografía simétrica es un método criptográfico en el cual se usa la misma clave para cifrar y descifrar mensajes, las 2 partes que se comunican han de ponerse de acuerdo de antemano sobre la clave a usar.
Un buen sistema de cifrado pone toda la seguridad en la clave y ninguna en el algoritmo, en otras palabras, no debería ser de ninguna ayuda para un atacante conocer el algoritmo que se está usando, solo si el atacante obtuviera la clave le serviría conocer el algoritmo, los algoritmos ampliamente utilizados tienen estas propiedades(por ejemplo GNU PJ).
Dado que toda la seguridad esta en la clave, es importante que sea muy difícil adivinar el tipo de clave, esto quiere decir, que el abanico de claves posibles debe ser amplio.
Actualmente, los ordenadores pueden descifrar claves con extrema rapidez y esta es la razón por la cual el tamaño de clave es importante en los criptosistemas modernos.
El algoritmo DES usa una clave de 56bits lo que significa que hay 2elevado56 claves posibles, esto representa un numero muy alto de claves pero un ordenador genérico puede comprobar el conjunto posible de claves en cuestión de días, una máquina especializada puede hacerlo en horas.
Algoritmos de cifrado de diseño mas reciente como 3DES, LOUFISH e IDEA usan claves de 128bits lo que significa que existen 2elevado128 claves posibles. La mayoría de las tarjetas de crédito y otros medios de pago electrónico tienen como estándar el algoritmos 3DES.
El principal problema de los sistemas de cifrado simétrico no esta ligado a su seguridad si no al intercambio de claves. Una vez que el remitente y el destinatario hayan intercambiado las claves pueden usarlas para comunicarse con seguridad, sería mucho mas fácil para un atacante intentar interceptar una clave que probar las posibles combinaciones del espacio de claves.
Otro problema es el numero de claves que se necesitan, si tenemos un numero n de personas que necesitan comunicarse entre si se necesitan n/2 claves para cada pareja de personas que tengan que comunicarse de modo privado. Esto puede funcionar con un grupo reducido de personas pero seria imposible llevarlo a cabo con grupos más grandes.
7.1.2. Ataques criptográficos.
En criptografía se denomina ataque de fuerza bruta a la forma de recuperar una clave probando todas las combinaciones posibles hasta encontrarla. Dicho de otro modo, define al procedimiento por el cual a partir del conocimiento del algoritmo de cifrado empleado y de un par texto claro-texto cifrado se realiza el cifrado y respectivamente de descifrado de uno de los miembros del par con cada una de las posibles combinaciones de clave hasta obtener el otro miembro del par. El esfuerzo requerido para que la búsqueda sea exitosa con probabilidad mejor que la par será 2elevado-n operaciones donde n es la longitud de la clave.Otro factor determinante en el coste de realizar un ataque de fuerza bruta es el juego de caracteres que se pueden utilizar en la clave. Contraseñas que solo utilicen dígitos numéricos serán mas fáciles de descifrar de aquellas que incluyen otros caracteres como letras, la complejidad compuesta por la cantidad de caracteres en una contraseña es logarítmica.
Los ataques por fuerza bruta son muy costosos en en tiempo computacional por lo que suelen combinarse con un ataque de diccionario.
Un ataque de diccionario es un método de cracking que consiste en intentar de averiguar una contraseña probando todas las palabras del diccionario. Este tipo de ataque suele ser mas eficiente que un ataque de fuerza bruta ya que muchos usuarios suelen utilizar un palabra existente en un lengua como contraseña para que sea fácil de recordar, lo cual no es una practica recomendable.
Los ataques de diccionario tienen pocas probabilidades de éxito con sistemas que emplean contraseñas fuertes con letras en mayúscula y minúscula mezcladas por números y con cualquier tipo de símbolos. Sin embargo, para la mayoría de los usuarios recordar contraseñas tan complejas resulta complicado. Existen variantes que comprueban también alguna de las típicas sustituciones (determinadas letras con números, intercambio de 2 letras, abreviaciones) así como distintas combinaciones de mayúsculas y minúsculas.
Otra solución habitual para no tener que memorizar un numero elevado de contraseñas es utilizar un gestor de contraseñas. Estos programas también nos pueden ayudar a generar contraseñas seguras(asegurándonos que no se trate de un spyware).
Una forma sencilla de proteger un sistema contra los ataques de fuerza bruta o los ataques de diccionario es establecer un numero máximo de tentativas, de esta forma se bloquea el sistema automáticamente después de un numero de intentos infructuosos predeterminados. Un ejemplo de este tipo de sistema es el mecanismo empleado en las tarjetas SIM que bloquea automáticamente tras 3 intentos fallidos al introducir el código PIN.
Para solucionar estos problemas, se mejora la seguridad de los sistemas mediante la criptografía asimétrica y la criptografía híbrida.
7.1.3. Criptografía de clave asimétrica.
En este caso, cada usuario del sistema criptográfico ha de poseer una pareja de claves:
Clave privada: Será custodiada por su propietario y nos se dará a conocer a ningún otro.Clave pública: Será conocida por todos los usuarios.
Esta pareja de claves es complementaria, lo que cifra una, solo lo puede descifrar la otra y viceversa. Estas claves se obtienen por métodos matemáticos complicados de forma que por razones de tiempo de computo es imposible conocer una clave a partir de la otra.
Los sistemas de cifrado de clave pública se basan (en funciones HASH de un solo sentido) que aprovechan particularidades por ejemplo de los números primos. Una función de un solo sentido es aquella cuya computación es fácil mientras que su inversión resulta extremadamente difícil pero tiene una trampa, esto quiere decir que si se conociera alguna pieza de la información sería fácil computar el inverso. Dado un cifrado de clave publica basado en factorización de números primos, la clave publica contiene un numero compuesto de dos factores de números primos grandes y el algoritmo de cifrado usa este compuesto para cifrar el mensaje. El algoritmo para descifrar el mensaje requiere el conocimiento de los factores primos par que el descifrado sea fácil si poseemos la clave privada que contiene uno de los 2 factores pero extremadamente difícil en caso de no tener ninguno.
Como los sistemas de cifrado simétricos buenos, con un buen sistema de cifrado de clave pública, toda la seguridad descansa en la clave y no en el algoritmo. Por lo tanto el tamaño de la clave es una medida de la seguridad del sistema pero no se puede comparar con el tamaño de la clave del cifrado simétrico para medir la seguridad.
En un ataque de fuerza bruta sobre un cifrado de clave publica con un tamaño de 512bits, el atacante debe factorizar un numero compuesto codificado en 512bits(hasta 155 dígitos decimales). La cantidad de trabajo para el atacante será diferente dependiendo del cifrado que esté atacando. Mientras 128bits son suficientes para cifrados simétricos, se recomienda el uso de claves publicas de 1024bits para la mayoría de los casos.
La mayor ventaja de la criptografía asimétrica es que se puede cifrar con una clave y descifrar con otra pero el sistema tiene bastantes desventajas:
Para una misma longitud de clave y mensaje se necesita mayor tiempo de proceso.
Las claves deben ser de mayor tamaño que las simétricas.
El mensaje cifrado ocupa mas espacio que el original.
El sistema de criptografía de curva elíptica representa una alternativa menos costosa para este tipo de problemas.
Herramientas como PGP, SSH o la capa de seguridad SSL utilizan un híbrido formado por la criptografía asimétrica para intercambiar claves de criptografía simétrica y la criptografía simétrica para la transmisión de la información.Algunos algoritmos de técnicas de clave asimétrica son:
- Diffie-Hellman
- RSA
- DSA
- ELGAMAL
- Criptografía de curva elíptica.
- -Otros algoritmo de clave asimétrica pero inseguros:
- MEKLE-HELLMAN.
- KNAPSACK
- Algunos protocolos que usan los algoritmos antes citados son:
- DSS con el algoritmo DSA.
- PGP.
- GPG, una implementación de OPENPGP.
- SSH.
- SSL.
- TLS.








0 comentarios:
Publicar un comentario