Pepe

Enviado por Programa Chuletas y clasificado en Ciencias sociales

Escrito el en español con un tamaño de 28,57 KB

Criptografía

 

Conceptos Básicos


La criptografía (del griego Krypto “oculto”, graphos “escribir ”) literalmente “escritura oculta” es el arte de cifrar y 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.

 

El área de conocimiento como ciencia se conoce como criptología que a su vez engloba tanto las técnicas de cifrado, es decir, la criptografía propiamente dicha, como sus técnias 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 las claves.

 


A continuación definiremos los términos más usados en criptografía.

  • Texto claro o texto plano: Es la información original, que después de usar ciertas técnicas criptográficas pasara ser un texto cifrado.
  • Texto cifrado o codificado(criptograma): La información resultante después de cifrar un texto plano. Esta información es inteligible.
  • Cifrar: Operación de pasar un texto claro a codificado.
  • Descifrar: Paso contrario a cifrar, convertir un texto cifrado o criptograma a texto plano.
  • Clave: Información secreta que es usada para codificar y descodificar los textos. Es la – o las – que abre la puerta.

Técnicas de cifrado

  • Sustitución: Supone el cambio de significado de los elementos básicos del mensaje, las letras, los dígitos o los símbolos.
  • Transposición: supone una reordenación de los mismos(letras, dígitos o símbolos)

La gran mayoría de los cifrados son combinación de las dos técnicas anteriores.

CRIPTOGRAFÍA SIMÉTRICA (Algoritmo de clave simétrica)

Algoritmo de cifrado que utiliza para cifrar y descifrar la misma clave. Estos algoritmos se caracterizan por sé muy rápidos en cifrar-descifrar, no aumenta el volumen de información y es casi imposible romper – obtener la información del texto claro sin saber la clave. Como ejemplo de algoritmo de clave simétrica tenemos a :

o       DES: usa clave de 56 bits lo que significa que hay 2 elevado a 56 claves posibles(72.057.594.037.927.936 claves)un ordenador puedo descifrarlo en unos días y una máquina especializada en cuestión de horas.

o       3DES: usa claves de 128 bits , lo que significa que existen 2 elevado a 128 claves posibles. La mayoría de las tarjetas de créditos y otros medios de pago electrónicos tienen como estándar el algoritmo 3DES.

o       Otros: AES, LOKI o GnuPG en sistemas GNU

Un algoritmo de cifrado simétrico utiliza, como ya vimos, la misma clave para cifrar o descifrar. El algoritmo que vamos estudiar básicamente sigue los siguientes pasos:

  • Dado la un mensaje de una longitud N - típicamente 64 bits, 128 bits, etc -, se divide en dos bloques de tamaño N/2, A y B.
  • Se toma una función F, la cual es muy difícil de invertir.
    • Se realizan una serie operaciones con la función F y la clave Ki con solo con una de mitades del mensaje – A o B , cada iteración se permute la mitad. Este proceso esetido n-veces.Red de Feistel


El inventor de esto fue Horst Feistel. Feistel uso este método para su algoritmo LUCIFER, en 1970. En 1974 se propone a la NSA (Agencia de la Seguridad Nacional), como resultado nació DES. No todos los algoritmos modernos de clave simétrica se basan en Feistel, pero marco el principio. Por ejemplo, AES – actual estándar mundial – no se basa en una red Feistel, sino en una red de sustitución – usando S-Cajas - y permutaciones.

ATAQUES CRIPTOGRÁFICOS

Un ataque criptográfico es un método de sortear la seguridad de un sistema criptográfico mediante la búsqueda de debilidades en un código, un mensaje cifrado, un protocolo criptográfico o un esquema de manejo de claves. A este proceso también se lo llama "criptoanálisis".

Fuerza Bruta: En criptografía, se denomina ataque de fuerza bruta a la forma de recuperar una clave probando todas las combinaciones posibles hasta encontrar aquella que permite el acceso.

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 (respectivamente, 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á 2n − 1 operaciones, donde n es la longitud de la clave (también conocido como el espacio de claves).

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 sólo utilicen dígitos numéricos serán más fáciles de descifrar que aquellas que incluyen otros caracteres como letras, así como las que están compuestas por menos caracteres serán también más fáciles de descifrar, la complejidad impuesta por la cantidad de caracteres en una contraseña es logarítmica.

Los ataques por fuerza bruta, dado que utilizan el método de prueba y error, son muy costosos en tiempo computacional.

La Fuerza bruta suele combinarse con ataque por diccionario.

Ataque de Diccionario: Un ataque de diccionario es un método de cracking que consiste en intentar averiguar una contraseña probando todas las palabras del diccionario. Este tipo de ataque suele ser más eficiente que un ataque de fuerza bruta, ya que muchos usuarios suelen utilizar una palabra existente en su lengua como contraseña para que la clave sea fácil de recordar, lo cual no es una práctica recomendable.

Los ataques de diccionario tienen pocas probabilidades de éxito con sistemas que emplean contraseñas fuertes con letras en mayúsculas y minúsculas mezcladas con números y con cualquier otro 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 algunas de las típicas sustituciones (determinadas letras por números, intercambio de dos letras, abreviaciones), así como distintas combinaciones de mayúsculas y minúsculas.

Por ejemplo, El programa KeePass nos muestra automáticamente la solidez de la contraseña.

Consejos prácticos

Una práctica bastante habitual para usar contraseñas que sean fáciles de recordar y a la vez no sean vulnerables a los ataques de diccionario es tomar las iniciales de todas las palabras de una oración que tenga algún significado especial para nosotros. Por ejemplo, si tomamos la frase "Mi primera bicicleta fue una BH210 que me regaló mi abuelo Francisco", la contraseña resultante sería la siguiente: MpbfuBH210qmrmaF. Esta contraseña mezcla letras y números, que con sus 16 caracteres es relativamente larga, y sería bastante difícil de romper mediante un ataque de fuerza bruta, suponiendo que el algoritmo de cifrado elegido sea lo suficientemente seguro. Sin embargo, para el usuario en cuestión seguramente sea bastante fácil de recordar.

Otra solución habitual para no tener que memorizar un número elevado de contraseñas complejas es utilizar un gestor de contraseñas. Estos programas también nos pueden ayudar a generar contraseñas seguras.

Protección frente a los ataques

Una forma sencilla de proteger un sistema contra los ataques de fuerza bruta o los ataques de diccionario es establecer un número máximo de tentativas. De esta forma se bloquea el sistema automáticamente después de un número de intentos infructuosos predeterminado. Un ejemplo de este tipo de sistema de protección es el mecanismo empleado en las tarjetas SIM que se bloquean automáticamente tras tres 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.

CRIPTOGRAFIA DE CLAVE ASIMÉTRICA (Algoritmo de clave pública o asimétricos)

 Algoritmos que utilizan diferentes claves para cifrar – clave pública – y descifrar – clave privada. Son más lentos, aumentan el volumen de información, necesitan una longitud de clave mayor para alcanzar – o intentar aproximarse – a los algoritmos simétricos, requieren más potencia de cálculo – por lo cual más tiempo, para cifrar y descifrar. Todos los algoritmos son asimétricos.

Los algoritmos asimétricos están basados en funciones matemáticas y no en operaciones con bits y bytes como los algoritmos simétricos. La idea básica que utilizan son problemas matemáticos que son fácilmente resueltos en un sentido y casi imposible en otros. Como ejemplo no válido de este pensamiento es mucho más fácil calcular el cuadrado de un número que su raíz cuadrada, los algoritmos de clave simétrica utilizan esta idea pero sin usar funciones tan simples como cuadrado y raíces.

El hecho de disponer de dos claves – una pública y otro privada – tiene grandes repercusiones en la confidencialidad, la distribución de claves y autentificación. Básicamente una comunicación utilizando un algoritmos asimétricos sigue los siguientes pasos:

  • B genera una pareja de claves, y da a conocer su clave pública.
  • A codifica el mensaje que quiere mandar a B con la clave pública de B.
  • B recibe el mensaje codificado y lo descifra con su clave privada. Nadie más es capaz de descifrar el mensaje si no dispone de la clave privada de B.

Ejemplo de comunicación


Como ventaja ya sabemos que resolvemos el problema de la distribución de las claves y que además son más versátiles que los algoritmos simétricos, ya que nos ofrecen más servicios que los segundos. Pero por el contrario son más lentos, y basar solo una comunicación en algoritmos asimétrico es muy pesada. Por lo cual se suele utilizar algoritmos híbridos



En este punto de la exposición se nos plantea – o debería – plantear una duda. ¿Cómo es posible que los algoritmos modernos sean “peores” – más lentos, menos seguros, aumentan el volumen de información – que los simétricos? ¿Por qué no usar algoritmos simétricos? La repuesta es muy simple, uno de los mayores problemas de los de los algoritmos simétricos es el intercambio de claves. Tanto el receptor o como el transmisor deben conocer la misma clave, si estoy enviando una información codificada es porque esa información es sensible de ser interceptada. Pero para que la comunicación sea completa debo enviar antes la clave, pero si la información puede ser interceptada la clave también. Debería entonces enviar la clave por un canal seguro – no corre el riesgo de ser interceptada, pero ... ¿Por qué no envió entonces la información por ese canal seguro? Si pudiera – o dispusiera - de un canal seguro no necesitaría cifrar la información. Hemos llegado a una paradoja.

Con los algoritmos asimétricos no tenemos este problema, ya que las claves son diferentes para cifrar y descifrar. Si yo quiero enviar un mensaje a A, cogería su clave pública y codificaría con ella la información. Luego más tarde A con su clave privada descifraría el texto. No ha existido necesidad de intercambiar claves ninguna – la única clave conocida por todos es precisamente la pública. ¿Dónde esta el truco? Pues que en la clave pública va embebida la privada, pero de manera que no es posible obtenerla – de hecho el ataque a un criptosistema de clave pública consiste en intentar obtener la clave privada a partir de la pública.

 

Seguridad

Como con 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 el tamaño de la clave del cifrado simétrico con el del cifrado de clave pública para medir la seguridad. En un ataque de fuerza bruta sobre un cifrado simétrico con una clave del tamaño de 80 bits, el atacante debe probar hasta 280-1 claves para encontrar la clave correcta. En un ataque de fuerza bruta sobre un cifrado de clave pública con una clave del tamaño de 512 bits, el atacante debe factorizar un número compuesto codificado en 512 bits (hasta 155 dígitos decimales). La cantidad de trabajo para el atacante será diferente dependiendo del cifrado que esté atacando. Mientras 128 bits son suficientes para cifrados simétricos, dada la tecnología de factorización de hoy en día, se recomienda el uso de claves públicas de 1024 bits para la mayoría de los casos.

 

Ventajas del cifrado asimétrico

La mayor ventaja de la criptografía asimétrica es que se puede cifrar con una clave y descifrar con la otra, pero este 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 más 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 para la jerarquía de protocolos TCP/IP 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.

 

Algoritmos

Algunos algoritmos de técnicas de clave asimétrica son:

 

*      Diffie-Hellman

*      RSA

*      DSA

*      ElGamal

*      Criptografía de curva elíptica

 

Otros algoritmos de clave asimétrica pero inseguros:

*      Merkle-Hellman, algoritmos "Knapsack".

 

Protocolos

Algunos protocolos que usan los algoritmos antes citados son:

 

*      DSS ("Digital Signature Standard") con el algoritmo DSA ("Digital Signature Algorithm")

*      PGP

*      GPG, una implementación de OpenPGP

*      SSH

*      SSL, ahora un estándar del IETF

*      TLS

Procesos

  • Privacidad: Capacidad para garantizar el no-acceso a información por personas no autorizadas. Es el servicio más obvio que nos ofrece la criptografía.
  • Integridad: Capacidad para asegurar al receptor de la información que esta no ha sido alterada.
  • Autenticación: Capacidad que permite al usuario de la información convencerse a si mismo que la información ha sido generada por usuarios autorizados.
  • Firmas: Capacidad de convencer a otros que la información ha sido generado por usuarios autorizadas.
  • No repudio: Capacidad de evitar que el receptor y emisor de la información nieguen sus papeles en la comunicación.
  • Control de acceso: Capacidad para regular el acceso a la información por parte del sistema solo a los usuarios autorizados.
  • Disponibilidad: Capacidad dar que la información este siempre disponible ante las peticiones de los usuarios autorizados.

CERTIFICADO DIGITAL

Un certificado digital (también conocido como certificado de clave pública o certificado de identidad) es un documento digital mediante el cual un tercero confiable (una autoridad de certificación) garantiza la vinculación entre la identidad de un sujeto o entidad (por ejemplo: nombre, dirección y otros aspectos de identificación) y una clave pública.

 

Este tipo de certificados se emplea para comprobar que una clave pública pertenece a un individuo o entidad. Las existencia de firmas en los certificados aseguran por parte del firmante del certificado (una autoridad de certificación, por ejemplo) que la información de identidad y la clave pública perteneciente al usuario o entidad referida en el certificado digital están vinculadas.

Si bien existen variados formatos para certificados digitales, los más comúnmente empleados se rigen por el estándar UIT-T X.509. El certificado contiene usualmente lo siguiente:

 

*      el nombre de la entidad certificada,

*      número de serie,

*      fecha de expiración del certificado,

*      una copia de la clave pública del titular del certificado (esta clave es utilizada para la verificación de su firma digital)

 

Esta información se firma de forma digital por la autoridad emisora del certificado. De esa forma, el receptor puede verificar que esta última ha establecido realmente la asociación.

 

FIRMA ELECTRONICA

 

Una firma electrónica es una firma digital que se ha almacenado en un soporte de hardware; mientras que la firma digital se puede almacenar tanto en soportes de hardware como de software. La firma electrónica reconocida tiene el mismo valor legal que la firma manuscrita.

 

De hecho se podría decir que una firma electrónica es una firma digital contenida o almacenada en un contenedor electrónico, normalmente un chip de ROM. Su principal característica diferenciadora con la firma digital es su cualidad de ser inmodificable (que no inviolable). No se debe confundir el almacenamiento en hardware, como por ejemplo, en un chip, con el almacenamiento de la firma digital en soportes físicos; es posible almacenar una firma digital en una memoria flash, pero al ser esta del tipo RAM y no ROM, no se consideraría una firma electrónica si no una firma digital contenida en un soporte físico.

 

Ejemplos de Firma Electrónica

La firma digital contenida en soportes de tipo ROM tiene ya hoy en día un uso muy extendido y se utiliza en gran cantidad de tarjetas de acceso, tarjetas de telefonía, RFID o cualquier otra actividad en la que es preciso identificar inequívocamente una persona u objeto.

 

Una de las aplicaciones mas destacadas a nivel mundial es El DNI electrónico español, también conocido como DNIE que, al ser de uso obligado, ya dispone de varios millones de usuarios.

 

DNI ELECTRONICO

 

En España se expide desde marzo del año 2006 un tipo especial de documento de identidad denominado DNI electrónico. Se trata de la evolución del Documento Nacional de Identidad pensada para adaptar su uso a la sociedad de la información y para que sus portadores puedan darle uso para determinados servicios elec

Tipos de dispositivos, sistemas operativos y estándares.


Para la utilización del DNI electrónico es necesario contar con determinados elementos hardware y software que nos van a permitir el acceso al chip de la tarjeta y, por tanto, la utilización de los certificados contenidos en él.

a) Elementos hardware

 

El DNI electrónico requiere el siguiente equipamiento físico:

• Un Ordenador personal (Intel -a partir de Pentium III- o tecnología similar).
• Un lector de tarjetas inteligentes que cumpla el estándar ISO-7816. Existen distintas implementaciones, bien integrados en el teclado, bien externos (conectados vía USB) o bien a través de una interfaz PCMCIA.

 

b) Elementos software

• Sistemas operativos

   El DNI electrónico puede operar en diversos entornos:

Microsoft Windows ("Microsoft Windows (2000, XP y Vista)" )

Linux

Unix

Mac

• Navegadores

  El DNI electrónico es compatible con los siguientes navegadores:

Microsoft Internet Explorer (versión 6.0 o superior)

Mozilla Firefox (versión 1.5 ó superior)

Netscape (versión 4.78 o superior)

 

• Controladores / Módulos criptográficos


Para poder interaccionar adecuadamente con las tarjetas criptográficas en general y con el DNI electrónico en particular, el equipo ha de tener instalados unas "piezas" de software denominadas módulos criptográficos.

En un entorno Microsoft Windows, el equipo debe tener instalado un servicio que se denomina "Cryptographic Service Provider" (CSP).

En los entornos UNIX / Linux o MAC podemos utilizar el DNI electrónico a través de un módulo criptográfico denominado PKCS#11.


Tanto el CSP como el PKS#11 específico para el DNI electrónico podrán obtenerse en la dirección www.dnielectronico.es/descargas

Para configurar correctamente el lector de tarjetas con los requisitos exigidos por el DNIe es recomendable seguir las instrucciones del fabricante del dispositivo. En algunos casos, será necesario instalar un driver específico que varía en función del modelo de lector y del sistema operativo.

 

 

 

 

Entradas relacionadas: