Delen via


Imitatie

Imitatie is de mogelijkheid van een thread om uit te voeren in een beveiligingscontext die verschilt van de context van het proces dat eigenaar is van de thread. Wanneer deze wordt uitgevoerd in de beveiligingscontext van de client, is de server de client in zekere mate. De serverthread gebruikt een toegangstoken dat de referenties van de client vertegenwoordigt om toegang te krijgen tot de objecten waartoe de client toegang heeft.

De belangrijkste reden voor imitatie is dat toegangscontroles worden uitgevoerd op basis van de identiteit van de client. Het gebruik van de identiteit van de client voor toegangscontroles kan ertoe leiden dat de toegang wordt beperkt of uitgebreid, afhankelijk van wat de client mag doen. Stel dat een bestandsserver bestanden bevat met vertrouwelijke informatie en dat elk van deze bestanden wordt beveiligd door een ACL. Om te voorkomen dat een client onbevoegde toegang tot gegevens in deze bestanden kan verkrijgen, kan de server de client imiteren voordat deze de bestanden opent.

Toegangstokens voor imitatie

Toegangstokens zijn objecten die de beveiligingscontext van een proces of thread beschrijven. Ze bieden informatie die de identiteit van een gebruikersaccount en een subset van de bevoegdheden bevat die beschikbaar zijn voor het gebruikersaccount. Elk proces heeft een primair toegangstoken dat de beveiligingscontext beschrijft van het gebruikersaccount dat aan het proces is gekoppeld. Het systeem gebruikt standaard het primaire token wanneer een thread van het proces communiceert met een beveiligbaar object. Wanneer een thread echter een client imiteert, heeft de imitatiethread zowel een primair toegangstoken als een imitatietoken. Het imitatietoken vertegenwoordigt de beveiligingscontext van de client en dit toegangstoken is het token dat wordt gebruikt voor toegangscontroles tijdens imitatie. Wanneer imitatie voorbij is, wordt de thread teruggezet naar het gebruik van alleen het primaire toegangstoken.

U kunt de functie OpenProcessToken gebruiken om een ingang op te halen voor het primaire token van een proces. Gebruik de functie OpenThreadToken om een ingang op te halen voor het imitatietoken van een thread.

toegangstokens

delegering en imitatie