Índice

Cambiar el código PIN BitLocker con permisos de usuario

Desde Windows Vista, Microsoft permite cifrar el disco duro completo de un equipo con BitLocker. La clave de cifrado está almacenada en un chip TPM o en una memoria USB. Los datos no se pueden modificar offline. Pero todavía es posible arrancar el sistema y atacar los servicios expuestos. Para paliar esto, Microsoft permite añadir un código PIN que no se guarda en el equipo. El usuario puede definirlo y sin este código el sistema no arranca. En apariencia, es un buen sistema, pero hace falta que el usuario sea administrador para poder cambiarlo, lo que para nosotros es una pena. Crearemos una aplicación que, una vez instalada, permitirá a un usuario sin privilegios de administrador cambiar el código PIN de BitLocker.

1. Principios básicos

Vamos a crear un servicio de Windows que se ejecutará con permisos de sistema y se encargará de cambiar el PIN en lugar del usuario. Además, haremos una aplicación donde el usuario podrá introducir el código PIN y será enviado al servicio.

Para crear un servicio, nuestra clase debe heredar de ServiceBase.

public partial class Servicio1 : ServiceBase

Los métodos principales obligatorios llamados por el sistema son Start y Stop:

protected override void OnStart(string[] args) 
        {  
        }  
  
protected override void OnStop()  
        {  
   ...