В компьютерных системах маркер доступа содержит учетные данные безопасности для сеанса входа в систему и идентифицирует пользователя , группы пользователей, привилегии пользователя и, в некоторых случаях, конкретное приложение. В некоторых случаях вас могут попросить ввести токен доступа (например, 40 случайных символов) вместо обычного пароля (поэтому его следует хранить в секрете, как и пароль).
Обзор
Маркер доступа является объектом инкапсулирования идентичности безопасности в процессе или нити . [1] Маркер используется для принятия решений по безопасности и для хранения защищенной от взлома информации о некотором системном объекте. Хотя токен обычно используется для представления только информации о безопасности, он может содержать дополнительные данные в произвольной форме, которые могут быть прикреплены во время создания токена. Токены можно дублировать без особых привилегий, например, для создания нового токена с более низкими уровнями прав доступа для ограничения доступа запущенного приложения. Маркер доступа используется Windows, когда процесс или поток пытается взаимодействовать с объектами, имеющими дескрипторы безопасности ( защищаемые объекты ). [1] В Windows маркер доступа представлен системным объектом типа Token
.
Маркер доступа генерируется службой входа в систему, когда пользователь входит в систему и учетные данные, предоставленные пользователем, проверяются в базе данных аутентификации. База данных аутентификации содержит учетные данные, необходимые для создания начального токена для сеанса входа в систему, включая его идентификатор пользователя, идентификатор основной группы, все другие группы, частью которых он является, и другую информацию. Маркер прикрепляется к начальному процессу, созданному в пользовательском сеансе, и наследуется последующими процессами, созданными начальным процессом. [1] Каждый раз, когда такой процесс открывает дескриптор любого ресурса, для которого включен контроль доступа , Windows согласовывает данные в дескрипторе безопасности целевого объекта с содержимым текущего действующего токена доступа. [2] Результат этой оценки проверки доступа является показателем того, разрешен ли какой-либо доступ, и если да, то какие операции (чтение, запись / изменение и т. Д.) Разрешено выполнять вызывающему приложению.
Типы токенов
Доступны два типа токенов:
- Первичный токен
- Первичные токены могут быть связаны только с процессами , и они представляют собой объект безопасности процесса. Создание первичных токенов и их ассоциация с процессами являются привилегированными операциями, требующими двух разных привилегий во имя разделения привилегий - в типичном сценарии служба аутентификации создает токен, а служба входа в систему связывает его с оболочкой операционной системы пользователя . Процессы изначально наследуют копию первичного токена родительского процесса.
- Токен олицетворения
- Олицетворение - это концепция безопасности, реализованная в Windows NT, которая позволяет серверному приложению временно «быть» клиентом с точки зрения доступа к защищенным объектам. Олицетворение имеет четыре возможных уровня: анонимный , предоставляющий серверу доступ анонимного / неопознанного пользователя, идентификация , позволяющий серверу проверять личность клиента, но не использовать эту личность для доступа к объектам, олицетворение , позволяя серверу действовать от имени клиента, и делегирование , то же самое, что и олицетворение, но распространяется на удаленные системы, к которым подключается сервер (посредством сохранения учетных данных). Клиент может выбрать максимальный уровень олицетворения (если есть), доступный серверу, в качестве параметра подключения. Делегирование и олицетворение являются привилегированными операциями (олицетворение изначально не было, но историческая небрежность в реализации клиентских API-интерфейсов не смогла ограничить уровень по умолчанию до «идентификации», позволяя непривилегированному серверу олицетворять нежелательного привилегированного клиента, вызванного для этого). Маркеры олицетворения могут быть связаны только с потоками , и они представляют собой объект безопасности клиентского процесса. Маркеры олицетворения обычно создаются и связываются с текущим потоком неявно с помощью механизмов IPC , таких как DCE RPC , DDE и именованные каналы .
Содержимое токена
Токен состоит из различных полей, в том числе: [3]
- идентификатор.
- идентификатор связанного сеанса входа в систему. Сеанс поддерживается службой аутентификации и заполняется пакетами аутентификации с набором всей информации ( учетных данных ), предоставленных пользователем при входе в систему. Учетные данные используются для доступа к удаленным системам без необходимости повторной аутентификации пользователя. ( единый вход ) при условии, что все задействованные системы имеют общий центр аутентификации (например, сервер билетов Kerberos )
- идентификатор пользователя. Это самое важное поле, оно предназначено только для чтения.
- идентификаторы групп, в которые входит пользователь (точнее, субъект). Идентификаторы групп нельзя удалить, но их можно отключить или сделать «только для запрета». В большинстве случаев одна из групп обозначается как идентификатор сеанса , изменчивая группа, представляющая сеанс входа в систему, позволяя получить доступ к изменчивым объектам, связанным с сеансом, таким как дисплей.
- ограничивающие идентификаторы группы (необязательно). Этот дополнительный набор групп не предоставляет дополнительный доступ, но еще больше его ограничивает: доступ к объекту разрешен только в том случае, если он разрешен также одной из этих групп. Ограничивающие группы не могут быть удалены или отключены. Группы ограничения являются недавним дополнением, и они используются при реализации песочниц .
- привилегии, т.е. особые возможности, которыми обладает пользователь. Большинство привилегий по умолчанию отключено, чтобы предотвратить повреждение программ, не заботящихся о безопасности. Начиная с Windows XP с пакетом обновления 2 (SP2) и Windows Server 2003, права доступа могут быть окончательно удалены из токена с помощью вызова
AdjustTokenPrivileges()
сSE_PRIVILEGE_REMOVED
атрибутом. - владелец по умолчанию, основная группа и ACL для токена
создается субъектом, связанным с токеном.
Рекомендации
- ^ a b c «Жетоны доступа» . MSDN . Проверено 8 октября 2007 .
- ^ «AccessCheck» . MSDN . Проверено 13 февраля 2014 .
- ^ «Как работают токены доступа» . MSDN . Проверено 13 февраля 2014 .