6. Estándares y aplicaciones criptográficos

Con la criptografía pública no solo se puede cifrar la información, además se puede autentificar.

1.FIRMA DIGITAL

La firma digital es un método de autenticación de documentos electrónicos. Suele usarse para autentificar mensajes, para validar compras por internet, para realizar transferencias de fondos bancarios y para otras transacciones de negocios. A nivel legal la firma constituye en la mayoría de casos una prueba de indudable autoría del envío de un correo electrónico, es semejante a la firma tradicional de puño y letra.
Además de autenticación, con la firma digital, podemos conseguir inalterabilidad (saber cuando un documento ha sido alterado) y no-repudio (el autor es consciente de lo que firma y no se echará atrás en un futuro).

FIRMA CON CLAVE PÚBLICA

Este método de firma digital consiste en enviar el mensaje cifrado con la clave privada del emisor. Una vez el receptor recibe el paquete solo tiene que descifrar el mensaje cifrado con la clave pública del emisor y así poder estar seguro de quien se lo ha enviado.
El método de la firma digital  asegura el no repudio, ya que sólo el dueño de una llave privada puede encriptar un documento de tal forma que se pueda desencriptar con su llave pública, lo que garantiza que ha sido A y no otro el que ha enviado dicho documento.
También garantiza la integridad de los datos, ya que si un texto es modificado no coincidirá con el cifrado.
 

FUNCIONES HASH

Es un método que surge a raíz del problema de lentitud del anterior. Cuando se trata de un mensaje de bastante longitud, el descifrar todo el texto es una tarea muy lenta que es innecesaria y no tiene porque sufrir el receptor. Además puede que no posea la clave pública del emisor con lo cual no podría leer el mensaje. El receptor tiene que poder leer el mensaje aunque luego no pueda autentificarlo.

Las funciones hash son unas funciones matemáticas que realizan un resumen del documento a firmar. Comprimen un documento de cualquier tamaño en un único bloque de longitud fija, bloque cuyo contenido es ilegible y no tiene ningún significado. Las funciones hash son irreversibles, no hay forma de sacar el mensaje original a partir de un resumen. Son de dominio público.

Estas funciones tienen que cumplir: dado un mensaje y su correspondiente resumen, cualquier cambio, por pequeño que sea, en el mensaje tiene que producir una función resumen con diferencias enormes a la primera. También dado un resumen, debe ser generalmente difícil encontrar un texto que lo genere.

No se puede usar una firma de un documento para firmar otro. Las firmas son únicas para cada documento y firmante. Así no se puede coger la firma de un documento y añadirsela a otro.

Normalmente dan resúmenes de entre 128 y 160 bits, pero nunca menos de 100.

Para firmar un mensaje con este método:

-- Dado un mensaje m, se calcula su resumen H(m).
-- Ciframos con nuestra clave privada el resumen Ek(H(m)).
-- Se manda el mensaje en claro, m,  junto con el resumen cifrado, Ek(H(m)).
-- El receptor para comprobar la firma tiene que descifrar con la clave pública del emisor el resumen cifrado, Dp(Ek(H(m))). Así obtendrá el resumen del mensaje. Luego tendrá que aplicar la misma función resumen que haya aplicado el emisor, al mensaje en claro, m, que le ha llegado.
-- si coinciden los dos resúmenes, entonces puede estar seguro de que le que lo ha enviado es el propietario de la clave privada. Si no coinciden puede ser por dos motivos, o bien el emisor no es quien dice ser o bien el mensaje ha sido modificado y por lo tanto las funciones resumen no concuerdan.

ALGORITMO MD5 (message digest 5)

Es un algoritmo de generación de resúmenes, muy popular ya que fue incluido en las primeras versiones del PGP. Fue creado por Ron Rivest. Procesa los mensajes de entrada en bloques de 512 bits y produce un resumen de 128 bits.

El algoritmo ha mostrado ciertas debilidades, se han conseguido crear colisiones aunque por medio de ataques parciales. A pesar de todo esto se sigue usando bastante.

ALGORITMO SHA (secure hash algorithm)

Es la función de resumen estándar. Fue desarrollado por la NSA. El Sha-1 genera firmas de 160 bits a partir de bloques de 512 bits del mensaje original. La versión actual se considera segura y es utilizada.
 

CRC

Son códigos que aseguran la integridad de un archivo
 
 

2. INFRAESTRUCTURAS DE CLAVE PÚBLICA
 

Surge un problema a raíz del uso de las firmas digitales, que es el de la suplantación. ¿como sabe el receptor que la clave pública del emisor es realmente su clave pública?. Puede que estemos usando las claves públicas equivocadas. Así tendremos problemas a la hora de la autenticación y a la hora de enviar mensajes cifrados.
Por ejemplo se podría dar este caso:
-- Un intruso crea dos pares falsos de claves  Afs,Afp,Bfs,Bfp y sustituye las claves verdaderas Ap y Bp por las que acaba de crear.
-- A cifra un mensaje con la clave pública falsa de B, Bfp(m), y se lo envía a B.
-- El intruso intercepta el mensaje y lo descifra con la clave privada falsa de B, Bfs(Bfp(m))=m.
-- El intruso cifra el mensaje con la clave pública verdadera de B, Bp(m), y lo envía.
-- B descifra el mensaje con su clave privada Bs, Bs(Bp(m))=m.
Así el intruso puede leer todos los mensajes entre A y B y ellos no enterarse nunca. Con la firma digital sucede lo mismo.

En un principio no hay manera de saber si una clave publica pertenece a alguien o no, salvo que la entrega de la clave sea mediante contacto directo.
Si no es posible el contacto directo, se puede usar la confianza. Pero ¿en quien confiar?. Aquí surge la figura del notario en internet.. A esto se le denomina confianza vertical. El notario solo interviene el momento en el que se le testifica que la clave pública de B es de B realmente.
PGB es una alternativa gratuita a los notarios, se basa en la relación de confianza entre amigos, buscando intermediarios. Tiene asignados grados de confianza en las claves. Puede haber claves de las que te fíes más y otras de las que te fíes menos. Se le denomina confianza horizontal.

Tienes que tener mucho cuidado con tu clave privada porque si la pierdes alguien puede usarla con malas intenciones y hacerte mucho daño, suplantando tu identidad. Cuando se pierde la clave esta se puede revocar para que no puedan usarla. Se revoca la cláusula notarial en la que dice que tu eres el propietario de la clave y todo lo que vaya firmado con esa clave después de esa fecha ya no se tomará como válido. Lo que estaba firmado antes de esa fecha seguirá teniendo validez.
 

CERTIFICACIÓN x509

El estándar de certificados x509 de iso, establece una autoridad de la cual nos podemos fiar: los notarios. En internet a los notarios se les denomina entidades certificadoras.
Se introduce el concepto de certificado. Un certificado consta de una clave pública y un identificador.

El protocolo x509 describe la sintaxis de los certificados. Los certificados se componen de :

-- versión de la norma x.509 usada
-- número de serie del certificado, asignado por la autoridad certificadora. Permite identificar el certificado.
     Este valor es el que figura en las listas de revocación, pues identifica claramente el certificado revocado.
-- identificador del algoritmo empleado para la firma digital
-- nombre del certificador
-- periodo de validez . El certificado solo tendrá validez dentro de este periodo. Es mejor que este periodo sea corto.
-- nombre del sujeto --DN (subjet)-- se compone de una serie de subcampos:
                                      CN ....... nombre, ¡Obligatorio!
                                      OU ....... departamento
                                      O    ....... organización
                                      C    ....... país, con las siglas de la ONU
                                      L     ....... pueblo
                                      ST  ....... estado, provincia

-- clave pública del sujeto
-- identificador único de sujeto
-- extensiones
-- firma digital de todo lo anterior generada por el certificador
-- información adicional

Este es el x.509 puro, pero luego se le pueden añadir más datos. Pej. e-mail.

Estos certificados se estructuran de forma jerárquica, de tal firma que todos nosotros podemos verificar la autenticidad de un certificado verificando la firma de la autoridad que lo emitió, que a su vez tendrá otro certificado expedido por otra autoridad de rango mayor.
De esta forma vamos subiendo en la jerarquía hasta llegar al nivel más alto, que debe estar ocupado por un certificador que goce de la confianza de todos.

Cualquier usuario puede recuperar la clave pública que contiene un certificado, solo tiene que tener la clave de la autoridad certificadora que lo ha firmado.
Ninguna persona puede modificar un certificado sin que s detecte, es decir, los certificados no se pueden falsificar.

El x.509 también propone un método para tratar los certificados revocados. Que haya una base de datos con todos los certificados revocados.

AUTORIDADES CERTIFICADORAS

Son entidades que acreditan que una clave pública pertenece a cierta persona. Actúa como un notario electrónico que extiende un certificado de claves el cual está firmado con su propia clave, para así garantizar la autenticidad de dicha información. Su misión es de demostrar que una clave pertenece a un usuario en concreto.
Cuando emiten un certificado deben estar seguros de que esa es la persona que dice ser, ya que ellos son los responsables en última instancia de todo el proceso, con una serie de responsabilidades por su parte.
Las autoridades certificadoras cobran por este servicio. El coste dependerá del tipo de certificado.
Los certificados de las autoridades se pueden obtener directamente en las instalaciones de la autoridad o actualmente ya van incluidos dentro del software.

¿como obtener un certificado de una autoridad?

Hay varios niveles de certificados, según la acreditación que se le de a la autoridad certificadora.

El usuario puede pedir que la generen también el par de claves, pero es más aconsejable que lo genere él y le proporcione la clave pública a la autoridad. Así nadie tendrá su clave pública, es más seguro y lo recomiendan.

Una persona realiza la petición del certificado, Certificate Request. En la petición deben figurar los datos representativos del solicitante y su clave pública, a no ser que haya pedido que le generen también un par de claves. Luego dependerá del tipo de certificado que se este pidiendo.
-- certificados de clase 1. Son los más fáciles de obtener, solo certifican el nombre y la dirección de correo del titular. Son adecuados para navegar por la red. El solicitante envía un paquete con la información que le piden y su clave pública. Al paquete le añade un resumen de lo anterior cifrado con su clave pública. Luego la autoridad decide si lo acepta o no.
-- certificados de clase 2. La autoridad certificadora comprueba también el permiso de circulación, el número de la seguridad social y la fecha de nacimiento. Es necesaria la presentación de algún documento del estado. es usado para las compras o subscripciones en la red.
-- certificados de clase 3. Se hace una verificación física del solicitante. Se requiere su presencia ante un notario antes de que sea autentificado el certificado. Se suelen usar para transacciones bancarias.
-- certificados de clase 4. Se comprueba el cargo de una persona dentro de una organización.
 

Es posible que un certificado convenga anularlo en un momento dado porque las claves han sido robadas o perdidas. Por esto existe a posibilidad de revocar un certificado.
El control de los certificados revocados lo llevan las autoridades certificadoras mediante unos servidores que contienen bases de datos en las que figuran los certificados revocados. Se conocen con el nombre de Lista de Certificados Revocados, CRL. Un CRL es una lista de certificados revocados firmada por la autoridad certificadora, que contiene la fecha de emisión. Cada certificado lleva la fecha de su revocación y su número de identificación.
En caso de pérdida se puede pedir otro certificado. Pero las autoridades certificadoras nunca emiten dos certificados iguales con lo cual hasta que no caduca el viejo no emiten el nuevo.

A veces puede haber problemas con la fecha en que ha sido firmado un documento, para evitarlo esta el sellado de tiempos. Consiste en mandar el documento a un organismo dedicado a ello y este te lo devuelve sellado con la fecha.

ESTÁNDARES RSA

Los laboratorios rsa han sacado el estándar pkcs#12, donde explican la estructura de un objeto criptográfico.
Un objeto lleva la clave privada de un usuario. El objeto está protegido mediante una password.

¿Como se utilizan los certificados ?

En la práctica un usuario mantiene una base de datos con certificados que ha obtenido de manera segura de las autoridades certificadoras. También otra base de datos con los certificados de personas conocidas, que puede verificar con los de las autoridades certificadoras.
De los certificados sacas la clave pública de alguien a quien quieras mandar un mensaje de forma segura.

3. SMARTCARDS

Las samrt cards son "tarjetas inteligentes" donde guardar la clave privada, la clave pública, el certificado de usuario y una copia de la clave pública de la autoridad certificadora.
Para sacar esta información de la tarjeta es necesario introducir un PIN.
La utilización de estas tarjetas asegura que las claves privadas de los usuarios no se almacenan en los discos duros y permiten la movilidad, ya que cualquiera podría firmar documentos desde cualquier ordenador.