Compartir a través de


Entrada de control de acceso

Una entrada de control de acceso (ACE) describe los derechos de acceso asociados a un identificador de seguridad (SID) determinado. El sistema operativo evalúa los ACE para calcular el acceso efectivo otorgado a un programa determinado en función de sus credenciales. Por ejemplo, cuando un usuario inicia sesión en el equipo y luego ejecuta un programa, el programa usa las credenciales asociadas a esa cuenta de usuario determinada.

Cuando un programa intenta abrir un objeto, Windows compara las credenciales asociadas al programa con los controles de seguridad asociados al objeto. El sistema de control de referencia de seguridad usa la información de ACE para determinar si se debe permitir o denegar al programa el acceso al objeto especificado. Es la ACE la que determina cómo responderá el subsistema de seguridad.

En la imagen siguiente se muestra la entrada de control de acceso.

Diagrama de la entrada de control de acceso.

El subsistema de seguridad usa varios tipos de ACES, como los siguientes. El miembro Type de la estructura de ACE controla la interpretación de la ACE. Los tipos definidos son:

  • ACCESS_ALLOWED_ACE_TYPE: este tipo indica que la ACE especifica los derechos de acceso concedidos al SID específico.

  • ACCESS_DENIED_ACE_TYPE indica que la ACE especifica los derechos de acceso que se van a denegar al SID específico.

  • SYSTEM_AUDIT_ACE_TYPE indica que la ACE especifica el modo de uso de la auditoría.

  • SYSTEM_ALARM_ACE_TYPE indica que la ACE especifica el modo de uso de la alarma.

  • ACCESS_ALLOWED_COMPOUND_ACE_TYPE indica que la ACE está vinculada a un servidor determinado y a la entidad que suplanta.

Los tipos ACCESS_XXX sirven para controlar el acceso a un objeto mediante programación. Los tipos SYSTEM_XXX sirven para controlar cómo funciona la auditoría y la alarma del subsistema de seguridad cuando se accede al objeto. El funcionamiento real del subsistema de seguridad se calcula mediante la combinación de la información de algunos o todas las ACE asociadas al objeto.

Un controlador puede construir una ACE de ACCESS_ALLOWED_ACE_TYPE mediante la rutina RtlAddAccessAllowedAce. Para agregar los otros tipos de entradas de ACE, las instancias de escritura de controladores deben construir sus propias funciones porque WDK no ofrece otras rutinas auxiliares.