Índice

Utilización del encriptado simétrico con DPAPI

Microsoft propone varios métodos de encriptado de datos. Una de las maneras más utilizadas, ya que es muy sencilla y confortables, es DPAPI (Data Protection Application Programming Interface). Los otros métodos de encriptado simétrico son simplemente la puesta en marcha de algoritmos de encriptado por .NET (System.Security.Cryptography).

En un caso normal de encriptado simétrico, es necesario tener una clave que servirá para encriptar y desencriptar. Esto significa que para encriptar una contraseña de una aplicación, hay que disponer de una clave de encriptado.

Para encriptar:

Contraseña > clave de encriptado 1 > contraseña encriptada

Para desencriptar, es el mismo principio:

Contraseña encriptada > clave de encriptado 1 > contraseña desencriptada

Esto induce la dificultad para almacenar una contraseña para un departamento, una tarea o una aplicación que desearía poder acceder a la contraseña de manera reversible. Se debe esconder esta clave de encriptado/desencriptado en claro en el código, en un archivo, en el registro o porque no cortarla en trozos y almacenar las partes en distintos lugares. Pero no es una solución adecuada ya que se asimila a dejar la llave debajo del felpudo.

Una manera más segura sería derivar la clave de encriptado desde variable particulares del equipo o del usuario, como crear un hash de la dirección MAC de la tarjeta de red, ...