CRIPTOGRAFIA
PARA EMPEZAR TENDREMOS UN VÍDEO DE INTRODUCCIÓN
Definiciones básicas:
La criptografía proviene de las palabras, "cripto" ocultar y "graphos" escritura, entonces el significado es "el arte de ocultar mensajes". La criptografía ha sido usada a lo largo de toda la historia de la humanidad. Por su naturaleza, había sido usada principalmente en guerras, o en medios de comunicación en agencias de seguridad nacional de países influyentes en el ámbito mundial. Sin embargo en la actualidad es usada ampliamente en muchas aplicaciones de uso común, como: Internet, teléfono, radio, televisión, comunicación satelital, etc.
El objetivo principal de la criptografía en mandar un mensaje de de manera "oculta", llamado "cifrado" o "encriptado", y que sólo el receptor con una llave ó clave secreta pueda "descifrarlo" y leer su contenido.
Básicamente hay que partir de los elementos básicos de cualquier comunicación, como lo son: un emisor, un receptor, un mensaje, y un canal de transmisión del mensaje.
El objetivo principal de la criptografía en mandar un mensaje de de manera "oculta", llamado "cifrado" o "encriptado", y que sólo el receptor con una llave ó clave secreta pueda "descifrarlo" y leer su contenido.
Básicamente hay que partir de los elementos básicos de cualquier comunicación, como lo son: un emisor, un receptor, un mensaje, y un canal de transmisión del mensaje.
Entonces podemos definir como elementos básicos que intervienen en la criptografía a: El mensaje "original", el método de cifrado, la llave de cifrado, el mensaje cifrado, el método de descifrado, la llave de descifrado, y el mensaje descifrado. En criptografía se supone siempre la existencia de un "agente" malicioso que tiene la capacidad de interceptar el mensaje enviado y quiere saber el contenido del mensaje. El objetivo principal de la criptografía es evitar que el interceptor conozca el contenido del mensaje.
Hoy día la criptografía tiene un significado moderno, y la podemos definir como la ciencia que estudia los problemas de seguridad en la transmisión de la información por medio de un canal que se supone siempre inseguro. Los principales problemas que existen en la transmisión de la información son: la confidencialidad, laautenticidad, la integridad, la disponibilidad y el no rechazo.
- Confidencialidad: la información es confidencial, sí solo las personas autorizadas tienen acceso al contenido de la información.
- Integridad: la información es integra, sí existe un método con el cual se puede verificar si la información transmitida ha sido alterada o borrada. Ya que es "imposible" impedir que sea interceptada, y por lo tanto alterada o eliminada.
- Autenticidad: se dice que un lado de la comunicación (emisor o receptor) puede verificar la autenticidad del otro lado, si existe un método de verificación que determina que el otro lado es realmente quien dice ser.
- No-rechazo:se dice que un acto no puede ser rechazado por el lado A de la comunicación, si existe un método que le comprueba al otro lado, el lado B, que ese acto lo realizó realmente el lado A.
- Disponibilidad:se dice que la información es disponible si está accesible a toda entidad que la requiera, ya sea una persona o un dispositivo y que cumpla los objetivos que la misma entidad le provee .
- En Internet, en el comercio electrónico, el protocolo se llama SSL (Secure Sockets Layer ).
- En teléfonos celulares, el protocolo se llama GSM (Global System for Mobile communications ).
- Para conectar dos servidores a largas distancias de manera segura, VPN (Virtual Private Network)
- Para conectar computadoras manera segura, con el protocolo IPsec (Internet Protocol Secure)
- Para conectar un cliente con un servidor de manera segura con el protocolo SSH (Open Secure Shell)
- Para usar teléfono por Internet de manera segura, VoIP (Voice over Internet Protocol )
- Para mandar e-mail de manera segura, S-MIME (Secure / Multipurpose Internet Mail Extensions)
- Para usar un PDA(Personal Digital Assistant) de manera segura, WTLS (Wireless Transport Layer Security)
- Para conectar una portátil a internet de manera segura, con el protocolo WEP (Wired Equivalent Privacy ).
- Para ver videos, televisión por Internet, por ejemplo, con el protocolo BitTorrent
- Para etiquetas electrónicas, Radio Frequency Identification (RFID), con el protocolo TI-RFid .
- Para comunicación satelital con el protocolo GMPCS (Global Mobile Personal Communications by Satellite).
- Para las "Facturas Electrónicas", con la firma digital.
- Para comprar, vender o mandar dinero por Internet con Paypal.
- En los cajeros automáticos ATM (Automatic Teller Machine).
- En la política con las elecciones electrónicas (electronic voting).
- En el derecho con los notarios electrónicos (electronic notary).
- En casinos electrónicos por Internet.
- En tarjetas inteligentes electrónicas (Smart Cards).
La criptografía también ha sido estrella de cine en varias películas. Algunas de ellas si bien la promueven, se alejan un poco de la realidad. Algunas películas que tiene el tema de la criptografía:
- Midway, Jack Smight (Dirección), Charlton Heston, Henry Fonda, 1976.
- Sneakers, Phil Alden Robinson (Dirección), Jo Marr, Gary Hershberger, 1992.
- Breaking the code, Herbert Wise (Dirección), Derek, Alun Armstrong, 1996.
- U-571, Jonathan Mostow (Dirección), Matthew McConaughey, Bill Paxton, 2000.
- Enigma, Michael Apted (Dirección), Dougray Scott, Kate Winslet, 2001
- Pearl Harbor, Michael Bay (Dirección), Ben Affleck, Josh Hartnett, 2001
- The Sum of All Fears (La suma de todos los miedos), Phil Alden Robinson (Dirección), Ben Affleck, Morgan Freeman, 2002.
- Windtalkers (Códigos de Guerra), John Woo (Dirección), Nicolas Cage, Adam Beach, 2002.
- Da Vinci Code, Ron Howard (Dirección), Tom Hanks, Audrey Tautou, 2006.
- The Bletchley Circle, Rachael Stirling, Julie Graham, Sophie Rundle, 2012 TV serie.
- the Imitation Game, Morten Tyldum (Dirección), Benedict Cumberbatch, Keira Knightley, 2014.
En contraparte a poder dar seguridad a la transmisión de la información esta el Criptoanálisis, que es la ciencia dedicada a obtener información de una transmisión interceptada sin el conocimiento de la clave.
Se conoce entonces a la criptología, al conjunto de la criptografía y el criptoanálisis.
De hecho, es muy posible que en la actualidad se haya especializado no solo la criptografía y el criptoanálisis puro, sino también la intercepción en las comunicaciones. Esto, está muy ligado al espionaje. De la misma manera que la criptografía existen algunas películas que recrean sus argumentos con interceptar información.
- Echelon Conspiracy, Greg Marcks (dirección), Shane West, Edward Burns, 2009.
- The Bourne Ultimatum, Paul Greengrass (Dirección), Matt Damon, Julia Stiles, 2007.
- The Listening, Giacomo Martelli (Dirección), Michael Parks, Maya Sansa, 2006
- Enemigo público, Tony Scott (Dirección), Will Smith, Gene Hackman, 1998
- Eagle Eye , D.J. Caruso (Dirección), Shia LaBeouf, Michelle Monaghan, 2008.
Las funciones de hash de una vía (one-way) son una construcción criptográfica empleada en muchas aplicaciones. Son usadas junto con los algoritmos de clave pública paraencripción y firma digital.
Son usadas en la verificación de integridad, en autenticación. Conforman aplicaciones de muchos protocolos diferentes. Mucho más que los algoritmos de encripción, las funciones de hashing de una vía son los verdaderos caballos de trabajo de la criptografía moderna.
En 1990, Ron Rivest (la R de RSA) inventó la función hash MD4. En 1992, mejoró el MD4 y desarrolló otra función hash: MD5. En 1993, la Agencia Nacional de Seguridad (NSA) (organismo dependiente del gobierno de EE.UU.) publicó una función hash muy similar al MD5, llamada SHA (Secure Hash Algorithm). Cuando, en 1995, se descubrieron debilidades, la NSA hizo cambios al SHA. El nuevo algoritmo fue llamado SHA-1. Hoy la función más popular de hash es SHA-1.
Las funciones de hash de una vía deben tener dos propiedades:
- Ser de una sola vía. Esto significa que es fácil tomar un mensaje y computarlo en el valor del hash, pero es imposible tomar el valor del hash y recrear el mensaje original. (Por imposible se debe entender no puede ser hecho en una razonable cantidad de tiempo).
- Estar libres de colisiones. Quiere decir que es imposible encontrar dos mensajes que generen un digesto del mismo valor.
Quebrar una función hash significa mostrar que cada una o ambas de estas propiedades no son ciertas.
En febrero del 2005, tres criptógrafos chinos mostraron que el SHA-1 no está libre de colisiones. Esto es: desarrollaron un algoritmo para encontrar las colisiones más rápido que la fuerza bruta.
SHA-1 produce un digesto de 160-bit. Cada mensaje hasheado genera un número de 160-bit. Teniendo que hay infinito número de mensajes que se resumen en cada valor posible, hay infinito número de posibles colisiones. Pero debido a que el número de posibles digestos es también muy grande, la posibilidad de encontrar uno por azar es increíblemente pequeña (uno en 2**80, para ser exactos). Si se hace hashing de 2**80 mensajes aleatorios, podrá encontrar un par cuyo digesto es el mismo valor. Esta es la forma en que por fuerza bruta se encuentran las colisiones, y dependen únicamente de la longitud del valor del hash. "Quebrar" la función hash significa contar con la posibilidad de encontrar colisiones más rápido que eso. Y esto es lo que los chinos hicieron.
Ellos encontraron colisiones en el SHA-1 en 2**69 cálculos, cerca de 2.000 veces más rápido que la fuerza bruta. Ahora, esto es justo en el lejano borde de las facilidades de la actual teccnología. Dos cálculos masivos comprables ilustrarán este punto.
En 1999, un grupo de criptógrafos construyeron un DES cracker. Tenía la posibilidad de ejecutar 2**56 operaciones DES en 56 horas. El costo para construir la máquina fue de $ 250.000(dólares estadounidenses), los duplicados podrían haber sido hechos por 50 -75 mil dólares. Extrapolando esta máquina empleando la ley de Moore, una máquina similar construida hoy podría ejecutar 2**60 cálculos en 56 horas, y 2**69 cálculos en 3,25 años. O una máquina que cueste $25 millones - $38 millones podría ejecutar 2**69 cálculos en las mismas 56 horas.
Del lado del software, la comparación es una búsqueda de una clave de 2**64. Un artículo lo puso de esta forma en el 2002: "En el curso de la competencia, alrededor de 331.252 usuarios participantes permitieron que sus ciclos de procesador sin uso fuese empleados para descubrir la llave. Después de 1.757 días (4,81 años), un participante en Japón descubrió la llave ganadora." La ley de Moore indica que hoy este cálculo debería llevar un cuarto de su tiempo -- o habría requerido un cuarto del número de computadoras es decir hoy un cálculo de 2**69 debería tomar ocho veces más tiempo o requerir ocho veces más computadoras.
Firma Digital
Es un medio para que los creadores de un mensaje, archivo u otra información codificada, vinculen digitalmente su identidad a la información. Se utilizan cuando los datos se distribuyen como texto no cifrado.
Lo que se busca al utilizar una firma digital, es que:
- El receptor pueda verificar la identidad del transmisor.
- El transmisor no pueda repudiar después el contenido del mensaje.
- El receptor no haya podido confeccionar el mensaje él mismo.
- Ninguna parte del mensaje que se ha recibido ha sido modificada.
Creación y Envío de Firmas Digitales
El proceso para crear una firma digital implica la transformación de información y algunos datos confidenciales del remitente en una etiqueta o firma. Se crean combinando la tecnología de claves públicas con algoritmos Hash.
Figura 3.4 Firmas Digitales
Los pasos que deben seguirse para su creación, envío y comprobación son:
- El remitente aplica un algoritmo Hash a los datos para generar un valor resumen.
- El remitente transforma el valor en una firma digital aplicando cifrado de clave privada.
- El remitente envía al destinatario los datos originales, la firma y su certificado de autenticidad.
- El destinatario aplica el algoritmo Hash a los datos y genera su propio valor resumen.
- El destinatario compara la firma digital (la obtiene utilizando la clave pública del remitente) y el valor que generó en el paso anterior y sí no coinciden (cuando el valor del remitente es diferente al del destinatario), el mensaje o la huella enviada han sido modificados y por lo tanto la firma no es correcta.
Certificado Digital
Es una declaración firmada digitalmente que proporciona un mecanismo para establecer una relación entre una clave pública y la entidad que posee la clave privada que le corresponde. Se utiliza para autenticar y asegurar el intercambio de información en Internet, Extranet e Intranets.
Los certificados pueden emitirse con objetivos diferentes como:
- Autenticación de servidores Web
- Seguridad del correo electrónico
- Seguridad IP (IPSec)
- Nivel de sockets seguros (SSL/TLS)
- Firma de código e información enviada
Este certificado es firmado por una CA (Certificate Authoritym / Autoridad Certificadora), y se rige por los estándares definidos por ITU-T X.509.
Figura 3.5 Certificados Digitales