Назад в библиотеку

Программное обеспечение для создания USB-TOKEN'а

Автор: Гурин А.Г., Чернышова А. В.
Источник: Информатика, управляющие системы, математическое и компьютерное моделирование (ИУСМКМ-2018) / Материалы студенческой секции IX Международной научно-технической конференции 22-24 мая 2018 г. - Донецк, Том 1, с. 108-111

Аннотация

Гурин А.Г., Чернышова А. В. Программное обеспечение для создания USB-Token'а. Статья обосновывает необходимость проектирования и разработки программной системы, реализующей инструменты для создания и работы с USB-токеном.

Общая постановка проблемы

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

USB-токен - компактное устройство, предназначенное для обеспечения информационной безопасности пользователя, также используется для идентификации его владельца, безопасного удалённого доступа к информационным ресурсам и т.д. Как правило, это физическое устройство, используемое для упрощения аутентификации. Токены предназначены для электронного удостоверения личности (например, клиента, получающего доступ к банковскому счёту), при этом они могут использоваться как вместо пароля, так и вместе с ним [1].

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

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

Анализ существующих решений

Существуют аппаратно-программные решения, которые реализуют механизм USB-токена. Ниже приведены примеры некоторых решений:

«FIDO U2F Security Key» - работает по технологии FIDO U2F. В 2013 году в Кремниевой Долине был организован FIDO (Fast IDentity Online) альянс для того, чтобы адресовать проблемы легкой и безопасной аутентификации в интернете. На данный момент FIDO имеет более трёхсот ассоциативных членов и тридцать членов правления. В список членов правления входят такие компании как Google, Yubico, Microsoft, Visa, Mastercard, American Express, Paypal и другие. Основные цели, которые FIDO ставит перед собой, это простые в использовании, безопасные, приватные и стандартизированные решения. На данный момент FIDO представили два стандарта: U2F (Universal Second Factor) — универсальный второй фактор, UAF (Universal Authentication Framework) — универсальный аутентификационный фреймворк для биометрической аутентификации [2].

PIVKey сочетает в себе преимущества стандарта PIV-карты с преимуществами мини- драйвера Windows Smart Card. Стандарт карточки PIV (Personal Identity Verification) правительства США широко поддерживается приложениями и операционными системами для цифровых сертификатов. Windows поддерживает карты PIV изначально, с драйвером in-box. VMWare также поддерживает PIV-карты в своей виртуальной инфраструктуре. Однако выдача и управление PIV-совместимой картой требовала сложных частных решений. PIVKey позволяет компаниям выпускать совместимые с PIV карты без этих сложных проприетарных систем [3].

Рутокен — торговая марка программных и аппаратных продуктов в области защиты информации российского производства (производитель: компания «Актив»). Смарт-карты и токены Рутокен предназначены для использования ключа электронной подписи и ключа проверки электронной подписи. Разработаны на базе криптографических алгоритмов электронной подписи, а также имеют сертификацию ФСБ и ФСТЭК России. Все смарт-карты и токены Рутокен могут дополняться RFID-метками [4].

eToken — торговая марка для линейки персональных средств аутентификации в виде USB-ключей и смарткарт, а также программные решения с их использованием. Торговая марка была создана израильской компанией Aladdin Knowledge Systems, в последствии приобретённой SafeNet. В дальнейшем SafeNet объединился с компанией Gemalto. На сегодняшний день компания Gemalto является официальным производителем ключей семейства eToken. Эксклюзивный дистрибьютор ключей eToken - компания ЗАО "СИС"(TESSIS) [5].

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

Постановка задачи

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

Проектирование программной системы

Программная система состоит из трех компонентов: утилиты для создания токена, клиентской и серверной части. Серверная часть системы функционирует на компьютере под управлением операционной системы Windows 7 или новее. Клиентская часть является модулем и может быть встроена в программный продукт, написанный на языке C#. На рисунке 1 представлена экранная форма приложения для создания USB-токена. Серверная часть содержит базу данных, в качестве СУБД выбрана СУБД MySQL. На рисунке 2 изображена схема базы данных серверной части приложения.

Рисунок 1 – Форма приложения для создания USB-токена

Рисунок 1 – Форма приложения для создания USB-токена

Рисунок 2 – Схема базы данных серверной части ПО

Рисунок 2 – Схема базы данных серверной части ПО

Программная система написана на языке программирования C#.

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

Первым этапом работы с программным продуктом является запуск серверного модуля.

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

Далее необходимо открыть приложение для создания токена и создать его.

Ниже на рисунках 3 и 4 приведены схемы работы программы во время регистрации и во время авторизации, соответственно.

Рисунок 3 –Регистрации клиента

Рисунок 3 –Регистрации клиента

Рисунок 4 –Авторизации клиента

Рисунок 4 –Авторизации клиента

Выводы

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

Список использованной литературы

  1. Википедия – Токен (авторизация) [Электронный ресурс]: офиц. сайт – Электрон. дан. – Режим доступа: https://ru.wikipedia.org/wiki/Токен_(авторизация). - Загл. с экрана
  2. Хабр - FIDO U2F—Универсальная Двухфакторная Аутентификация. Введение[Электронный ресурс]: – Электрон. дан. – Режим доступа: https://habr.com/post/305508/. - Загл. с экрана
  3. About PIVKey - Taglio PIVKey [Электронный ресурс]: офиц. сайт – Электрон. дан. – Режим доступа: https://pivkey.zendesk.com/hc/en-us/articles/203125909-About-PIVKey/. - Загл. с экрана
  4. Википедия – Рутокен [Электронный ресурс]: – Электрон. дан. – Режим доступа: https://ru.wikipedia.org/wiki/Рутокен/. - Загл. с экрана
  5. Википедия – eToken [Электронный ресурс]: – Электрон. дан. – Режим доступа: https://ru.wikipedia.org/wiki/EToken/. - Загл. с экрана