Token dostępu - Access token

W systemach komputerowych token dostępu zawiera poświadczenia bezpieczeństwa sesji logowania i identyfikuje użytkownika , grupy użytkowników, uprawnienia użytkownika oraz, w niektórych przypadkach, określoną aplikację. W niektórych przypadkach można zostać poproszony o podanie tokena dostępu (np. 40 losowych znaków) zamiast zwykłego hasła (dlatego powinno być utrzymywane w tajemnicy tak jak hasło).

Przegląd

Token dostępu jest przedmiotem kapsułkowania tożsamości bezpieczeństwa w trakcie lub nici . Token służy do podejmowania decyzji dotyczących bezpieczeństwa oraz do przechowywania odpornych na manipulacje informacji o jakiejś jednostce systemu. Chociaż token jest zwykle używany do reprezentowania tylko informacji o zabezpieczeniach, może przechowywać dodatkowe dane w dowolnym formacie, które można dołączyć podczas tworzenia tokenu. Tokeny można powielać bez specjalnych uprawnień, na przykład w celu utworzenia nowego tokena z niższymi poziomami praw dostępu w celu ograniczenia dostępu uruchamianej aplikacji. Token dostępu jest używany przez system Windows, gdy proces lub wątek próbuje wchodzić w interakcję z obiektami, które mają deskryptory zabezpieczeń ( obiekty zabezpieczane ). W systemie Windows token dostępu jest reprezentowany przez obiekt systemowy typu Token.

Token dostępu jest generowany przez usługę logowania , gdy użytkownik loguje się do systemu, a poświadczenia podane przez użytkownika są uwierzytelniane w bazie danych uwierzytelniania. Baza danych uwierzytelniania zawiera informacje o poświadczeniach wymagane do skonstruowania początkowego tokenu sesji logowania, w tym jego identyfikator użytkownika, identyfikator grupy podstawowej, wszystkie inne grupy, do których należy, oraz inne informacje. Token jest dołączony do procesu początkowego utworzonego w sesji użytkownika i dziedziczony przez kolejne procesy utworzone przez proces początkowy. Za każdym razem, gdy taki proces otwiera dojście do dowolnego zasobu, który ma włączoną kontrolę dostępu , system Windows uzgadnia dane w deskryptorze zabezpieczeń obiektu docelowego z zawartością bieżącego efektywnego tokenu dostępu. Wynikiem tej oceny kontroli dostępu jest wskazanie, czy dozwolony jest jakikolwiek dostęp, a jeśli tak, jakie operacje (odczyt, zapis/modyfikacja itp.) może wykonywać aplikacja wywołująca.

Rodzaje tokenów

Dostępne są dwa rodzaje tokenów:

Podstawowy token
Tokeny podstawowe mogą być skojarzone tylko z procesami i reprezentują temat zabezpieczeń procesu. Tworzenie tokenów podstawowych i ich kojarzenie z procesami są operacjami uprzywilejowanymi, które wymagają dwóch różnych uprawnień w imię separacji uprawnień — w typowym scenariuszu usługa uwierzytelniania tworzy token, a usługa logowania kojarzy go z powłoką systemu operacyjnego użytkownika . Procesy początkowo dziedziczą kopię tokenu podstawowego procesu nadrzędnego.
Token personifikacji
Personifikacja to koncepcja bezpieczeństwa zaimplementowana w systemie Windows NT, która pozwala aplikacji serwera tymczasowo „być” klientem w zakresie dostępu do zabezpieczonych obiektów. Personifikacja ma cztery możliwe poziomy: anonimowy , dający serwerowi dostęp anonimowemu/niezidentyfikowanemu użytkownikowi, identyfikujący , pozwalający serwerowi na sprawdzanie tożsamości klienta, ale nieużywanie tej tożsamości do uzyskiwania dostępu do obiektów, personifikacja , pozwalająca serwerowi działać w imieniu klienta, i delegowanie , tak samo jak personifikacja, ale rozszerzona na systemy zdalne, z którymi łączy się serwer (poprzez zachowanie poświadczeń). Klient może wybrać maksymalny poziom personifikacji (jeśli istnieje) dostępny dla serwera jako parametr połączenia. Delegowanie i personifikacja są operacjami uprzywilejowanymi (początkowo personifikacja nie była, ale była to historyczna niedbałość w implementacji klienckich interfejsów API, która nie ograniczała poziomu domyślnego do „identyfikacji”, pozwalając serwerowi nieuprzywilejowanemu podszywać się pod niechętnego uprzywilejowanego klienta, o co prosiliśmy). Tokeny personifikacji można skojarzyć tylko z wątkami i reprezentują one podmiot zabezpieczeń procesu klienta . Tokeny personifikacji są zwykle tworzone i kojarzone z bieżącym wątkiem niejawnie, przez mechanizmy IPC , takie jak DCE RPC , DDE i nazwane potoki .

Zawartość tokena

Token składa się z różnych pól, w tym:

  • identyfikator.
  • identyfikator powiązanej sesji logowania. Sesja jest utrzymywana przez usługę uwierzytelniania i jest wypełniana przez pakiety uwierzytelniania z kolekcją wszystkich informacji ( poświadczeń ) podanych przez użytkownika podczas logowania. Poświadczenia są używane do uzyskiwania dostępu do zdalnych systemów bez konieczności ponownego uwierzytelniania użytkownika ( pojedyncze logowanie ), pod warunkiem, że wszystkie zaangażowane systemy współdzielą urząd uwierzytelniania (np. serwer biletów Kerberos )
  • identyfikator użytkownika. To pole jest najważniejsze i jest przeznaczone wyłącznie do odczytu.
  • identyfikatory grup, do których należy użytkownik (a dokładniej podmiot). Identyfikatorów grupowych nie można usunąć, ale można je wyłączyć lub ustawić jako „tylko odmowa”. Co najwyżej jedna z grup jest oznaczona jako identyfikator sesji , grupa ulotna reprezentująca sesję logowania, umożliwiająca dostęp do obiektów ulotnych powiązanych z sesją, takich jak wyświetlacz.
  • ograniczające identyfikatory grup (opcjonalnie). Ten dodatkowy zestaw grup nie zapewnia dodatkowego dostępu, ale dodatkowo go ogranicza: dostęp do obiektu jest dozwolony tylko wtedy, gdy jest dozwolony również dla jednej z tych grup. Grup ograniczających nie można usunąć ani wyłączyć. Nowością są grupy ograniczające, które są używane w implementacji piaskownic .
  • przywileje, czyli specjalne możliwości, jakie posiada użytkownik. Większość uprawnień jest domyślnie wyłączona, aby zapobiec uszkodzeniu przez programy, które nie dbają o bezpieczeństwo. Począwszy od systemu Windows XP z dodatkiem Service Pack 2 i Windows Server 2003 uprawnienia można trwale usunąć z tokenu przez wywołanie AdjustTokenPrivileges()z SE_PRIVILEGE_REMOVEDatrybutem.
  • domyślny właściciel, podstawowa grupa i ACL tokena

utworzony przez podmiot powiązany z tokenem.

Bibliografia