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 |
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.