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