CommandsStyle

miércoles, 5 de julio de 2017

Y tú… ¿firmas y/o cifras?

Hoy vamos a tratar el tema de la de criptografía asimétrica. Hoy he elegido este tema, ya que en futuros post vamos a tratar temas que se apoyaran en lo que veremos a continuación.

Y tú… ¿firmas y/o cifras?
Y tú… ¿firmas y/o cifras?


AVISO: Lo que vamos a encontrarnos a continuación, es una super-simplificación para explicar el funcionamiento del firmado y el cifrado de información. Es una simplificación, porque es un post para que se entienda la lógica del funcionamiento que siguen estos procesos, pero no voy a entrar en el funcionamiento a bajo nivel.

Para entender la criptografía asimétrica, también llamada criptografía de clave pública, hay que tener clara una cosa. Las claves van a estar formadas por dos “partes” o dos claves, que son una clave pública y una clave privada.

Aquí es muy importante saber que la clave pública podemos distribuirla libremente, como su propio nombre indica, es pública.

No es así con la clave privada. Esta clave tenemos que guardarla celosamente y no debemos compartirla.

Para entender el funcionamiento, vamos a poner un ejemplo con 3 sujetos ficticios: Juan, María y Pedro.

Las claves de estos 3 individuos son las que vemos a continuación:

Juan
Clave PrivadaClave Pública
Jcpv394867Jcp928347

María
Clave PrivadaClave Pública
Mcpv92783Mcp823375

Pedro
Clave PrivadaClave Pública
Pcpv02837Pcp982374

Estas claves no las vamos a poder elegir nosotros, normalmente haremos uso de algún proceso que nos proporcione cada par de claves.

Haciendo uso de la criptografía de clave pública, comúnmente vamos a poder realizar dos operaciones: firmar y cifrar.

Supongamos ahora que nuestros tres sujetos, han intercambiado sus claves, de forma que ahora tienen un “almacén de claves” donde van a guardar las claves que se han ido intercambiando.

Juan
Clave Privada
Clave Pública
Jcpv394867Jcp928347
Almacén de claves
Clave Publica De María (CPM)Mcp823375

María
Clave Privada
Clave Pública
Mcpv92783Mcp823375
Almacén de claves
Clave Publica De Pedro (CPP)Pcp982374
Clave Publica De Juan (CPJ)Jcp928347

Pedro
Clave Privada
Clave Pública
Pcpv02837Pcp982374
Almacén de claves
Clave Publica De María (CPM)Mcp823375

Ahora que ya conocemos las dos partes de una clave (La pública y la privada) y que hemos visto que las claves publicas hay que compartirlas, vamos a explicar cómo funciona el proceso de firmado y de cifrado.

La firma
El proceso de firmado se realiza utilizando la clave privada. Cuando firmamos un fichero, siempre, siempre, SIEMPRE vamos a utilizar la clave privada.

El resultado de un proceso de firma es propiamente una “firma digital”.

Hay que tener en cuenta que, para realizar una firma, se utilizan todos los bits de un fichero, por lo que si firmamos un fichero y más tarde lo modificamos, tendremos que realizar de nuevo el proceso de firmado para obtener una firma válida para el fichero modificado.

Vale y… ¿Para qué nos sirve una firma digital?

Haciendo uso de la clave pública correspondiente a la clave privada con la que se firmó el fichero, podemos verificar si la firma es correcta o no lo es.

Además, como únicamente se puede firmar haciendo uso de la clave privada, podemos verificar la identidad del firmante.

Veamos un ejemplo:
Supongamos que Juan firma un fichero, el proceso de firma vamos a representarlo de la siguiente manera:

Firma (fichero, CPVJ) = opasuiisjfahwoi

Como podemos ver, el resultado de la firma del fichero de Juan, haciendo uso de su clave privada, es “opasuiisjfahwoi”. El resultado de una firma es un conjunto de caracteres que sirve para verificar quien ha firmado el fichero, y si ha sido modificado a posteriori de realizar la firma.

Ahora supongamos que Juan, envía el fichero y la firma del fichero a María y Pedro.

Para verificar la firma, es necesaria la clave pública de Juan, por lo que… el pobre Pedro no podrá verificar si la firma es válida, ya que no tiene la clave pública de Juan.

Sin embargo, María sí que tiene la clave pública de Juan, por lo que, haciendo uso de la clave pública de Juan, el fichero y la firma del fichero, podrá verificar si la firma es válida o no, es decir, podrá verificar si el fichero realmente lo ha firmado Juan, y si el fichero no ha sufrido modificaciones después de que Juan lo firmara.

El proceso de verificación de firma, vamos a representarlo de la siguiente manera:

Verificación (fichero,firma, CPJ) = VALIDO

Como el fichero no ha sido modificado, la firma es la que ha realizado Juan, y la clave pública utilizada en la verificación es la de Juan, el proceso dará como resultado que la firma es válida.

En caso de que el fichero estuviese modificado, vamos a llamarlo fichero1, el resultado sería el siguiente:

Verificación (fichero1, firma, CPJ) = INVALIDO

Si por un casual, María se confunde, e intenta verificar el fichero original con la clave pública de Pedro, el resultado sería:

Verificación (fichero, firma, CPP) = INVALIDO

Ni que decir tiene que, si el fichero ha sido modificado, y la clave pública que se utiliza no es correcta, la verificación dará como resultado “invalido”

Verificación (fichero1, firma, CPP) = INVALIDO

Vale, enviar un documento firmado está muy bien para saber quién lo ha firmado y si ha sufrido modificaciones a posteriori, pero… ¿Qué hago si quiero enviar un fichero a alguien y que nadie pueda leerlo? Para eso está el cifrado de la información.

Como podemos ver, la firma digital, nos permite comprobar:
  • Integridad
  • Autenticación de origen
  • No repudio


El Cifrado
El proceso de cifrado nos permite crear un mensaje/fichero (a partir de un mensaje/fichero original) que únicamente podrá descifrar la persona que contenga la “clave” necesaria para el proceso de descifrado.

Para el proceso de cifrado se utiliza siempre, siempre, SIEMPRE la clave pública de la persona a la que vamos a enviar el mensaje/fichero cifrado.

Supongamos que Juan quiere enviar un fichero cifrado a María, el proceso de cifrado sería el siguiente:

Cifrado (fichero, CPM) = ficheroCifrado

Ahora, Juan, lo único que tiene que hacer es enviar el fichero “ficheroCifrado” a María, y ella lo descifrará utilizando el siguiente proceso:

Descifrado (ficheroCifrado, CPVM) = fichero

Como podemos ver, ha sido necesaria la clave privada de María, por lo que si por alguna razón, el fichero “ficheroCifrado” hubiese llegado a manos de Pedro, le faltaría la clave privada de María para poder descifrar el fichero y por tanto no podría descifrarlo.

El proceso de cifrado nos proporciona:
  • Confidencialidad

Y con esto llegamos al final del post de hoy, espero que con él podamos entender de forma básica como funciona el proceso de cifrado y firmado haciendo uso de la criptografía asimétrica.

No hay comentarios:

Publicar un comentario