Access token

In computersystemen bevat een toegangstoken, Access token de beveiligingsreferenties voor een inlogsessie en worden de gebruiker , de gebruikersgroepen, de gebruikersrechten en in sommige gevallen een bepaalde toepassing geïdentificeerd.

Inhoud

  • 1 Overzicht
  • 2 soorten tokens
  • 3 Inhoud van een token
  • 4 Referenties

Overzicht

Een toegangstoken is een object dat de beveiligingsidentiteit van een proces of thread inkapselt. [1] Een token wordt gebruikt om beveiligingsbeslissingen te nemen en om fraudebestendige informatie over een bepaalde systeementiteit op te slaan. Hoewel een token over het algemeen alleen wordt gebruikt om beveiligingsinformatie weer te geven, is het in staat om aanvullende gegevens in vrije vorm vast te houden die kunnen worden bijgevoegd terwijl het token wordt gemaakt. Tokens kunnen worden gedupliceerd zonder speciale privileges, bijvoorbeeld om een ​​nieuw token te maken met lagere toegangsrechten om de toegang van een gelanceerde applicatie te beperken. Een toegangstoken wordt door Windows gebruikt wanneer een proces of thread probeert om te communiceren met objecten met beveiligingsdescriptors (beveiligde objecten ). [1] Een toegangstoken wordt weergegeven door het systeemobject van het type Token .

Een toegangstoken wordt gegenereerd door de aanmeldservice wanneer een gebruiker zich aanmeldt bij het systeem en de legitimatiegegevens die door de gebruiker zijn verstrekt, worden geverifieerd voor de authenticatiedatabase. De authenticatiedatabase bevat legitimatiegegevens die nodig zijn om het eerste token voor de aanmeldingssessie te maken, inclusief het gebruikers-ID, primaire groeps-id, alle andere groepen waarvan het deel uitmaakt en andere informatie. Het token is gekoppeld aan het eerste proces dat is gemaakt in de gebruikerssessie en is overgenomen door de daaropvolgende processen die zijn gemaakt door het eerste proces. [1] Telkens wanneer een dergelijk proces een handvat opent voor een resource waarvoor toegangscontrole is ingeschakeld, verzoent Windows de gegevens in de beveiligingsdescriptor van het doelobject met de inhoud van het huidige effectieve toegangstoken. [2] Het resultaat van deze evaluatie van de toegangscontrole is een indicatie of toegang is toegestaan ​​en, zo ja, welke bewerkingen (lezen, schrijven / wijzigen, enz.) De oproepende toepassing mag uitvoeren.

Typen tokens

Er zijn twee soorten tokens beschikbaar:

Primaire token
Primaire tokens kunnen alleen aan processen worden gekoppeld en vertegenwoordigen het beveiligingsonderwerp van een proces. Het maken van primaire tokens en hun koppeling aan processen zijn beide geprivilegieerde operaties, waarvoor twee verschillende privileges nodig zijn in de naam van scheiding van bevoegdheden – in het typische scenario ziet de authenticatieservice het token en een aanmeldingsservice die deze associeert met de shell van het besturingssysteem van de gebruiker. Processen nemen in eerste instantie een kopie van het primaire token van het bovenliggende proces over.
Impersonatietoken
Nabootsing van identiteit is een beveiligingsconcept dat is geïmplementeerd in Windows NT en waarmee een servertoepassing de client tijdelijk “kan” zijn in termen van toegang tot beveiligde objecten. Nabootsing heeft vier mogelijke niveaus: anoniem , geeft de server toegang tot een anonieme / ongeïdentificeerde gebruiker, identificatie , laat de server de identiteit van de klant inspecteren, maar gebruikt die identiteit niet om toegang te krijgen tot objecten, imitatie te doen , de server te laten optreden namens de klant, en delegatie , hetzelfde als imitatie, maar uitgebreid naar externe systemen waarmee de server verbinding maakt (door het behoud van referenties). De client kan het maximale imitatieniveau (indien aanwezig) dat beschikbaar is voor de server kiezen als verbindingsparameter. Delegatie en nabootsing van identiteit zijn geprivilegieerde handelingen (in eerste instantie was imitatie het niet, maar historische slordigheid bij de implementatie van client- API’s kon het standaardniveau niet beperken tot “identificatie”, waardoor een niet-bevoorrechte server zich als een onwillige, bevoorrechte klant kon voordoen). Impersonation-tokens kunnen alleen aan threads worden gekoppeld en vertegenwoordigen het beveiligingsonderwerp van een clientproces . Impersonation tokens worden meestal gemaakt en worden impliciet geassocieerd met de huidige thread, door IPC- mechanismen zoals DCE RPC , DDE en named pipes .

Inhoud van een token

Een token bestaat uit verschillende velden, waaronder: [3]

  • een identifier.
  • de ID van de gekoppelde aanmeldsessie. De sessie wordt onderhouden door de authenticatieservice en wordt gevuld door de authenticatiepakketten met een verzameling van alle informatie ( referenties ) die de gebruiker heeft verstrekt bij het inloggen. Referenties worden gebruikt om toegang te krijgen tot externe systemen zonder dat de gebruiker opnieuw hoeft te authenticeren ( single sign-on ), op voorwaarde dat alle betrokken systemen een authenticatie-autoriteit delen (bijv. een Kerberos- ticketserver)
  • de gebruikersidentificatie. Dit veld is het belangrijkste en het is strikt alleen-lezen.
  • de identificatiegegevens van groepen waarvan de gebruiker (of, meer precies, het onderwerp) deel uitmaakt. Groepsidentificaties kunnen niet worden verwijderd, maar ze kunnen worden uitgeschakeld of ‘alleen-ontkennen’ worden gemaakt. Maximaal een van de groepen wordt aangeduid als de sessie-id , een vluchtige groep die de aanmeldingssessie representeert, die toegang geeft tot vluchtige objecten die aan de sessie zijn gekoppeld, zoals het display.
  • de beperkende groepsidentificaties (optioneel). Deze extra reeks groepen verleent geen extra toegang, maar beperkt deze verder: toegang tot een object is alleen toegestaan ​​als het ook is toegestaan ​​voor een van deze groepen. Beperkende groepen kunnen niet worden verwijderd of uitgeschakeld. Restrictiegroepen zijn een recente toevoeging en worden gebruikt bij de implementatie van sandboxen .
  • de privileges, dwz speciale mogelijkheden die de gebruiker heeft. De meeste privileges zijn standaard uitgeschakeld om schade door niet-beveiligingsbewuste programma’s te voorkomen. Het starten in Windows XP Service Pack 2 en Windows Server 2003-privileges kunnen permanent worden verwijderd uit een token door een aanroep van AdjustTokenPrivileges() met het kenmerk SE_PRIVILEGE_REMOVED .
  • de standaard eigenaar, primaire groep en ACL voor objecten die zijn gemaakt door het onderwerp dat is gekoppeld aan het token.