Windows NT

Sistema Operativo Modular. Tecnología de 32 bits. Rendimiento. Arquitectura. Herramientas. Capacidad Multimedia. Compatibilidad. Interfaz de Usuario. Multitasking. Implementación de la Seguridad

  • Enviado por: VLADIMIR CAMILO
  • Idioma: castellano
  • País: España España
  • 20 páginas
publicidad
publicidad

Historia de Windows NT

Microsoft reunió en el 1988 lo que después formaría el equipo de desarrollo de Windows NT, con el objetivo de desarrollar un sistema operativo polivalente, realmente moderno, basado en tecnología 32 bits.

Las primeras versiones de Windows NT - Windows NT 3.1 y Windows NT 3.1 Advanced Server - aparecieron el 23 de Julio de 1993. Estos primeros productos contenían una nueva arquitectura del núcleo del sistema operativo, capacidad multitarea, un sistema de archivos NT File System tolerante a fallos, soporte de la arquitectura Windows 32, soporte multiprocesador, servicios de archivos e impresoras y algunas innovaciones más.

Windows NT 3.5 le siguió el 8 de Septiembre de 1994 y añadía un mayor rendimiento, más completa arquitectura y herramientas más complejas. Windows NT 3.51 añadió soporte para aplicaciones compatibles con Windows 95 y dispositivos PCMCIA el 30 de Mayo. Windows NT 4.0 incorporó el famoso interfaz de Windows 95, tecnología de navegación de Internet Explorer y soporte para Netware mejorado el 29 de Julio de 1996.

Desde la primera aparición de Windows NT 4.0, el producto ha evolucionado a través de seis service packs, añadiendo e integrando funcionalidad COM (Component Objet Model), soporte robusto para transacciones síncronas y asíncronas, capacidad multimedia y una gran variedad de características en el entorno de exploración de Internet y tecnologías de Servidor.

Desde unas modestas 34,000 unidades vendidas en el año fiscal de 1994, Microsoft pasó a vender un millón de licencias de Servidor y 5.9 millones de licencias de Workstation en el año 1997. Hoy en día, Microsoft ha vendido más de 20 millones de licencias de Windows NT.

Que es Windows NT

Windows NT es un sistema operativo modular. Esto significa que es una colección de pequeños componentes(o módulos) que trabajan en conjunto para ejecutar las tareas de un Sistema Operativo. Cada componente provee un conjunto de funciones que actúan como interfaz para el resto del sistema. Los componentes pueden llamar funciones de los otros componentes para hacer su trabajo.

Partes del Sistema Operativo Windows NT

Las partes principales del sistema operativo Windows NT son:

  • Subsistemas de medio ambiente: Se encargan de ejecutar los programas escritos para Windows NT o para otros sistemas operativos soportados por NT. Ejemplo de éstos son el subsistema Win32, el subsistema OS/2 y el subsistema POSIX.

  • NT Executive o Ejecutivo de NT: Es una porción de NT que corre en el espacio de memoria protegido llamado Kernel mode. Se encarga de casi todo lo concerniente a los procesos de seguridad y los procesos de entrada y salida, a excepción del teclado y la pantalla (estos dos son manejados por el subsistema Win32).

  • Administradores: Son módulos del executive de NT que administran E/S, objetos, seguridad, comunicación, memoria virtual y procesos.

  • Controladores de dispositivos: Conocidos como Device Drivers en inglés, no son más que módulos que traducen las llamadas que se le hacen a accesos a harware.

  • Kernel: Se encarga de administrar el procesador.

  • Capa de Abstracción de Hardware: (HAL) facilita la interfaz al hardware de forma virtual, lo que hace que NT sea mas portátil.

'Windows NT'

Todas esas partes se integran de forma transparente al usuario y convierten a NT en un sistema operativo con las siguientes características:

  • Compatibilidad

  • Confiabilidad

  • Portabilidad

  • Escalabilidad

  • Desempeño

  • Expansión

  • Procesamiento Distribuido

Compatibilidad

Windows NT fue diseñado con la meta de mantener la compatibilidad con las aplicaciones escritas para MS-DOS, Windows 3.x, OS/2, y POSIX. Esto se logró implementando una suite de emuladores de esos sistemas opertivos que resiben el nombre de subsistemas de medio ambiente (Environment Subsystems). Estos emuladores forman una capa intermedia entre las aplicaciones de los usuarios y el nucleo del sistema operativo.

Interfaz de usuario

La interfaz de Windows NT es sencilla y fácil de usar debido a que es similar a la de las versiondes de escritorios de windows. La interfaz de usuario es manejada por el subsistema Win32, lo que significa que cualquier otro subsistema que desea desplegar algo en el monitor o recibir entrada de los usuarios debe hacerlo a través del Win32.

Soporte a Hardware

Windows NT no es compatible con controladores de dispositivos escritos para otros sistemas operativos. La arquitectura de manejo de dispositivos de Windows NT ha sido mejorada con respecto a los otros sistemas operativos de Microsoft con un diseño modular, orientado a objetos, que permite que las funciones básica de cualquier dispositivo se construyan en una capa y solo necesiten que se le añadan las porciones requeridas por una marca específica del tipo de dispositivo. Esto hace la arquitectura de manejo de dispositivos de NT mas abierta.

Windows NT Executive

El “Executive” de Windows NT es el centro de las funciones principales del sistema operativo. Debido a esto resulta extremadamente importante proteger el “Executive” de cualquier aplicacion o subsistema malicioso o de mal funcionamiento. Para lograr este objetivo, los desarrolladores del producto lo diseñaron de manera tal que el executive corre en un modo privilegiado llamado “kernel mode”, mientras que los subsistemas y demas aplicaciones corren en un modo no privilegiado llamado “user mode”. Esto significa que el executive tiene acceso total a la memoria de la estación de trabajo y puede ejecutar cualquier instrucción que desee. El resto del codigo, incluyendo los subsistemas ambientales, puede accesar solo la porcion de memoria que el executive le autoriza accesar.

Cuando un subsistema llama un servicio del executive, la llamada es redirigida a una trampa del sistema localizada en el executive. El procesador es entonces cambiado a kernel mode para que el executive pueda ejecutar las instrucciones y accesar la memoria que necesita para ejecutar el servicio requerido. Luego de completado el servicio, el executive cambia el procesador a user mode y devuelve el control al subsistema.

Multitasking

Todas las versiones de Windows soportan trabajo multitarea. Windows para MS-DOS implementa trabajo multitarea no preferencial. Esto significa que cada ejecutable debe voluntariamente ceder el control del procesador de forma regular para que otros programas puedan ejecutarse. Si un programa falla en ceder el control a otros programas, el sistema de responder a la accioes del usuario y da la impression de haberse colgado. Windows NT resuelve este problema implementando algo llamado multitarea preferencial. Esto significa que el sistema operativo tiene el control total de cual programa corre, en que momento y por cuanto tiempo. A cada programa se le permite correr por un pequeño “quantum” de tiempo. Cuando el quantum expira, el sistema operativo graba información acerca del estado del programa en ejecución, para luego reiniciar la ejecución del mismo donde se quedó. Entonces se carga el siguiente programa para su ejecución. El proceso de guardar el estado de un programa y cargar el de otro se llama cambio de contexto.

En MS-DOS cada programa tiene solo un hilo (thread) de ejecución. Las instrucciones del programa son ejecutadas de forma contínua y secuencial, haciendo solo una cosa a la vez. En Windows NT, cada programa se puede dividir en diferentes hilos, lo que le permite hacer varias cosas de forma simultánea.

Todos los hilos corren como parte del mismo proceso. Piense en un proceso como una colección de uno o más hilos que comparten el mismo espacio de memoria.

Esto resulta bastante seguro porque cada proceso cuenta con un espacio de memoria independiente y un hilo en un proceso no puede accesar sin autorización el espacio de memoria de otros procesos.

Comunicación entre procesos

Debido precisamente a que Windows NT asigna un espacio de memoria independiente a cada proceso y a que los procesos no pueden ver el espacio de memoria de otros procesos, la comunicación entre estos es más complicada.

Este problema es resuelto mediante un componente del Windows NT executive llamado “Administrador de comunicación entre procesos (IPC Manager)”. El IPC Manager provee los mecanismos necesarios para que los hilos de diferentes procesos puedan enviarse mensajes entre sí.

Portabilidad

La gran mayoría del código de Windows NT está escrito en lenguaje C y C++. Esto permite que se pueda recompilar el código en otra plataforma de hardware y con solo una pequeña modificación al código escrito en Assembler para que se ajuste al set de instrucciones que soporte el nuevo procesador donde vamos a instalarlo.

El Kernel

El kernel es el corazón de Windows NT. Éste controla cuales procesos o hilos se ejecutan en el procesador o los procesadores y brinda los mecanismos de sincronización para que hilos en múltiples procesadores puedan coordinar su acceso a las estructuras de datos del sistema operativo. Para mejorar la velocidad, esas funciones críticas del Kernel están escritas en lenguaje ensamblador.

Hardware Abstraction Layer

La capa de abstracción de hardware o HAL es un fina capa de software que se encarga de esconder de otras capas del sistema operativo las diferencias de hardware. Esto lo hace creando la impresión que diferentes tipos de hardware son la misma cosa ante el resto del sistema operativo.

Multi Procesamiento

Windows NT es un sistema operativo de multiprocesamiento simétrico. Esto significa que es capaz de usar uno o más procesadores de un máquina, siempre y cuando sean del mismo tipo y estén configurados de la misma forma. En el modelo simétrico diferentes partes de las aplicaciones y del sistema operativo corren en diferentes procesadores al mismo tiempo. En sistemas operativos de multiprocesamiento asimétrico, por el contrario, el sistema operativo corre en un procesador y las aplicaciones corren en otro u otros procesadores. Esto causa que las aplicaciones tengan que esperar que el sistema operativo las alcance o viceversa lo que provoca que el desenvolvimiento del sistema sea más lento.

Velocidad

Windows NT está optimizado de diferentes formas para mejorar su desenvolvimiento. A continuación listamos algunas de las técnicas usadas para optimizar la velocidad del sistema:

Uso de múltiples hilos(threads): Permite que se ejecuten varios procesos sin necesidad de crearles espacios de memoria independiente

Evaluación Haragana: Windows NT deja para último las operaciones que consumen más recursos para ejecutarlas cuando es imprescindible hacerlo.

Copia de procesos de lectura / escritura: Significa que dos procesos pueden compartir el mismo proceso de lectura o escritura a la memoria, cambiando solo el espacio a donde se va a escribir o leer.

Los subsistemas no son cargados a memoria hasta que no son necesarios.

El modelo de memoria virtual de Windows NT

'Windows NT'

El modelo de memoria de NT permite que cada proceso del sistema operativo tenga acceso a un máximo de 4 GB de memoria.

Arquitectura de la Memoria Virtual

Con memoria virtual, todas las aplicaciones parecen tener acceso a toda la memoria disponible del equipo. Windows NT logra esto dándole a cada aplicación un rango privado de memoria llamado memoria virtual y luego mapeando esta memoria virtual a memoria física. Windows NT mapea la memoria física y memoria virtual en bloques de 4k llamados páginas.

Debido a que pocos sistemas tienen suficiente memoria para proveer de 4 GB a cada aplicación, el sistema operativo maneja la memoria para crear la ilusión de que es así de la siguiente forma:

  • La mayoría de las páginas están vacías, porque la aplicación no las está usando.

  • Las páginas que están en uso so redireccionadas por un puntero, invisible para la aplicación, a memoria física.

  • Algunas páginas que no han sido usadas recientemente contienen otro puntero a una sección de 4K en un archivo de paginación en el disco duro.

Proceso de manejo de la Memoria Virtual

El proceso de administración de cual memoria virtual se guarda en RAM y cual se guarda en el disco duro se llama “demand paging” y es como sigue:

  • Una aplicación trata de escribir datos a la memoria

  • El administrador de memoria virtual intercepta la petición, determina cuantas páginas se necesitan para completar la petición y asigna memoria física en el espacio de memoria de la aplicación. El administrador de memoria virtual esconde la organización de la memoria física de las aplicaciones y maneja las peticiones de forma tal que cada vez que una aplicación solicita memoria es ésste quien la asigna.

  • Si no hay suficiente memoria física disponible para la aplicación, el adminstrador de memoria virtual usa “demand paging” para encontrar espacios que no se hayan usado últimamente y copia su contenido al disco duro. Entonces el espacio de memoria RAM recién liberado se asigna a la aplicación que la requiere.

  • Cuando datos contenidos en el archivo de paginación en disco son necesitados, las páginas requeridas son copiadas de Nuevo a RAM y la nueva dirección de la memoria es asignada a la memoria virtual de la aplicación.

Sistema de Archivos Soportados Windows NT

Windows NT soporta diferentes sistemas de archivos corriendo en una misma computadora.

Los sistemas de archivos que están disponibles en el ambiente de Windows NT y los diferentes sistemas operatives que los soportan se detallan a continuación:

Sistema de Archivo

Sistema operativo

Tabla de localización de archivos (FAT, File Allocation Table)

Windows NT, Microsoft Windows 95, Microsoft MS-DOS, e IBM OS/2.

Sistema de archivo Windows NT (NTFS, NT File System)

Windows NT

Sistema de Archivos de CD-ROM (CDFS, CD File System)

Windows NT y Windows 95

Sistema de Archivo FAT.

El sistema conocido como tabla de localización de archivos es una version ampliada y mejorada de la que se ha estado usando por años en las computadoras basadas en el sistema operativo MS-DOS.

Las consideraciones más importantes cuando se está usando el sistema de archivo FAT son las reglas para nombrar los archivos, la seguridad y el tamaño del archivo y la partición.

Reglas para nombrar los archivos. Bajo Windows NT, el sistema de archivo FAT ha sido ampliado para soportar nombres largos de archivos. Los siguientes criterios aplican al momento de asignarle un nombre a un archivo bajo Windows NT:

  • El nombre puede tener hasta 255 caracteres, incluyendo la ruta de acceso.

  • El nombre debe empezar con una letra o un número, y puede contener cualquier caracter, excepto: “ / \ [ ] : ; | = . ^ * ?

  • El nombre puede contener múltiples espacios en blanco.

  • El nombre puede contener múltiples puntos, los caracteres después del ultimo punto serán tratados con la extensión.

  • Los nombres preservan las mayúsculas, aunque no son sensibles a esta.

Security. Una partición FAT no puede ser protegida por el archivo local o la característica de seguridad de directorio de Windows NT. El único sistema de seguridad disponible en este tipo de particiones es proveído a través de los mecanismos para compartir directorios en NT.

Tamaño del archivo y la partición. El tamaño máximo para un archivo o una partición para el sistema de archivos FAT es de 4GB.

NTFS.

El sistema de archivo Windows NT es el más seguro y robusto.

Reglas para nombrar los archivos. Las siguientes reglas aplican:

  • Los nombres de archivos y de carpetas pueden tener hasta 255 caracteres, incluyendo sus respectivas extensiones.

  • En general, los nombres no son sensibles a la mayúscula.

  • Puede contener cualquier caracter, excepto: ? “ / \ < > * | :

Seguridad en NTFS

NTFS facilita la seguridad para servidores de archivos y clientes en un ambiente corporativo.

NTFS soporta control de acceso y privilegios de propiedad importantes para la integridad de los datos de la corporación. NTFS es el único sistema de archivos de Windows NT que permite asignar seguridad a archivos individuales sin importar que estén compartidos o no.

Tamaño de las particiones y de los archivos.

NTFS soporta particiones y archivos más grandes que el sistema de archivos FAT, en teoría NTFS soporta hasta 16 exabytes de información, pero esto no es posible de comprobar con el Hardware existente en la actualidad. El tamaño máximo de un archivo individual es de 4 GB a 64 GB. El tamaño máximo para las particiones permitido por el Hardware existente es de 2 terabytes. El mínimo recomendado para particiones NTFS es de 50 MB.

Características adicionales

NTFS cuenta con características adicionales que lo convierten en un sistema de archivos poderoso y flexible. Algunas de estas características son:

  • Soporte para compresión de archivos: La compresión de archivos reduce los archivos ejecutables a un 60% de su tamaño y las aplicaciones basadas en texto a un 50%.

  • Papelera de reciclaje independiente para cada usuario: De esta forma si un usuario borra un archivo privado ningún otro usuario tiene acceso a recuperarlo desde la papelera.

  • Recuperación automática de transacciones: NTFS es muy confiable porque utiliza un histórico de transacciones que se actualiza automáticamente por queda archivo o directorio. Esto es usado por Windows NT para deshacer o rehacer operaciones que fallaron debido a un falla del sistema, pérdida de electricidad o algo por el estilo.

Seguridad

El por qué de la seguridad

En todo sistema operativo multitarea, los programas comparten varios recursos del sistema como son la memoria, dispositivos de entrada y salida, archivos, y el procesador de la computadora. Un sistema operativo confiable como Windows NT debe asegurar que las aplicaciones no tienen acceso a estos recursos sin la debida autorización, o monopolizar los recursos del sistema. La seguridad es más crítica para sistemas que funcionan como servidores de archivos o de base de datos; sin un esquema apropiado de seguridad los datos no estarían seguros.

Windows NT fue diseñado de arriba abajo para ser robusto, confiable y seguro. El diseño de la seguridad de NT sigue un conjunto de reglas desarrolladas por el departamento de defensa de los estados unidos.

Resulta prácticamente imposible añadir características de seguridad robustas a un sistema operativo existente debido a que esto implicaría rescribir el sistema operativo casi por completo, lo que no tendría ningún sentido. Conociendo esta realidad, Microsoft decidió comenzar desde cero el diseño del NT, lo que le permitió diseñarlo para ser seguro desde el principio.

En resumen, las características de seguridad en Windows NT lo ayudan a alcanzar la meta de ser confiable y le permite ser considerado como el sistema operativo a usar en las aplicaciones criticas del negocio.

Para poder contar con un sistema operativo seguro el sistema operativo necesita ser capaz de controlar el acceso a sus recursos. Windows NT centraliza el acceso a todos los recursos manejándolos y presentándolos como objetos. Windows NT está diseñado casi en su totalidad basándose en objetos, es tanto así que los usuarios se refieren a el como un “sistema operativo basado en objetos”.

No es necesario ser un experto en programación orientada a objetos para entender las ventajas que esta nueva forma de programar aporto a Windows NT, basta con conocer lo siguiente:

  • Todos los recursos manejados por Windows NT están representados por objetos.

  • Un objeto contiene datos y las funciones que actúan sobre esos datos.

  • Solo Windows NT puede accesar los objetos y por consiguiente los recursos directamente.

  • Todo acceso a un objeto es controlado por el sistema de seguridad de Windows NT.

  • La capacidad de operación de un objeto está definida por su tipo.

¿Que es un objeto?

Un objeto es un concepto de programación en el cual los datos y las funciones que manipulan esos datos están contenidas en la misma entidad. Solo las funciones contenidas en el objeto pueden modificar los datos. Cualquier otro objeto o proceso que quiera accionar sobre esos datos debe hacerlo a través de las funciones del objeto que es el dueño de esos datos. Esto hace que los objetos sean una especie de “caja negra”. Se sabe que responden a ciertas funciones, pero no se sabe lo que esta pasando en el interior.

¿Cómo se relacionan los objetos a la seguridad?

Los objetos son muy importantes en Windows NT porque la única forma que un programa puede accesar un objeto de Windows NT y por consiguiente el recurso asociado a ese objeto es pidiendo a Windows NT que ejecute la operación en el objeto por el. Los programas NUNCA accesan los objetos o recursos directamente, solo Windows NT puede accesar directamente los objetos o recursos. Esta propiedad de Windows NT es muy importante para asegurar que Windows NT es seguro. Resulta bastante fácil para NT revisar cada acceso a cada objeto para asegurarse de que el programa que lo esta accesando esta autorizado a hacer lo que esta pidiendo.

En adición a los recursos concretos mencionados anteriormente, la seguridad de Windows NT aplica también a objetos más abstractos. Algunos ejemplos de esto son los procesos, hilos, y objetos de sincronización.

¿Cómo funciona la seguridad bajo Windows NT?

Bajo Windows NT, la seguridad de los recursos es mas bien seguridad de los objetos que representan esos recursos y consiste de lo siguiente:

Control de acceso a los objetos.

El primer requerimiento de seguridad bajo Windows NT es que NT debe controlar el acceso a los objetos del sistema.

Estas características de seguridad hacen que Windows NT sea más confiable y robusto al prevenir que las aplicaciones accesen recursos de otras aplicaciones o del sistema operativo ya sea con o sin intención.

Rastreando accesos o intentos de acceso a los objetos.

Debido a que Windows NT es un mecanismo para controlar el acceso a todos los objetos, puede mantener un registro de cuales usuarios ejecutaron e intentaron ejecutar cuales acciones. El administrador del sistema puede controlar cuales objetos son rastreados y cuales tipos de acciones y / o intentos fallidos son grabados.

En adición a su utilidad para la investigación de problemas de seguridad, los registros de auditoria pueden ser usados para localizar fallas en las aplicaciones de los usuarios y del sistema operativo.

Prevención del monopolio de los objetos.

En Windows NT, cada usuario tiene cuotas asignadas que controlan el uso que pueden darle a los recursos, como por ejemplo memoria, tiempo de procesamiento, etc. Windows NT se asegura que cada usuario se mantenga dentro de su cuota asignada para cada recurso. Estas cuotas previenen que un solo usuario tome el control total de la computadora. Lo grandioso de las cuotas es que se asignan usando el mismo esquema centralizado de seguridad que se utiliza para controlar la seguridad de acceso a los objetos. Cada objeto tienen cargos de uso asociados a él, este cargo es deducido del balance de la cuota del usuario cuando éste accesa el recurso.

Como se asegura NT de que la seguridad no sea evadida

Es imposible añadir seguridad a sistemas operativos como MS-DOS, Mac OS o OS/2 2.0 porque en éstos cualquier programa tiene acceso ilimitado a todos los recursos del sistema. Aunque estos sistemas operativos tratasen de implementar seguridad, como por ejemplo, pidiendo contraseñas para acceso y manteniendo listas de acceso a los archivos, cualquier programador con algo de astucia podría fácilmente evadir la seguridad bajo estos sistemas operativos.

La implementación de una verdadera seguridad requiere que el hardware del procesador lo soporte. Los microprocesadores producidos en un principio (Intel 8086 y motorola 68000, por ejemplo) no contaban con los mecanismos de protección necesarios para implementar seguridad; como resultado de esto, los sistemas operativos que corren en estos procesadores nunca pueden ser seguros. A pesar de que los procesadores mas recientes (del 80286 en adelante) si cuentan con el soporte necesario para implementar mecanismos de seguridad, los sistemas operativos mencionados arriba no implementan seguridad para mantener la compatibilidad con los procesadores anteriores.

Windows NT, por otra parte, puede ser seguro porque usa los mecanismos de seguridad que proveen los microprocesadores modernos. Windows NT usa las siguientes características facilitadas por los microprocesadores modernos:

  • La memoria donde corre NT esta protegida de otros programas.

  • La memoria de cada programa esta protegida de los demás programas.

  • No es permitido a los programas de los usuarios el acceso a los dispositivos.

Windows NT corre en memoria protegida

En algunos sistemas operativos inseguros, cualquier programa puede accesar la memoria del sistema operativo.

Bajo Windows NT, ningún otro programa a parte del sistema operativo puede accesar el código o los datos de Windows NT. Cualquier programa que intente accesar el espacio de memoria de Windows NT es rechazado por el procesador. Cualquier intento de esta índole causa que Windows NT aniquile el proceso ofensor. Por otra parte, Windows NT tiene acceso a toda la memoria del equipo incluyendo la de los demás programas.

Memoria separada para cada proceso

En algunos sistemas operativos inseguros, cualquier programa puede accesar a cualquier parte de la memoria del equipo, incluyendo la de los demás programas. Esto no solo es inseguro sino que hace que los programas sean poco confiables porque podrían ser modificados por cualquier otro programan mientras corren ya sea accidentalmente o de forma maliciosa.

Bajo Windows NT, cada programa corre en su propio espacio de memoria, de esta forma no puede accesar la memoria que pertenece otros programas sin autorización. Cualquier intento de accesar sin autorización un espacio de memoria que pertenece a otro programa es detectado por Windows NT y el proceso ofensor es terminado por Windows NT.

Solo Windows NT puede accesar directamente los dispositivos

En algunos sistemas operativos cualquier programa tiene acceso a cualquier dispositivo directamente. Cualquier esquema de seguridad que un sistema operativo como este tratase de implementar podría ser burlado fácilmente con solo rodear el sistema operativo y accesar los dispositivos directamente.

Esto también causa problemas cuando más de un programa quiere tener acceso al mismo dispositivo al mismo tiempo. En Windows NT ningún programa tiene acceso directo a ningún dispositivo. Cuando un programa necesita accesar un dispositivo, debe hacer una llamada a Windows NT y es éste último que accesa el dispositivo luego de cerciorarse de que el programa tiene acceso al dispositivo deseado y que el dispositivo no este en uso por otro programa.

Implementación de la seguridad bajo Windows NT

El tipo de seguridad que se usa en Windows NT está basado en el uso de IDs de usuarios. Bajo este esquema el propietario de un objeto puede especificar cuales usuarios o grupos pueden accesar el objeto y con que tipo de acceso (lectura, escritura, etc.).

A diferencia de los sistemas que se basan solo en contraseñas para controlar el acceso a los recursos sin tomar en cuenta quien los esta accesando, la seguridad de Windows NT requiere lo siguiente:

  • Una forma de identificar el usuario, llamada token de acceso.

  • Una lista de cuales usuarios o grupos de usuarios pueden hacer cuales operaciones en cada objeto, llamada "lista de control de accesos" (ACL). Cada objeto tiene su propia lista de control de acceso.

Debido a que Windows NT puede identificar cada usuario y sabe a que esta autorizado, puede comparar el permiso de la lista de control de acceso del objeto con el token de acceso (ID de usuario) para determinar que tipo de acceso, si hay alguno, tiene cada usuario.

El por qué del logon obligatorio

Para poder asegurarse que un usuario es quien dice ser, Windows NT obliga a los usuarios a digitar un nombre de usuario y una contraseña para poder tener acceso al sistema. Esto provee una forma de identificar quien es cada usuario y determinar si esta o no autorizado a conectarse al sistema.

Los pasos para un logon exitoso son los siguientes:

  • El proceso Winlogon del subsistema Win32 despliega una caja de dialogo y pide al usuario su ID y contraseña, luego pasa esta información al subsistema de seguridad.

  • El subsistema de seguridad a su vez verifica si la información facilitada pertenece a un usuario autorizado del sistema haciendo una búsqueda en la base de datos del administrador de cuentas de seguridad (SAM).

  • Si el acceso esta autorizado, el subsistema de seguridad construye un token de acceso y lo devuelve al proceso Winlogon.

  • Winlogon llama el subsistema Win32 para crear un nuevo proceso para el usuario y provee el token de acceso, el cual es anexado al proceso recién creado.

  • Este token de acceso es crucial: cada proceso creado por el usuario es marcado con el token de acceso para facilitar el monitoreo y control del acceso del usuario a los recursos del sistema. Este token de acceso contiene, entre otras cosas, el ID del usuario y el ID de cada grupo al cual éste pertenece.

    El logon obligatorio tiene otros usos como son:

    • Elimina la posibilidad de aplicaciones del tipo caballo de Troya que pueda robar la información de acceso de los usuarios. Esto así porque cada persona tiene que conectarse y solo el proceso Winlogon puede crear nuevos tokens de acceso, no es posible escribir aplicaciones que capture contraseñas de los usuarios y luego los conecte. Muchos usuarios preguntan como eliminar el logon obligatorio, la respuesta es que no se puede porque no se debe.

    • Permite además que se guarde información de las preferencias y configuración del ambiente de trabajo de cada usuario de manera tal que cuando este se conecte de nuevo encuentre su ambiente de trabajo como lo dejó la última vez.

    • Permite además la auditoria de los accesos a los recursos.

    Identificación de qué puede hacer cada usuario / grupo con un objeto

    Hemos visto que Windows NT provee la forma para que los usuarios puedan conectarse al sistema y crear un token de acceso. Ahora Windows NT necesita ser capaz de comparar ese token de acceso con la lista de control de acceso de cada objeto que el usuario accesa.

    Como fue mencionado anteriormente, cada objeto tiene asociado a él una lista de permisos para varios usuarios y grupos llamada lista de control de acceso. El ACL contiene la lista completa de los derechos de acceso de ese objeto. El ACL se construye cuando el objeto es creado. El dueño del objeto tiene control sobre cuales procesos pueden accesar el objeto y que pueden hacer. Puede mantener dicho control modificando el ACL.

    Cada entrada en el ACL contiene un ID de seguridad que puede ser de un usuario o de un grupo y los permisos asignados o revocados de ese ID.

    ¿Cómo se accesan los objetos en Windows NT?

    En Windows NT los objetos son accesados usando un esquema de Abrir / Accesar cuantas veces quiera / cerrar.

    Abrir: antes de accesar cualquier objeto, se debe abrir un Handle al objeto. Un Handle es un token que Windows NT devuelve ala programa y identifica de forma única la conexión al objeto. El proceso o programa le devuelve el token a Windows NT cuando quiere accesar el objeto.

    Accesar: Realizar cualquier acción soportada por el tipo de objeto mediante el uso del Handle que Windows NT le devolvió al proceso. El proceso puede accesar el objeto cuantas veces quiera y de cualquier forma que le sea permitida según sus derechos de acceso.

    Cerrar: Le dice a Windows NT que ya el proceso o programa ha terminado de usar el objeto.