Мобильные устройства токены что это
Токены в мире Android
Sep 10, 2018 · 4 min read
Дисклеймер: если вы знаете что такое токены и уже работали с ними, вам не сюда (либо в комментарии, буду рад замечаниям).
В современном мире, вопрос о хранении и защиты данных стоит наиболее остро. Http протокол, открытые wi-fi сети, DPI на стороне провайдера — все это дает возможность людям смотреть на данные, которые Вы можете слать из своего приложения и важно чтобы эти данные были понятны не всем.
Наше приложение обращается к стор о ннему сервису для обмена данными и защищенность этих данных обычно колеблется от plain-text до base64 в лучшем случае, просто потому что вопрос о необходимости шифрования не является приоритетным (надо быстрее фичи закрывать потому что).
И хорошо, если при передаче незащищенных данных, они оборачиваются в какой-нибудь контейнер используя SSL. SSL берет большую часть работы с шифрованием на себя, запаковывая ваши данные в коробку, которую могут открыть только участники активного соединения (т.е. ваше приложение и сервер). Но это только в теории конечно, поскольку существуют поддельные SSL сертификаты и MIM атаки, но это все же лучше чем совсем голяк.
Предположим, что мы все таки беспокоимся о данных, которые передаем и храним. Здесь надо понимать одну вещь:
Не существует абсолютно защищенных систем. Безопасность — это лишь комплекс мер, которые в умелом сочетании отдаляют неизбежное.
И в целом, лучший подход к безопасности данных лежит в их отсутствии. Если вы имеете доступ к пользовательским данным, не используйте больше необходимого минимума. Избегайте любой обработки и их передачи далее, без обеспечения необходимого уровня защиты. Где это возможно, обезличивайте данные: не храните email, номер телефона, IMEI и пароли, вместо этого используйте их хеш или же токены.
Токены
Обычно, это обезличенный набор букв и цифр, который не представляет собой никакой осмысленной информации, однако является ключом, с которым приложение от лица пользователя может совершать запросы на сервер.
“Совершать запросы от моего лица, хм, не думаю, что позволю это кому-то.” — это меньшее из зол и на самом деле не так страшно, как звучит. Если бы на каждый ваш запрос на получение новых мемасиков с пикабу от вас требовали бы пароль, вы скорее всего предпочли бы например 9gag (проплаченная реклама), хотя бы потому что там удобнее, не говоря уже о том, что с первого сервиса ваш пароль многократное количество раз будет улетать на сервер, вместо одного. С каждой последующей отправкой пароля, вы увеличиваете вероятность его компрометации злоумышленником, т.к. он часто мелькает в сети и его становится легко заметить. То же самое происходит и с токеном, но это не так страшно, ведь токен обезличен, представлен из набора букв и цифр и не несет никакой важной информации. Более того, токены живут не долго (30 минут, час, день, как решит сервер) и даже если злоумышленник узнает ваш токен и сможет совершать действия от вашего лица на этом ресурсе, это продлится не дольше 30 минут (времени жизни токена), а после доступ будет ограничен и токен надо будет обновить.
Типичный день OAuth2 сервера
Достаточно просто и безопасно, что может пойти не так?
Что мы можем с этим сделать?
В целом и все. Пишите что не понятно, либо где я ошибся, буду рад обсуждениям.
USB-токен: что это такое и как пользоваться
По данным аналитиков «Лаборатории Касперского», в 2017 году было предпринято более 260 млн попыток фишинговых атак — это один из способов получить все ваши пароли и данные. От этого может не спасти даже двойная аутентификация через СМС или специальное приложение.
График попыток фишинговых атак
Но люди придумали такую штуку, как USB-токен — она лучше защищает ваши данные. Рассказываем, почему этот способ более надежный и как правильно все настроить.
Что это такое и как работает?
USB-токен — небольшое устройство, похожее на обычную флешку. Внутри них специальный уникальный код, заменяющий другие способы двойной аутентификации.
По факту его можно сравнить с ключом от вашей квартиры — если ключ в компьютере, то вы можете войти в свой аккаунт. Только здесь разница в том, что ваш аккаунт гораздо сложнее взломать отмычкой.
Почему это надежнее двойной аутентификации?
Обычная двойная аутентификация работает так: вы вводите пароль от почты, вам по СМС приходит код подтверждения для входа в аккаунт. Получается, что если у злоумышленника нет вашего смартфона, то зайти под вашим логином он не сможет. Но на самом деле это не совсем так.
Почти у всех сервисов с такой функцией злоумышленник может перехватить ваш код от аккаунта из-за общей уязвимости, заключенной в системе SS7. Через нее любой человек может следить за вашим смартфоном — слушать разговоры и читать все сообщения. Операторы эту проблему не признают, хотя ей уже больше 30 лет.
Приложения-аутентификаторы, вроде Google Authentificator, в этом плане надежнее. Для вас каждые 30 секунд генерируется новый пароль — его знают только ваш смартфон и аккаунт в интернете. Но даже так хакеры могут до вас добраться, особенно если вы доверчивый.
Злоумышленник может получить доступ к этим кодам безопасности на этапе настройки приложения. Кроме того, вас могут обмануть и вы зайдете на фальшивый сайт Google, где сами выдадите все пароли хакерам.
Да кто будет пользоваться этими «флешками»?
Все сотрудники из Google этим пользуются и очень довольны. В начале 2017 года все работники корпорации перешли на этот способ аутентификации своих аккаунтов. Как итог — за этот год не произошло ни одной кражи личной информации.
Теперь в Google считают, что USB-токены — самый надежный способ защитить свой аккаунт. Вот так.
Все слишком хорошо! Какие подводные?
Да, подводные камни здесь есть. Пока полноценно эти токены поддерживаются только в двух браузерах — Google Chrome и Opera. В Firefox это реализовали через расширение, а в Edge обещают добавить позже. Разработчики Safari вообще об этой функции ничего не говорят.
И еще один недостаток связан со смартфонами. Чтобы войти в аккаунт на своем Айфоне, вам понадобится ключ с Bluetooth — он стоит немного дороже. Еще можно попробовать переходник, но мы этот способ не проверяли, так что может не сработать.
Это не страшно. Как начать пользоваться ключом?
В первую очередь — вам нужен тот самый USB-токен. Его можно купить в интернете — в России проще всего достать JaCarta U2F. Я купил такой за 1500 рублей.
Так выглядит USB-токен Jakarta U2F
Процедура настройки ключа практически везде одинакова, поэтому мы покажем настройку на примере аккаунта в Google.
1 — Войдите в настройки двойной аутентификации аккаунта. Нажмите на «Выберите другой способ» и выберите там электронный ключ:
2 — Подключать ключ к компьютеру сразу нельзя. Убедитесь, что он у вас в руке и жмите «Далее»:
3 — Вставьте ключ в USB-разъем и нажмите на нем кнопку:
Ключ загорится красным светом, а браузер попросит разрешения на доступ к устройству:
Маленькая черная штучка — кнопка. На нее нужно нажать после подключения ключа
4 — Ваш ключ зарегистрируется и вам нужно будет придумать ему имя:
5 — Готово! Теперь добавьте дополнительные способы входа в аккаунт — через приложение или СМС-код. Это нужно, если вы потеряете свой токен. Но я этого делать не буду.
А теперь небольшой челендж для читателей. Вот все данные аккаунта, на котором я установил свой USB-ключ:
Если вы сможете войти в этот аккаунт до 15 августа и оставить мне там послание, то я вам перечислю 5 тысяч рублей. Вперед, хакеры!
Использование механизмов криптографических токенов PKCS#11 на платформе Android
Подошло время задействовать криптографические механизмы PKCS#11 и на платформе Android. Кто-то может сказать, что нет аппаратных токенов для Android. Но, если это и так, то это только временное явление. Но уже сегодня можно поставить программный токен или использовать облачный токен. Поскольку утилита cryptoarmpkcs-A разрабатывается для платформы Android с использованием Androwish на скриптовом языке Tcl/Tk, то для подключения токенов используется пакет TclPKCS11 версии 1.0.1.
При этом никакой переработки пакета не потребовалось. Все что было сделано, это был добавлены в проект скрипт для сборки библиотеки пакета, написанной на языке Си, под Android и сам дистрибутив библиотеки. В этот же проект было решено добавить и библиотеки программного ls11sw2016 и облачного ls11cloud токенов для различных платформ.
Далее все просто. Добавляем на второе окно кнопки выбора рабочего токена и получаем:
По умолчанию подключается программный токен. Если ранее он не создавался, то будет предложено проинициализировать его. Напомним, что инициализация токена состоит в назначении метки и установлении пользовательского PIN-кода:
Отметим, что программный токен разработан с соответствии с рекомендациями PKCS#11 v.2.40 и ТК-26. Для получения полной информации о токене, включая поддерживаемые криптографические механизмы, достаточно нажать на кновку «О токене и его криптографии» в основном меню («Функционал»). Сегодня ни один аппаратный токен с поддержкой российской криптографии не имеет такого функционала:
Возникает вопрос:- как установить личный сертификат на токен. Есть два варианта. Первый вариант это импортировать сам сертификат и его ключевую пару через контейнер PKCS#12 (кнопка «Работаем с PKCS12/PFX»):
Второй вариант предполагает создания запроса (PKCS#10) на сертификат, Этот вариант (функция «Запрос на сертификат») предусматривает генерацию ключевой пары непосредственно на токене:
Теперь можно сохранить запрос на флэшки и вместе с документами идти в удостоверяюший центр за сертификатом. Если вы будете использовать сертификат в тестовых целях или внутрикорпоративно, то для выпуска сертификата можно воспользоваться и утилитой CAFL63. Полученный сертификат импортируется на токен на вкладке «Просмотр запроса/Сертификата»:
Теперь можно подписывать документы сертификатами, хранящимися на токене, используя вкладку «Подписать документ».
В следующей статье мы расскажем как подключиться к облачному токену. И остается пока открытым вопрос с переносом на мобильную платформу функций генерации сертификатов. Есть ли в этом необходимость?
Обновленную версию утилиты cryptoarmpkcs-A для платформы Android можно скачать здесь:
P.S. Сохранение журнала
Для сборки пакета используется утилита bones из состава AndroWish SDK. После успешной сборки пакета появляется кнопка «Install & run», после нажатия которой открывается окно журнала, в котором отображаются выходные данные adb logcat (средства ведения журнала Android Debug Bridge). Недостатком этого экрана является то, что в нем сложно найти сообщение об ошибке, особенно с включенным флажком «V» (verbose). Поэтому была добавлена кнопка «Save», которая сохраняет журнал в файле /tmp/logBone.txt (речь идет о Linux):
С появлением этой кнопки процесс отладки приложения значительно упростился.
Для добавления кнопки достаточно добавить в файл bones после строки 2591 следущий код:
Команда сохранения adb_logcat_save имеет вид:
На данный момент насчитывается свыше 8,5 тысяч разных криптовалют и токенов. Однако много людей не знает, в чем их отличие. Попробуем сегодня разобраться, что такое токены, сколько они стоят и чем же они отличаются от таких криптовалют, как Bitcoin и Ethereum.
реклама
Вообще, токены – это общепринятый термин, который частую используют как общее название всех криптовалют. Однако токены значительно отличаются от Bitcoin и альткоинов.
Про токены простым языком
Токены являются цифровыми виртуальными единицами, выпускающимися кем-либо. Стоимость определяют их создатели. Они действуют на основе технологии blockchain. Так как криптовалюты тоже основаны на этой технологии, то именно это многих и сбивает с толку.
Кем могут быть выпущены токены? Токены выпускаются определенными лицами, в их ценности вкладываются товары, различные услуги, акции предприятий, какие-либо действия и др. Названия же могут быть любыми. У такого процесса есть свое название – токенизация, то есть каждый актив в виде токенов. Можно токенизировать ценные бумаги, акции предприятий, различную продукцию, консультации и т.д. Токены находятся в электронных кошельках своих создателей. Они передаются на условиях, поставленных их создателями.
Зачем они нужны?
реклама
Если говорить попроще, главное предназначение токена –бартер неких ценностей, реализация которого в реальности осложнена расстоянием между сторонами сделок, размерами тех самых ценностей, участвующих в сделках.
Часто токены могут быть источником заработка. Для этого вам нужно знать, какие активы могут увеличить свою стоимость. Чтобы дать ответ на данный вопрос, важно понимать, почему стоимость предлагаемых продуктов или услуг может увеличиться в будущем. Это могут быть или дефицитные активы, или активы, которые будут расти самостоятельно.
Это заложено во всех ICO. Первоначально, когда его дальнейшая судьба неизвестна, ICO предлагает купить токены по низкой цене в качестве инвестора в конкретный проект, описывая, как он может принести прибыль в будущем. Если проект будет развиваться, цена токенов увеличится, если они связаны с активами проекта или применяются в бизнесе.
реклама
Большое количество токенов создано на основе blockchain Ethereum, что в один момент подтолкнуло к росту Эфира.
Виды токенов
Токены можно разделить на 3 основные группы:
Utility tokens. Тут как пример можно привести начисление каких-либо баллов за совершение определенных действий, которые начисляются в играх.
реклама
Utility tokens – это токены на основе товаров или услуг.
Третий тип токенов наиболее обеспеченный, так как компании, которые предоставляют товары и услуги, или же отдельные лица, выступают гарантом совершения сделок. В данном случае один или несколько товаров (услуг) равняются одному токену.
То есть, токены, простыми словами представляют собой валюту в закрытой экосистеме, использующуюся для покупок товаров и услуг, выступают как вознаграждение за определенные действия.
Токены предназначены для упрощения и удобности проведения транзакций между сторонами, а также для ускорения процесса транзакции при помощи технологии blockchain. Это альтернативный способ инвестиции в акции.
Отличие токенов от монет
Токены отличаются от монет тем, как они выпускаются. Если монеты децентрализованы, они выпускаются разными компьютерами, то выпуском токенов занимается руководство одной или нескольких организаций, или же какое-либо конкретное лицо. Бывают и исключения, но чаще всего все транзакции, связанные с токенами, полностью подконтрольны, поскольку транзакции часто порождают обязательства.
Вторым существенным отличием является их стоимость, а именно факторы, которые ее определяют. Допустим, если стоимость Bitcoin напрямую зависит от спроса и предложения, то стоимость токена определяется, вложенным в него активом.
Bitcoin и альткоины функционируют на основе собственных blockchain, токены же функционируют на основе blockchain других криптовалют. Это дает пользователям даже с минимальными знаниями в этой сфере возможность создания своих токенов.
Если говорить проще, то у токенов более широкий спектр применения, нежели у криптовалют. Но у токенов меньший масштаб использования.
Покупка токенов и их хранение
Покупка и хранение токенов схожи с покупкой и хранением криптовалюты. Покупка осуществляется с помощью бирж, обменников или же напрямую у продавцов.
Хранение токенов осуществляется с помощью специальных электронных кошельков, на которых происходит хранение и обработка ключей, а формирование транзакций.
Но тут никак без рисков и проблем, связанных с:
Из-за чего так много токенов
В связи с тем, что токены являются цифровыми активами, основанными на blockchain каких-либо криптовалют, их намного легче создать. Помимо этого, этот метод удобен, поскольку он намного безопаснее, устраняет посредников в сделке, а также ускоряет процесс торговли.
С помощью существующих проверенных алгоритмов вы можете создавать токены и проводить ICO. В Интернете есть много конструкторов. Вы всего лишь нужно выбрать наиболее подходящий для вас конструктор, после чего перейти к созданию смарт-контракта.
Смарт-контракты представляют собой набор определенных функций, осуществляющихся внутри структуры: владение токенами, их передачи, пополнения балансов и др.
Их выпуск стандартизирован, что снижает риск потери денежных средств в случае возникновения ошибок смарт-контрактов. При выпуске выбираются наименование, символ, их количество. После всего этого информация добавляется в сеть.
Вывод
Существует большое количество ситуаций, где можно использовать токены. С помощью этих активов пользователям доступна покупка токенизированных акций, предметов искусства и др. Надеюсь, теперь вам стало хоть чуточку понятнее суть токенов, их предназначение.
Токен (авторизации)
Из Википедии — свободной энциклопедии
Токен (также аппаратный токен, USB-ключ, криптографический токен) — компактное устройство, предназначенное для обеспечения информационной безопасности пользователя, также используется для идентификации его владельца, безопасного удалённого доступа к информационным ресурсам и т. д. Как правило, это физическое устройство, используемое для упрощения аутентификации. Также этот термин может относиться и к программным токенам, которые выдаются пользователю после успешной авторизации и являются ключом для доступа к службам. Часто используется для несанкционированного доступа к аккаунту злоумышленниками.
Токены предназначены для электронного удостоверения личности (например, клиента, получающего доступ к банковскому счёту), при этом они могут использоваться как вместо пароля, так и вместе с ним. В некотором смысле токен — это электронный ключ для доступа к чему-либо.
Обычно аппаратные токены обладают небольшими размерами, что позволяет носить их в кармане или кошельке, часто они оформлены в виде брелоков. Некоторые предназначены для хранения криптографических ключей, таких как электронная подпись или биометрические данные (например, детали дактилоскопического узора). В одни встроена защита от взлома, в другие — мини-клавиатура для ввода PIN-кода или же просто кнопка вызова процедуры генерации и дисплей для вывода сгенерированного ключа. Токены обладают разъёмом USB, функциями RFID или беспроводным интерфейсом Bluetooth для передачи сгенерированной последовательности ключей на клиентскую систему.