Sistemas operativos modernos
consultarse por nombre empleando LookupAccountSid y luego insertarse en el descriptor de seguridad. Lo mismo se hace con el SID de grupo, si lo hay. Regularmente, estos SIDs serán el del invocador y el de uno de los grupos del invocador, respectivamente, pero el administra dor del sistema puede incluir cualquiera. Función API Win32 Descripción InitializeSecurityüescriptor Prepara un nuevo descriptor de seguridad para usarlo LookupAccountSid Busca un SID de un nombre de usuario dado SetSecurityDescriptorOwner Introduce un SID del dueño en el descriptor de seguridad SetSecurityDescríptorGroup Introduce un SID de grupo en el descriptor de seguridad InitializeAcI Asigna valores iniciales a DACL o SACL AddAccessAllowedAce Añade un nuevo ACE a DACL o SACL permitiendo el acceso AddAccessDeniedAce Añade un nuevo ACE a DACL o SACL negando el acceso DeleteAce Quita un ACE de una DACL o SACL SetSecurityDescriptorDacI Asocia una DACL con un descriptor de seguridad Figura 11-44. Las principales funciones de la API Win32 relacionadas con la seguridad. Ahora pueden asignarse valores iniciales a la DACL (o SACL) del descriptor de seguridad con InitialIzeAcl. Pueden añadirse entradas a una ACL con AddAccessAllowedAce y Add AccessDeniedAce. Estas llamadas pueden repetirse para añadir tantas entradas ACE como sea necesario. Puede usarse DeleteAce para eliminar una entrada de una ACL existente, no tanto de una ACL que se está construyendo por primera vez. Cuando la ACL está lista, puede usarse SetSecurityDescriptorDacI para asociarla con el descriptor de seguridad. Por último, cuando se crea el objeto, el descriptor de seguridad recién acuñado puede pasarse como pará metro para que se asocie con el objeto. 11.8.3 Implementación de la seguridad La seguridad en un sistema Windows 2000 autónomo se implementa con varios componentes, que en su mayor parte ya hemos visto (el trabajo con redes es otro asunto y rebasa e! alcance de este libro). El inicio de sesiones corre por cuenta de winlogon, y la validación, por cuenta de Isass y msgina.dll, como vimos en la sección 11.4.5. El resultado de un inicio de sesión exito so es un nuevo shell con su correspondiente ficha de acceso. Este proceso emplea las claves SECURITY y SAM del Registro. La primera establece la directiva de seguridad general y la segunda confiene la información de seguridad para los usuarios individuales, como vimos en la sección 1L2.3. Una vez que un usuario ha iniciado sesión, se efectúan operaciones de seguridad cuando un objeto se abre para tener acceso. Cada llamada OpenXXX requiere el nombre del objeto que se abrirá y el conjunto de derechos requeridos. Durante el procesamiento de la apertura, el administrador de seguridad (vea la figura 11-7) verifica si el invocador fiene todos los derechos
RkJQdWJsaXNoZXIy MjI4NDcx