Software token что это

Аппаратный или программный токен — какой выбрать

Стремление к многофункциональности и максимальному удобству — основная тенденция нашего времени. Именно из нее проистекает всеобщая привязанность (которая часто граничит с зависимостью) к смартфонам. Эти маленькие устройства воплощают для современного человека принцип “все свое ношу с собой”: обычный телефон стал теперь миниатюрным переносным компьютером, по которому еще и звонить можно (но это уже давно не главная его функция).

Поскольку в любом компьютере должна присутствовать надежная система защиты данных, а двухфакторная аутентификация (two-factor authentication) является одним из важнейших ее элементов — разработчики ПО предложили решение, при котором смартфон может превратиться в полноценный ОТР токен. Специалисты по кибербезопасности и пользователи с радостью приняли это средство аутентификации, которое действительно очень удобно.

Software token что это. Смотреть фото Software token что это. Смотреть картинку Software token что это. Картинка про Software token что это. Фото Software token что это

Если говорить о плюсах такого средства аутентификации, то они довольно весомы. Рассмотрим их на примере Protectimus SMART, удобного программного токена для генерации one time password, созданного компанией Протектимус:

А есть ли недостатки у программных токенов? Как ни печально, есть. И основной из них — это то, что устройство, на которое устанавливается токен, не является полностью изолированным от внешних воздействий. Прежде всего, компьютерных вирусов. Особенно это касается Android смартфонов, большая часть которых имеет те или иные уязвимости.

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

Software token что это. Смотреть фото Software token что это. Смотреть картинку Software token что это. Картинка про Software token что это. Фото Software token что это

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

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

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

Subscribe To Our Newsletter

Join our mailing list to receive the latest news and updates from our team.

Источник

Токен авторизации на примере JSON WEB Token

Введение

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

Еще одно небольшое введение

Формальное определение

Приступим наконец к работе самого токена. Как я сказал ранее в качестве токенов наиболее часто рассматривают JSON Web Tokens (JWT) и хотя реализации бывают разные, но токены JWT превратились в некий стандарт, именно поэтому будем рассматривать именно на его примере.

JSON Web Token (JWT) — это открытый стандарт (RFC 7519) для создания токенов доступа, основанный на формате JSON.

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

Принцип работы

Рассмотрим принцип работы клиент серверных приложений, работающих с помощью JWT. Первым делом пользователь проходит аутентификацию, конечно же если не делал этого ранее и в этом есть необходимость, а именно, например, вводит свой логин и пароль. Далее приложение выдаст ему 2 токена: access token и refresh token (для чего нужен второй мы обсудим ниже, сейчас речь идет именно об access token). Пользователь тем или иным способом сохраняет его себе, например, в локальном хранилище или в хранилище сессий. Затем, когда пользователь делает запрос к API приложения он добавляет полученный ранее access token. И наконец наше приложение, получив данный запрос с токеном, проверяет что данный токен действительный (об этой проверке, опять же, ниже), вычитывает полезные данные, которые помогут идентифицировать пользователя и проверить, что он имеет право на запрашиваемые ресурсы. Таким нехитрым образом происходит основная логика работы с JSON Web Tokens.

Software token что это. Смотреть фото Software token что это. Смотреть картинку Software token что это. Картинка про Software token что это. Фото Software token что этоhttps://habr.com/ru/post/336082/

Структура токена

Пришло время обсудить структуру токена и тем самым лучше разобраться в его работе. Первое что следует отметить, что JWT токен состоит из трех частей, разделенных через точку:

Полезные данные (playload)

Software token что это. Смотреть фото Software token что это. Смотреть картинку Software token что это. Картинка про Software token что это. Фото Software token что этоfunnytorimage.pw

Рассмотрим каждую часть по подробнее.

Заголовок

Это первая часть токена. Она служит прежде всего для хранения информации о токене, которая должна рассказать о том, как нам прочитать дальнейшие данные, передаваемые JWT. Заголовок представлен в виде JSON объекта, закодированного в Base64-URL Например:

Software token что это. Смотреть фото Software token что это. Смотреть картинку Software token что это. Картинка про Software token что это. Фото Software token что это

Если раскодировать данную строку получим:

Полезные данные

Software token что это. Смотреть фото Software token что это. Смотреть картинку Software token что это. Картинка про Software token что это. Фото Software token что это

Что в JSON формате представляет собой:

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

Одной из самых важных характеристик любого токена является время его жизни, которое может быть задано полем exp. По нему происходит проверка, актуален ли токен еще (что происходит, когда токен перестает быть актуальным можно узнать ниже). Как я уже упоминал, токен может помочь с проблемой авторизации, именно в полезных данных мы можем добавить свои поля, которые будут отражать возможности взаимодействия пользователя с нашим приложением. Например, мы можем добавить поле is_admin или же is_preferUser, где можем указать имеет ли пользователь права на те или иные действия, и при каждом новом запросе с легкостью проверять, не противоречат ли запрашиваемые действия с разрешенными. Ну а что же делать, если попробовать изменить токен и указать, например, что мы являемся администраторами, хотя таковыми никогда не были. Здесь мы плавно можем перейти к третьей и заключительной части нашего JWT.

Подпись

Время жизни токена и Refresh Token

Заключение

В данной статье я постарался подробно рассмотреть работу клиент-серверных приложений с токеном доступа, а конкретно на примере JSON Web Token (JWT). Еще раз хочется отметить с какой сравнительной легкостью, но в тоже время хорошей надежностью, токен позволяет решать проблемы аутентификации и авторизации, что и сделало его таким популярным. Спасибо за уделенное время.

Источник

Что такое Utility Tokens? Как они работают?

Software token что это. Смотреть фото Software token что это. Смотреть картинку Software token что это. Картинка про Software token что это. Фото Software token что это

ICO произвели революцию в мире традиционного инвестирования и принесли большие объемы капитала в индустрии криптовалют и блокчейна.

Когда проекты проходят через ICO, они выпускают токены, работающие на блокчейне, своим инвесторам, которые помогают им привлечь капитал. Важно понимать, что все токены не одинаковы, и именно это подводит нас к теме этой статьи: служебные токены. Давайте рассмотрим, что это такое и какую роль они играют в индустрии криптовалют.

Что такое служебные токены?

Что делает Utility Tokens особенным, так это то, что он представляет собой будущий доступ к продукту или услуге компании, придавая ему некоторую ценность, но ничего не гарантируя.

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

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

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

Обычно вокруг проекта много ажиотажа, и Utility Tokens служат для облегчения процесса инвестирования на ранних этапах.

Термины

Software token что это. Смотреть фото Software token что это. Смотреть картинку Software token что это. Картинка про Software token что это. Фото Software token что это

Токен. Крипто-токены представляют собой особый вид токенов виртуальной валюты, которые находятся на их собственных блокчейнах и представляют собой актив или утилиту.

Software token что это. Смотреть фото Software token что это. Смотреть картинку Software token что это. Картинка про Software token что это. Фото Software token что это

ICO: выступает в качестве сборщика денег. Компания, желающая создать новую монету, приложение или услугу, запускает ICO. Затем заинтересованные инвесторы покупают токены этой компании, либо с использованием Фиата, либо с существующими цифровыми токенами, такими как Эфир или Биткоин. В обмен на их внесенные деньги (Фиат или другая криптовалюта) инвесторы получают новый токен проекта.

Software token что это. Смотреть фото Software token что это. Смотреть картинку Software token что это. Картинка про Software token что это. Фото Software token что это

Как они работают?

Software token что это. Смотреть фото Software token что это. Смотреть картинку Software token что это. Картинка про Software token что это. Фото Software token что это

Служебные токены (Utility Tokens) не должны быть инвестициями в цифровые активы. Тем не менее, многие люди вносят свой вклад в ICO служебных токенов, надеясь, что ценность токенов будет расти по мере увеличения спроса на продукт или услугу компании.

Основываясь на базовых моделях спроса и предложения, колебания цен на токены можно сравнить с колебаниями билетов на спортивные мероприятия.

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

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

Другие типы токенов

Software token что это. Смотреть фото Software token что это. Смотреть картинку Software token что это. Картинка про Software token что это. Фото Software token что это

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

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

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

Вывод

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

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

Источник

Технология Software Token (Виртуальный Токен)

Введение

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

Использование статических паролей имеет ряд существенных минусов:

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

Еще один способ повышения защищенности системы — так называемая, расширенная или многофакторная аутентификация. Она построена на совместном использовании нескольких факторов аутентификации.

Примером использования многофакторной аутентификации и одноразового пароля является аутентификация с помощью аппаратных токенов и PIN кодов. Вместо аутентификации с помощью ввода многоразового пароля, пользователь имеет при себе специальное устройство “токен” (token), которое генерирует пароли, действующие только один раз. Токен представляет собой устройство с дисплеем и клавиатурой. Для генерирования одноразового пароля пользователь должен ввести в данное устройство свой PIN код. Таким образом, для аутентификации пользователю необходимо:

Полученный одноразовый пароль пользователь использует для входа в систему.

Очевидно, что аутентификация с помощью аппаратных токенов более безопасный способ, чем использование статического пароля. Однако у него есть один большой минус — пользователям необходимо иметь при себе отдельное устройство – токен. При решении данной проблемы появилась идея использовать в качестве токенов устройства, которые люди всегда носят с собой: мобильные телефоны, КПК, ноутбуки и т.д.

На устройство пользователя устанавливается специальное приложение – программный (виртуальный) токен. Он работает на принципе двухфакторной аутентификации. После установки приложения, пользователю необходимо пройти процесс регистрации своего устройства на сервере организации, к ресурсам которой требуется получать доступ. Далее для генерирования одноразового пароля пользователю необходимо ввести PIN код в приложении на своем устройстве.

Таким образом, для аутентификации пользователю необходимо:

Полученный одноразовый пароль пользователь может использовать для входа в систему.

Одной из реализаций описанного способа является приложение Mobile-OTP (Mobile One Time Passwords).

Установка продукта

Рассмотрим процесс установки продукта со стороны конечного пользователя.
(Подробный обзор системы управления доступом от установки до работы).

Загрузите java приложение на ваше устройство и пройдите процесс установки. После завершения установки приложения запустите его. Теперь необходимо инициализировать устройство на сервере организации, к ресурсам которой мы хотим получить доступ. Далее вводите произвольным образом последовательность из 25 чисел. Сервер запишет код, определяющий Ваше устройство. После чего при попытке аутентификации сервер аутентификации считывает этот код. Если этот код совпадает со значением, полученным на сервере, аутентификация устройства считается успешной.

Принцип работы

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

Хеширование происходит при помощи алгоритма MD5. Алгоритм MD5 (Message Digest 5) — алгоритм однонаправленной хэш-функции, вырабатывающий из входного сообщения 128-битовое хэш-значение. Алгоритм разработан профессором Рональдом Л. Ривестом из Массачусетского технологического института. Алгоритм MD5 предназначен для создания «отпечатков» или «дайджестов» сообщений произвольной длины и последующей проверки их подлинности. Для более подробного ознакомления с информацией пройдите по ссылке: ru.wikipedia.org/wiki/MD5.

После ввода PIN кода приложение выдает первые шесть цифр хэш-функции. Это и есть одноразовый пароль.

Таким образом, аутентификация пользователя в системе зависит от двух факторов:

Преимущества технологии Mobile-OTP

Источник

Шпаргалки по безопасности: JWT

Software token что это. Смотреть фото Software token что это. Смотреть картинку Software token что это. Картинка про Software token что это. Фото Software token что это

Многие приложения используют JSON Web Tokens (JWT), чтобы позволить клиенту идентифицировать себя для дальнейшего обмена информацией после аутентификации.

JSON Web Token – это открытый стандарт (RFC 7519), который определяет компактный и автономный способ безопасной передачи информации между сторонами в виде объекта JSON.

Software token что это. Смотреть фото Software token что это. Смотреть картинку Software token что это. Картинка про Software token что это. Фото Software token что это
Эта информация является проверенной и надежной, потому что она имеет цифровую подпись.
JWT могут быть подписаны с использованием секретного (с помощью алгоритма HMAC) или пары открытого / секретного ключей с использованием RSA или ECDSA.

JSON Web Token используется для передачи информации, касающейся личности и характеристик клиента. Этот «контейнер» подписывается сервером, чтобы клиент не вмешивался в него и не мог изменить, например, идентификационные данные или какие-либо характеристики (например, роль с простого пользователя на администратора или изменить логин клиента).

Этот токен создается в случае успешной аутентификации и проверяется сервером перед началом выполнения каждого клиентского запроса. Токен используется приложением в качестве “удостоверения личности” клиента (контейнер со всей информацией о нем). Сервер же имеет возможность проверять действительность и целостность токена безопасным способом. Это позволяет приложению быть stateless (stateless приложение не сохраняет данные клиента, сгенерированные за один сеанс для использования в следующем сеансе с этим клиентом (каждый сеанс выполняется независимо)), а процессу аутентификации независимым от используемых сервисов (в том смысле, что технологии клиента и сервера могут различаться, включая даже транспортный канал, хотя наиболее часто используется HTTP).

Соображения по поводу использования JWT

Даже если токен JWT прост в использовании и позволяет предоставлять сервисы (в основном REST) без сохранения состояния (stateless), такое решение подходит не для всех приложений, потому что оно поставляется с некоторыми оговорками, как, например, вопрос хранения токена.

Если приложение не должно быть полностью stateless, то можно рассмотреть возможность использования традиционной системы сессий, предоставляемой всеми веб-платформами. Однако для stateless приложений JWT – это хороший вариант, если он правильно реализован.

Проблемы и атаки, связанные с JWT

Использование алгоритма хеширования NONE

Подобная атака происходит, когда злоумышленник изменяет токен, а также меняет алгоритм хеширования (поле “alg”), чтобы указать через ключевое слово none, что целостность токена уже проверена. Некоторые библиотеки рассматривали токены, подписанные с помощью алгоритма none, как действительный токен с проверенной подписью, поэтому злоумышленник мог изменить полезную нагрузку (payload) токена, и приложение доверяло бы токену.

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

Перехват токенов

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

Защита заключается в добавлении «пользовательского контекста» в токен. Пользовательский контекст будет состоять из следующей информации:

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

Код для создания токена после успешной аутентификации:

Код для проверки валидности токена:

Явное аннулирование токена пользователем

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

Одним из способов защиты является внедрение черного списка токенов, который будет пригоден для имитации функции «выход из системы», существующей в традиционной системе сеансов.

В черном списке будет храниться сборник (в кодировке SHA-256 в HEX) токена с датой аннулирования, которая должна превышать срок действия выданного токена.

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

Хранилище черного списка:
Для централизованного хранения черного списка будет использоваться база данных со следующей структурой:

Управление аннулированиями токенов:

Раскрытие информации о токене

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

Способ защиты достаточно очевиден и заключается в шифровании токена. Также важно защитить зашифрованные данные от атак с использованием криптоанализа. Для достижения всех этих целей используется алгоритм AES-GCM, который обеспечивает аутентифицированное шифрование с ассоциированными данными (Authenticated Encryption with Associated Data – AEAD). Примитив AEAD обеспечивает функциональность симметричного аутентифицированного шифрования. Реализации этого примитива защищены от адаптивных атак на основе подобранного шифртекста. При шифровании открытого текста можно дополнительно указать связанные данные, которые должны быть аутентифицированы, но не зашифрованы.

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

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

Хранение токенов на стороне клиента

Если приложение хранит токен так, что возникает одна или несколько из следующих ситуаций:

Остается случай, когда злоумышленник использует контекст просмотра пользователя в качестве прокси-сервера, чтобы использовать целевое приложение через легитимного пользователя, но Content Security Policy может предотвратить связь с непредвиденными доменами.

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

Использование слабого ключа при создании токена

Если секрет, используемый в случае алгоритма HMAC-SHA256, необходимый для подписи токена, является слабым, то он может быть взломан (подобран c помощью атаки грубой силы). В результате злоумышленник может подделать произвольный действительный токен с точки зрения подписи.

Для предотвращения этой проблемы надо использовать сложный секретный ключ: буквенно-цифровой (смешанный регистр) + специальные символы.

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

Для оценки сложности секретного ключа, используемого для вашей подписи токена, вы можете применить атаку по словарю паролей к токену в сочетании с JWT API.

Источник

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

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