En åtkomsttoken är ett programobjekt i operativsystem av Microsoft Windows -klassen som innehåller sessionssäkerhetsinformation och identifierar en användare, användargrupp och användarrättigheter.
En åtkomsttoken är ett objekt som kapslar in en process säkerhetsdeskriptor [1] . Tillämpad på en process identifierar säkerhetsdeskriptorn ägaren till objektet [2] [3] . Så länge som markören endast används för att representera säkerhetsinformation är den tekniskt fri i sitt innehåll och kan innehålla vilken data som helst. Åtkomsttoken används av Windows när en process försöker interagera med objekt vars säkerhetsdeskriptorer kräver åtkomstkontroll [1] . En åtkomsttoken representeras av ett systemobjekt av typen Token . Eftersom token är ett vanligt systemobjekt kan åtkomst till själva token styras med en säkerhetsdeskriptor, men detta görs vanligtvis aldrig i praktiken.
En åtkomsttoken genereras av inloggningstjänsten när en användare registrerar sig och autentiseras framgångsrikt genom att ange användarens rättigheter i säkerhetsbeskrivningen som är inkluderad i token. Token är kopplad till varje process som skapas av användarens session (processer som ägs av användaren) [1] . Närhelst en sådan process begär någon åtkomstkontrollerad resurs, tittar Windows i säkerhetsbeskrivningen i åtkomsttoken för att se om användaren, ägaren av processen, har tillgång till data, och i så fall vilka operationer (läs, skriv/ modifiera) han är tillåten. Om operationen tillåts i sammanhanget för den givna användaren tillåter Windows processen att fortsätta, om inte, nekar den åtkomst.
Det finns två typer av åtkomsttokens:
Primär åtkomsttokenPrimära åtkomsttokens kan bara associeras med en process och är säkerhetsobjektet för processen. Att skapa primära tokens och associera dem med en process är privilegierade operationer som kräver två olika privilegier (för att separera privilegier). I ett typiskt scenario skapar identitetstjänsten en token och inloggningstjänsten associerar den med användarens operativsystemskal . Vid skapandet ärver nya processer en kopia av den överordnade processens primära token.
Imiterar åtkomsttokensImitation är ett säkerhetskoncept som är unikt för Windows NT som tillåter en serverapplikation att tillfälligt "vara" en klient för att komma åt ett skyddat objekt. Imitation består av tre möjliga nivåer: identifiering, som gör det möjligt för servern att autentisera klienten, identitetsstöld, som gör att servern kan agera på uppdrag av klienten, och delegering, samma som personifiering, endast utvidgas till att fungera med fjärrsystem som servern kommunicerar med. Klienten kan välja högsta möjliga nivå av identitetsstöld på servern i anslutningsparametern. Delegering och identitetsstöld är privilegierade operationer. Att imitera åtkomsttokens kan endast associeras med trådar och är säkerhetsämnen i klientprocessen. Imitationstokens skapas vanligtvis och associeras med den aktuella tråden implicit med hjälp av IPC- mekanismer som DCE RPC , DDE och namngivna rör .
En åtkomsttoken består av olika fält, inklusive men inte begränsat till följande:
Standardägare, primär grupp och ACL för objekt skapade av ämnet som är kopplat till användartoken.