Cifrar el archivo web.config usando la API de protección de datos

3

He cifrado parte de mi archivo web.config utilizando la API de protección de datos.

Ahora, mi pregunta es, ¿qué necesita un hacker para descifrar el archivo web.config?

¿Requiere acceso físico a la máquina para descifrarla? ¿O puede descifrarlo desde una ubicación remota?

    
pregunta Matthew 22.07.2013 - 11:53
fuente

2 respuestas

7

Depende.

  • Si el atacante obtiene acceso solo a su web.config , no podrá descifrarlo sin la clave, lo que suponemos que no posee.

  • Si ha establecido useMachineProtection en verdadero en su DpapiProtectedConfigurationProvider configuraciones, y el atacante obtiene acceso a su máquina (remota o no) con cualquier cuenta , luego cualquier proceso que se ejecute en la máquina podría descifrar el archivo web.config , incluyendo cualquier cosa que el atacante pueda ejecutar.

  • Si ha configurado useMachineProtection en falso en sus configuraciones de DpapiProtectedConfigurationProvider , entonces el atacante necesita acceso a la cuenta de usuario utilizada para el proceso (remoto o no).

Debe saber que DPAPI proporciona protección basada en contraseña . Entonces, asumiendo que está usando la opción # 3, incluso si el atacante obtiene acceso físico a la máquina, todavía necesita la contraseña de la cuenta para descifrar las claves de cifrado que descifran los datos. Por supuesto, el atacante puede restablecer fácilmente la contraseña, pero eso inutilizaría las claves cifradas y dejaría tus datos inaccesibles.

Tenga en cuenta que hasta .Net 3.5 SP1, useMachineProtection se establece en true (incorrecto) de forma predeterminada. No tengo información sobre versiones posteriores.

Actualización: .Net 4.0 usa el valor predeterminado verdadero para useMachineProtection también.

    
respondido por el Adi 22.07.2013 - 12:24
fuente
3

Supongo que está trabajando en .Net o quizás en un nivel inferior como C ++. De haber consumido recientemente esas API aquí es lo que recomendaría.

Hay 2 proveedores de configuración protegida disponibles, DPAPI (más apropiado para aplicaciones de escritorio del lado del cliente) y Proveedor RSA . Este último es más apropiado para cifrar web.configs ya que esta es una configuración de clave pública donde solo el servicio ASP.NET tiene la clave privada para descifrar los datos, esto puede incluirse tanto en el usuario como en la máquina, similar a DPAPI.

Aquí es un tutorial antiguo pero de sonido en ASP.Net. Disculpas si no está utilizando .Net, no estaba claro. Aun así, creo que el proveedor de RSA es la forma correcta de ir aquí.

Con respecto a la ruptura del cifrado DPAPI, sí, la mayoría de los ataques deberían organizarse en la máquina de destino, por lo general implicando un intento de contraseña de archivos SAM o secuencias de comandos de restablecimiento de contraseña dirigidas a administradores de sistemas. Documento de conferencia relacionado: interrumpir la conexión fuera de línea de DPAPI: BlackHat 2010 .

    
respondido por el JoeKir 23.07.2013 - 09:07
fuente

Lea otras preguntas en las etiquetas