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.