martes, 25 de abril de 2017

S/MIME

S/MIME (Secure / Multipurpose Internet Mail Extensions, del inglés, Extensiones de Correo de Internet de Propósitos Múltiples / Seguro) es un estándar para criptografía de clave pública y firmado de correo electrónico encapsulado en MIME.

Es utilizado para el intercambio de correo electrónico que hace posible garantizar la confidencialidad y el reconocimiento de autoría de los mensajes electrónicos.

S/MIME está basado en el estándar MIME, cuyo objetivo es permitir a los usuarios adjuntar a sus mensajes electrónicos archivos diferentes a los archivos de texto ASCII (American National Standard Code for Information Interchange). Por lo tanto, el estándar MIME hace posible que podamos adjuntar todo tipo de archivos a nuestros correos electrónicos.

S/MIME fue desarrollado originalmente por la compañía RSA Data Security. Ratificado en julio de 1999 por el IETF (Internet Engineering Task Force), S-MIME se convirtió en un estándar cuyas especificaciones se incluyen en las RFC (Request for Comments, Solicitudes de Comentarios), desde la 2630 a la 2633.

RFC 822
Define un formato para los mensajes de texto que se envían por medio de correo electrónico. Considera que los mensajes se componen de un sobre(envelope) y unos contenidos(content).

El sobre contiene la información necesaria para llevar a cabo la transmisión y la distribución. Los contenidos constituyen el objeto que se va a enviar al receptor.

Este estándar aplica solo a los contenidos
Un mensaje está formado por cabecera y el cuerpo arbitrario.

La cabecera se separa por una línea en blanco, contiene: palabra clave seguida de dos puntos,seguidos, argumento de palabra clave.

MIME
Es una extensión del marco de trabajo de RFC 822.

MIME define 5 nuevos campos de cabecera:
  • Versión MIME: con valor de parámetro 1.0
  • Tipo de contenido
  • Codificación de Transferencia de Contenido
  • Identificación de Contenido
  • Descripción del Contenido
  • Texto
  • Multiparte (Mezclado, Paralelo, Alternativo,Resumen)
  • Mensaje
  • Imagen
  • Video
  • Audio
  • Aplicación (PostScript, Flujo de Octetos)


Características de S/MIME

Provee seguridad criptográfica como:
  • Autenticación, integridad del mensaje, no repudio(usando firmas digitales) 
  • Privacidad y seguridad de los datos (usando cifrado)

Puede ser usado en:
  • Usuarios agentes de correo tradicional (MUAs) 
  • Mensajes autónomos de transferencia de mensajes


Funciones

S/MIME proporciona las siguientes funciones:
  • Datos empaquetados: contenido cifrado de cualquier tipo y clave de cifrado de contenido cifrado para uno o más receptores
  • Datos firmados: Una firma digital se forma con el resumen del mensaje del contenido y se cifra con la clave privada del firmante en base64. Solo puede verlo un receptor.
  • Datos firmados en claro: Solo se codifica la firma digital usando base64. Cualquier receptor puede verlo sin poder verificar la firma 
  • Datos firmados y empaquetados: Se pueden anidar entidades solo firmadas y solo cifradas, para que los datos firmados puedan ser cifrados.

Algoritmos criptográficos

S/MIME incorpora tres algoritmos de clave pública.
  1. DSS (Digital Signature Standard)
  2. SHA-1 (160 bits)
  3. triple DES 


ESPECIFICACIONES S/MIME

Incluye una discusión del procedimiento para decidir qué algoritmo de cifrado de contenido utilizar. Un emisor tiene para elegir entre:
  1. Determinar si el receptor es capaz de descifrar usando un algoritmo de cifrado determinado.
  2. Si el receptor solo es capaz de aceptar contenido que se ha cifrado mediante un algoritmo débil.

El emisor debería seguir las siguientes reglas:
  • Si el emisor tiene una lista de descifrado preferente de un receptor, DEBERÍA elegir la primera.
  • Si el emisor ha recibido algún mensaje con anterioridad del receptor, DEBERÍA usar el mismo algoritmo que se usó en el último mensaje recibido.
  • Si el emisor no sabe de las capacidades de descifrado del receptor y está dispuesto a arriesgar que no pueda ser descifrado el mensaje, DEBERÍA usar tripleDES.
  • Si el emisor no sabe de las capacidades de descifrado del receptor y no está dispuesto a arriesgar que no pueda ser descifrado el mensaje, DEBE usar RC2/40.

MENSAJES S/MIME

Agrega nuevos tipos de contenido MIME:
  • Multiparte 
    • Firmado: un mensaje firmado en claro en 2 partes: mensaje y firma.
  • Aplicación
    • Pkcs7-mime: entidades S/MIME firmada, cifrada y una entidad que contiene solo certificados de clave pública
    • Pkcs7-firma: El tipo de contenido de la subparte de firma de un mensaje multiparte firmado.
    • Pkcs10-mime: Un mensaje de solicitud de registro de certificado.

Pkcs: hace referencia a un grupo de especificaciones de clave pública emitidas por los laboratorios de RSA para mejora de S/MIME 

ENTIDAD MIME

S/MIME asegura una entidad MIME con una firma, con cifrado o con ambos. Una entidad MIME puede ser un mensaje completo  a excepción de las cabeceras, o si el tipo de contenido MIME es multiparte, entonces la entidad MIME es una de las subpartes del mensaje.

DATOS EMPAQUETADOS
  1. Generar una clave de sesión pseudoaleatoria para un algoritmo de cifrado simétrico particular (triple DES o RC2/40)
  2. Para cada receptor, cifrar la clave de sesión con la clave pública RSA del receptor.
  3. Para cada receptor, preparar un bloque (RecipientInfo) que contiene un identificador del certificado clave pública del receptor, un identificador de algoritmo utilizado para cifrar la clave de sesión y la clave de sesión cifrada.
  4. Cifrar el contenido de mensaje con la clave de sesión.
  5. Después se codifica en base64.
  6. Para recuperar el mensaje cifrado, el receptor en primer lugar, elimina la codificación base64. Luego, se usa la clave privada del receptor  para recuperar la clave de sesión. Por último, el contenido de mensaje se cifra con la clave de sesión.

DATOS FIRMADOS
  1. Seleccionar un algoritmo de resumen de mensaje (SHA o MD5)
  2. Calcular el resumen del mensaje, o función hash, del contenido que se va a firmar.
  3. Cifrar el resumen de mensaje con la clave privada del firmante.
  4. Preparar un bloque (SignerInfo) que contenga el certificado de clave pública del firmante, un identificador del algoritmo de resumen del mensaje, un identificador del algoritmo usado para cifrar el mensaje y el resumen de mensaje cifrado.
  5. Se codifica en base64.
  6. Para recuperar el mensaje firmado y verificar la firma, el receptor elimina la codificación base64. Luego, la clave pública del firmante se usa para descifrar el resumen del mensaje. El receptor computa independientemente el resumen del mensaje y lo compara con el resumen del mensaje descifrado para verificar la firma.

FIRMA EN CLARO

Se consigue usando el tipo de contenido multiparte con subtipo firmado.
Contiene 2 partes:
  • La 1° puede ser cualquier tipo MIME pero debe prepararse para no ser modificado durante la transferencia (Si no 7 bits, entonces codificada en base64 o imprimible textualmente). Se procesa igual que Datos firmados, pero con campo de mensaje vacío (esto es firma separada). La transferencia se codifica en base64 para convertirse en la 2° parte.
  • La 2° parte tiene tipo de contenido MIME de aplicación y subtipo de firma pkcs7.
  • El receptor puede verificar la firma tomando el resumen de mensaje de la primera parte y comparándolo con el resumen de mensaje recuperado de la firma en la segunda parte.
PROCESO




Pasos del proceso
  1. Alice utiliza su clave privada para crear una firma digital para el mensaje.
  2. Alice utiliza una clave de cifrado masiva (clave de sesión) simétrica para cifrar el mensaje.
  3. Para crear un canal seguro que puede proteger la confidencialidad de la clave de cifrado mientras se transmite a través de un canal de comunicación pública, Alice utiliza la clave pública de Bob (que se encuentra en el certificado de Bob) para cifrar la clave de cifrado. Este paso produce un lockbox que contiene una copia encriptada de la clave de cifrado.
  4. Bob usa su clave privada para descifrar la caja fuerte. Este proceso de descifrado produce la clave de sesión.
  5. Utilizando la clave de sesión, Bob descifra el mensaje. Ahora Bob puede leer el mensaje.
  6. Bob utiliza la clave pública de Alice para verificar la autenticidad y la integridad del mensaje mediante la verificación de la firma digital, que se encuentra en el certificado de Alice.

SOLICITUD DE REGISTRO

Una aplicación o usuario solicitan certificado de clave pública a una autoridad de certificación.
La entidad S/MIME aplicación/pkcs10 se usa para transferir una solicitud de certificación. 
Dicha solicitud incluye un bloque de información de solicitd de certificación (certificationRequestInfo), seguido de un identificador de algoritmo cifrado de clave pública, firma del bloque de información de solicitud de certificación(se hace con clave privada del emisor). 
Este bloque incluye nombre del sujeto del certificado y representación de ristra de bits de la clave pública del usuario. 

PROCESAMIENTO DE CERTIFICADOS S/MIME
  • S/MIME usa certificados de clave pública. 
  • Los administradores y/o usuarios de S/MIME deben mantener los certificados necesarios para la verificación de firmas entrantes y para cifrar mensajes salientes.

PAPEL DEL AGENTE USUARIO

Funciones a realizar de un usuario S/MIME para la gestión de claves:
  • Generación de claves: el usuario de alguna herramienta administrativa DEBE poder generar parejas separadas de claves Deffie-Hellman y DSS y DEBERÍA poder generar parejas de claves RSA.
  • Registro: Una clave pública de usuario debe registrarse con una autoridad de certificación para recibir un certificado de clave pública X.509.
  • Almacenamiento y recuperación de certificado: un usuario requiere acceso a una lista local de certificados para verificar las firmas entrantes y para cifrar los mensajes salientes.

CERTIFICADOS VERISIGN

Es una de las compañías que proporcionan servicios de autoridad de certificación (CA).
El servicio que ofrece está diseñado para ser compatible con S/MIME y otras aplicaciones.
Emite certificados X.509 con el nombre VeriSign Digital ID.

La información que contiene un identificador digital depende del tipo de identificador digital y su uso. Como mínimo cada identificador contiene:
  • Clave pública del dueño
  • Nombre o alias del dueño
  • Fecha de caducidad del identificador digital
  • Número de serie del identificador digital
  • Nombre de la autoridad de certificación que emitió el identificador digital
  • Firma digital de la autoridad de certificación que emitió el identificador digital

Los identificadores digitales pueden también contener información suministrada por el usuario como:
  • Dirección
  • Dirección de correo electrónico
  • Información básica de registro (país, código postal, edad y género)

SERVICIOS DE SEGURIDAD AVANZADA

Se han propuesto:
  1. Recibos firmados: Devolver un recibo firmado proporciona una prueba de la entrega al creador de un mensaje y le permite demostrar a una tercera parte que el receptor recibió el mensaje.
  2. Etiquetas de seguridad: Es información sobre seguridad con respecto a la confidencialidad del contenido protegido por el encapsulado de S/MIME. 
  3. Pueden usarse para el control de acceso, indicando qué usuarios tienen permiso para acceder a un objeto.
  4. Listas de correo seguras: cuando un usuario envía un mensaje a varios receptores, es necesaria una cantidad de procesamiento por cada receptor, incluyendo el uso de la clave pública de cada uno de ellos.

Fuentes Consultadas:


martes, 18 de abril de 2017

Criptografía Cuántica

La criptografía cuántica surge a partir de la criptografía clásica, como bien se sabe, la criptografía convencional o clásica consiste en realizar un mecanismo mediante el cual, un mensaje o texto pueda ser convertido en un conjunto de caracteres, palabras o texto que no sea entendible por cualquier persona, en eso consiste la criptografía.
Si en determinado momento alguien quisiera obtener el contenido de un mensaje, este tendría que ver la forma de interpretar y entender el mensaje.

Una vez entendida la parte de la criptografía clásica, será un poco más entendible el saber de qué trata la criptografía del tipo cuántica. De la mecánica cuántica surge una técnica criptográfica que permite, en principio, codificar un mensaje de tal manera que sólo pueda ser leído por personal autorizado. 


La criptografía cuántica es la criptografía que utiliza principios de la mecánica cuántica para garantizar la absoluta confidencialidad de la información transmitida.


La criptografía cuántica a diferencia de otros tipos, permitirá que los usuarios tanto emisor como receptor puedan tener el conocimiento acerca de las posibilidades de que alguien más los esté escuchando al momento de hacer uso de algún medio de transmisión. Siendo así un gran avance el tema de la criptografía, ya que se resuelve un problema que de otra manera no se había podido solucionar.


Del mismo modo, la criptografía cuántica hace uso de lo que es conocido como el “Bit de Shannon y el Qubit”, lo que indica la forma en la que este tipo de criptografía puede procesar la información que se envía y recibe tanto por el emisor y receptor respectivamente.


El Bit de Shannon o Bit “Clásico”

El bit de Shannon solo puede tomar uno de dos valores posibles que generalmente se denotan con 0 ó 1, pero en ningún caso puede tomar los dos valores a la vez. Estos bits tienen la propiedad de que pueden ser copiados.

El Qubit

En computación cuántica un número de partículas elementales como los electrones o fotones son utilizadas, y sus cargas o su polarización actúan como la representación de 0 y/o 1 a estas partículas se las llama Quantum Bit o Qubit.

En contraste con el bit clásico de Shannon, por el principio de superposición de la física cuántica, el Qubit puede ser 0 y 1 a la vez. Además, a diferencia del Bit de Shannon el Qubit no puede ser copiado a causa de el teorema de no clonación.


Un ejemplo de qubit es el estado de polarización de un fotón. Un fotón puede estar en un estado de polarización vertical ↕ al que le asignamos un valor 1. Puede estar en un estado de polarización horizontal ↔ al que le asignamos un valor 0. O puede estar en una superposición de estos dos estados, en este caso se lo interpreta con 1 y 0 al mismo tiempo.


Con ayuda de lo anterior, es comprensible entender el protocolo BB84, el cual consiste en lo siguiente:


En este protocolo, la transmisión se logra utilizando fotones polarizados enviados entre el emisor (tradicionalmente de nombre Alice (en el lado A)) y el receptor (de nombre Bob (en el lado B)) mediante un canal cuántico, por ejemplo, una fibra óptica. Por otro lado, también se necesita la existencia de un canal público (no necesariamente cuántico) entre Alice y Bob, como por ejemplo Internet u ondas de radio, el cual se usa para mandar información requerida para la construcción la clave secreta compartida. Ninguno de los canales necesita ser seguro, es decir, se asume que un intruso (de nombre Eve) puede intervenirlos con el fin de obtener información.


En conclusión, las ventajas prácticas de este tipo de criptografía sobre la convencional son:


En un sistema clásico, un espía podría sencillamente grabar todas las conversaciones cifradas de manera pasiva, sin interrumpir el proceso, de forma que, si en algún momento logra romper la clave, podría descifrar toda la información recopilada. 


Por el contrario, en un proceso cuántico la clave se genera y consume en el momento. “Si se usa el esquema más seguro, se utiliza un bit de la clave por cada bit de información que se quiere cifrar, y nunca se reutiliza”. Esto implica que, para descifrar el mensaje grabado, el espía necesitaría atacar y obtener a la vez la clave generada por el sistema cuántico para ese criptograma concreto. Ello demandaría un ataque activo y continuo, exponiéndose a ser descubierto. 


Fuentes consultadas:

http://moodle.uaemex.mx/pluginfile.php/59877/mod_resource/content/0/Criptocuantica.pdf
https://www.textoscientificos.com/criptografia/quantica
http://www.tendencias21.net/La-criptografia-cuantica-blinda-mas-que-nunca-la-informacion-secreta_a19589.html
https://es.wikipedia.org/wiki/Criptograf%C3%ADa_cu%C3%A1ntica