¿Cuál es la diferencia entre el token de acceso, SID, token de suplantación de identidad?

0

He enumerado las definiciones recogidas en MSDN, pero me gustaría saber la diferencia entre éstas con un ejemplo de un programa (proceso) que podría necesitar usarlas en diferentes escenarios.

TOKEN DE ACCESO

Un token de acceso es un objeto que describe el contexto de seguridad de un   proceso o hilo. La información en un token incluye la identidad.   y privilegios de la cuenta de usuario asociada con el proceso o   hilo. Cuando un usuario inicia sesión, el sistema verifica la contraseña del usuario   comparándolo con la información almacenada en una base de datos de seguridad. Si el   La contraseña se autentica, el sistema produce un token de acceso. Cada   El proceso ejecutado en nombre de este usuario tiene una copia de este acceso.   simbólico

SID

Un identificador de seguridad (SID) es un valor único de longitud variable utilizado   para identificar un fideicomisario. Cada cuenta tiene un SID único emitido por un   autoridad, como un controlador de dominio de Windows, y almacenado en un   base de datos de seguridad. Cada vez que un usuario inicia sesión, el sistema recupera el   SID para ese usuario de la base de datos y lo coloca en el token de acceso   para ese usuario. El sistema utiliza el SID en el token de acceso para identificar   El usuario en todas las interacciones posteriores con la seguridad de Windows.

TOKEN DE IMPERSONACIÓN

Un token de acceso que se ha creado para capturar la seguridad   Información de un proceso de cliente, que permite a un servidor "suplantar"   El proceso del cliente en las operaciones de seguridad.

Según la definición, todos parecen ser bastante parecidos a mí. ¿Puede alguien explicar las diferencias entre estos dando un ejemplo?

Dhiwakar Ravikumar
fuente

Respuestas:

4

"SID" es un identificador estático adjunto a una cuenta de usuario. Es solo una serie de números, como el de una persona. SSN / NIN , o la "clave principal" de un registro de la base de datos. Dado que nunca cambia, su propósito es encontrar una cuenta específica aunque se haya cambiado su nombre; por ese motivo, se almacena en lugar del nombre de usuario en tokens, ACL y otras estructuras similares.

Tenga en cuenta que también hay SID de grupo, SID de sesión, SID de servicio y similares para identificar todo tipo de "actores" diferentes que pueden estar en las ACL.

"Token" es un objeto kernel Contiene listas de SIDs y privilegios. El kernel tiene reglas muy estrictas para obtenerlas y manipularlas (esto se puede hacer solo mediante syscalls, no acceso directo a la memoria), por lo que tener un token significa que el proceso pudo actuar en nombre de cualquier usuario que describa.

(En sistemas similares a Unix, si está familiarizado con ellos, un proceso tiene un conjunto de "credenciales": 'UID real', 'UID efectivo', 'GID real', 'GID efectivo', 'GID complementarios' y algunas otras cosas. El SID es una extensión de un UID / GID, y el token es una colección de estas credenciales. En lugar de llamar capset() + setgroups() + setgid() + setuid(), obtienes un token y llamas SetToken().)

Hay dos tipos de tokens: "primario", que se puede generar solo al iniciar sesión en el sistema, y ​​" interpretación ", tokens temporales que cualquier servicio puede crear para actuar en nombre de un cliente.

Aquí está un Lista llena De toda la información guardada en un token.

grawity
fuente