СПОСОБ И СИСТЕМА ПОВЕДЕНЧЕСКОГО ПРОФИЛИРОВАНИЯ ПОЛЬЗОВАТЕЛЯ НА ОСНОВАНИИ АНАЛИЗА СИГНАЛОВ СЕНСОРОВ МОБИЛЬНОГО УСТРОЙСТВА Российский патент 2024 года по МПК G06F21/31 

Описание патента на изобретение RU2825109C1

ОБЛАСТЬ ТЕХНИКИ

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

УРОВЕНЬ ТЕХНИКИ

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

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

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

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

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

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

Так, в частности, известен подход, обобщенно называемый "клавиатурный почерк"; в рамках его выявляют статистические закономерности времени нажатия и отпускания пользователем клавиш компьютерной клавиатуры. В частности, подобный способ описан в патенте RU2801673 (ООО "Группа АйБи"), «СПОСОБ И СИСТЕМА ИДЕНТИФИКАЦИИ ПОЛЬЗОВАТЕЛЯ ПО КЛАВИАТУРНОМУ ПОЧЕРКУ», опубликованном 03.09.2020. В соответствии с данным способом, регистрируют учетные данные пользователя в системе и присваивают идентификатор пользователю; обучают классификатор идентифицировать пользователя, при этом во время обучения учетные данные вводятся в систему с клавиатуры заданное количество раз и измеряют временные интервалы нажатий клавиш; при каждом вводе на основе измеренных временных интервалов формируют набор данных пользователя, которому присваивают идентификатор, ассоциированный с соответствующим пользователем; сохраняют сформированные наборы данных в базе данных; выбирают из базы данных с помощью алгоритма отбора наиболее устойчивые признаки; обучают классификатор идентифицировать пользователя при вводе учетных данных в систему на основе отобранных наиболее устойчивых признаков; применяют обученный классификатор для последующего подтверждения идентичности пользователя, вводящего учетные данные при входе в систему, тому пользователю, на наборах данных которого был обучен классификатор. Способ описан применительно к настольному компьютеру, имеющему отдельную клавиатуру, но может быть адаптирован и к мобильному устройству, снабженному экранной клавиатурой.

Также известен подход, в рамках которого профиль пользователя строят, опираясь на типичную для данного пользователя последовательность открываемых окон пользовательского интерфейса. В качестве примера подобного решения может быть приведен патент RU2801674 (ООО "Группа АйБи"), «СПОСОБ И СИСТЕМА ИДЕНТИФИКАЦИИ ПОЛЬЗОВАТЕЛЯ ПО ПОСЛЕДОВАТЕЛЬНОСТИ ОТКРЫВАЕМЫХ ОКОН ПОЛЬЗОВАТЕЛЬСКОГО ИНТЕРФЕЙСА», опубликованный 15.10.2020. В этом решении сохраняют идентификатор окна, которое в данный момент открыто пользователем, и время открытия данного окна; при каждом переходе к новому окну пользовательского интерфейса сохраняют идентификатор этого окна и время, когда оно было открыто; накапливают заранее заданное количество сеансов работы данного пользователя; анализируют накопленные данные, выявляя повторяющиеся последовательности посещаемых окон пользовательского интерфейса (паттерны); для каждого выявленного паттерна вычисляют набор параметров, характеризующих время, проходящее между переходами данного пользователя от окна к окну интерфейса; сохраняют заданное количество паттернов данного пользователя и на основе вычисленных для каждого паттерна набора параметров обучают по меньшей мере один классификатор идентифицировать данного пользователя по последовательности посещаемых страниц; применяют обученный классификатор для последующего подтверждения идентичности пользователя, во время сеансов работы которого был обучен классификатор. Способ описан применительно к настольному компьютеру, но может быть адаптирован и к мобильному устройству.

Известен также подход к поведенческому профилированию, обобщенно называемый "курсорным почерком". В соответствии с ним, профиль пользователя строят, анализируя траекторию движения курсора компьютерной мыши либо траектории жестов, совершаемых пальцами пользователя на сенсорном экране мобильного устройства. В качестве иллюстрации подобного подхода может послужить патент RU2792586 (ООО "Группа АйБи"), «СПОСОБ И СИСТЕМА ИДЕНТИФИКАЦИИ ПОЛЬЗОВАТЕЛЯ ПО ТРАЕКТОРИИ ДВИЖЕНИЯ КУРСОРА», опубликованный 24.09.2020. В этом решении регистрируют учетные данные пользователя в системе, присваивают соответствующий учетным данным идентификатор пользователя, на протяжении всего сеанса работы идентифицированного пользователя анализируют траекторию движения курсора мыши, для каждого положения курсора мыши фиксируют вертикальную и горизонтальную координаты курсора мыши и отметку времени, сохраняют последовательность координат курсора мыши и соответствующих им отметок времени, анализируют записанную последовательность для поиска точек разбиения траектории движения курсора мыши на фрагменты, формируют список фрагментов траектории курсора во время сеанса работы данного пользователя, вычисляют для каждого фрагмента траектории курсора набор заранее определенных признаков и сохраняют вычисленные признаки в базе данных, применяют обученный по меньшей мере один классификатор для последующего подтверждения идентичности пользователя. Способ описан применительно к настольному компьютеру, имеющему отдельный манипулятор "мышь", но может быть адаптирован и к мобильному устройству с сенсорным экраном.

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

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

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

Так, в частности, статья "Performance Analysis of Motion-Sensor Behavior for User Authentication on Smartphones" (Chao Shen et. al, School of Electronic and Information Engineering, Xi'an Jiaotong University), увидевшая свет 09.03.2016, исследует возможность и применимость использования данных о поведении датчиков движения для аутентификации пользователей на смартфонах. Для каждого образца пароля анализируют данные датчиков для извлечения описательных и интенсивных функций для точной и детальной характеристики действий пользователей по вводу пароля. Одноклассовые методы обучения применяются к пространству функций для выполнения аутентификации пользователей. Анализ проводится с использованием данных 48 участников с 129 621 образцом паролей в различных сценариях использования и на различных типах смартфонов. Описаны эксперименты по удобству использования рассмотренного подхода при различной длине пароля, чувствительности к размеру обучающей выборки, масштабируемости по количеству пользователей и гибкости по отношению к размеру экрана.

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

Известна также статья "A Framework for Continuous Authentication Based on Touch Dynamics Biometrics for Mobile Banking Applications" (Priscila Morais Argolo Bonfim Estrela et. al, Cybersecurity INCT Unit 6, Decision Technologies Laboratory-LATITUDE, Electrical Engineering Department, Technology College, University of Brasilia), опубликованная 19.06.2021. В этом документе предлагается усовершенствование Biotouch, это основанный на технологиях машинного обучения фреймворк для непрерывной аутентификации пользователей. Основной вклад статьи заключается в предложении использовать несколько итераций сбора данных датчиков для создания более устойчивых поведенческих профилей и формирования соответствующих наборов данных для улучшенной структуры фреймворка Biotouch.

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

Кроме того, из уровня техники известен патент US11184766 В1 (Christopher Charles Lord et al., Locurity Inc), «Systems and methods for continuous authentication, identity assurance and access control», опубликованный 23.11.2021. В данном патенте раскрыта система внешней аутентификации, настроенная на использование поведенческого анализа и сведений о внешней среде, например, на основе мобильного устройства пользователя, чтобы достоверно идентифицировать пользователя и прозрачно аутентифицировать этого пользователя. Факторы окружающей среды могут включать в себя радиосигналы, такие как Wi-Fi, Bluetooth, GPS, информацию о компьютерной сети, включая информацию о сетевых устройствах и сотовой связи, а также показатели окружающей среды, такие как давление, влажность, гравитация, звук и свет.

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

Помимо вышеперечисленных, в уровне техники известен документ US20200045044A1 (Avi Turgeman, BioCatch Ltd), «Device, system, and method of user authentication based on user-specific characteristics of task performance)), опубликованный 06.02.2020. Этот документ описывает устройства, системы и методы определения личности пользователя, аутентификации пользователя в компьютеризированной службе или электронном устройстве, различения пользователей компьютеризированной службы и обнаружения возможных злоумышленников или возможных мошеннических транзакций. Способ включает в себя: создание сеанса аутентификации пользователя, который требует от пользователя ввода секрета путем выполнения задачи; мониторинг взаимодействия пользователей во время выполнения задач; извлечение специфичных для пользователя поведенческих характеристик и использование их в качестве фактора аутентификации пользователя. Задача требует от пользователя выполнения операций на экране с помощью сенсорного экрана или сенсорной панели, мыши или другого устройства ввода электронного устройства, а также перемещения в пространстве или наклона в пространстве всего электронного устройства таким образом, чтобы вызвать ввод данных секретного элемента данных.

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

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

РАСКРЫТИЕ (СУЩНОСТЬ) ТЕХНОЛОГИИ

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

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

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

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

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

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

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

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

В еще одном возможном варианте реализации описанного способа на основании сохраненных первичных данных вычисляют следующие вторичные данные: минимальное значение за весь цикл получения первичных данных (min), которое принимает величина, возвращаемая данным датчиком, минимальное значение за весь цикл получения первичных данных (amp.min), которое принимает амплитуда показаний данного датчика, минимальное значение, которое принимает величина, возвращаемая данным датчиком за время перед событием синхронизации (minS), минимальное значение, которое принимает величина, возвращаемая данным датчиком за время после события синхронизации (minF), максимальное значение, которое принимает величина, возвращаемая данным датчиком за время перед событием синхронизации (maxS), максимальное значение, которое принимает амплитуда показаний данного датчика за время перед событием синхронизации (amp.maxS), максимальное значение, которое принимает величина, возвращаемая данным датчиком за время события синхронизации (maxA), максимальное значение, которое принимает амплитуда показаний данного датчика за время события синхронизации (amp.maxA), максимальное значение, которое принимает величина, возвращаемая данным датчиком за время после события синхронизации (maxF), максимальное значение, которое принимает амплитуда показаний данного датчика за время после события синхронизации (amp.maxF), дисперсия величины, возвращаемой данным датчиком, вычисленная за весь цикл получения первичных данных (var), дисперсия амплитуды показаний данного датчика за весь цикл получения первичных данных (amp.var), среднеквадратичное отклонение величины, возвращаемой данным датчиком, вычисленное за весь цикл получения первичных данных (std), среднеквадратичное отклонение амплитуды показаний данного датчика за весь цикл получения первичных данных (amp.std), среднее арифметическое значение величины, возвращаемой данным датчиком, вычисленное за весь цикл получения первичных данных (mean), среднее арифметическое значение амплитуды показаний данного датчика за весь цикл получения первичных данных (amp.mean), медиана величины, возвращаемой данным датчиком, вычисленная за весь цикл получения первичных данных (median), медиана амплитуды показаний данного датчика за весь цикл получения первичных данных (amp.median), отношение максимальных значений maxS к maxA, отношение максимальных значений amp.maxS к amp.maxA, отношение максимальных значений maxF к maxA, отношение максимальных значений amp.maxF к amp.maxA, показатель колебаний устройства перед событием синхронизации (diffS), показатель колебаний устройства после события синхронизации (diffF), показатель разницы колебаний устройства перед событием синхронизации и после него (ratioSF).

В еще одном возможном варианте реализации описанного способа вторичные данные кластеризуют на основании значений среднего арифметического (mean).

В еще одном возможном варианте реализации описанного способа вторичные данные кластеризуют на основании значений медианы (median).

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

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

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

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

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

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

КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ

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

Заявленная технология поясняется следующими чертежами, на которых:

Фиг. 1 иллюстрирует блок-схему алгоритма построения поведенческого профиля пользователя в соответствии с описываемым способом.

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

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

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

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

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

Фиг. 6 иллюстрирует неограничивающий пример общей схемы вычислительного устройства.

ОСУЩЕСТВЛЕНИЕ

Ниже будет приведено описание примерных вариантов осуществления заявленного решения.

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

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

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

Алгоритм построения поведенческого профиля 100, как это будет показано ниже применительно к Фиг. 1 и Фиг. 2, начинается с того момента, когда пользователь установил на мобильном устройстве, таком как планшет 210, смартфон 220, нетбук 230, например, сенсорный планшет с подключенной клавиатурой, или другом подобном устройстве, выполненном с возможностью беспроводной связи по вычислительной сети 250 с сервером 270, интересующее его клиент-серверное приложение, например, такое как приложение ДБО (на Фиг. 2 приложение условно не показано).

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

На сервере 270, реализующем основную функциональность системы ДБО, получают введенные пользователем учетные данные и какой-либо идентификатор мобильного устройства 210…230, с которого эти учетные данные получены, например, IMEI. При помощи этого идентификатора определяют, строя запросы 112 и 115 к имеющейся на сервере 270 базе данных 275, существует ли уже поведенческий профиль данного пользователя и известны ли другие, имевшие место ранее сессии с данного мобильного устройства.

Возможна также альтернативная реализация описываемого способа, при которой на сервере 270 при помощи полученного идентификатора мобильного устройства определяют, строя запросы 112 и 115 к внешней, например, расположенной в "облачном" хранилище базе данных 280, существует ли уже поведенческий профиль данного пользователя и известны ли другие, имевшие место ранее сессии с данного мобильного устройства.

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

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

Однако, в рассматриваемом случае с первой сессией при любом варианте реализации способа в ответ по запросу 115 определят, что таких сессий ранее не было, данное мобильное устройство не относится к известным. В ответ на это способ переходит к шагу 120, на котором с сервера 270 передают на мобильное устройство 210…230 инструкции, которые при их исполнении на мобильном устройстве приводят к выполнению устройством следующих шагов:

На шаге 130 средствами операционной системы мобильного устройства, такого, как устройства 210…230, получают список установленных и доступных на данном устройстве датчиков, например, такой:

• Акселерометр (accelerometer),

• Гироскоп (gyro),

• Датчик гравитации (gravity sensor),

• Датчик приближения (proximity sensor),

• Датчик освещенности (light sensor),

• Датчик шага (step detector)

• Шагомер (step counter).

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

В ответ на отсутствие в перечне по меньшей мере одного подходящего для профилирования датчика шаг 130 и способ 100 останавливаются, поведенческий профиль не создается, поскольку отсутствие в перечне по меньшей мере одного подходящего для профилирования датчика означает, что данное устройство физически непригодно для профилирования описываемым способом. Данная альтернатива и соответствующий ей шаг останова способа 100 на Фиг. 1 для упрощения восприятия чертежа не показаны.

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

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

Возвращаясь к шагу 130, в ответ на наличие в перечне по меньшей мере одного подходящего для профилирования датчика, а именно по меньшей мере одного из следующих:

• Акселерометр,

• Гироскоп,

• Датчик гравитации,

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

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

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

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

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

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

С целью синхронизации 300 в памяти мобильного устройства 310, такого, например, как смартфон 220, для каждого канала (X, Y, Z) каждого опрашиваемого датчика, такого, как датчик 320, предварительно создают три области памяти: стартовый стек 312, стек действия 314 и финальный стек 316. На Фиг. 3 для простоты восприятия показана описанная структура памяти для какого-то одного канала, например, для канала данных по оси X, какого-то одного датчика, например гироскопа. Для остальных каналов и остальных датчиков стеки организуют и используют совершенно аналогично.

Стартовый стек 312 организован по принципу "очереди", FIFO, с вытеснением, его длина выбирается заранее, например, равной 50 значениям (или какому-то другому количеству, для целей иллюстрации способа будем использовать значение 50).

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

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

До тех пор, пока не наступило событие синхронизации 302 (например, пользователь 399 не коснулся сенсорного экрана мобильного устройства 220), идет опрос датчика 320 и заполнение возвращенными им значениями стартового стека 312. Тот факт, что в текущий момент 301 событие синхронизации 302 еще не наступило, определяют по состоянию флага 330 нажатия на сенсорный экран. В текущий момент 301 нажатия на сенсорный экран еще не было и флаг 330 сброшен, т.е. имеет значение 0.

Как упоминалось выше, стартовый стек 312 организован с вытеснением, так что специалисту в предметной области будет очевидно, что после поступления каждого очередного по счету значения, порядковый номер которого превышает длину стартового стека, например, 51-го значения, все содержимое стартового стека сместится от его конца к началу на один шаг: вместо 1-го значения будет записано 2-е, вместо 2-го будет записано 3-е, и так далее, притом вместо 49-го значения будет записано 50-е, а на место 50-го значения будет записано поступившее 51-е значение.

Описанный процесс продолжается итеративно до тех пор, пока не наступило событие синхронизации 302, скажем, пока пользователь 399 не коснулся сенсорного экрана мобильного устройства 220. Факт нажатия на экран в данном примере определяют по сигналу датчика нажатия на экран (на Фиг. 3 условно не показан), который в этот момент взводит флаг 330 нажатия на сенсорный экран. В этот момент 302 содержимое стартового стека 312 "замораживают" и запись всех последующих поступающих от датчика 320 значений ведут в стек действия 314. В "замороженном" стартовом стеке при этом продолжают храниться последние 50 значений, поступившие от датчика 320 за промежуток времени, непосредственно предшествующий наступлению события синхронизации (т.е. нажатию на экран).

Запись в стек действия 314 значений, поступающих от датчика 320, ведут до тех пор, пока продолжается событие синхронизации (например, пока пользователь 399 не прекратит нажатие на экран мобильного устройства 220). Тот факт, что нажатие на экран прекращено, в данном примере также определяют по сигналу датчика нажатия на экран, который при прекращении нажатия на экран сбросит (установит в ноль) флаг 330 нажатия на сенсорный экран.

Как только событие синхронизации завершилось (момент времени 303), содержимое стека действия 314 также "замораживают", а запись всех последующих поступающих от датчика 320 значений ведут в финальный стек 316.

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

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

Этот момент, со ссылкой на Фиг. 1, соответствует завершению шага 145 и переходу способа к шагу 150.

На шаге 150 все значения, хранящиеся в стартовом стеке 312, стеке действия 314 и финальном стеке 316 копируют в заблаговременно организованную область оперативной памяти 310 мобильного устройства 220 (эта область на Фиг. 3 для простоты не показана).

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

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

В части, касающейся организации памяти и получения первичных данных, эта альтернативная реализация полностью аналогична описанной выше. Различие заключается только в том, что началом события синхронизации, то есть сигналом, по которому "замораживается" стартовый стек 312 и начинается запись в стек действия 314, в этой альтернативной реализации является открытие пользователем определенного окна или вкладки в пользовательском интерфейсе приложения. Например, "замораживание" стартового стека 312 и запись в стек действия 314 могут выполнять при переходе пользователя на вкладку (в окно) "Мои счета" или, например, "История платежей".

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

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

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

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

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

В любом случае, вне зависимости от реализации описываемого способа, в результате опроса датчиков и сбора первичных данных настает момент, когда в оперативной памяти мобильного устройства 310 для каждого канала (X, Y, Z) каждого опрашиваемого датчика оказываются сохранены полученные векторы первичных данных, причем каждый такой вектор состоит из трех фрагментов: стартового фрагмента, фрагмента действия и финального фрагмента. Значения, хранящиеся в каждом таком фрагменте, скопированы из стартового стека 312, стека действия 314 и финального стека 316 соответственно.

Момент, когда векторы первичных данных сохранены, соответствует, применительно, к Фиг. 1, завершению шага 150.

После этого способ переходит к шагу 160, на котором вычисляют вторичные данные на основании полученных первичных данных.

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

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

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

Гироскоп (GY) возвращает значение углового ускорения по каждой из осей X, Y, Z. В данном примере поведенческого профилирования эти значения используются для определения того, насколько резко пользователь имеет обыкновение поворачивать мобильное устройство в пространстве во время сеанса работы с приложением ДБО.

Датчик гравитации (GS) возвращает значение проекции вектора тяготения на каждую из осей X, Y, Z. В данном примере поведенческого профилирования эти значения используются для определения ориентации мобильного устройства в пространстве. Например, если в некий момент времени датчик вернул по оси Y значение 9.8 (численно равно модулю вектора земного тяготения, а это значит, что направления оси Y и вектора земного тяготения в этот момент совпадают), а по осям X и Z датчик вернул значение 0 (как X, так и Z перпендикулярны направлению вектора земного тяготения), то это значит, что в данный момент устройство расположено строго вертикально: экран его перпендикулярен земной поверхности, а короткие стороны корпуса расположены горизонтально, параллельно поверхности земли.

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

Акселерометр (АС) возвращает ускорение устройства по каждой из осей X, Y, Z. В данном примере поведенческого профилирования эти значения используются для определения того, насколько быстро и насколько далеко пользователь имеет обыкновение линейно перемещать мобильное устройство в пространстве. Например, придвигать его к себе по столу или отодвигать, совершать какие-то жесты рукой, держащей устройство и т.д.

В рамках рассматриваемого примера для каждого датчика будут получены следующие векторы первичных данных. Через AC, GY и GS обозначены акселерометр, гироскоп и датчик гравитации соответственно. Индексы х, y, z соответствуют осям координат, которые будут описаны ниже со ссылкой на Фиг. 4А-Б, индексы s, а и f-стартовому (start) фрагменту, фрагменту действия (action) и финальному (final) фрагменту вектора первичных данных. Стартовый (полученный непосредственно перед касанием сенсорного экрана) и финальный (полученный непосредственно после окончания прикосновения к сенсорному экрану) фрагмент содержат в данном примере по 50 значений, фрагмент действия (полученный на протяжении всего прикосновения к сенсорному экрану) - некоторое много большее количество значений N:

В рамках вычисления вторичных данных могут быть вычислены:

• вектор амплитуд, которые принимает каждое из показаний акселерометра и гироскопа в трехмерном пространстве:

Несложно видеть, что математически величина, названная в (2) амплитудой, представляет собой модуль вектора, соединяющего точку начала координат (х=0, у=0, z=0) и точку пространства, которой соответствуют текущие показания датчика для каждой из осей (например, ACxi, ACyi, ACzi). Амплитудой эта величина в рамках настоящего описания называется потому, что она характеризует амплитуду (размах) физического перемещения или поворота мобильного устройства, имевшую место в момент получения данных показаний датчика.

• минимальное значение, которое принимает величина, возвращаемая акселерометром, гироскопом и датчиком гравитации в рамках вектора (1), а также амплитуда показаний акселерометра и гироскопа (2):

• максимальное значение, которое принимает величина, возвращаемая акселерометром, гироскопом и датчиком гравитации в рамках стартового фрагмента вектора (1), а также амплитуда показаний акселерометра и гироскопа (2) на том же фрагменте:

• максимальное значение, которое принимает величина, возвращаемая акселерометром, гироскопом и датчиком гравитации в рамках фрагмента действия вектора (1), а также амплитуда показаний акселерометра и гироскопа (2) на том же фрагменте:

• максимальное значение, которое принимает величина, возвращаемая акселерометром, гироскопом и датчиком гравитации в рамках финального фрагмента вектора (1), а также амплитуда показаний акселерометра и гироскопа (2) на том же фрагменте:

• дисперсия величины, возвращаемой акселерометром, гироскопом и датчиком гравитации в рамках всего вектора (1), а также амплитуды показаний акселерометра и гироскопа (2):

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

• среднеквадратичное отклонение величины, возвращаемой акселерометром, гироскопом и датчиком гравитации в рамках всего вектора (1), а также амплитуды показаний акселерометра и гироскопа:

• среднее арифметическое значение величины, возвращаемой акселерометром, гироскопом и датчиком гравитации в рамках вектора (1), а также амплитуды показаний акселерометра и гироскопа (2):

• медиана величины, возвращаемой акселерометром, гироскопом и датчиком гравитации в рамках вектора (1), а также амплитуды показаний акселерометра и гироскопа (2):

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

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

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

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

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

Кроме того, для векторов, построенных из величин, возвращенных датчиком гравитации, могут быть вычислены:

• минимальное значение, которое принимает величина, возвращаемая данным датчиком, в рамках стартового фрагмента данного вектора:

• минимальное значение, которое принимает величина, возвращаемая данным датчиком, в рамках финального фрагмента данного вектора:

• показатель колебаний устройства перед касанием сенсорного экрана:

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

• показатель колебаний устройства после отпускания сенсорного экрана:

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

• показатель разницы колебаний устройства перед касанием сенсорного экрана и после него:

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

Таким образом, в результате описанных вычислений получают следующий вектор V вторичных данных:

Полученный вектор вторичных данных V отправляют на сервер 270 (со ссылкой на Фиг. 2), реализующий основную функциональность системы ДБО и сохраняют в долговременной памяти сервера в базе данных 275 или в "облачном" хранилище в базе данных 280, причем так, чтобы вектор был поставлен в соответствие обезличенному идентификатору пользователя (в этой роли может выступать, например, банковский client ID или хэш от логина данной учетной записи), а также данному мобильному устройству, которое может быть идентифицировано, например, по IMEI.

Применительно к Фиг. 1 это означает завершение шага 160, после чего способ переходит к шагу 170.

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

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

В любом случае, по окончании сеанса работы пользователя с приложением ДБО в базе данных 275 в долговременной памяти сервера 270 или в облачном хранилище 280 оказывается сохранен массив данных W, представляющий собой набор векторов, каждый из которых содержит те же данные, что и описанный выше со ссылкой на (18) вектор вторичных данных V:

где j - количество событий синхронизации (касаний экрана и\или открытия окон или вкладок приложения), имевших место в ходе данного сеанса работы.

Итак, описанным образом в ходе одного сеанса работы пользователя с приложением ДБО получают массив поведенческих данных данного пользователя на данном мобильном устройстве (19).

Затем, совершенно аналогично, повторяют сбор данных датчиков во время последующих сеансов работы пользователя с приложением ДБО на том же мобильном устройстве до тех пор, пока не будет достигнуто наперед заданное количество сеансов, например, 10 сеансов. Достижение этого наперед заданного количества сеансов означает завершение шага 170.

После этого способ переходит к шагу 180.

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

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

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

В качестве неограничивающего примера можно привести кластеризацию по трем кластерам со ссылкой на сценарии использования мобильного устройства, проиллюстрированные Фиг. 4В. Как видно, один из сценариев может соответствовать вышеописанному положению пользователя лежа на спине 450, второй - положению стоя 460, и третий - положению сидя за столом 470. Во всех сценариях используется мобильное устройство, такое как устройство 220.

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

Для ясности и однозначности понимания следует уточнить, что везде в рамках данного описания при упоминании пространственных осей координат, то есть осей X, Y и Z подразумеваются оси из модели пространственных координат, общепринятой в области обработки сигналов датчиков мобильных приложений. Эта модель проиллюстрирована на Фиг. 4А и Фиг 4Б.

Важным обстоятельством в данном случае является то, что положение осей фиксировано относительно физического корпуса устройства, а не относительно внешних факторов, таких как поверхность земли 410 или нормаль к поверхности земли 420, совпадающая с направлением вектора силы тяжести 430 и тд. Указанное обстоятельство хорошо видно из сравнения Фиг. 4А и Фиг 4Б: оси координат, с которыми ассоциированы показания датчиков, "поворачиваются" и "наклоняются" вместе с мобильным устройством, например, таким, как смартфон 220. Подобная система координат используется во всех известных на сегодня мобильных устройствах, имеющих какие-либо датчики положения, и работающих как под управлением ОС Android, так и под управлением iOS.

По причинам, проиллюстрированным выше со ссылкой на Фиг. 4А и Фиг. 4Б для определения положения устройства с целью кластеризации предварительно определяют текущую ориентация устройства: портретная, как на Фиг. 4А, или альбомная ("ландшафтная"), как на Фиг. 4Б. Для определения ориентации могут быть использованы среднеарифметические показания датчика гравитации, а именно GSXmean и GSYmean, вычисленные, как показано выше в (9).

Как это показано на Фиг. 4А, показание 432 GSXmean геометрически соответствует среднеарифметическому значению проекции вектора силы тяжести 430 на ось X, а показание 436 GSYmean - среднеарифметическому значению проекции вектора силы тяжести 430 на ось Y.

По общеизвестным тригонометрическим зависимостям вычисляют угол между осью Y и вектором силы тяжести 430, а также угол между осью X и вектором силы тяжести 430.

Как видно из Фиг. 4А, первый угол может быть вычислен из прямоугольного треугольника, одним из катетов которого является показание 436 GSYmean, а гипотенузой - вектор силы тяжести 430, причем значение ("длина") GSYmean вычислено, как показано в (9), а модуль ("длина") вектора силы тяжести 430 во всех вычислениях равна 9.8 (модуль ускорения свободного падения).

Аналогично, угол между осью X и вектором силы тяжести 430 может быть вычислен из прямоугольного треугольника, одним из катетов которого является показание 432 GSXmean, а гипотенузой - вектор силы тяжести 430, причем значение ("длина") GSXmean вычислено, как показано в (9), а модуль ("длина") вектора силы тяжести 430 равна 9.8.

По полученным значениям углов определяют текущую ориентация устройства. Понятно, что при портретной, как на Фиг. 4А, ориентации устройства 220 угол между осью X и вектором силы тяжести 430 будет близок к 90 градусам, а угол между осью Y и вектором силы тяжести 430 будет близок к 180 градусам.

При альбомной ("ландшафтной"), как на Фиг. 4Б, ориентации устройства 220 угол между осью X и вектором силы тяжести 430 будет близок к нулю, а угол между осью Y и вектором силы тяжести 430 будет близок к 90 градусам.

С учетом возможной неидеальности ориентации устройства решение о том, что оно имеет портретную ориентацию может приниматься, например, при значениях угла при оси X, лежащих в интервале 45…135 градусов, а угла при оси Y - в интервале 135…225 градусов. Аналогично, при значениях угла при оси X, лежащих в интервале - 45…45 градусов, а угла при оси Y - в интервале 45…135 градусов может приниматься решение о том, что устройство имеет альбомную ориентацию.

После того, как установлена текущая ориентация мобильного устройства, для определения положения мобильного устройства в пространстве или, что то же самое, для выявления сценария использования мобильного устройства, достаточно вычислить степень наклона мобильного устройства. Это может быть сделано с использованием величины GSZmean, вычисленной, как показано в (9) и геометрически соответствующей среднеарифметическому значению проекции вектора силы тяжести 430 на ось Z.

Для определения степени наклона, как это показано на Фиг. 4Б, полностью аналогично вышеописанным вычислениям для осей X и Y, общеизвестным образом вычисляют угол между осью Z и вектором силы тяжести 430. Этот вектор является гипотенузой прямоугольного треугольника, одним из катетов которого является известная величина GSZmean.

В зависимости от вычисленной величины угла при оси Z принимают решение о положении мобильного устройства в пространстве. Например, при значениях угла от 0 до 80 градусов считают, что мобильное устройство расположено экраном вниз (что со ссылкой на Фиг. 4В соответствует сценарию 450), при значениях от 80 до 140 считают, что мобильное устройство расположено более или менее вертикально, как в сценарии 460, а при значениях от 140 до 179 градусов считают, что мобильное устройство расположено экраном вверх, как в сценарии 470.

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

Альтернативно, для вышеописанных вычислений могут быть использованы также медианные (GSXmedian, GSYmedian, GSZmedian) значения показаний датчика гравитации, рассчитанные, как показано в (10). Выполняемые при этом расчеты аналогичны только что описанным.

Собственно кластеризация может выполняться любым общеизвестным образом, но понятно, что в рассматриваемом примере в результате может быть получено от одного до трех кластеров К, каждый из которых содержит массивы данных, полученные, когда пользователь проводил сеанс работы с системой ДБО, находясь в положении лежа (л), стоя (ст) или сидя (с):

Понятно, что пользователь в примере (20) всегда работал с системой ДБО либо стоя, по сценарию 460, либо сидя, по сценарию 470, а кластер "положение лежа" оказался пустым. Все полученные не пустые кластеры сохраняют в памяти устройства, реализующего описываемый способ и на этом шаг 180 завершается.

После завершения кластеризации и, соответственно, шага 180, способ переходит к шагу 190.

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

Обученные классификаторы сохраняют в базе данных 275 в долговременной памяти сервера 270, реализующего основную функциональность системы ДБО, причем так, чтобы для каждого обученного классификатора были поставлены в соответствие обезличенный идентификатор пользователя (в этой роли может выступать, например, банковский client ID или хэш от логина данной учетной записи), данное мобильное устройство, в данном примере одно из устройств 210…230.

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

Альтернативно, обученный классификатор может быть аналогичным образом сохранен в базе данных 280 внешнего, "облачного" хранилища данных.

На этом способ поведенческого профилирования 100 завершается.

Дальнейшее использование построенного поведенческого профиля 500, описанное далее со ссылками на Фиг. 1, Фиг. 2 и Фиг. 5 начинается, когда очередной раз получают (110 на Фиг. 1) легитимные учетные данные пользователя и определяют 112, что для него существует построенный поведенческий профиль.

В ответ на наличие поведенческого профиля с сервера 270 на шаге 510 отправляют на мобильное устройство, такое как одно из устройств 210…230, инструкции, которые при исполнении на мобильном устройстве приводят к циклическому выполнению мобильным устройством следующих шагов:

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

Шаг 530, на котором сохраняют полученные от опрашиваемых датчиков первичные данные для каждой из пространственных осей X, Y, Z, что выполняется полностью аналогично тому, как это выполнялось на шаге 150.

Шаг 540, на котором вычисляют, на основании полученных первичных данных, вторичные данные, полностью аналогично тому, как это делали на шаге 160, и отправляют вычисленные вторичные данные на сервер 270.

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

На шаге 560 на сервере 270, вычисляют, как было показано выше на примере GSXmean, GSYmean, GSZmean, по вторичным данным по меньшей мере одного датчика, к какому сценарию использования относится текущий сеанс работы пользователя. Иначе говоря, в рамках рассмотренного примера, вычисляют, как было показано выше, текущее пространственное положение мобильного устройства и определяют, стоит пользователь в настоящий момент, сидит или лежит. После чего шаг 560 завершается и способ переходит к шагу 570.

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

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

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

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

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

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

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

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

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

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

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

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

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

На этом шаг 595 завершается и способ возвращается к шагу 520.

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

В общем случае устройство 600 содержит такие компоненты как один или более процессоров 601, по меньшей мере одно оперативное запоминающее устройство или память 602, средство хранения данных 603, интерфейсы ввода/вывода 604, средство В/В 605, средства сетевого взаимодействия или, что то же самое, передачи данных 606.

Процессор 601 устройства выполняет основные вычислительные операции, необходимые для функционирования устройства 600 или функциональности одного или более его компонентов. Процессор 601 исполняет необходимые машиночитаемые команды, содержащиеся в оперативной памяти 602.

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

Средство хранения данных 603 может выполняться в виде HDD, SSD дисков, рейд массива, сетевого хранилища, флэш-памяти, оптических накопителей информации (CD, DVD, MD, Blue-Ray дисков) и т.п.

Интерфейсы 604 представляют собой стандартные средства для подключения и работы с серверной частью, например, USB, RS232, RJ45, LPT, COM, HDMI, PS/2, Lightning, Fire Wire и т.п. Выбор интерфейсов 604 зависит от конкретного исполнения устройства 600, которое может представлять собой персональный компьютер, мейнфрейм, сервер, серверный кластер, ноутбук и т.п.

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

Средства сетевого взаимодействия 606 выбираются из устройств, обеспечивающих прием и передачу данных по сети, например, Ethernet-карта, WLAN/Wi-Fi модуль, Bluetooth модуль, BLE модуль, NFC модуль, IrDa, RFID модуль, GSM модем и т.п. С помощью средств 606 обеспечивается организация обмена данными по проводному или беспроводному каналу передачи данных, например, WAN, PAN, ЛВС (LAN), Интранет, Интернет, WLAN, WMAN или GSM.

Компоненты устройства 600 сопряжены посредством общей шины передачи данных 610.

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

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

Аналогично, программные элементы системы могут реализовываться с помощью любого языка программирования или подготовки сценариев, такого как С, С++, С#, Java, JavaScript, VBScript, Macromedia Cold Fusion, COBOL, Microsoft Active Server Pages, язык ассемблера, Perl, PHP, AWK, Python, Visual Basic, хранимых процедур SQL, PL/SQL, любых сценариев оболочки UNIX и расширяемого языка разметки (XML), при этом различные алгоритм реализуются с любой комбинацией структур данных, объектов, процессов, процедур или других программных элементов.

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

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

В качестве устройства обработки данных может выступать процессор, микропроцессор, ЭВМ (электронно-вычислительная машина), ПЛК (программируемый логический контроллер) или интегральная схема, сконфигурированные для исполнения определенных команд (инструкций, программ) по обработке данных. Процессор может быть многоядерным, для параллельной обработки данных.

В роли устройства памяти могут выступать, но, не ограничиваясь, жесткие диски (HDD), флеш-память, ПЗУ (постоянное запоминающее устройство), твердотельные накопители (SSD) и т.д.

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

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

Похожие патенты RU2825109C1

название год авторы номер документа
СПОСОБ И СИСТЕМА ВЫЯВЛЕНИЯ ЭМУЛИРУЕМОЙ МОБИЛЬНОЙ ОПЕРАЦИОННОЙ СИСТЕМЫ С ИСПОЛЬЗОВАНИЕМ МЕТОДОВ МАШИННОГО ОБУЧЕНИЯ 2018
  • Балашов Александр Викторович
  • Давидов Дмитрий Георгиевич
  • Денисенко Максим Геннадиевич
RU2713760C1
Компьютерная система и способ для обнаружения вредоносных программ с использованием машинного обучения 2021
  • Дикью Даньел
  • Динку Андрея
  • Ботарляну Роберт-Михаил
  • Замфир Сорина Н.
  • Босинчану Элена А.
  • Прежбяну Разван
RU2802860C1
СПОСОБ ОСУЩЕСТВЛЕНИЯ АВТОМАТИЗИРОВАННОЙ АУТЕНТИФИКАЦИИ ПОЛЬЗОВАТЕЛЯ НА ОСНОВАНИИ ЕГО ПОДПИСИ 2017
  • Югай Евгений Борисович
  • Ашманов Станислав Игоревич
RU2671305C1
СПОСОБ И СИСТЕМА ИДЕНТИФИКАЦИИ ПОЛЬЗОВАТЕЛЯ ПО ПОСЛЕДОВАТЕЛЬНОСТИ ОТКРЫВАЕМЫХ ОКОН ПОЛЬЗОВАТЕЛЬСКОГО ИНТЕРФЕЙСА 2019
  • Слипенчук Павел Владимирович
RU2801674C2
ЭЛЕКТРОННОЕ УСТРОЙСТВО, НОСИМОЕ ЖИВОТНЫМ, ДЛЯ ОБЕСПЕЧЕНИЯ КОНТРОЛЯ ЗА ЕГО ЗДОРОВЬЕМ 2021
  • Шутов Максим Николаевич
  • Резанцева Екатерина Яковлевна
RU2802597C2
СПОСОБ И СИСТЕМА УПРАВЛЕНИЯ ЭЛЕКТРОННЫМИ УСТРОЙСТВАМИ С ПОМОЩЬЮ ЭЛЕКТРОМИОГРАФИЧЕСКОГО УСТРОЙСТВА СЧИТЫВАНИЯ 2017
  • Каримов Владимир Русланович
  • Иванюк Наталья Михайловна
  • Понимаш Захар Алексеевич
  • Щепанский Валентин Евгеньевич
  • Петросян Артур Юрьевич
RU2683859C1
СПОСОБ И СИСТЕМА ПОИСКА СХОЖИХ ВРЕДОНОСНЫХ ПРОГРАММ ПО РЕЗУЛЬТАТАМ ИХ ДИНАМИЧЕСКОГО АНАЛИЗА 2020
  • Прудковский Николай Сергеевич
  • Волков Дмитрий Александрович
RU2738344C1
СПОСОБ И СИСТЕМА ИДЕНТИФИКАЦИИ ПОЛЬЗОВАТЕЛЯ ПО ТРАЕКТОРИИ ДВИЖЕНИЯ КУРСОРА 2019
  • Слипенчук Павел Владимирович
RU2792586C1
Способ и система для динамической глобальной идентификации окружения пользователя 2020
  • Батенёв Александр Викторович
  • Крылов Павел Владимирович
RU2751436C1
СПОСОБ И СИСТЕМА ДЛЯ ВЫСТРАИВАНИЯ ДИАЛОГА С ПОЛЬЗОВАТЕЛЕМ В УДОБНОМ ДЛЯ ПОЛЬЗОВАТЕЛЯ КАНАЛЕ 2018
  • Кузнецов Никита Александрович
  • Кирьянов Денис Павлович
  • Чернопятов Андрей Сергеевич
  • Доманская Кристина Сергеевна
RU2688758C1

Иллюстрации к изобретению RU 2 825 109 C1

Реферат патента 2024 года СПОСОБ И СИСТЕМА ПОВЕДЕНЧЕСКОГО ПРОФИЛИРОВАНИЯ ПОЛЬЗОВАТЕЛЯ НА ОСНОВАНИИ АНАЛИЗА СИГНАЛОВ СЕНСОРОВ МОБИЛЬНОГО УСТРОЙСТВА

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

Формула изобретения RU 2 825 109 C1

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

- на сервере

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

отправляют на мобильное устройство инструкции, в результате выполнения которых

- на мобильном устройстве

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

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

циклически опрашивают по меньшей мере один выбранный датчик,

причем опрос датчика синхронизируют с по меньшей мере одним событием синхронизации,

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

вычисляют, на основании сохраненных первичных данных, вторичные данные,

отправляют вторичные данные на сервер, причем

- на сервере

получают и накапливают вторичные данные,

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

для каждого из кластеров вторичных данных:

• обучают классификатор на данных, составляющих этот кластер,

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

2. Способ по п. 1, в котором выбирают по меньшей мере один из следующих датчиков:

- акселерометр,

- гироскоп,

- датчик гравитации.

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

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

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

6. Способ по любому из пп. 3-5, в котором в каждом цикле получения первичных данных для каждого выбранного датчика сохраняют:

- заданное количество показаний датчика, полученных перед наступлением события синхронизации,

- все показания датчика, полученные во время события синхронизации,

- заданное количество показаний датчика, полученных после окончания события синхронизации.

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

минимальное значение за весь цикл получения первичных данных (min), которое принимает величина, возвращаемая данным датчиком,

минимальное значение за весь цикл получения первичных данных (amp.min), которое принимает амплитуда показаний данного датчика,

минимальное значение, которое принимает величина, возвращаемая данным датчиком за время перед событием синхронизации (minS),

минимальное значение, которое принимает величина, возвращаемая данным датчиком за время после события синхронизации (minF),

максимальное значение, которое принимает величина, возвращаемая данным датчиком за время перед событием синхронизации (maxS),

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

максимальное значение, которое принимает величина, возвращаемая данным датчиком за время события синхронизации (тахА),

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

максимальное значение, которое принимает величина, возвращаемая данным датчиком за время после события синхронизации (maxF),

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

дисперсия величины, возвращаемой данным датчиком, вычисленная за весь цикл получения первичных данных (var),

дисперсия амплитуды показаний данного датчика за весь цикл получения первичных данных (amp.var),

среднеквадратичное отклонение величины, возвращаемой данным датчиком, вычисленное за весь цикл получения первичных данных (std),

среднеквадратичное отклонение амплитуды показаний данного датчика за весь цикл получения первичных данных (amp.std),

среднее арифметическое значение величины, возвращаемой данным датчиком, вычисленное за весь цикл получения первичных данных (mean),

среднее арифметическое значение амплитуды показаний данного датчика за весь цикл получения первичных данных (amp.mean),

медиана величины, возвращаемой данным датчиком, вычисленная за весь цикл получения первичных данных (median),

медиана амплитуды показаний данного датчика за весь цикл получения первичных данных (amp.median),

отношение максимальных значений maxS к maxA,

отношение максимальных значений amp.maxS к amp.maxA,

отношение максимальных значений maxF к maxA,

отношение максимальных значений amp.maxF к amp.maxA,

показатель колебаний устройства перед событием синхронизации (diffS),

показатель колебаний устройства после события синхронизации (diffF),

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

8. Способ по п. 1, в котором вторичные данные кластеризуют на основании значений среднего арифметического (mean).

9. Способ по п. 1, в котором вторичные данные кластеризуют на основании значений медианы (median).

10. Способ по любому из пп. 8, 9, в котором вторичные данные кластеризуют на основании значений, возвращаемых датчиком гравитации.

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

12. Способ по п. 1, в котором заранее определенные сценарии работы с мобильным устройством представляют собой сценарии работы с мобильным устройством стоя, лежа и сидя.

13. Способ по п. 1, в котором классификатор, обучаемый на вторичных данных каждого кластера, представляет собой OneClass SVM.

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

- на мобильном устройстве:

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

сохраняют первичные данные, возвращаемые опрашиваемыми датчиками,

вычисляют, на основании сохраненных первичных данных, вторичные данные и отправляют их на сервер,

- на сервере:

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

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

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

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

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

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

Документы, цитированные в отчете о поиске Патент 2024 года RU2825109C1

Способ обнаружения мошеннической активности на устройстве пользователя 2016
  • Колотинский Евгений Борисович
  • Скворцов Владимир Александрович
RU2626337C1
УСТРОЙСТВО БЕЗОПАСНОСТИ, СПОСОБ И СИСТЕМА ДЛЯ НЕПРЕРЫВНОЙ АУТЕНТИФИКАЦИИ 2021
  • Чайковский Сергей Станиславович
RU2786363C1
Система, способ и устройство непрерывной аутентификации пользователя и защиты ресурсов автоматизированного рабочего места от несанкционированного доступа 2018
  • Дударев Дмитрий Александрович
  • Панасенко Сергей Петрович
  • Полтавцев Александр Васильевич
  • Романец Юрий Васильевич
  • Сырчин Владимир Кимович
RU2691201C1
Способ непрерывной аутентификации пользователя и защиты автоматизированного рабочего места от несанкционированного доступа 2020
  • Краснов Сергей Георгиевич
  • Зварич Сергей Григорьевич
  • Ланчев Василий Михайлович
  • Рычков Михаил Александрович
RU2762535C1
СПОСОБ И СИСТЕМА ИДЕНТИФИКАЦИИ ПОЛЬЗОВАТЕЛЯ ПО ТРАЕКТОРИИ ДВИЖЕНИЯ КУРСОРА 2019
  • Слипенчук Павел Владимирович
RU2792586C1
СПОСОБ И СИСТЕМА ИДЕНТИФИКАЦИИ ПОЛЬЗОВАТЕЛЯ ПО ПОСЛЕДОВАТЕЛЬНОСТИ ОТКРЫВАЕМЫХ ОКОН ПОЛЬЗОВАТЕЛЬСКОГО ИНТЕРФЕЙСА 2019
  • Слипенчук Павел Владимирович
RU2801674C2
СПОСОБ И СИСТЕМА ИДЕНТИФИКАЦИИ ПОЛЬЗОВАТЕЛЯ ПО КЛАВИАТУРНОМУ ПОЧЕРКУ 2019
  • Слипенчук Павел Владимирович
  • Янкелевич Дмитрий Аркадьевич
RU2801673C2
US 20160337328 A1, 17.11.2016
US 10075846 B1, 11.09.2018
US 20020095586 A1, 18.07.2002
US 11706215 B1, 18.07.2023
US 20160239649 A1, 18.08.2016
US

RU 2 825 109 C1

Авторы

Гаев Андрей Викторович

Янкелевич Дмитрий Аркадьевич

Даты

2024-08-20Публикация

2023-09-26Подача