Токен в банке что это

На данный момент насчитывается свыше 8,5 тысяч разных криптовалют и токенов. Однако много людей не знает, в чем их отличие. Попробуем сегодня разобраться, что такое токены, сколько они стоят и чем же они отличаются от таких криптовалют, как Bitcoin и Ethereum.

реклама

Вообще, токены – это общепринятый термин, который частую используют как общее название всех криптовалют. Однако токены значительно отличаются от Bitcoin и альткоинов.

Про токены простым языком

Токены являются цифровыми виртуальными единицами, выпускающимися кем-либо. Стоимость определяют их создатели. Они действуют на основе технологии blockchain. Так как криптовалюты тоже основаны на этой технологии, то именно это многих и сбивает с толку.

Кем могут быть выпущены токены? Токены выпускаются определенными лицами, в их ценности вкладываются товары, различные услуги, акции предприятий, какие-либо действия и др. Названия же могут быть любыми. У такого процесса есть свое название – токенизация, то есть каждый актив в виде токенов. Можно токенизировать ценные бумаги, акции предприятий, различную продукцию, консультации и т.д. Токены находятся в электронных кошельках своих создателей. Они передаются на условиях, поставленных их создателями.

Зачем они нужны?

реклама

Если говорить попроще, главное предназначение токена –бартер неких ценностей, реализация которого в реальности осложнена расстоянием между сторонами сделок, размерами тех самых ценностей, участвующих в сделках.

Часто токены могут быть источником заработка. Для этого вам нужно знать, какие активы могут увеличить свою стоимость. Чтобы дать ответ на данный вопрос, важно понимать, почему стоимость предлагаемых продуктов или услуг может увеличиться в будущем. Это могут быть или дефицитные активы, или активы, которые будут расти самостоятельно.

Это заложено во всех ICO. Первоначально, когда его дальнейшая судьба неизвестна, ICO предлагает купить токены по низкой цене в качестве инвестора в конкретный проект, описывая, как он может принести прибыль в будущем. Если проект будет развиваться, цена токенов увеличится, если они связаны с активами проекта или применяются в бизнесе.

реклама

Большое количество токенов создано на основе blockchain Ethereum, что в один момент подтолкнуло к росту Эфира.

Виды токенов

Токены можно разделить на 3 основные группы:

Utility tokens. Тут как пример можно привести начисление каких-либо баллов за совершение определенных действий, которые начисляются в играх.

реклама

Utility tokens – это токены на основе товаров или услуг.

Третий тип токенов наиболее обеспеченный, так как компании, которые предоставляют товары и услуги, или же отдельные лица, выступают гарантом совершения сделок. В данном случае один или несколько товаров (услуг) равняются одному токену.

То есть, токены, простыми словами представляют собой валюту в закрытой экосистеме, использующуюся для покупок товаров и услуг, выступают как вознаграждение за определенные действия.

Токены предназначены для упрощения и удобности проведения транзакций между сторонами, а также для ускорения процесса транзакции при помощи технологии blockchain. Это альтернативный способ инвестиции в акции.

Отличие токенов от монет

Токены отличаются от монет тем, как они выпускаются. Если монеты децентрализованы, они выпускаются разными компьютерами, то выпуском токенов занимается руководство одной или нескольких организаций, или же какое-либо конкретное лицо. Бывают и исключения, но чаще всего все транзакции, связанные с токенами, полностью подконтрольны, поскольку транзакции часто порождают обязательства.

Вторым существенным отличием является их стоимость, а именно факторы, которые ее определяют. Допустим, если стоимость Bitcoin напрямую зависит от спроса и предложения, то стоимость токена определяется, вложенным в него активом.

Bitcoin и альткоины функционируют на основе собственных blockchain, токены же функционируют на основе blockchain других криптовалют. Это дает пользователям даже с минимальными знаниями в этой сфере возможность создания своих токенов.

Если говорить проще, то у токенов более широкий спектр применения, нежели у криптовалют. Но у токенов меньший масштаб использования.

Покупка токенов и их хранение

Покупка и хранение токенов схожи с покупкой и хранением криптовалюты. Покупка осуществляется с помощью бирж, обменников или же напрямую у продавцов.

Хранение токенов осуществляется с помощью специальных электронных кошельков, на которых происходит хранение и обработка ключей, а формирование транзакций.

Но тут никак без рисков и проблем, связанных с:

Из-за чего так много токенов

В связи с тем, что токены являются цифровыми активами, основанными на blockchain каких-либо криптовалют, их намного легче создать. Помимо этого, этот метод удобен, поскольку он намного безопаснее, устраняет посредников в сделке, а также ускоряет процесс торговли.

С помощью существующих проверенных алгоритмов вы можете создавать токены и проводить ICO. В Интернете есть много конструкторов. Вы всего лишь нужно выбрать наиболее подходящий для вас конструктор, после чего перейти к созданию смарт-контракта.

Смарт-контракты представляют собой набор определенных функций, осуществляющихся внутри структуры: владение токенами, их передачи, пополнения балансов и др.

Их выпуск стандартизирован, что снижает риск потери денежных средств в случае возникновения ошибок смарт-контрактов. При выпуске выбираются наименование, символ, их количество. После всего этого информация добавляется в сеть.

Вывод

Существует большое количество ситуаций, где можно использовать токены. С помощью этих активов пользователям доступна покупка токенизированных акций, предметов искусства и др. Надеюсь, теперь вам стало хоть чуточку понятнее суть токенов, их предназначение.

Источник

Токенизация: какие сферы лидируют в применении новой технологии?

Токен в банке что это. Токен в банке что это фото. картинка Токен в банке что это. смотреть фото Токен в банке что это. смотреть картинку Токен в банке что это.

Токенизация стала популярной концепцией в 2017 году на волне растущей популярности смарт-контрактов и ICO. Тогда множество проектов собрало огромные суммы под лозунгом токенизации какой-то сферы или индустрии. При этом не так много стартапов действительно осуществили те обещания, которые они дали инвесторам. Причина в том, что для настоящей токенизации необходимо наличие регулирования, а оно только начинает приниматься. Соответственно, и процесс создания и введения в общее применение токенизированных активов может занять достаточно много времени. И мы находимся лишь в самом начале пути. Впрочем, некоторые юрисдикции, например, Беларусь, уже активно включились в создание условий для токенизации.

Что такое токенизация?

У токенизации нет одного конкретного определения. В общем смысле это облачение определенных прав в форму токена. Права могут быть совершенно разными — от права на исполнение каких-то действий до прав на ценные бумаги или недвижимость.

Согласно недавней статье швейцарского университета Св. Галлена, сейчас можно выделить даже не виды, а архетипы токенизации, основанные на особенностях токенов, драйверах процесса токенизации и барьерах этого процесса. Вот основные архетипы токенизации, которые выделяют исследователи.

Программируемые деньги (programmable money), которые представляют собой решения, связанные с токенизированной валютой (например, стейблкоинами, цифровыми валютами центрального банка) как эффективным средством обмена и сохранения стоимости. Преодолевая недостатки существующих решений, платежные токены значительно оптимизируют процессы и позволяют автоматизировать множество сервисов на автоматизированных децентрализованных платформах (например, микроплатежи).

Умные банковские активы (Smart bankable assets — акции, облигации и т.д.) также призваны оптимизировать процессы и облегчить возможность получения инвестиционного вознаграждения. Реализуя логику финансового контракта, можно автоматизировать процессы управления денежными потоками и голосования. В результате это может привести к повышению ликвидности и реальных активов.

Доступность неликвидных активов (Opening of illiquid assets — произведения искусства, недвижимость, автомобили и т.д.), чья основная функция в посредничестве между стоимостью актива и самими активом. Так, токенизированные активы, в отличие от реальных, могут быть разделены (что сложно с реальными автомобилями или картинами, например).

Токенизированный краудфандинг (Crowd Funding — капитал стартапов, P2P-заимствования и т.д.) обрел популярность в форме ICO за счет снижения стоимости входа из-за устранения посредников. Там, где раньше многие связанные бизнес-модели не были экономически жизнеспособными, токены позволяют осуществлять эффективные крауд-инвестиции в реальном времени, начиная от частных проектов и заканчивая участием в венчурном капитале. Основное внимание уделяется быстрой и гибкой торгуемости как основе повышения ликвидности.

Доступ к сервисам (Service Access), где токены используются в качестве инструмента для получения прав на конкретный сервис. Внедренные различными отраслями, токенизированные лицензии или членство обеспечивают упрощенный и эффективный доступ к децентрализованным платформам. Они классифицируются в соответствии с функциями, которые токен предоставляет держателю.

Управление платформой (Platform Governance) представляет собой более абстрактную область использования для токенизации механизмов стимулирования как средства координации и сотрудничества. Например, токены могут выдаваться в качестве вознаграждения пользователям за выполнение определенных задач или выполнение определенного поведения (например, вознаграждение за майнинг). Помимо средств достижения консенсуса, токен также может быть востребован и оценен сам по себе, чтобы еще больше стимулировать создание сообщества или голосование. Такие могут быть не основаны на будущей монетизации, но иметь социальную ценность, управляя правом голоса и создавая чувство общности.

Цифровой суверенитет (Digital Sovereignty — CryptoKitties и т.д.) используется для приложений, которые требуют уникальной авторизации и децентрализованного управления доступом к данным для владельцев токенов. Будучи реализованными как невзаимозаменяемый токен (NFT-токен), активы обеспечивают доказательство подлинности и не могут быть воспроизведены. При этом пользователи могут управлять игровыми активами, например, независимо от одного владельца платформы (например, CryptoKitties).

Токенизация отслеживания (Track & Tracing) используется для установления защищенной от несанкционированного доступа записи о праве собственности среди различных заинтересованных сторон. Такие варианты использования часто связаны с логистическими процессами во многих отраслях и позволяют организациям использовать токены для повышения прозрачности жизненного цикла материальных или нематериальных активов.

Какие яркие примеры токенизации есть сейчас?

Кроме того, токенизировать произведения искусства стало трендом. Например, некоторые работы одного из самых популярных и культовых современных художников Бэнкси были проданы именно в виде NFT-токенов.

Другой пример из этой сферы — в сентябре 2021 года индийская финтех-компания запустила реестр на основе блокчейна, чтобы обеспечить дробное владение недвижимостью в стране.

Как токенизация работает на финансовых рынках?

Финансовые рынки — один из сегментов, которые наиболее быстро адаптировались к тенденции токенизации. Это как раз пример умных банковских активов, согласно архетипам. И востребованность использования токенов там крайне высока.

Это понимают как на уровне компаний, так и на уровне стран, что влияет на адаптацию токенизации в разных регионах. В 2018 году в регуляции Парка высоких технологий Беларуси была запущена криптоплатформа Currency.com, которая токенизировала популярные активы — акции, облигации, индексы, ETF, сырье, валюты и криптовалюты. Криптоплатформа стала первой на пространстве СНГ и одной из первых в мире, кто предложил пользователям работу с широким перечнем токенизированных активов. А потом и запустила образовательный проект по работе с ними — Академию Currency.com. В одном из уроков Академии как раз и можно узнать, что такое токенизированные активы.

Владелец токенизированного актива на Currency.com обладает многими правами, которыми обладает владелец реального актива. То есть, владельцы токенизированных акций получают поправку на дивиденд в токенах, владельцы токенизированных облигаций — доход в токенах, равный купонному доходу по соответствующей «бумаге».

Сейчас на криптоплатформе Currency.com доступно более 3 тыс. токенизированных активов и более 30 криптовалют, в том числе и популярный «мемкоин»и Shiba Inu и токен Dogeсoin.

Инвестировать на криптоплатформе могут не только физические, но и юридические лица. Для этого им нужно пройти простую процедуру регистрации и верификации. После этого каждая компания, которая будет работать с платформой, получит доступ к мировым токенизированным рынкам в совокупности с эксклюзивным уровнем сервиса.

Вне всякий сомнений, процесс токенизации на данный момент находится на начальном этапе развития. Однако его перспективы колоссальны. Для роста этой сферы необходимы движения в нормативной адаптации токенов в мире. Впрочем, уже есть компании и юрисдикции, которые подружились с токенизацией и предлагают широкий выбор токенизированных активов — как физическим, так и юридическим лицам со всего мира.

Сообщение содержит информацию о движении рынка, не является инвестиционным исследованием, не должно рассматриваться в качестве инвестиционного совета и является субъективной точкой зрения на объект сообщения автора материала.

Больше новостей о криптовалютах вы найдете в нашем телеграм-канале РБК-Крипто.

Источник

Токенизация карт в E-commerce: что это такое и как работает?

Всем привет! Недавно мы в Яндекс.Кассе совместно с платежными системами Visa и Mastercard запустили новую технологию токенизации платежей для E-commerce, или, по-другому, онлайн-коммерции. Кто-то может подумать: что тут такого — с токенизацией карт разобрались уже с выходом Apple Pay, Google Pay и других *Pay. Но нет, тут что-то новенькое, а мы еще и первыми эту технологию запустили в России этой весной для магазинов-партнеров, так что почему бы не поделиться.

В США и Европе эта технология появилась несколько раньше, и пользователи таких сервисов, как Netflix и Amazon, уже платят E-commerce токенами, хотя, возможно, даже не знают об этом. А я сейчас расскажу, как это устроено не только снаружи (для партнеров и держателей карт), но и изнутри, с точки зрения разработчика и тимлида этого проекта. Если интересно — велкам под кат.

Токен в банке что это. Токен в банке что это фото. картинка Токен в банке что это. смотреть фото Токен в банке что это. смотреть картинку Токен в банке что это.

Что общего с Apple Pay и Google Pay

Те читатели, которые представляют, как работают Apple Pay и Google Pay (а кто не знает — вот наша статья про запуск *Pay), увидят тут знакомые слова.

Если коротко, то одна из особенностей технологий *Pay заключается в том, что плательщику не нужно передавать магазину данные своей банковской карты. Он один раз обменивает их на специальный цифровой токен и дальше, не подвергаясь риску перехвата данных карты, при платеже использует только этот токен. А преимущество в том, что токен работает только вместе с одноразовой криптограммой, которая генерируется на телефоне плательщика, а вне телефона эту криптограмму создать не получится. К тому же этими токенами легко управлять — удалять или создавать новые — дело одной минуты в онлайне, никаких походов в банк и прочей бюрократии.

Пока запомним эти особенности токенизации карт на устройствах пользователей:

Запомнили? А теперь перейдем к токенизации карт для E-commerce, иначе говоря, для онлайн-платежей в интернет-магазинах.

Итак, что такое токенизация в E-commerce

Вообще, токенизация карты — это обмен конфиденциальных данных банковской карты на специальный токен, который позволяет оплачивать покупки с помощью этой карты.

Конфиденциальные данные карты — это ее номер (PAN — Primary Account Number) и срок действия.

Если для подключения карты в *Pay инициатором является сам держатель карты, то токенизацию для E-commerce инициирует интернет-магазин. Но зачем (и с какой стати)?

Наверняка многие из вас пользуются сервисами с подписками: будь то ежемесячная оплата музыки, фильмов или, например, коммунальных услуг. Как оформляется эта подписка? Вы заходите на сайт интернет-магазина, вводите данные своей карты и ставите галочку, подтверждающую ваше согласие на то, что магазин сохранит данные вашей карты (PAN и срок действия) и сможет самостоятельно инициировать оплату за конкретную услугу.

Нужно понимать, что такое действие подразумевает, что магазин должен где-то сохранить данные карты. Тут обычно два варианта:

Давайте обо всем по порядку. При токенизации мы обмениваем данные банковской карты на некий токен, но что это такое? Токен предоставляется платежной системой карты — Mastercard или Visa. Он представляет собой уникальный идентификатор, аналогичный номеру учетной записи устройства в Apple Pay или номеру виртуального счета в Google Pay, которые можно найти в приложении на смартфоне (Wallet на устройствах Apple и Google Pay — на Android).

В отличие от *Pay, в E-commerce токенизации создание токена инициирует интернет-магазин или его платежное решение, а сами токены хранятся на серверах платежных систем.

Разумеется, кто угодно не может прийти к платежной системе и получить токен чьей-либо карты для оплаты покупок. Во-первых, токенизировать карты могут только те платежные решения, которые пройдут сертификацию и получат одобрение платежных систем. Такое платежное решение называется On-Behalf Token Requestor или Token Service Provider, но для простоты будем впредь оперировать термином Token Requestor. И только Token Requestor может инициировать платежи токеном. Во-вторых, токен всегда выпускается для конкретного магазина, и с помощью токена можно платить только в этом магазине. Очень похоже на то, как токен *Pay связан с устройством, на котором он был создан.

За счет чего это достигается? Просто перед проведением каждого платежа по токену Token Requestor должен получить одобрение у платежной системы на этот платеж. Факт такого одобрения надо будет предъявить во время фактического проведения платежа, поэтому одобрение это имеет форму одноразовой криптограммы, которую формирует платежная система карты. При проведении платежа эта криптограмма добавляется к параметрам запроса в банк-эквайер и затем передается платежной системе, которая проверяет подлинность этой криптограммы, которую сама ранее выдавала.

А что там про управление токеном независимо от управления картой? Тут вообще все просто — токен живет своей жизнью, имеет свои статусы жизненного цикла, и о каждом изменении статуса Token Requestor сразу же узнает от платежной системы карты.

Подведем некоторый итог. Что токенизация дает держателю карты?

*Мы сравнивали платежи за этот апрель в крупном онлайн-кинотеатре (MCC 4899) — привязанными картами без 3DS, без учета неуспешных платежей из-за нехватки денег на карте.

Технические аспекты

Для любителей копнуть чуть глубже, расскажу о технологии токенизации карт и ее запуске в Яндекс.Кассе — как все это выглядит изнутри нашего платежного решения.

Интеграция с платежными системами

Чтобы получить техническую возможность токенизировать карты и проводить платежи токенами, необходимо интегрироваться с Visa и Mastercard, пройти тесты, сертификацию и получить их одобрение на запуск в production. Поначалу это звучало устрашающе. Да и не только поначалу, если честно, по крайней мере, для меня. Но устрашала скорее сертификация, а по технике все было предельно ясно.

Интеграция подразумевает реализацию следующего API (условно) между платежной системой и нами в качестве Token Requestor:

Токенизация в Яндекс.Кассе

Яндекс.Касса представляет из себя большую систему по приему платежей для интернет-магазинов. Она состоит из многих десятков различных сервисов: backend-, frontend-приложения, BI-сервисы. Они обеспечивают прием платежа пользователя различными способами, перевод денежных средств магазину, управление платежами через личный кабинет магазина, аналитические сервисы и тому подобное. И как именно сюда встроилась токенизация карт?

Главный вопрос: в какой момент создавать токен для банковской карты?
В API Яндекс.Кассы есть возможность сохранять выбранный способ оплаты для последующих платежей в будущем, мы это называем автоплатежи.

Это может происходить как при привязке карты к аккаунту пользователя в личном кабинете магазина, так и при подписке на периодической основе, когда платежи с карты будут проводиться автоматически. В обоих сценариях при создании платежа магазин по API передает параметр save_payment_method: true, и после успешного платежа мы выдаем магазину payment_method_id — идентификатор сохраненного способа оплаты, с помощью которого он сможет проводить новые платежи.

Вот он, этот момент. Токены созданы как раз для платежей, инициированных магазином. Поэтому сразу после проведения платежа с сохранением способа оплаты мы асинхронно ставим нашему сервису токенизации задачу создать токен для пары «карта и магазин».

Что же сами платежные системы делают в момент токенизации карты?
Они обращаются в банк-эмитент, с запросом на создание токена (как это происходит и при создании токенов *Pay), и банк выпускает токен для данного магазина. Банк также может уведомить об этом держателя карты и отобразить созданный токен в его личном кабинете.

Как происходит платеж токеном?

Пожалуй, тут понадобится некоторая иллюстрация, как вообще проходит платеж ранее сохраненной картой, который инициирует интернет-магазин:

Токен в банке что это. Токен в банке что это фото. картинка Токен в банке что это. смотреть фото Токен в банке что это. смотреть картинку Токен в банке что это.

Итак, при платеже ранее сохраненным способом магазин передает только его идентификатор — payment_method_id. По этому идентификатору сервис платежей картами находит данные (PAN и срок действия) карты и передает их одному из банков-эквайеров, который далее общается с платежной системой карты.

С токенами в этом сценарии добавляется еще один шаг:

Токен в банке что это. Токен в банке что это фото. картинка Токен в банке что это. смотреть фото Токен в банке что это. смотреть картинку Токен в банке что это.

Если видим, что для карты и магазина ранее был выпущен токен, то мы можем провести платеж без использования данных карты. Для этого мы через сервис токенизации предварительно отправляем запрос в международную платежную систему с данными токена и в ответ получаем одноразовую криптограмму, которая подтверждает, что токен действующий и мы имеем право провести платеж. И уже после этого мы передаем банку-эквайеру данные токена вместе с этой криптограммой.

А что происходит в сценарии, когда пользователь перевыпускает карту в своем банке?
Если к карте ранее были выпущены токены, то банк-эмитент сообщает в платежную систему Mastercard/Visa, что карта перевыпущена. В свою очередь, каждый Token Requestor, который выпускал токены к этой карте, получит уведомление от платежной системы. Оно содержит обновленную информацию о карте: последние 4 цифры номера и новый срок действия. Токен при этом остается прежним.

Когда магазин инициирует очередной платеж с уже просроченной карты, которая на самом деле была перевыпущена, а у нас есть токен к ней для этого магазина — платеж пройдет успешно. К тому же мы сообщим магазину уже новые последние 4 цифры банковской карты — они будут присутствовать в ответах нашего API. Это нужно для того, чтобы и магазин, и пользователь всегда видели, с какой именно карты списываются средства.

Вместо заключения

Токенизация в E-commerce — это новый этап развития приема платежей, повышающий удобство для всех участников процесса оплаты. Мы ожидаем, что в ближайшее время технологию поддержат многие российские банки и провайдеры — и она станет новым стандартом платежного рынка.

Конечно, рассказ получился скорее обзорным, но я надеюсь, что каждый читатель найдет в нем что-то полезное для себя — повысит свой уровень финансовой грамотности, узнает о новинках в финтехе или, может, найдет идею для развития своего бизнеса.

Источник

Хроники SSO: банк, токены и немного магии

Привет! Меня зовут Артем Ивлев, и я занимаюсь архитектурой идентификации клиентов банка ВТБ. Наша задача — ответить на вопрос, кто использует наш банковский сервис: мобильный или интернет-банк, голосового помощника или просто один из многочисленных офисов. Для этого есть множество инструментов — и я хочу рассказать про становление одного из них.

Пролог

На дворе 2019 год, экосистема банка растет как на дрожжах, и все острее нам нужны единая точка входа для клиентов и провайдер идентификации. А есть только каталог учетных записей и отдельные решения разных команд для аутентификации.

Требований к тому, как все должно выглядеть, у нас еще не было. При этом мы сразу же начали говорить об аутентификации физических лиц не только в онлайн-банке, но и на ресурсах партнеров. Та самая кнопочка «Войти через ВТБ».

Токен в банке что это. Токен в банке что это фото. картинка Токен в банке что это. смотреть фото Токен в банке что это. смотреть картинку Токен в банке что это.

Примерно так будет выглядеть вход через ВТБ

Из этого следовало, что нам нужно взять максимально универсальное решение и начать его использовать. В процессе использования мы смогли бы выяснить, что нам точно нужно, каких функций не хватает и т. д.

Выбираем, по какому пути пойдем

Прошерстив интернет, покурив магические квадраты Гартнера, начали смотреть на опенсорс-решения с поддержкой в России:

• WSO2 Identity Server

По отзывам в сети и документации наиболее универсальным нам показалось решение от WSO2 с шиной для возможности подключения множества провайдеров аутентификации, провайдеров данных пользователя и т. д.

Токен в банке что это. Токен в банке что это фото. картинка Токен в банке что это. смотреть фото Токен в банке что это. смотреть картинку Токен в банке что это.

Архитектура WSO2 Identity Server

Первый прототип мы показали еще в 2019 году на общем выездном демо розничного бизнеса.

Серебряная пуля есть (извини, Брукс) — это токен

В первую очередь мы поняли, что в OAuth 2 нам лучше всего использовать ID-токен JWT, который не требует обращения к серверу аутентификации для проверки при каждом запросе. Если вкратце, JWT — это пирамидка из трех частей:

1. Заголовок (HEADER) рассказывает, что это за токен, как подписан и кем выдан.

2. Тело (PAYLOAD) — набор параметров — позволяет узнать, какому сервису и для какого пользователя выдан этот токен, как долго этот токен будет жить.

3. Криптографическая подпись (SIGNATURE) дает возможность проверить, что данные в теле токена не были изменены и что токен выдан именно тем сервером идентификации, которому мы доверяем.

Токен в банке что это. Токен в банке что это фото. картинка Токен в банке что это. смотреть фото Токен в банке что это. смотреть картинку Токен в банке что это.

Структура JSON Web Token (JWT)

Все эти части — это одна большая строка, разделенная точками на блоки. Первые два блока кодированы с помощью алгоритма Base64.

Использование ID-токена JWT сильно упростило жизнь: больше не нужно было при каждом запросе от мобильного устройства или браузера ходить в базу и проверять, кому и когда выдан токен. Вся информация — в самом токене. Достаточно просто поставить перед потребителями API Gateway, который проверит подпись токена с помощью открытого ключа.

Как доработать пулю напильником

Токен, выпущенный на X минут, будет действителен, даже если пользователь нажмет «Выход» или от систем службы безопасности банка поступит сигнал срочно разлогинить этого пользователя из приложения.

Решение давно придумали — хранить списки отозванных токенов и сверяться с ними на уровне API Gateway. Да, это тоже сверка с базой, но здесь множество существенно меньше и легко реализуется на кеше Redis с TimeToLive.

Как сделать, чтобы злоумышленники не могли украсть токен, выданный определенному мобильному приложению или браузеру пользователя? Ведь технически можно утащить у пользователя что-то из браузера и даже из приложения. То есть нужно сделать так, чтобы злоумышленник, даже украв токен, не смог им воспользоваться.

Токен в банке что это. Токен в банке что это фото. картинка Токен в банке что это. смотреть фото Токен в банке что это. смотреть картинку Токен в банке что это.

Кадр из заставки мультсериала «Симпсоны»

Как обычно, задача не нова и ее решение «уже было в «Симпсонах»» ((с)​ «Южный парк»). Делаем безопасную куку (HttpOnly, SameSite, Secure) и кладем в нее UUID. Потом от этого UUID делаем хеш, например, CRC32, — и кладем его уже в тело JWT. И все. Теперь достаточно для каждого запроса проверять, что хеш от нашей куки равен тому, который записан в тело токена. Безопасную куку утащить сложнее, так что пара «токен — кука» дает нам достаточно уверенности.

Адаптивная аутентификация, или Почему нам пришлось идти своим путем

В процессе входа пользователя много дополнительной магии. Это и проверки пользователя, его устройства, статистики по входам, географии, и аудит действий, и открытие сессий в бэк-системах, и уточнение необходимости второго фактора, и выбор этого самого второго фактора (СМС, push, что-то еще).

Это и есть задача адаптивной аутентификации. И, с одной стороны, использование модуля позволило все эти задачи вписывать с помощью скриптового интерфейса WSO2 IS, но, с другой стороны, невозможно было реализовать красивый API для мобильных устройств или SPA.

Дело в том, что вся адаптивная аутентификация идет на серверном уровне как генерация интерфейсов с помощью JSP. Это сложно адаптировать даже для современной веб-разработки, не говоря уже о API для мобильного приложения.

После первых прототипов и попыток натянуть универсальность на пожелания коллег из мобильной и веб-платформ мы поняли, что эту часть придется переписывать.

Для мобильного приложения и интернет-банка мы решили реализовать всю логику с помощью всего лишь одной ручки API/oauth2/token — в зависимости от входящих параметров она выдавала токен или ошибку с просьбой перейти на нужный шаг запроса второго фактора.

Реализацию бизнес-логики решили внести прямиком в grant_type, параметр /oauth2/token, отвечающий на вопрос о нужном типе аутентификации.

В итоге у нас получилась стройная логика. Есть сервис-провайдер — потребитель аутентификации. У него есть настройки, среди которых — набор grant type. Тем самым мы отлично понимаем, кто и с помощью каких логик входа к нам может прийти.

Все, что не роняет прод, делает нас сильнее

Следующая проблема, которую мы поймали, — невысокая производительность из-за довольно сложного использования базы данных для сценария аутентификации, в котором мы контролируем «что и почему» на уровне нашего кода. WSO2 IS слишком много читает и пишет в базу.

Пришлось нам снова переписывать часть логики генерации токена. Убрали сессии из PostgreSQL в Redis. Это на порядок снизило нагрузку на базу.

Токен в банке что это. Токен в банке что это фото. картинка Токен в банке что это. смотреть фото Токен в банке что это. смотреть картинку Токен в банке что это.

Но, как оказалось, этого тоже мало. Сама зависимость от базы для столь критичного сервиса — далеко не лучшее решение. В случае падения или недоступности базы (где хранятся в основном настройки и выданные токены, сессии-то мы уже оттуда убрали) мы не могли пустить пользователя в банк.

Добавили проверку в случае недоступности базы — выдавать токены в аварийном порядке, если их не удается продлить через пять минут. То есть пользователи все равно смогут работать в приложении банка — но только пока жив первый выданный токен.

Следующим шагом был переход от двух ЦОДов в режиме active-active к режиму active-passive, что снизило риски рассинхрона PostgreSQL и Redis. В худшем случае при падении ЦОД какой-то части пользователей придется перезайти в приложение.

Ну и как финальный гвоздь в код выдачи токенов — решение полностью переписать остатки WSO2 IS. Последняя версия уже вообще не общается с базой при аутентификации пользователя. Остался только Redis, который хранит сессии аутентификации и выданные в них JWT и refresh-токены.

Что дальше? Новые гориSSOнты

При выдаче токена осталось так мало от вендорного WSO2 IS, что в скором времени мы сможем перейти от монолита, который умеет слишком много, к микросервисам, которые умеют только то, что нам нужно и с нужной нам производительностью.

Сейчас у нас есть вход в банковское приложение в мобильной и веб-версиях. Но этого мало. Ведь у ВТБ есть множество других продуктов. Это «Мультибонус», «ВТБ Мобайл» и десятки, если не сотни, других наших проектов. Для всех требуются аутентификация и единая точка входа.

Токен в банке что это. Токен в банке что это фото. картинка Токен в банке что это. смотреть фото Токен в банке что это. смотреть картинку Токен в банке что это.

Кадр из мультсериала «Рик и Морти»

Эпилог

Скоро год, как наши первые релизы ушли в прод. Решение развивается и обрастает новыми возможностями. Не стоило ли нам сразу начать писать свое? Нужен ли вообще был WSO2 IS?

История не терпит сослагательного наклонения, но я думаю, что в условиях крайне сжатых сроков и итеративной разработки мы бы, скорее всего, ничего не успели — а если бы и успели, это бы не дотягивало до наших стандартов и не позволило развиваться дальше. Так что мы выбрали вендорное решение и заодно использовали его, чтобы развивать собственные наработки и компетенции команды — и это дало отличный результат.

ЗЫ: Буду рад обсудить вопросы по SSO, токенам и вообще аутентификации.

ЗЗЫ: Про что хотите почитать в следующий раз? Аутентификацию, биометрию или цифровой профиль и использование Tarantool Data Grid?

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *