Accueil🇫🇷Chercher

Jeton d'accès

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).

Aperçu

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.

Contenu d'un jeton

Un jeton est composé de divers champs, dont[4] :

  • un identifiant.
  • l'identifiant de la session de connexion associĂ©e. La session est maintenue par le service d'authentification et est remplie par les paquetages d'authentification avec une collection de toutes les informations (informations d'identification) fournies par l'utilisateur lors de la connexion. Les informations d'identification sont utilisĂ©es pour accĂ©der aux systèmes distants sans que l'utilisateur ait besoin de se rĂ©-authentifier (authentification unique), Ă  condition que tous les systèmes impliquĂ©s partagent une autoritĂ© d'authentification (par exemple, un serveur de tickets Kerberos)
  • l'identifiant de l'utilisateur. Ce champ est le plus important et il est strictement en lecture seule.
  • les identifiants des groupes dont l'utilisateur (ou, plus prĂ©cisĂ©ment, le sujet) fait partie. Les identifiants de groupe ne peuvent pas ĂŞtre supprimĂ©s, mais ils peuvent ĂŞtre dĂ©sactivĂ©s ou rendus "refuser uniquement". Au plus un des groupes est dĂ©signĂ© comme identifiant de session, un groupe volatile reprĂ©sentant la session de connexion, permettant l'accès aux objets volatiles associĂ©s Ă  la session, tels que l'affichage.
  • les identifiants du groupe restrictif (optionnel). Cet ensemble supplĂ©mentaire de groupes n'accorde pas d'accès supplĂ©mentaire, mais le restreint davantage : l'accès Ă  un objet n'est autorisĂ© que s'il est Ă©galement autorisĂ© Ă  l'un de ces groupes. Les groupes de restriction ne peuvent pas ĂŞtre supprimĂ©s ni dĂ©sactivĂ©s. Les groupes de restriction sont un ajout rĂ©cent et ils sont utilisĂ©s dans la mise en Ĺ“uvre des bacs Ă  sable.
  • les privilèges, c'est-Ă -dire les capacitĂ©s spĂ©ciales dont dispose l'utilisateur. La plupart des privilèges sont dĂ©sactivĂ©s par dĂ©faut, pour Ă©viter les dommages causĂ©s par des programmes non soucieux de la sĂ©curitĂ©. Ă€ partir de Windows XP Service Pack 2 et Windows Server 2003, les privilèges peuvent ĂŞtre dĂ©finitivement supprimĂ©s d'un jeton par un appel Ă  AdjustTokenPrivileges() avec l'attribut SE_PRIVILEGE_REMOVED.
  • le propriĂ©taire par dĂ©faut, le groupe principal et l'ACL pour le jeton crĂ©Ă© par le sujet associĂ© au jeton.

Voir aussi

Références

  1. « Access Token: Definition, Architecture, Usage & More », Okta (consulté le )
  2. « Access Tokens », MSDN (consulté le )
  3. « AccessCheck », MSDN (consulté le )
  4. « How Access Tokens Work », MSDN (consulté le )
Cet article est issu de wikipedia. Text licence: CC BY-SA 4.0, Des conditions supplémentaires peuvent s’appliquer aux fichiers multimédias.