¿Qué tan segura es mi clave privada en el almacén de certificados digitales de Windows?

1

Muchos archivos que descargamos no tienen firmas digitales. Los archivos pueden infectarse o alguien puede modificarlos intencionalmente en nuestro disco duro.

Así que escribí un programa simple de hashing de archivos en c # que crea un hash SHA-256 de cada archivo & Lo almacena en un documento XML firmado. La clave privada se toma del almacén de certificados de Windows con un nivel de seguridad alto. (Es decir, cada vez que utilizo la clave privada, me pide la contraseña). También creé una hoja de propiedades para carpetas y amp; Superposiciones de iconos (básicamente muestra una imagen de verificación en el icono de un archivo si el hash está bien) para que pueda ver de un vistazo qué archivos están bien. Este programa también realiza una copia de seguridad de la lista de hashes en Google Drive y sincroniza automáticamente nuestra base de datos de hash. También agregué Authenticode a mis archivos de programa.

Tengo algunas preguntas en mente:

  1. ¿Es posible que el malware o cualquier tipo de explotación que se ejecuta con privilegios de administrador vuelque la clave privada sin la contraseña? (Las claves están en el Almacén de usuarios con alta seguridad).

  2. ¿Es posible explotar mi programa para que incluso si se modifica un archivo, lo muestre como si aún coincida con el hash almacenado? (Estoy en Windows 8 x64 con DEP y ASLR en.)

  3. El ejecutable del programa verifica su propia firma digital & otros DLL que carga. Así que si no es válido existe. ¿Está bien?

  4. Si el programa no es seguro, ¿cómo puedo mejorarlo para estar seguro?

Principalmente, quiero asegurarme de que los archivos que uso no se manipulen, incluso si mi computadora está comprometida. (Sé Open PGP pero solo quiero almacenar hash de archivos y otros atributos como longitud del archivo en bytes, qué usuario creó cada firma, fecha / hora en texto claro en XML firmado para que mis amigos también puedan verificar el hash con otro software, etc.)

    
pregunta Ankush 02.05.2013 - 08:43
fuente

1 respuesta

5

Reglas básicas:

  • El código con "privilegios de administrador" puede hacer todo lo que desee con su máquina. No puedes protegerte contra eso. En el mejor de los casos , el código malicioso tendrá que esperar la próxima vez que ingrese su contraseña, momento en el que saqueará su clave privada (y todos sus secretos).

  • El mismo "ataque de administrador" modificará las superposiciones de sus iconos para ocultar cualquier modificación que desee realizar.

  • Es inútil que un programa verifique su propia firma. Un ejecutable malicioso colocado en lugar del suyo afirmará que todo está bien, independientemente de la invalidez de la firma.

Hay un esfuerzo puesto que Windows pone más protección para el almacenamiento de claves privadas; Esto se llama DPAPI . No equivale a nada contra los atacantes activos con privilegios de administrador. DPAPI agregará cierta resistencia a los atacantes en otro contexto: los ladrones de computadoras portátiles. Cuando le roban su computadora portátil, ya no la tiene, por lo que no volverá a escribir su contraseña. Dado que los secretos en DPAPI finalmente se encriptan con una clave derivada de su contraseña, el atacante tendrá que descifrar su contraseña, lo que puede demorar (dependiendo de lo bien que lo elija).

Para evitar la manipulación de sus archivos, existen varias estrategias:

  1. Arranque su máquina con medios de solo lectura (por ejemplo, un DVD o una llave USB que tenga un interruptor externo de "solo lectura").
  2. Aplique todas las correcciones de seguridad publicadas para su sistema operativo (esto, por supuesto, está reñido con los medios de solo lectura).
  3. No ejecute software de dudosa procedencia. Lo ideal es que no navegue por la web en general, excepto algunos sitios seleccionados de su máquina. Si debe acceder a la Web, aplique aislamiento: ejecute una máquina virtual con el navegador en ella , aislándolo del resto del sistema. De esa manera, si los atacantes ingresan a su sistema a través de una navegación descuidada, el atacante tomará el control de la VM, no de su sistema principal. El Qubes OS es un sistema operativo que utiliza este principio (aunque con Linux, no con Windows).
respondido por el Thomas Pornin 02.05.2013 - 13:26
fuente

Lea otras preguntas en las etiquetas