Espacio
Espacio
Universidad de Navarra
Sistemas Informáticos
Espacio
Espacio

Espacio

Espacio UN - SI - Servicios - Seguridad - Certificados - Nociones sobre Criptografía
Espacio
Espacio
Espacio Espacio
Espacio
Seguridad - Nociones sobre Criptografía
Espacio
 Espacio

Nociones sobre Criptografía - Criptografía y firma digital:

Espacio¿Qué es la criptografía?

A efectos de la tecnología de la información, la criptografía es una técnica que permite la transformación de textos legibles en secuencias de caracteres no legibles. Esta técnica utiliza algoritmos y funciones matemáticas que permiten transformar la información en un conjunto de símbolos ilegibles y también permiten el proceso contrario.

El origen es muy antiguo y siempre se ha desarrollado de forma paralela a la tecnología militar y en las relaciones internacionales.

Cuando se desea transmitir información entre ordenadores, especialmente a través de redes públicas, se plantea la necesidad de que la transmisión sea segura. La seguridad de la información transmitida tiene dos aspectos:

que sea el destinatario del mensaje el único que pueda leerlo: encriptación
que nadie pueda suplantar la identidad de emisor del mensaje o modificar el contenido de los mensajes que envía.

La criptografía moderna se basa en dos procesos complementarios: la encriptación y la desencriptación, a los que puede denominarse codificación y decodificación o también, cifrado y descifrado.
La encriptación es un proceso por el que un mensaje de texto legible, es transformado en un mensaje ilegible o cifrado mediante una transformación matemática y una clave secreta denominada clave de encriptación.
La desencriptación o descifrado es el proceso inverso a la encriptación; a partir de un texto cifrado y una clave secreta se reconstruye el texto original. Con unos sistemas, la clave de encriptado es la misma que para desencriptar; con otros sistemas, las claves son distintas.

EspacioCriptografía: Algoritmos y funciones

Los sistemas más antiguos de cifrado se basaban en transformación de unas letras por otras. Posteriormente se pasó a hacer trasposiciones de filas y columnas del texto o a cambiar sílabas en función de tablas. En la actualidad la transformación del texto utiliza unos algoritmos o funciones matemáticas muy complejas.
Los algoritmos de encriptación actuales se agrupan en dos grandes clases según que el proceso de encriptación y descifrado use la misma clave o use claves distintas. Si usan la misma clave se denominan algoritmos de claves simétricas; por el contrario, si utilizan claves distintas se les denomina algoritmos de claves asimétricas o algoritmos asimétricos.

La seguridad de la criptografía depende de los siguientes parámetros:

que la clave sea realmente secreta (evidente...)
longitud de la clave
que el algoritmo no sea invertible; es decir, que si se conoce cómo funciona, no se pueda dar la vuelta al proceso sin la llave
que el algoritmo no tenga "puertas traseras"
que el algoritmo no permita descifrar todo el texto si se conoce el contenido de una parte

Debe tenerse en cuenta que las técnicas de cifrado que se resumen en esta nota, son utilizadas mediante programas que hacen muy sencillo e incluso transparente su uso. En muchos casos los programas de encriptado piden una simple contraseña o autorización del usuario para validar la autenticidad e integridad de un mensaje.

EspacioSistemas de claves simétricas

La encriptación y descifrado con claves simétricas (la misma clave) es entre 10 y 100 veces más rápido que un algoritmo de claves asimétricas (distintas).
El esquema habitual de trabajo con claves simétricas es el siguiente:



En esta imagen, un texto "plain text" es transformado según una clave (Ksecret), trasferido, y desencriptado con la misma palabra clave. Esta clave debe haberse sumnistrado por un medio seguro al receptor, de manera que no haya sido "capturada". El problema que se plantea es ¿por qué medio trasmite A la clave a B?

EspacioAlgoritmos simétricos más comunes

Los algoritmos simétricos se clasifican en algoritmos para bloques de texto o flujo de datos. Los primeros trabajan sobre un grupo o bloque de bytes, en tamaños definidos; los segundos encriptan byte a byte toda la información.

DES: Adoptado como estándar ANSI en 1977. En una técnica de cifrado sobre bloques de texto que usa claves de 56 bits.
DESX: variación del DES; introduce un proceso de encriptado en dos fases que hace prácticamente imposible encontrar la clave.
Triple-DES: Algoritmo DES pero utilizando tres claves distintas. Este algoritmo es el más utilizado en transacciones en instituciones financieras.
RC2: Sistema de cifrado en bloques adoptado inicialmente por la agencia RSA; admite claves con longitudes entre 1 y 2048 bits. La versión de exportación limita su uso a claves de 40 bits. Desarrollado por Ronald Rivest.
RC4: Sistema de cifrado de flujo, también adoptado por por la agencia RSA; admite claves con longitudes entre 1 y 2048 bits. La versión de exportación limita su uso a claves de 40 bits. Desarrollado por Ronald Rivest en 1994.
RC5: Sistema de cifrado en bloques adoptado inicialmente por la agencia RSA; admite claves con longitudes entre 1 y 2048 bits. Permite que el usuario varíe el tamaño del bloque que se encripta en cada paso. Desarrollado por Ronald Rivest.

Espacio¿Es descifrable un mensaje encriptado con clave simétrica?

Para un algoritmo probado, como es el RC4, el problema de la seguridad depende de la longitud de la clave. Para claves de 40 bits de longitud, hay 2^40 claves posibles (1,1x10^12). Un ordenador podría tardar unas horas en conseguir la clave; si se emplea una clave de 128 bits, las claves posibles son 2^128 (3,4x10^38), y el tiempo necesario para averiguar la clave sería del orden de la edad del universo (1,8x10^10 años)...
Estos datos suponen que se trata de un ataque del tipo ensayo-error. Con métodos más refinados, por ejemplo, si se conoce parte del texto encriptado, el proceso de búsqueda puede refinarse y acortarse.

EspacioSistemas de claves asimétricas

Los algoritmos asimétricos basados en claves distintas (normalmente dos llaves) son lentos pero tienen la ventaja de que una de las claves puede ser conocida por cualquiera; el mensaje encriptado por esa clave "pública" sólo puede ser descifrado por la otra clave, privada, conocida sólo por el destinatario: de ahí el término asimétrico. La llave pública es conocida por cualquiera; la privada sólo es conocida por el receptor.



Si A desea enviar un mensaje a B, A encripta el mensaje con la clave pública (KB,public) de B; al recibir el mensaje, B lo descifra con su clave privada (KB,private).
Por el contrario, si B desea enviar un mensaje a A, B encripta el mensaje con la clave pública (KA,public) de A; al recibir el mensaje, A lo descifra con su clave privada (KA,private).



EspacioAlgoritmos asimétricos más comunes

La característica básica de estos sistemas es que hay dos claves: la pública y la privada. La clave pública se genera a partir de la clave privada. Los principios de esta técnica han fueron desarrollados por Diffie y Hellman (Stanford University, 1975). Como estos algoritmos siempre presuponen la existencia de una clave pública, se les denomina también sistemas de llaves públicas.
Los algoritmos asimétricos se clasifican en algoritmos para bloques de texto o flujo de datos. Los primeros trabajan sobre un número de bytes, en tamaños definidos; los segundos encriptan byte a byte toda la información.

Los algoritmos más utilizados son los siguientes:

Diffie-Hellman key exchange: propiamente es un sistema para generar e intercambiar una llave compartida por un canal no seguro.
RSA: Sistema de claves públicas desarrollodo por Rivest, Shamir y Adleman (MIT). Es utilizado tanto para encriptar información como para firma digital. Los sistemas de firma digital se utilizan para garantizar que el autor de la información es el firmante (es decir, que la información no ha sido modificada por un tercero). La clave puede tener una longitud variable y puede ser tan grande como se desee.
DSS: El sistema de firma digital (digital signature system) fue desarrollado por la Agencia de Seguridad Nacional de los EE. UU. (NSA) y puede utilizar claves entre 512 y 1024 bits de longitud..

La seguridad de estos sistemas depende de la longitud de la clave.

EspacioSistemas de transmisión seguros basados en la utilización conjunta de claves asimétricas y simétricas


Los sistemas de transmisión de claves (Difie-Hellman) utilizan combinados ambos algoritmos de encriptado: la criptografía asimétrica (step 1) para transferir la clave simétrica (Ks), y la criptografía simétrica -mucho más rápida- para transferir la información. La clave simétrica (Ks) se transfiere encriptada en la primera fase, pues es necesaria para encriptar/desencriptar el flujo de datos posterior.

Paso 1 (step 1): A genera la clave simétrica (Ks) que deben utilizar A y B en sus transmisiones en esa sesión. Las razones para utilizar una clave simétrica son la velocidad y que, para mayor seguridad, se genera para el caso. Para enviar esta clave de manera segura a B, A utiliza la clave asimétrica pública de B (Kb, public); cuando B recibe la clave Ks encriptada con su clave pública, la descifra con la clave asimétrica privada (Kb, private) que sólo posee B.
Paso 2 (step 2): Una vez que A y B poseen la misma clave simétrica (Ks) la trasmisión se realiza encriptando toda la información con esa clave en ambos sentidos...

EspacioDigest

Un digest es una función matemática que produce una secuencia de caracteres, normalmente entre 128 y 256 bits de longitud, a partir de un archivo de información inicial de cualquier longitud.
Los digest tienen las siguientes propiedades:

Cada bit de salida del digest es influenciado por cada bit de entrada
Para cualquier bit que se cambie a la entrada, cada bit de salida tiene al menos un 50% de probabilidades de cambiar
Dado un fichero (texto) de entrada, debe ser informáticamente inviable encontrar otro texto de entrada que de el mismo producto en el digest.



Las funciones digest más utilizadas son las siguientes:

HMAC: Hassed Message Authentication Code, usa -además- una clave secreta.
MD2: Message Digest #2, desarrollado por Ronald Rivest, produce un digest de 128 bits, aunque requiere bastante tiempo para calcularse.
MD4: Desarrollado por Ronald Rives como alternativa al MD2. Ha resultado ser un tanto inseguro.
MD5: Más seguro que el MD4. También genera un digest de 128 bits.
SHA: Desarrollado por la NSA, produce un digest de 160 bits.

Además, siempre es posible utilizar un digest dentro de un mensaje y encriptar el digest con una clave; de esta forma se puede firmar digitalmente el mensaje. También se utilizan para generar claves a partir de frases; de este modo el usuario no tiene que recordar una clave compleja, ilegible y larga (condiciones para que sea segura), si no una frase tan larga (y familiar) como quiera, que es transformada por un digest en su clave para descifrar.

EspacioInfraestructura para llaves públicas


Los sistemas de llaves públicas requieren que cada usuario genere dos claves, una pública y una privada. Estas claves tienen las siguientes propiedades :

la clave privada, se usa para desencriptar los mensajes recibidos y para firmar digitalmente
la clave pública, se utiliza para enviar mensajes encriptados al usuario propietario de la llave y para verificar la firma digital del usuario propietario

Las claves son bloques de caracteres ilegibles. A continuación se puede ver un ejemplo de una clave pública:

Type Bits/KeyID Date User ID
pub 1024/4C1FD235 1997/07/24 Pepe Díaz <pepe@unav.es>

-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: 2.6.3ia

mQCNAzPXHYIAAAEEANRSmmsSkdLQMfRmjsVYdV63NTQvKNEtcIT9JwEQebuyXFds
24JSj8pLbqOfxZYFZYe9c5uY6PjmiYMRz5yGdNYrEwXi30TwQVi9s/ZHi+sezkqN
PdYJZ7Yt6CplEDEV5BrZXKWHd5KSk/CV0Q+SIu/eImFS9jRic4svJ1NMH9I1AAUR
tDBMdWNpYSBkZSBsYSBJZ2xlc2lhIDxsaWdsZXNpYUBtYWlsMi5jdGkudW5hdi5l
cz6JAJUDBRAz1x2Diy8nU0wf0jUBAYg1A/98Oy4fHbw3MriQjt5KrqMmsOYAxXyA
iEz2MYYZI2aSrzyzibkFbCKeMXL73Zp067lfa7LLC/F5QWkzRCBhJNlXCwHkfkD2
ti0AZsO/qttN1RGQjNNUkEJMQ31HunyEvQfc9bxsj2nPy661lhrTmntBVoFbp/j6
g9/5nOM4VnjlDA==
=6IT8
-----END PGP PUBLIC KEY BLOCK-----

La clave pública es la que el usuario distribuye a todo aquel que quiera enviarle un mensaje cifrado. No hay ningún peligro en dejar a la vista la clave pública, ya que con ella sólo es posible encriptar mensajes. Lo importante es mantener bien guardada la clave privada porque con ella -y sólo con ella- es posible descifrar los mensajes enviados.

Un mensaje cifrado con una llave pública, sólo puede ser descifrado con la llave privada que generó la llave pública. Por lo tanto una llave pública sirve para codificar un mensaje y la privada para descodificarlo. Para mayor seguridad, el mensaje se codifica en relación al mensaje que se escribe, de manera que no es posible a partir de la clave pública y un texto encriptado reconstruir la clave privada en un tiempo asequible para un ordenador.

EspacioFirma digital

Al comienzo de este documento se habló de la firma digital. A continuación se describe esta técnica, que es un tipo especial de encriptación.
Más arriba se ha visto cómo se codifica un texto. Supóngase por un momento que se quiere garantizar la autenticidad, aunque no importe que alguien pueda leer el contenido del mensaje enviado, pero se quiere asegurar que el texto no es modificado después del envío. Para este fin se utiliza una combinación de un digest y la encriptación con clave pública.
La firma digital consiste en añadir al mensaje, un digest encriptado del mensaje original; basta que alguien añada o cambie una sola letra, para que el digest del texto, no coincida con el digest encriptado del mensaje original.

Ejemplo de un mensaje ("hola.") firmado:

-----BEGIN PGP SIGNED MESSAGE-----
hola.
-----BEGIN PGP SIGNATURE-----
Version: 2.6.3ia
Charset: cp850

iQBVAwUBM9dUlgnSjkRiXNfNAQE1XAIAjj+lWg1yxeHX6dsYzCojV9FjRTyXPiOA
v/OtJRsaYeijFo7lZmiMhDG/KreWrAgNDSSIWR5+tPc9uUnf5Q67+w==
=ZQED
-----END PGP SIGNATURE-----

La firma de la misma persona en otro mensaje ("adios"), tiene un aspecto bastante diferente, pues la firma digital depende del contenido:

-----BEGIN PGP SIGNED MESSAGE-----
adios
-----BEGIN PGP SIGNATURE-----
Version: 2.6.3ia
Charset: cp850

iQBVAwUBM9dU5gnSjkRiXNfNAQE+OwIAo5urpTRPbrq4sFf2Mbd9MlK/g9UppMqr
Dv9QwM843LU2yguDlmB/FIC8xsr/bd+aSiPBnCrNxN5HvP5eeQT3YA==
=549m
-----END PGP SIGNATURE-----

Si alguien copiara la firma y la pegara en otro mensaje, al verificar el destinatario la firma del mensaje recibido, le indicaría que no es la firma correspondiente a ese usuario en ese mensaje. Como resultado del chequeo, obtendríamos el siguiente aviso si fuera correcta:

File has signature. Public key is required to check signature..

Good signature from user "Pepe Díaz <pepe@unav.es> ".
Signature made 1997/07/24 13:13 GMT using 512-bit key, key ID 625CD7CD

En cambio, si la firma fuera incorrecta, el mensaje sería el siguiente:

File has signature. Public key is required to check signature...

WARNING: Bad signature, doesn't match file contents!
Bad signature from user "Pepe Díaz <pepe@unav.es> ".
Signature made 1997/07/24 13:13 GMT using 512-bit key, key ID 625CD7CD

Es posible utilizar simultáneamente la encriptación y la firma digital de los mensajes, asegurando así que nadie lee el mensaje, y que está integro, sin modificación alguna.

Antes se ha explicado que la clave pública sólo sirve para encriptar mensajes que sólo podrán ser desencriptados con la clave privada; con el tema de las firmas digitales ocurre exactamente al contrario. Sólo quien tenga la clave privada (es decir, su propietario), puede firmar los mensajes, encriptando entonces su nombre con su clave privada, y sin embargo debe ser quien los recibe el que debe saber quien se lo manda para lo que utiliza la clave pública de quien le envió el mensaje descifra la firma digital.

Existen varios sistemas, pero el más conocido es el PGP (Pretty Good Privacy), que no es sino un conjunto de algoritmos que se dedican a transformar el texto de entrada en el jeroglífico que hemos presentado en ejemplos anteriores. Esta aplicación comenzó a funcionar en 1.991 y su éxito se debe a que es totalmente gratuito, existe para varias plataformas, es fiable.

EspacioCertificados digitales

Todas las técnicas descritas están encaminadas a garantizar que un mensaje ha sido mandado por un usuario o que no son leídos más que por ese usuario. Sin embargo, queda un problema por resolver: ¿ese usuario es quien dice que es?
Si alguien es suplantado por "X" desde el inicio de las transmisiones, esto es, "X" nos dice que es "A", nos da su clave pública, etc., todo las técnicas anteriores son inútiles, porque "A" y "B" no se están comunicando. Este es el motivo por el que se aconsejaba difundir al máximo las claves públicas, porque cuanta más gente la tenga, más improbable es que esa persona sea suplantada..
Para evitar esto hay entidades que mantienen una base de datos con claves públicas de usuarios que previamente justifican su identidad por medio de documentos. Estas empresas, denominadas autoridades certificadoras ("CA"), expiden un documento denominado certificado que puede ser:

Certificados para empresas certificadoras: corresponden a entidades que certifican (pueden ser privadas o públicas, por ejemplo, una universidad).
Certificado para servidores: certifica que un servidor es de la empresa que dice y que el identificador del servidor es correcto
Certificados personales: el de los usuarios de la red, que garantiza que una dirección de correo y clave pública corresponden a una persona real y cierta.
Certificados para fabricantes de programas: se utilizan para "firmar" el software y garantizar así que no ha sido alterado (p. ej. con virus virus)

Las CA pueden revocar un certificado, cuestión necesaria cuando se olvida la contraseña o la seguridad de la clave privada está comprometida, o se ha estropeado el par clave pública/privada, o la seguridad de la clave privada del CA está comprometida.

El protocolo estándar más utilizado en Internet para certificar es el X.509v3. El aspecto típico que presenta un certificado de esta clase es el siguiente:

Certificate:
Data:
Version: 3 (0x2)
Serial Number: 1 (0x1)
Signature Algorithm: md5WithRSAEncryption
Issuer: C=ES, ST=Navarra, L=Pamplona, O=Universidad de Navarra,
OU=CTI, CN=CA/Email=pepe@unav.es
Validity
Not Before: Aug 4 12:32:00 1997 GMT
Not After : Aug 4 12:32:00 1998 GMT
Subject: C=ES, ST=Navarra, O=Universidad de Navarra, OU=CTI,
CN=frodo.cti.unav.es/Email=pepe@unav.es
Subject Public Key Info:
Public Key Algorithm: rsaEncryption
RSA Public Key: (1024 bit)
Modulus (1024 bit):
00:cb:2b:e0:6f:9d:e1:9b:4f:e4:9f:c7:03:9c:95:
26:b2:75:9c:02:33:1a:88:7c:aa:60:4a:8c:58:59:
02:01:75:88:54:2f:2c:3d:7c:e6:29:24:1c:ae:2b:
c5:8d:9c:97:01:f3:27:1b:87:61:08:03:9c:53:51:
67:14:8c:58:24:1a:53:83:42:bd:47:9f:ea:0e:33:
68:35:b8:19:6e:03:ab:1b:31:4d:1a:46:06:d7:4c:
02:3e:3a:35:18:6a:04:2b:5c:cf:93:58:b8:d9:da:
b6:90:db:94:b6:52:68:55:18:c2:3d:5c:58:34:4d:
15:1d:5f:51:ba:2d:63:5c:af
Exponent: 65537 (0x10001)
X509v3 extensions:
Netscape CA Revocation Url:
.#http://www.cryptsoft.com/ca-crl.pem
Netscape Comment:
..This is a comment
Netscape Cert Type:
...@
Signature Algorithm: md5WithRSAEncryption
2d:79:34:57:61:b1:33:e5:06:17:92:86:b7:54:a8:85:cc:50:
e4:40:28:c0:48:15:07:fe:bc:bd:51:2a:46:c6:d7:04:61:56:
32:ea:87:bb:b0:28:e9:6c:f6:1b:71:29:2a:49:c1:29:b3:19:
83:f1:48:4b:a5:6a:f4:5e:42:a9:0b:87:8a:74:75:b7:53:1e:
0a:34:9d:44:ea:15:ca:cf:eb:5c:97:de:6d:84:aa:c6:5a:12:
ab:39:c9:e1:23:01:3b:e3:b2:b9:7f:24:b8:87:c0:71:fc:01:
2b:db:72:e5:6e:4d:66:54:60:66:7e:e7:f2:7d:04:8f:d1:bd:
4d:4b

Un certificado X.509v3 tiene los siguientes elementos:

número de versión
número de serie
información sobre la identidad del usuario (e-mail, etc.)
algoritmos y parámetros de encriptado que son utilizados por el certificador
firma de la autoridad certificadora
periodo de validez
información sobre la clave pública: algoritmo, parámetros, y la llave pública propiamente dicha.
clave pública del CA

La función del certificado es garantizar que la clave pública corresponde a un usuario/empresa/sistema determinado y perfectamente identificado. La autoridad cerificadora pide el material necesario para garantizarlo.
El usuario que pide un ceritificado, envia sus datos, dirección de correo, postal, y clave pública.
La empresa CA firma digitalmente, con su clave privada, los datos que componen el certificado; la firma digital del CA consiste en un digest del certificado, encriptado con su clave privada. La clave publica del CA permite comprobar que el digest encriptado (fingerprint), corresponde al texto que compone ese certificado y está encriptado por esa empresa, es decir, que es auténtico.
Conviene recordar que el uso de estos certificados es muy sencillo. De hecho, los browsers (navegadores) de Internet más comunes (Netscape, Explorer, etc.), gestionan automáticamente su utilización; para utilizar un certificado el browser pide una clave para acceder a él.

EspacioSeguridad en los servicios de conexión: SSL


Hasta ahora se ha hablado de seguridad a la transmisión de información entre usuarios finales: de transmitir información y asegurar la autenticidad entre dos puntos. La pregunta que se plantea ahora es: ¿pueden aplicarse las técnicas de seguridad anteriores a servicios estándar de Internet como el mail, el web, etc.? -Sí.

Se ha desarrollado un protocolo denominado Secure Sockets Layer (SSL), que gestiona la seguridad en el nivel inmediatamente superior al Network Layer (cfr. niveles OSI en los servicios de red), es decir, entre la conexión a Internet (protocolo TCP/IP) y las aplicaciones (servicios) que utiliza el usuario. De esta forma es posible garantizar una conexión segura para distintos servicios de red.

Básicamente, el SSL facilita un canal de comunicación seguro, con encriptación y certificación de los datos que se transmiten.

Las carterísticas del SSL son las siguientes:

seguridad justo por encima del Network Layer
puede ser utilizado por los servicios principales: SMTP (mail), HTTP (web), NNTP (news y grupos de discusión), FTP (transferencia de ficheros),...
autentificación (comprobación de la firma digital) bidireccional mediante certificados RSA, X.509, etc.
facilita un canal encriptado para el envío de datos "sensibles"
es posible usar SSL combinado con otros sistemas de seguridad, por ejemplo, sockets

Los programas modernos con los que se accede a los distintos servicios, también pueden utilizar los protocolos X509.v3 y SSL de forma transparente para el usuario final. Obviamente, antes de cada conexión es necesario facilitar la contraseña correspondiente para poder utilizar el certificado personal, firma digital, encriptación, etc.

EspacioReferencias y lugares de interés

RedIris
Netscape
Verisign
Tawthe

Nociones de Seguridad

Espacio Inicio página
Espacio
Espacio
Espacio
Avisos Informáticos

Espacio Cuenta de correo

(Solo usuarios Unav)
Espacio
Espacio
 
 
Espacio
Espacio
Espacio
Espacio guión Universidad de Navarra - Red Universidad - Normas de Uso - Protección de Datos
948425600 -