Автор: Гурин А.Г., Чернышова А. В.
Источник: Информатика, управляющие системы, математическое и компьютерное моделирование (ИУСМКМ-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 изображена схема базы данных серверной части приложения.
Программная система написана на языке программирования C#.
Модуль сетевого взаимодействия осуществляет обмен сообщениями между клиентом и сервером, а также управляет процессом подключения новых клиентов к серверу. Модуль осуществляет управление состоянием соединения.
Первым этапом работы с программным продуктом является запуск серверного модуля.
Вторым этапом работы с программным продуктом является внедрение модуля в требуемый программный продукт для обеспечения процесса аутентификации с использованием USB-токена.
Далее необходимо открыть приложение для создания токена и создать его.
Ниже на рисунках 3 и 4 приведены схемы работы программы во время регистрации и во время авторизации, соответственно.
Выполнен анализ проблемы разработки программных систем, предоставляющих возможности создания и работы с USB-токеном. Проанализированы преимущества и недостатки существующих на рынке программных систем. Проведен анализ предметной области, описаны некоторые алгоритмы работы программных модулей, приведена схема данных базы данных системы.