Correo seguro

SMIME - MIME Seguro

Codificación de modo que se eviten los caracteres raros que pueden dar problemas.

-quoted_printable
-base 64

Coge los caracteres raros y los cambia por XY (hex) y lueg se dehace en el otro lado. Es bueno cuando hay pocos (texto) pero no cuando hay muchos como en un fichero binario que se hacen codificando todo, cada dos caracteres, se ponen tres.

Como funciona el MIME:

from
servidor
cabecera (header)
subject
asunto
from
remitente
to
destinatario
CC
carbon copy
 
linea en blanco
 
body
cuerpo del mensaje
mensaje
MIME-Version 1.0
   content-type:text/plain
   content-transfer-encoding:quoted_printable

Un attachment es un mensaje con partes múltiples:

content-type:multipart/mixed (alternative,signed...); boundary="codigo.unico"

"Mail con multiparte no soportado bla bla bla...."
--codigo

--codigo

--codigo-- (fin de mensaje)

No puede haber lineas en blanco. Cada cajita es una parte MIME y tiene su estructura:

content-type: image/gif
content-transfer-encoding: base64



 sample.gif

El MIME es recursivo, es decir, no hay problema si otro trozo es multipart/mixed; boundary="otro.codigo.unico"

multipart/signed es un SMIME y va firmado.

content-type: application/x-pkcs7-signature
content-transfer-encoding: base64



(firma)



--codigo--

Cifrado con la llave privada del que lo envía. El hash se calcula de todo, incluidas las cabeceras.

Un mensaje cifrado es:

content-type: application/x-pkcs7-encrypted
content-transfer-encoding: base64

sdjfkjdshfksjdhfakjsdhfasoidfasoflaskdhflskdhflkafblablabla...
pkcs7= enveloped data +certificado+firmas
signed data
signed and enveloped data
data


Para mandar mail firmadom lo correcto es el SMIME, que va por una parte el email y por otra parte la firma.
El enveloped data es para mails encriptados y no lleva ni firmas ni certificados.
Cuando son signed, aparte de las firmas, se adjuntan certificados (con el que se ha hecho la firma) y así podemos comprobar la firma y además, lo guardamos para poder enviar emails encriptados con el ese certificado.

Cadena de certificación: Autoridades intermedias, asi se puede verificar desde el cliente.

M Mensaje Hash
F1 Resumen
F2 Resumen

Desciframos el resumen que debe coincidir con el hash del mensaje.

Envío con varias firmas

datos cifrados Epb(s) Epc(s)
  CA (s/n) CA (s/n)

Cada caja va con la identificación del certificado para no tener que comprobar cada clave.
Un certificado se caracteriza por el número de serie y quién lo firma (issuer).
Un mail siempre se cifra con dos destinatarios, el destinatario real y uno mismo para poder leerlo después de enviarlo.

CSP: Proveedor de servicios de confirmación: fabricante de parte del software que se encarga de esto.