Токен доступа - Access token

В компьютерных системах токен доступа содержит учетные данные безопасности для сеанс входа в систему и определяет Пользователь, группы пользователей, привилегии пользователя и, в некоторых случаях, конкретное приложение. Обычно вас могут попросить ввести токен доступа (например, 40 случайных символов), а не обычный пароль (поэтому он должен храниться в секрете, как и пароль).

Обзор

An токен доступа является объект инкапсулирующий удостоверение безопасности процесс или же нить.[1] Маркер используется для принятия решений по безопасности и для хранения защищенной от взлома информации о некотором системном объекте. Хотя токен обычно используется для представления только информации о безопасности, он может содержать дополнительные данные в произвольной форме, которые можно прикрепить во время создания токена. Токены можно дублировать без особых привилегий, например, для создания нового токена с более низкими уровнями прав доступа, чтобы ограничить доступ запущенного приложения. Маркер доступа используется Windows, когда процесс или поток пытается взаимодействовать с объектами, имеющими дескрипторы безопасности (охраняемые объекты).[1] В Windows токен доступа представлен системный объект типа Токен.

Токен доступа создается вход в систему service, когда пользователь входит в систему и учетные данные, предоставленные пользователем, проверяются в базе данных аутентификации. База данных аутентификации содержит учетные данные, необходимые для создания начального токена для сеанса входа в систему, включая его идентификатор пользователя, идентификатор основной группы, все другие группы, частью которых он является, и другую информацию. Маркер прикрепляется к начальному процессу, созданному в пользовательском сеансе, и наследуется последующими процессами, созданными начальным процессом.[1] Каждый раз, когда такой процесс открывает дескриптор любого ресурса, имеющего контроль доступа включено, Windows согласовывает данные в дескрипторе безопасности целевого объекта с содержимым текущего действующего токена доступа.[2] Результат этой оценки проверки доступа является показателем того, разрешен ли какой-либо доступ, и если да, то какие операции (чтение, запись / изменение и т. Д.) Разрешено выполнять вызывающему приложению.

Типы токенов

Доступны два типа токенов:

Первичный токен
Первичные токены могут быть связаны только с процессы, и они представляют собой объект безопасности процесса. Создание первичных токенов и их ассоциация с процессами являются привилегированными операциями, требующими двух разных привилегий от имени разделение привилегий - в типичном сценарии служба аутентификации создает маркер, а служба входа в систему связывает его с пользователем. оболочка операционной системы. Процессы изначально наследуют копию первичного токена родительского процесса.
Токен олицетворения
Олицетворение - это концепция безопасности, реализованная в Windows NT, которая позволяет серверному приложению временно «быть» клиентом с точки зрения доступа к защищенным объектам. Есть четыре возможных уровня выдачи себя за другое лицо: анонимный, предоставляя серверу доступ анонимного / неопознанного пользователя, идентификация, позволяя серверу проверять личность клиента, но не использовать эту личность для доступа к объектам, выдача себя за другое лицо, позволяя серверу действовать от имени клиента, и делегациято же самое, что и олицетворение, но распространяется на удаленные системы, к которым подключается сервер (посредством сохранения учетных данных). Клиент может выбрать максимальный уровень олицетворения (если есть), доступный серверу, в качестве параметра подключения. Делегирование и олицетворение являются привилегированными операциями (изначально олицетворения не было, но историческая небрежность в реализации клиента API неспособность ограничить уровень по умолчанию до «идентификации», позволяя непривилегированному серверу олицетворять нежелательного привилегированного клиента, вызванного для него). Токены олицетворения могут быть связаны только с потоки, и они представляют собой клиент субъект безопасности процесса. Токены олицетворения обычно создаются и связываются с текущим потоком неявно, с помощью МПК такие механизмы, как DCE RPC, DDE и именованные каналы.

Содержимое токена

Токен состоит из различных полей, в том числе: [3]

  • идентификатор.
  • идентификатор связанного сеанса входа в систему. Сеанс поддерживается службой аутентификации и заполняется пакетами аутентификации со всей информацией (реквизиты для входа ) пользователь, указанный при входе в систему. Учетные данные используются для доступа к удаленным системам без необходимости повторной аутентификации пользователя (Единая точка входа ) при условии, что все задействованные системы имеют общий центр аутентификации (например, Kerberos билетный сервер)
  • идентификатор пользователя. Это самое важное поле, оно предназначено только для чтения.
  • идентификаторы групп, в которые входит пользователь (точнее, субъект). Идентификаторы групп нельзя удалить, но их можно отключить или сделать «только для запрета». Максимум одна из групп обозначается как идентификатор сессии, изменчивая группа, представляющая сеанс входа в систему, позволяющая получить доступ к изменчивым объектам, связанным с сеансом, таким как дисплей.
  • ограничивающие идентификаторы группы (необязательно). Этот дополнительный набор групп не предоставляет дополнительный доступ, но еще больше его ограничивает: доступ к объекту разрешен, только если он разрешен также в одну из этих групп. Ограничивающие группы не могут быть удалены или отключены. Ограничивающие группы появились недавно, и они используются при реализации песочницы.
  • привилегии, то есть особые возможности, которыми обладает пользователь. Большинство привилегий по умолчанию отключено, чтобы предотвратить повреждение программ, не заботящихся о безопасности. Начиная с Windows XP с пакетом обновления 2 (SP2) и Windows Server 2003, права доступа могут быть окончательно удалены с токена путем вызова AdjustTokenPrivileges () с SE_PRIVILEGE_REMOVED атрибут.
  • владелец по умолчанию, основная группа и ACL для объектов, созданных субъектом, связанным с токеном.

Рекомендации

  1. ^ а б c «Жетоны доступа». MSDN. Получено 2007-10-08.
  2. ^ "AccessCheck". MSDN. Получено 2014-02-13.
  3. ^ «Как работают токены доступа». MSDN. Получено 2014-02-13.