Cómo administrar las credenciales de inicio de sesión de dominio almacenadas en caché en Windows

Windows facilita el inicio de sesión en tu ordenador incluso cuando la red no funciona, gracias a las credenciales en caché. Básicamente, guarda un hash de tu nombre de usuario y contraseña, así que si el controlador de dominio no está disponible, puedes iniciar sesión localmente. Es genial si trabajas desde casa o simplemente no quieres que te bloqueen el acceso, pero, por supuesto, esto también abre una caja de Pandora si no se gestiona correctamente. Si alguien consigue esos datos en caché, podría forzar la contraseña, sobre todo si es débil. Por lo tanto, comprender cómo funciona este almacenamiento en caché, configurarlo correctamente y saber cómo borrar esas contraseñas en caché puede ahorrarte problemas.

Cómo reparar y administrar las credenciales almacenadas en caché en Windows

Descripción de las credenciales de dominio almacenadas en caché

Si un usuario ha iniciado sesión en un PC con Windows al menos una vez mientras estaba conectado al dominio, Windows almacena una versión hash de sus credenciales en el equipo local. Esto ocurre en el registro, en HKEY_LOCAL_MACHINE\Security\Cache, en el archivo %systemroot%\System32\config\SECURITY. Cada hash se almacena como un parámetro NL$x, donde «x» es simplemente un índice para cada credencial almacenada en caché. Es bastante engañoso, pero los hashes no exponen la contraseña en texto plano; todo es críptico, utilizando formatos de sal y hashes como mscash2. En algunas configuraciones, se almacenan las últimas diez credenciales de usuario, pero esto se puede ajustar. Al iniciar sesión sin conexión, Windows compara lo que escribe con estos hashes. Si coincide, está dentro.

Nota: Windows no mostrará las credenciales almacenadas en caché directamente en el registro sin herramientas especiales, como ejecutar Regedit.exe con permisos NT AUTHORITY\SYSTEM mediante PsExec, ya que, por supuesto, esto dificulta la tarea. En cualquier caso, si el hash en caché coincide, iniciará sesión y se registrará un ID de evento 4624 con tipo de inicio de sesión 11 (CachedInteractive).Útil para auditorías. Si no existen credenciales almacenadas en caché y no tiene conexión, recibirá un mensaje como «Actualmente no hay servidores de inicio de sesión disponibles…».

Es un poco raro, pero los hashes se basan en una sal generada a partir de tu nombre de usuario, por lo que no puedes extraer tu contraseña fácilmente. Sin embargo, si alguien descifra el hash, podría obtener tu contraseña, especialmente si es débil o simple.

Configurar cuántas credenciales se almacenan en caché

Si el almacenamiento en caché no es una buena idea para tu configuración (por ejemplo, si usas portátiles con varias personas), puedes ajustar la cantidad de credenciales que Windows guarda. Esto suele hacerse mediante la directiva de grupo en Configuración del equipo > Directivas > Configuración de Windows > Configuración de seguridad > Directivas locales > Opciones de seguridad. Busca » Inicio de sesión interactivo: Número de inicios de sesión previos a almacenar en caché «.El valor predeterminado es 10, pero puedes configurarlo desde 0 (sin caché) hasta 50, según tus preferencias.

Configurarlo a 0 impide el almacenamiento en caché, por lo que el inicio de sesión sin conexión prácticamente se vuelve imposible. Esto significa que los usuarios verán el mensaje «No hay servidores de inicio de sesión disponibles…» si el controlador de dominio está inactivo. También puede configurar esta clave manualmente a través del registro en [nombre del dominio] HKLM\Software\Microsoft\Windows NT\CurrentVersion\Winlogon, editando el valor CachedLogonsCount como [nombre del dominio REG_SZ].

Ah, y puedes activar una notificación que avise a los usuarios cuando su último inicio de sesión no se haya realizado correctamente debido a la falta de un controlador de dominio. Simplemente activa la opción » Informar cuando el servidor de inicio de sesión no esté disponible durante el inicio de sesión del usuario » en la GPO, en Plantillas administrativas > Componentes de Windows > Inicio de sesión de Windows. Verán un mensaje como «No se pudo contactar con un controlador de dominio de su dominio…» en la bandeja del sistema.Útil para solucionar problemas o simplemente para mantener a los usuarios informados.

Por qué las credenciales almacenadas en caché pueden ser un problema de seguridad

Aquí es donde la cosa se complica: las credenciales almacenadas en caché representan un riesgo potencial para la seguridad. Si alguien roba una computadora portátil o accede físicamente a ella, puede intentar forzar la seguridad o descifrar esos hashes. La complejidad de las contraseñas es sin duda útil, ya que las contraseñas más largas y complejas son más difíciles de descifrar. Para los administradores de dominio o los dispositivos BYOD locales, reducir o deshabilitar el almacenamiento en caché tiene sentido.

Para dispositivos móviles, es recomendable limitar las credenciales almacenadas en caché a una sola ; de esta manera, cada inicio de sesión sobrescribe el anterior, lo que dificulta la recopilación de múltiples hashes. Además, habilitar el cifrado de disco completo, como BitLocker, añade una capa adicional de protección. Y, si realmente desea ser más precavido, coloque las cuentas con privilegios en el grupo Usuarios Protegidos ; los miembros de ese grupo no pueden almacenar en caché sus credenciales.

Una pequeña nota al margen: los usuarios que inician sesión mediante VPN después de almacenar sus credenciales en caché podrían sufrir bloqueos de cuenta si las contraseñas cambian en el dominio y la caché local no se actualiza. Para evitarlo, es recomendable configurar Windows para que inicie la conexión VPN antes de iniciar sesión, si es posible.

Cómo borrar las credenciales almacenadas en caché

Para limpiar esos hashes en caché, debes eliminar las entradas NL$## del registro. Pero hacerlo manualmente no es muy práctico; requiere ejecutar como SYSTEM, lo cual es un fastidio. La forma más sencilla es establecer CachedLogonsCount a 0 mediante una GPO o un comando y luego forzar una actualización con gpupdate /force. Como alternativa, puedes ejecutar este comando en un símbolo del sistema con privilegios elevados:

reg add "HKLM\Software\Microsoft\Windows NT\CurrentVersion\Winlogon" /v CachedLogonsCount /t REG_SZ /d 0 /f

Una vez hecho esto y actualizadas las políticas, se borrarán las credenciales almacenadas en caché. Puede volver a configurar el recuento al valor que necesite (por ejemplo, 10) y Windows volverá a almacenar en caché para los siguientes inicios de sesión.

No sé por qué funciona así, pero después de borrar la caché o deshabilitar su configuración, los usuarios deberán iniciar sesión normalmente la próxima vez y las credenciales se almacenarán de nuevo si así se configura. Es un poco engorroso, pero la seguridad es lo primero, ¿no?

Resumen

  • Las credenciales almacenadas en caché permiten a los usuarios iniciar sesión sin conexión y se almacenan de forma segura en hashes de registro.
  • Ajuste la cantidad de credenciales almacenadas en caché a través de la política de grupo o el registro.
  • Deshabilitar o reducir el caché ayuda a la seguridad, especialmente en dispositivos móviles.
  • Para borrar los datos almacenados en caché, modifique el registro o establezca el recuento de caché en cero y luego actualice las políticas.

Resumen

Gestionar las credenciales almacenadas en caché en Windows puede ser un poco complicado: comodidad y seguridad. Por un lado, evita que los usuarios se bloqueen sin conexión, pero por otro, genera vulnerabilidades potenciales si las credenciales se almacenan en caché de forma insegura. Ajuste la configuración cuidadosamente según su entorno y no olvide borrar esas credenciales al implementar nuevas políticas de seguridad. Con suerte, esto le ahorrará algunas horas a alguien que intente reforzar la seguridad de su dominio. Ojalá que esto ayude.