Введение
Токен (Token) – многозначный термин в информационных технологиях, конкретное значение которого определяется контекстом применения. Три основных значения:
- Токен безопасности (Security Token) – уникальная строка или объект, удостоверяющие идентификацию или права доступа пользователя/приложения при взаимодействии с системой.
- Лексический токен (Lexical Token) – минимальная значимая единица (лексема) в процессе лексического анализа исходного кода или текста на естественном языке.
- Блокчейн-токен (Crypto Token) – цифровой актив, реализованный на блокчейн-платформе в виде смарт-контракта.
История и контекст
В программировании термин «токен» существует с первых компиляторов 1950-х годов как обозначение минимальной значимой единицы грамматики языка. В области безопасности hardware-токены (RSA SecurID) получили распространение в 1980-х для двухфакторной аутентификации. С появлением OAuth 2.0 (RFC 6749, 2012) и JWT (RFC 7519, 2015) программные токены стали основой авторизации в REST API и микросервисных архитектурах. В блокчейн-контексте токены стандарта ERC-20 появились с развитием Ethereum (2015); NFT (ERC-721) стали широко известны в 2017–2021 годах.
Как это работает
Токены аутентификации и авторизации
JWT (JSON Web Token) – наиболее распространённый формат. Представляет собой три Base64-URL кодированные части, разделённые точками: header.payload.signature. Header содержит тип токена и алгоритм подписи (RS256, HS256). Payload – claims (утверждения): sub, iss, exp, aud и кастомные поля. Signature – криптографическая подпись для проверки целостности. Клиент включает токен в заголовок HTTP-запроса: Authorization: Bearer <token>.
В OAuth 2.0 различают: access token (краткосрочный, для доступа к API), refresh token (долгосрочный, для обновления access token без повторной аутентификации) и ID token (OpenID Connect, содержит данные о пользователе).
Лексические токены в компиляторах и NLP
Лексер (tokenizer) разбивает входной текст на токены: ключевые слова (if, for, class), идентификаторы, операторы, литералы. В NLP и LLM токенизация разбивает текст на подслова с помощью алгоритмов BPE (Byte-Pair Encoding), WordPiece (BERT), SentencePiece. Контекстное окно GPT-4, Claude, Llama измеряется именно в токенах.
Где применяется
- Веб-API и микросервисы: JWT/OAuth 2.0 для stateless авторизации между сервисами.
- Корпоративная безопасность: hardware-токены для MFA (RSA SecurID, YubiKey, TOTP).
- Компиляторы и IDE: лексический анализ исходного кода, подсветка синтаксиса, автодополнение.
- LLM и NLP-системы: токены – единицы обработки и тарификации языковых моделей.
- Блокчейн и финтех: ERC-20 для DeFi и стейблкоинов, ERC-721 для NFT, токенизация активов.
Преимущества и ограничения
Преимущества JWT: stateless (не требует хранения сессий на сервере), стандарт IETF с поддержкой во всех языках, встраивание claims (данных), хорошо масштабируется в распределённых системах.
Ограничения JWT: access token нельзя быстро отозвать до истечения срока без blacklist-инфраструктуры, при компрометации секретного ключа скомпрометированы все токены, не подходит для хранения чувствительных данных в payload (без шифрования).
Связь с другими понятиями
Токен неразрывно связан с процессом токенизации (Tokenization), как в контексте безопасности (платёжная токенизация), так и в NLP. TLS обеспечивает защищённую передачу токенов. User Provisioning управляет жизненным циклом учётных данных, с которыми связаны токены. NFT (Non-Fungible Token) – специализированный вид блокчейн-токена.