Un jeton de acces este un obiect de program al sistemelor de operare din clasa Microsoft Windows care conține informații de securitate a sesiunii și identifică un utilizator, un grup de utilizatori și privilegii de utilizator.
Un token de acces este un obiect care încapsulează descriptorul de securitate al unui proces [1] . Aplicat unui proces, descriptorul de securitate identifică proprietarul obiectului [2] [3] . Atâta timp cât marcatorul este folosit pentru a reprezenta doar informații de securitate, conținutul său este tehnic gratuit și poate conține orice date. Jetonul de acces este folosit de Windows atunci când un proces încearcă să interacționeze cu obiecte ai căror descriptori de securitate necesită controlul accesului [1] . Un token de acces este reprezentat de un obiect sistem de tip Token . Deoarece jetonul este un obiect de sistem obișnuit, accesul la jetonul în sine poate fi controlat cu un descriptor de securitate, dar acest lucru nu se face de obicei niciodată în practică.
Un token de acces este generat de serviciul de conectare atunci când un utilizator se înregistrează și este autentificat cu succes prin specificarea drepturilor utilizatorului în descriptorul de securitate inclus în token. Token-ul este atașat fiecărui proces creat de sesiunea utilizatorului (procese deținute de utilizator) [1] . Ori de câte ori un astfel de proces solicită orice resursă controlată cu acces, Windows caută în descriptorul de securitate din jetonul de acces pentru a vedea dacă utilizatorul, proprietarul procesului, are acces la date și, dacă da, ce operațiuni (citire, scriere/ modifica) i se permite. Dacă operațiunea este permisă în contextul utilizatorului dat, Windows permite continuarea procesului, dacă nu, interzice accesul.
Există două tipuri de jetoane de acces:
Token de acces primarTokenurile de acces primare pot fi asociate doar unui proces și sunt subiectul de securitate al procesului. Crearea de jetoane primare și asocierea acestora cu un proces sunt operațiuni privilegiate care necesită două privilegii diferite (pentru privilegii separate). Într-un scenariu tipic, serviciul de identitate creează un token, iar serviciul de conectare îl asociază cu shell-ul sistemului de operare al utilizatorului . La creare, procesele noi moștenesc o copie a simbolului principal al procesului părinte.
Uzurpare identității jetoanelor de accesUzurparea identității este un concept de securitate unic pentru Windows NT care permite unei aplicații server să „fie” temporar un client pentru a accesa un obiect protejat. Uzurparea identității constă din trei niveluri posibile: identificarea, care permite serverului să autentifice clientul, uzurparea identității, care permite serverului să acționeze în numele clientului și delegarea, la fel ca uzurparea identității, extinsă doar pentru a lucra cu sisteme de la distanță pe care serverul comunică cu. Clientul poate alege nivelul maxim posibil de uzurpare a identității pe server în parametrul de conectare. Delegarea și uzurparea identității sunt operațiuni privilegiate. Tokenurile de acces de uzurpare a identității pot fi asociate numai cu fire și sunt subiecte de securitate ale procesului client. Tokenurile de uzurpare a identității sunt de obicei create și asociate cu firul curent implicit folosind mecanisme IPC precum DCE RPC , DDE și named pipes .
Un simbol de acces constă din diferite câmpuri, inclusiv, dar fără a se limita la următoarele:
Proprietarul implicit, grupul primar și ACL pentru obiectele create de subiectul asociat cu simbolul utilizatorului.