EMAILS ENCRIPTADOS. 

Criptografía (del griego κρύπτos (criptos), «oculto», y γραφη (grafé), «grafo» o «escritura», literalmente «escritura oculta»)

 

Vamos a realizar una aplicación que nos permitirá enviar y recibir Emails confidenciales que estarán  encriptados bajo contraseña, es decir solo podremos tener acceso al texto original si conocemos ésta, de lo contrario tendremos un texto ilegible.

Para realizarlo vamos a utilizar el Software de Microsoft Visual Studio y crearemos un proyecto basado en la arquitectura MVC (modelo-vista-controlador).

La vista será nuestra interfaz de usuario y será la encargada de recoger los datos necesarios para enviar nuestro email encriptado (Texto , destinatario y dirección de Email) y pasárselos al controlador para que los procese y envíe el Email.

Vista EnviarCorreo.cshtml en Views\Home

Pw Tajamar

 

Vista

Una vez en el controlador los datos son recogidos por la clase Emailer, esta clase contiene la lógica necesaria para enviar el email a su destino, pero antes enviará el texto del cuerpo del Email a la clase Cipher para que nos devuelva el texto cifrado.

En nuestro ejemplo hemos configurado el correo para que funcione con cuentas de correo de Gmail .

Clase HomeController.cs en la carpeta Controllers.

 

 

Controlador2

En el modelo hemos ubicado la clase Cipher que es la encargada de cifrar y descifrar el texto del mensaje, para ello utilizaremos el algoritmo  Rijndael (pronunciado “Rain Doll” en inglés) creado por los criptólogos Joan Daemen y Vincent Rijmen. Fue catalogado en 2001, por la NSA (Agencia de Seguridad Nacional de los Estados Unidos) en otros,  como estándar avanzado de encriptación (AES); este algoritmo es de tipo simétrico, permite cifrado y descifrado y usa claves de cifrado de 128,192 y 256 bits.

Se ha realizado numerosos ataques sobre él para someterlo a prueba y hasta la fecha solo han sido exitosos sobre las claves de 128 bits. Vamos que podemos estar casi al 100% seguros de que nadie va a descifrar nuestro Email si usamos claves superiores a 128 bits.

Clase Cipher.cs en la carpeta Models.

 

 

3

4

5

6

Para descifrar el mensaje crearemos un segundo proyecto MVC con Visual Studio, el cual tiene básicamente dos funciones: cifrar y descifrar.

Lo usaremos para pegar el texto del mensaje y comprobar que efectivamente el texto aparece en su forma original cuando ponemos la contraseña de descifrado.

Para ello crearemos en la carpeta Controllers una clase llamada CifradoControllers con el siguiente código:

Clase CifradoController.cs en la carpeta Controllers.

 

7

 

otra clase llamada Cipher en la carpeta Models con el código: (Igual al escrito más arriba):

Clase Cipher.cs en carpeta Models.

y en Views crearemos la carpeta cifrado con una vista llamada CifradoHash con el código:

 

8

 

 

Espero que os haya gustado y que os sirva a la hora de enviar mensajes con una confidencialidad extra ;-), un saludo y hasta siempre. Abajo dejo liks con el código en Github.

PD.Reto:

Encuentra  la PW oculta en este Post y descifra el siguiente mensaje secreto!!:   dM+FrbKbQ/S5LoKa7YXDUWB/XNaaMXQKE6yuJdRd5m0=

 

Autor :   Jesús Giganto Diez
Curso:    Microsoft MCSA Web Applications + Microsoft MCSD App Builder + Xamarin
Centro: Tajamar
Año académico: 2017-2018

www.linkedin.com/in/jesusgiganto

 

Github: 

https://github.com/jgiganto/PostEmailsEncriptados.git

https://github.com/jgiganto/Encriptar.git