Jeton d'accès
From Wikipedia, the free encyclopedia
Dans les systèmes informatiques, un jeton d'accès contient les informations d'identification de sécurité pour une session de connexion et identifie l'utilisateur, ses groupes, ses privilèges et, dans certains cas, une application particulière[1]. Dans certains cas, il peut être demandé d'entrer un jeton d'accès (par exemple 40 caractères aléatoires) plutôt que le mot de passe habituel (il doit donc être gardé secret comme un mot de passe).
Un jeton d'accès est un objet encapsulant l'identité de sécurité d'un processus ou d'un thread[2]. Un jeton est utilisé pour prendre des décisions de sécurité et pour stocker des informations inviolables sur un système. Alors qu'un jeton est généralement utilisé pour représenter uniquement des informations de sécurité, il est capable de contenir des données supplémentaires de libre format qui peuvent être jointes pendant la création du jeton. Les jetons peuvent être dupliqués sans privilège spécial, par exemple pour créer un nouveau jeton avec des niveaux inférieurs de droits d'accès pour restreindre l'accès d'une application lancée. Un jeton d'accès est utilisé par Windows lorsqu'un processus ou un thread essaie d'interagir avec des objets qui ont des descripteurs de sécurité (objets sécurisables)[2]. Sous Windows, un jeton d'accès est représenté par l'objet système de type Token.
Un jeton d'accès est généré par le service de connexion lorsqu'un utilisateur se connecte au système et les informations d'identification fournies par l'utilisateur sont authentifiées par rapport à la base de données d'authentification. La base de données d'authentification contient les informations d'identification requises pour construire le jeton initial de la session de connexion, notamment son ID utilisateur, son ID de groupe principal, tous les autres groupes dont il fait partie et d'autres informations. Le jeton est attaché au processus initial créé dans la session utilisateur et hérité par les processus suivants créés par le processus initial[2]. Chaque fois qu'un tel processus ouvre un levier vers une ressource dont le contrôle d'accès est activé, Windows réconcilie les données du descripteur de sécurité de l'objet cible avec le contenu du jeton d'accès effectif actuel[3]. Le résultat de cette évaluation de contrôle d'accès indique si un accès est autorisé et, si tel est le cas, quelles opérations (lecture, écriture/modification, etc.) l'application appelante est autorisée à effectuer.
Types de jeton
Deux types de jetons sont disponibles :
- Jeton primaire
- Les jetons primaires ne peuvent être associés qu'à des processus et représentent le sujet de sécurité d'un processus. La création de jetons primaire et leur association à des processus sont deux opérations privilégiées, nécessitant deux privilèges différents au nom de la séparation des privilèges — le scénario typique voit le service d'authentification créer le jeton et un service de connexion l'associer à l'interface du système d'exploitation de l'utilisateur. Les processus héritent initialement d'une copie du jeton principal du processus parent.
- Jeton d'emprunt d'identité
- L'emprunt d'identité est un concept de sécurité implémenté dans Windows NT qui permet à une application serveur d'"être" temporairement le client en termes d'accès aux objets sécurisés. L'emprunt d'identité a quatre niveaux possibles : anonyme, donnant au serveur l'accès d'un utilisateur anonyme/non identifié, identification, laissant le serveur inspecter l'identité du client mais ne pas utiliser cette identité pour accéder aux objets, emprunt d'identité, laissant le serveur agir au nom du client, et délégation, identique à l'emprunt d'identité mais étendu aux systèmes distants auxquels le serveur se connecte (via la conservation des informations d'identification). Le client peut choisir le niveau d'emprunt d'identité maximal (le cas échéant) disponible pour le serveur en tant que paramètre de connexion. La délégation et l'emprunt d'identité sont des opérations privilégiées (l'emprunt d'identité ne l'était pas initialement, mais la négligence historique dans la mise en œuvre des API client ne limitant pas le niveau par défaut à "l'identification", laissant un serveur non privilégié se faire passer pour un client privilégié réticent, l'a appelé). Les jetons d'emprunt d'identité ne peuvent être associés qu'à des threads et représentent le sujet de sécurité d'un processus client. Les jetons d'emprunt d'identité sont généralement créés et associés implicitement au thread actuel, par des mécanismes IPC tels que DCE RPC, DDE et les canaux nommés.
