A raíz de una discusión con usuarios de otro sitio me encuentro que mucha gente desconoce cómo funciona el sistema de seguridad de Windows, cómo se autentica a los usuarios y cómo estos tienen (o no) diferentes privilegios. En este artículo intentaré explicar dichos elementos con la mayor sencillez posible, para que así la gente que quiere saber qué hace Windows con los privilegios pueda conocerlo.
Cabe decir que aunque voy a citar a Windows 10 (ya que es “el Windows” ahora mismo) esto también es aplicable a Windows anteriores (especialmente desde Windows Vista / 7) con algunas diferencias, que quedan ya a mano del lector descubrirlas.
Usuarios estándares y administradores
En Windows 10, por lo general, hay dos tipos de usuarios que son fácilmente configurables mediante la aplicación de configuración, los usuarios administradores y los usuarios estándares. El usuario por defecto que inicia sesión por primera vez (Cuándo se nos pide la cuenta Microsoft por primera vez o creamos la primera cuenta local) en el ordenador es administrador, mientras que los demás usuarios que creemos en configuración serán limitados excepto que indiquemos lo contrario.
Así, por ejemplo, este otro usuario de mi Windows 10, es un usuario estándar, aunque puedo cambiarlo seleccionando Cambiar el tipo de cuenta y seleccionando Administrador en el desplegable que véis más arriba, todo ello en Usuarios > Familia y otras personas en Configuración. ¿Y qué diferencias hay entre un usuario adminsitrador y un usuario estándar? Eso lo veremos un poco más adelante.
Todo empieza al iniciar sesión
Cuándo iniciamos sesión empieza todo el camino que nos llevará a entender los diferentes entresijos de la seguridad de Windows. Cada vez que inicias sesión en Windows (Bien sea mediante tu PIN, contraseña o sin nada), seas usuario estándar o adminstrador, Windows crea un token (Una especie de llave de seguridad, con nuestra información de usuario, los permisos a los que tenemos… Aquí tenéis más información) para nuestro usuario. Este token se crea como usuario estándard incluso aunque seas administrador. Llamaré a este token a partir de ahora el token estándar.
Sin embargo si el usuario que inicia sesión es también administrador se crea un segundo token que no se crea para los usuarios estándares, el token de administrador. Este token de administrador contiene toda la información necesaria para ejecutar algo como administrador, al contrario que el token estándar que no puede acceder a temas de adminsitración en el equipo. En definitiva, el usuario estándar sólamente tiene el token estándar, mientras que el usuario administrador tiene el token estándar y el token administrador.
Por supuesto, hay que tener en cuenta que el usuario pepito, que es administrador, tiene su propio token estándar (el token estándar de Pepito) y su token administrador (el token adminsitrador de Pepito). Así, en la misma máquina tenemos también el token estándar de Juanito y el token administrador de Juanito y el token estándar de Albertito, que es un usuario estándar y por lo tanto no tiene token de administrador.
Windows pasa el token de una app a otra
Este es un detalle importante para seguir comprendiendo el tema de la seguridad. Si una app abre otra, Windows pasará el token. Esto significa que si una app con un token estándar de Pepito abre otra app o ejecuta otro proceso, esta segunda app o proceso se ejecutará con el tóken estándar de Pepito, y por lo tanto esta app no tendrá acceso a los documentos de Juanito.
Al iniciar sesión se carga el escritorio
Cuando Pepito se dispone a iniciar sesión, lo primero que hace Windows es iniciar el shell, que no es ni más ni menos que aquello que nos permite usar Windows, es decir, el escritorio, la barra de tareas, el menú inicio… Todo esto se encuentra en el ejecutable explorer.exe.
El aspecto a destacar es que explorer.exe se abre usando el token estándar, por lo que cualquier cosa que abra este (Por ejemplo, cuándo haces doble click en un icono en el escritorio, click en un elemento en el menú inicio o cuándo lanzas algo usando “Cortana” en Windows 10) Windows la abrirá usando el mismo token que tiene la app que lo ha abierto, que, siendo explorer.exe, es el token estándar. En definitiva, toda la sesión y el shell del usuario se inicia usando dicho token.
La elevación
No, no estamos levitando ni nada. Seguro que si has cacharreado alguna vez con Windows lo has leído: “La operación solicitada requiere elevación“. Elevar es como llamamos a dejar de usar el token estándar para pasar a usar el token administrador. Si una aplicación nos está diciendo que “requiere elevación”, lo que nos está pidiendo es que la lancemos con el token administrador o no podrá trabajar y hacer sus cosas.
Cada vez que queramos cambiar de token, necesitaremos a nuestro amigo el UAC
No puedes cambiar de token así por las buenas, si no que cada vez que queremos cambiar de token, debemos iniciar sesión, y para ello necesitamos a nuestro amigo el UAC. El UAC (Use Accounts Control) se encarga de cambiar el token previa autentificación del usuario.
En caso de que queramos cambiar al token de administrador, lo que comunmente se conoce como “ejecutar como administrador”, en el momento en el que Pepito quiera usar su token administrador en lugar del token estándar, saltará el UAC. Como pepito ya tiene la sesión iniciada y es la sesión activa, no se le pedirá la contraseña (salvo que se configure lo contrario, claro) y se le mostrará un diálogo Sí/No.
Otro aspecto bastante importante es que en el momento en el que Pepito cierre la aplicación que usa ese token de administrador, este no será heredable nunca más y Pepito tendrá que volver a pasar por el UAC para abrir esa app en modo elevado.
Sin embargo, Albertito no tenía cuenta de administrador, por lo que si solicita elevación (es decir, quiere usar un token administrador) el UAC le pedirá que inicie sesión con una cuenta que sí que tenga dicho token, lo que conlleva introducir la contraseña, PIN o el metodo de seguridad que estuviera configurado, en este caso de la cuenta de Pepito o de Juanito.
En el siguiente capítulo, seguiremos desmenuzando los pormenores del UAC, de la elevación, y de los diferentes modos que tiene el mismo, además de las firmas de los ejecutables. ¡Saludos!