La historia de Windows Vista: Requisitos de desarrollo para el control de cuentas de usuario en Windows Vista

Septiembre de 2006

Publicado: 13 de Noviembre de 2006

Microsoft Corporation

En la historia del desarrollador de Windows Vista se incluye información para los desarrolladores y otros expertos y administradores técnicos interesados en explorar a fondo las nuevas y ampliadas características de Windows Vista. Se publica en el Centro de desarrolladores de Windows Vista en forma de breves artículos, que aparecen aproximadamente cada dos semanas. Los artículos son un resumen del archivo de Ayuda de Windows, que puede descargarse aquí.

Nota

Este tema forma parte de la documentación de una versión preliminar y está sujeto a cambios en futuras versiones.

Nota

Si tiene algún comentario sobre los artículos, envíelo a la siguiente dirección de correo electrónico: Vistadev@microsoft.com.

En este artículo, los desarrolladores encontrarán información para que sus aplicaciones sean compatibles con UAC (control de cuentas de usuario).

Nota

Puede consultar el contenido íntegro de este artículo en el archivo de Ayuda de Windows, que puede descargarse aquí. Para buscar este tema, amplíe Fundamentos, Aplicaciones seguras, Desarrollar aplicaciones seguras y haga clic en Control de cuentas de usuario (UAC).

En esta página

¿Porqué el control de cuentas de usuario? ¿Porqué el control de cuentas de usuario?
¿Cómo funciona UAC? ¿Cómo funciona UAC?
¿Afectará UAC a la aplicación? ¿Afectará UAC a la aplicación?
Diseño de aplicaciones para Windows Vista.  Diseño de aplicaciones para Windows Vista.
Implementación y revisión de las aplicaciones para los usuarios estándar.  Implementación y revisión de las aplicaciones para los usuarios estándar.
Resolución de problemas comunes.  Resolución de problemas comunes.
Referencias.  Referencias.

¿Porqué el control de cuentas de usuario?

Los desarrolladores crean aplicaciones de Microsoft Windows que requieren demasiados derechos de usuario y privilegios de Windows. Así, a menudo, el usuario debe ser el administrador para realizar una tarea. Como consecuencia, pocos usuarios de Windows tienen los derechos y privilegios requeridos. Muchas empresas, para equilibrar la facilidad de implementación y uso con la seguridad, otorgan a menudo derechos de administrador a los usuarios estándar para evitar así problemas de compatibilidad.

En la siguiente lista se enumeran más razones por las que resulta complicado trabajar como usuario estándar en equipos anteriores a Microsoft Windows Vista:

  • En muchas aplicaciones de Windows, el usuario tiene que iniciar sesión como administrador, pero no se requiere un acceso como tal. Esas aplicaciones realizan varias comprobaciones de acceso antes de ejecutarse, entre las que se incluyen las siguientes:

    • Comprobar el token de acceso del administrador.

    • Solicitar el acceso total a las ubicaciones protegidas del sistema.

    • Escribir datos en las ubicaciones protegidas, por ejemplo %ProgramFiles%, %WinDir% y HKLM\Software

  • Muchas aplicaciones de Windows no se diseñan con los menos privilegios posibles ni distinguen las funciones del usuario y del administrador como dos procesos distintos.

  • De forma predeterminada, en Windows 2000 y Windows XP, cada cuenta de usuario se crea como administrador. Por consiguiente, los componentes clave de Windows, como los paneles de control Fecha y hora y Administración de energía, no funcionan bien para el usuario estándar.

  • También en Windows 2000 y Windows XP, los administradores deben crear dos cuentas independientes: una para las tareas administrativas y otra cuenta estándar para las tareas cotidianas. Por tanto, los usuarios estándar deben cerrar sesión y volver a iniciarla como administrador o bien usar la función Ejecutar como para realizar una tarea administrativa.

Con UAC (control de cuentas de usuario), Microsoft ofrece una tecnología que simplifica la implementación de equipos de usuarios estándar, tanto en la empresa como en casa.

Partiendo de la arquitectura de seguridad de Windows tal como se diseñó en el sistema operativo Microsoft Windows NT 3.1, el equipo de UAC intentó implementar un modelo de usuario estándar que fuera flexible a la vez que más seguro. En versiones anteriores de Windows, se crea un token de acceso para el administrador durante el inicio de sesión. En ese token se incluyen casi todos los privilegios de Windows y casi todos los identificadores de seguridad (SID) administrativa. También garantiza que el administrador pueda instalar una aplicación, configurar el sistema operativo y obtener acceso a todos los recursos.

El equipo de UAC optó por un enfoque totalmente distinto a la hora de crear el token de acceso en Windows Vista. Cuando un usuario administrador inicia sesión en un equipo con Windows Vista, se crean dos tokens: uno con acceso filtrado para el usuario estándar y otro con acceso total para el administrador. En lugar de iniciar el equipo (explorer.exe) con el token del administrador, se usa el token del usuario estándar. Todos los subprocesos heredan de esta ejecución inicial (es decir, del proceso explorer.exe), lo que limita la vulnerabilidad de Windows Vista ante posibles ataques. De forma predeterminada, todos los usuarios, incluidos los administradores, inician sesión en Windows Vista como usuarios estándar.

Nota

Hay una excepción a la afirmación anterior: los invitados inician sesión con menos derechos y privilegios que los usuarios estándar. Cuando un administrador intenta realizar una tarea administrativa, como instalar una aplicación, la función UAC le pide al usuario que apruebe la acción. Cuando el usuario la aprueba, la tarea se inicia con el token de acceso total del administrador. Ése es el comportamiento predeterminado, pero se puede configurar en el complemento local Administrador de directivas de seguridad (secpol.msc) y con Directiva de grupo (gpedit.msc).

Nota

Una cuenta de administrador con UAC habilitado en Windows Vista también se denomina cuenta en modo de aprobación de administrador. Este modo identifica la experiencia de usuario predeterminada para los administradores.Cada elevación administrativa corresponde a un proceso, lo que impide que otros procesos usen el token de acceso sin pedirle permiso al usuario. Como consecuencia, los usuarios administradores tienen más control granular sobre lo que instalan las aplicaciones a la vez que controlan el software malicioso, que espera que el usuario tenga un token de acceso total.

Asimismo, los usuarios estándar tienen la oportunidad de realizar tareas administrativas mediante la infraestructura de UAC. Cuando intentan realizar una tarea administrativa, UAC les pide que especifiquen las credenciales de una cuenta de administrador. Ése es el comportamiento predeterminado, pero se puede configurar en el complemento local Administrador de directivas de seguridad (secpol.msc) y con Directiva de grupo (gpedit.msc).

Actualizaciones de Windows Vista

Las actualizaciones siguientes reflejan los cambios más importantes en la funcionalidad de Windows Vista.

  • UAC está habilitado de forma predeterminada

  • Todas las cuentas posteriores se crean como usuarios estándar

  • La confirmación de elevación de privilegios se muestra de forma predeterminada en modo seguro

  • La confirmación de elevación para las aplicaciones en segundo plano se minimiza en la barra de tareas

  • Las elevaciones se bloquean en la ruta de inicio de sesión del usuario

  • La cuenta de administrador integrado está deshabilitada de forma predeterminada en las nuevas instalaciones

  • Acceso remoto y control de cuentas de usuario

  • Nueva configuración predeterminada de ACL (listas de control de acceso)

Puede consultar información más detallada sobre las actualizaciones de Windows Vista en el archivo de Ayuda de Windows, que puede descargarse aquí.

 

¿Cómo funciona UAC?

En esta sección, mostramos a los desarrolladores los componentes arquitectónicos y funcionales de UAC, desglosados en dos temas: Nuevas tecnologías de Windows Vista y Arquitectura de UAC.

Nuevas tecnologías de Windows Vista

A continuación, se detallan las nuevas tecnologías de Windows Vista.

  • Detección del instalador

  • Revisiones del usuario estándar con Windows Installer 4.0

  • Aislamiento de privilegios en la interfaz de usuario

  • Virtualización

Puede consultar información más detallada sobre las nuevas tecnologías de Windows Vista y los cambios en los tokens de acceso en el archivo de Ayuda de Windows, que puede descargarse aquí.

Arquitectura de UAC

En el diagrama siguiente se representa cómo se inicia un archivo ejecutable en Windows Vista.

Arquitectura de UAC

A continuación, explicamos el proceso de la arquitectura de UAC representado en el diagrama y cómo se implementa UAC cuando un archivo ejecutable intenta iniciarse.

Ruta de inicio del usuario estándar

La ruta de inicio del usuario estándar en Windows Vista se parece mucho a la ruta en Windows XP, pero incluye algunas modificaciones.

  1. ShellExecute() llama a CreateProcess().

  2. CreateProcess() llama a AppCompat, Fusion y a la función de detección del instalador para comprobar si la aplicación requiere elevación. Entonces, se inspecciona el archivo ejecutable para determinar el requestedExecutionLevel, almacenado en el manifiesto de la aplicación del archivo. La base de datos AppCompat almacena información para las entradas de corrección de compatibilidad de la aplicación. La función de detección del instalador detecta los archivos ejecutables de la instalación

  3. CreateProcess() devuelve un código de error Win32: ERROR_ELEVATION_REQUIRED

  4. ShellExecute() busca ese error en concreto y, al recibirlo, llama a AIS (servicio de información de la aplicación) para intentar el inicio elevado

Ruta de inicio elevado

La ruta de inicio elevado de Windows Vista es una novedad de Windows.

  • AIS recibe la llamada de ShellExecute() y vuelve a evaluar el nivel de ejecución solicitado y la directiva de grupo para determinar si se permite la elevación y para definir la experiencia del usuario

  • Si el nivel solicitado requiere elevación, el servicio inicia la confirmación pertinente en el equipo interactivo del autor de la llamada (según la directiva de grupo), mediante el controlador HWND que envía ShellExecute()

  • Cuando el usuario lo consiente o proporciona credenciales válidas, AIS recupera el token de acceso asociado al usuario en cuestión, si fuera necesario. Por ejemplo, una aplicación que solicite un requestedExecutionLevel de highestAvailable recuperará tokens de acceso distintos para un usuario según pertenezca al grupo Operadores de copia de seguridad o al grupo local Administradores

AIS vuelve a realizar una llamada CreateProcessAsUser(), facilitando el token de acceso del administrador y especificando el equipo interactivo del autor de la llamada

 

¿Afectará UAC a la aplicación?

Que la aplicación se vea afectada por UAC depende del estado actual de la misma. En bastantes casos, no será necesario realizar ningún cambio para cumplir los requisitos de Seguridad de Microsoft Windows®. Sin embargo, algunas aplicaciones, incluidas las de unidad de negocio (LOB), pueden requerir cambios en los procesos de instalación, funcionalidad y actualización para que funcionen en un entorno UAC de Windows Vista

Si una aplicación funciona correctamente como usuario estándar en Windows XP, seguirá funcionando bien como usuario ESTÁNDAR en Windows Vista.
Si desea más información sobre este tema, consulte las siguientes subsecciones del archivo de Ayuda de Windows, que puede descargarse aquí

  • ¿Por qué tengo que quitar las dependencias administrativas de mi aplicación?

  • Reducir el costo total de propiedad de la aplicación

  • ¿Cómo determino si mi aplicación tiene dependencias administrativas?

  • ¿Qué requisitos hay si tengo una aplicación de administrador legítima?

 

Diseño de aplicaciones para Windows Vista.

En la siguiente lista se explica el diseño de una aplicación para Windows Vista:

  • Paso uno: Pruebe la compatibilidad de la aplicación con otras aplicaciones

  • Paso dos: Clasifique la aplicación como usuario estándar, administrador o usuario mixto.

  • Paso tres: Vuelva a diseñar las funciones para que sean compatibles con UAC.

  • Paso cuatro: Vuelva a diseñar la interfaz de usuario para que sea compatible con UAC.

  • Paso cinco: Vuelva a diseñar el instalador.

  • Paso seis: Cree un manifiesto e incrústelo en la aplicación.

  • Paso siete: Pruebe la aplicación

  • Paso ocho: Fírmela con Authenticode

  • Paso nueve: Participe en el Windows Vista Logo Program

Muchos de los pasos enumerados anteriormente ofrecen ejemplos y códigos de muestra para los desarrolladores. Puede consultar información más detallada sobre los pasos anteriores en el archivo de Ayuda de Windows, que puede descargarse aquí.

 

Implementación y revisión de las aplicaciones para los usuarios estándar.

Por lo general, las empresas tendrán que plantearse cómo instalarán las aplicaciones en los puestos de trabajo de los empleados de manera automatizada para reducir los costos administrativos. Ese problema tiene dos vertientes: primera, cómo empaquetamos las aplicaciones para implementarlas; y segunda, qué tecnología usamos para dicha implementación. En el caso de las pequeñas empresas, quizá no sea necesario un mecanismo de implementación muy estable y automatizado. Puede consultar información más detallada sobre la implementación y revisión de aplicaciones para usuarios estándar en el archivo de Ayuda de Windows, que puede descargarse aquí.

 

Resolución de problemas comunes.

A continuación, se detallan los problemas comunes de las aplicaciones en Windows Vista

Entre los problemas comunes, encontramos los siguientes:

  • Problemas de instalación de ActiveX

  • Los documentos de ActiveX no se instalan

  • Se requiere la aplicación, el marco de trabajo o el complemento

  • Se requieren permisos administrativos para la instalación o la revisión

  • Ubicaciones de configuración por parte del usuario

  • Los valores predeterminados de UAC/DR se guardan en un directorio protegido

Si desea información más detallada, consulte la sección para resolver problemas comunes del archivo de Ayuda de Windows, que puede descargarse aquí.

 

Referencias.

En esta sección se incluye una referencia para la virtualización y otra para la configuración de seguridad.

Si desea información más detallada, consulte la sección de referencias del archivo de Ayuda de Windows.

Nota

Puede consultar el contenido íntegro de este artículo en el archivo de Ayuda de Windows, que puede descargarse aquí. Para buscar este tema, amplíe Fundamentos, Aplicaciones seguras, Desarrollar aplicaciones seguras y haga clic en Control de cuentas de usuario (UAC).