Qual é a diferença entre o Access Token, SID, Token de Representação?


0

Eu listei as definições escolhidas no MSDN, mas gostaria de saber a diferença entre elas com um exemplo de um programa (processo) que pode precisar utilizá-las em diferentes cenários.

TOKEN DE ACESSO

Um token de acesso é um objeto que descreve o contexto de segurança de um   processo ou thread. As informações em um token incluem a identidade   e privilégios da conta de usuário associada ao processo ou   fio. Quando um usuário faz logon, o sistema verifica a senha do usuário   comparando-a com informações armazenadas em um banco de dados de segurança. Se o   senha é autenticada, o sistema produz um token de acesso. Cada   processo executado em nome deste usuário tem uma cópia deste acesso   símbolo

SID

Um identificador de segurança (SID) é um valor único de comprimento variável usado   para identificar um administrador. Cada conta tem um SID exclusivo emitido por um   autoridade de certificação, como um controlador de domínio do Windows, e   banco de dados de segurança. Cada vez que um usuário efetua logon, o sistema recupera   SID para esse usuário do banco de dados e coloca-o no token de acesso   para esse usuário. O sistema usa o SID no token de acesso para identificar   o usuário em todas as interações subsequentes com a segurança do Windows.

TOKEN DE IMERSÃO

Um token de acesso que foi criado para capturar a segurança   informações de um processo do cliente, permitindo que um servidor "represente"   o processo do cliente em operações de segurança.

Com base na definição, todos parecem ser bem parecidos para mim. Alguém pode explicar as diferenças entre eles, dando um exemplo?

Respostas:


4

"SID" é um identificador estático anexado a uma conta de usuário. É apenas uma série de números, como a de uma pessoa SSN / NIN ou "chave primária" de um registro de banco de dados. Como isso nunca muda, sua finalidade é encontrar uma conta específica, mesmo que ela possa ter sido renomeada; por esse motivo, ele é armazenado em vez do nome do usuário em tokens, ACLs e outras estruturas semelhantes.

Observe que há também SIDs de grupo, SIDs de sessão, SIDs de serviço e outros - para identificar todos os tipos de "atores" diferentes que possam estar nas ACLs.

"Token" é um objeto do kernel contendo listas de SIDs e privilégios. O kernel tem regras muito estritas para obtê-las e manipulá-las (isso pode ser feito apenas usando syscalls, não acesso direto à memória), então ter um token significa que o processo foi autorizado a agir em nome de qualquer usuário que o token descreva.

(Em sistemas semelhantes ao Unix, se você estiver familiarizado com eles, um processo tem um conjunto de "credenciais" - 'UID real', 'UID efetivo', 'GID real', 'GID efetivo', 'GIDs suplementares', e algumas outras coisas.O SID é uma extensão de um UID / GID, e o token é uma coleção dessas credenciais. capset() + setgroups() + setgid() + setuid(), você obtém um token e chama SetToken().)

Existem dois tipos de tokens - "primary", que podem ser gerados apenas ao efetuar login no sistema e " representação ", tokens temporários que qualquer serviço pode criar para atuar em nome de um cliente.

Aqui está um lista completa de todas as informações mantidas em um token.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.