ОБЛАСТЬ ТЕХНИКИ
Настоящее техническое решение относится к области вычислительной техники, в частности, к способу и системе идентификации пользователя по траектории движения курсора компьютерной мыши.
УРОВЕНЬ ТЕХНИКИ
Задача зашиты информации от несанкционированного доступа становится все более актуальной. Наиболее достоверные результаты дает использование биометрических методов аутентификации.
Новым направлением идентификации и подтверждения личности пользователя является отслеживание его поведенческих особенностей, проявляющихся в характере работы с различными манипуляторами: световое перо, манипулятор «мышь», клавиатура и пр. Появившийся в этой связи термин информационный почерк пользователя (далее - ИПП) отражает стиль работы пользователя с устройствами ввода. В результате отслеживания и анализа ИПП средствами современных информационных технологий может быть сформирован уникальный для каждого пользователя образ, который, в свою очередь, может в дальнейшем быть использован как дополнительное, по отношению к известным средствам и методам, средство идентификации пользователя при входе в систему, а также средство дистанционной оценки его эмоционального и физиологического состояния.
Из уровня техники известно значительное количество способов идентификации пользователя за счет анализа движения курсора компьютерной мыши, в части такие решения описаны в заявках: US 2011113388 А1, опубл. 12.05.2011; US 2007255818 A1, опубл. 01.11.2007; US 9526006 B2, опубл. 20.12.2016; US 9521551 B2, опубл. 13.12.2016; US 9275337 B2, опубл. 01.03.2016.
Кроме того, на текущем уровне техники известны решения, локально решающие вопросы проверки личности пользователя во время взаимодействия с компьютерным манипулятором, они раскрыты в следующих документах: статья «Mouse Movement Behavioral Biometric Systems», автор Nazirah Abd. Hamid et al, опубл. 2011; статья «Advanced mouse-tracking analytic techniques for enhancing psychological science», автор Eric Hehman et al, опубл. 2014; статья «Biometric Authentication Using Mouse Gesture Dynamics», автор Bassam Sayed et al, опубл. 2013.
Однако, известные из уровня техники решения, предназначенные для идентификации пользователей по траектории движения курсора, имеют ограниченную функциональность:
во-первых, в них присутствует явно выраженная фаза обучения, в ходе которой пользователя просят совершать заранее заданные движения мышью. Например, нарисовать курсором геометрическую фигуру, повторить указанные жесты мышью, "перетащить" - drag and drop - объект в заданную область и т.д. В частности, здесь важно, что обучение систем, реализующих способы, известные из уровня техники, обычно ведется на детерминированном, априори известном наборе траекторий курсора.
Во-вторых, анализ движения курсора выполняется по всей траектории его движения; вся совокупность перемещений курсора от начала до конца каждого упомянутого упражнения анализируется, преобразуется в набор признаков и используется для обучения решающего правила.
В-третьих, во всех перечисленных способах анализ выполняется без учета семантического контекста окружения, в котором работает пользователь. Иными словами, перемещение курсора анализируют, полагая всю область доступного пользователю интерфейса несущей идентичную смысловую нагрузку и в равной мере существенной.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
Технической проблемой, на решение которой направлено заявленное техническое решение, является создание компьютерно-реализуемого способа и системы идентификации пользователя по траектории движения курсора, которые охарактеризованы в независимых пунктах формулы. Дополнительные варианты реализации настоящего изобретения представлены в зависимых пунктах изобретения.
Технический результат заключается в автоматической идентификации пользователя по траектории движения курсора.
В предпочтительном варианте реализации заявлен компьютерно-реализуемый способ идентификации пользователя по траектории движения курсора, заключающийся в выполнении этапов, на которых с помощью вычислительного устройства:
- регистрируют учетные данные пользователя в системе;
- присваивают соответствующий учетным данным идентификатор пользователя;
- на протяжении всего сеанса работы идентифицированного пользователя анализируют траекторию движения курсора мыши, для чего:
• для каждого положения курсора мыши фиксируют вертикальную и горизонтальную координаты курсора мыши и отметку времени, когда эти координаты были зафиксированы;
• сохраняют последовательность координат курсора мыши и соответствующих им отметок времени;
• анализируют записанную последовательность для поиска точек разбиения траектории движения курсора мыши на фрагменты;
- формируют список фрагментов траектории курсора во время сеанса работы данного пользователя;
- вычисляют для каждого фрагмента траектории курсора набор заранее определенных признаков и сохраняют вычисленные признаки в базе данных,
- накапливают заданное количество сеансов работы данного пользователя, и на основе признаков, вычисленных в ходе этих сеансов работы, обучают по меньшей мере один классификатор идентифицировать данного пользователя по траектории движения курсора мыши;
- применяют обученный по меньшей мере один классификатор для последующего подтверждения идентичности пользователя, во время сеансов работы которого был обучен по меньшей мере один классификатор.
В частном варианте точками разбиения траектории движения курсора мыши на фрагменты считают точки, в которых курсор находился без движения свыше заранее заданного времени.
В другом частном варианте графический интерфейс, в котором проходят сеансы работы пользователя, предварительно делят на окна, а окна делят на зоны.
В другом частном варианте точками разбиения траектории движения курсора мыши на фрагменты дополнительно считают точки перехода курсором мыши границы между зонами каждого окна, а также моменты смены окон графического интерфейса на дисплее пользователя.
В другом частном варианте каждой зоне каждого окна может быть присвоен коэффициент, ассоциированный с данной зоной.
В другом частном варианте обучают классификатор методом машинного обучения.
В другом частном варианте классификатор может быть реализован как графовая вероятностная модель или как SVM-классификатор.
В другом частном варианте для каждого окна обучают отдельный классификатор.
В другом частном варианте для каждой зоны обучают отдельный классификатор.
В другом частном варианте решение каждого классификатора домножают на постоянную величину, соответствующую коэффициенту той зоны, для которой обучен данный классификатор.
В другом частном варианте решение об идентичности или не идентичности пользователя представляет собой сумму решений всех классификаторов.
Заявленное решение также осуществляется за счет системы идентификации пользователя по траектории движения курсора, содержащая:
- компьютерную мышь;
- блок регистрации учетных данных пользователя в системе;
- системные часы, выполненные с возможностью фиксации времени
- блок регистрации положения курсора мыши, выполненный с возможностью фиксировать вертикальную и горизонтальную координаты курсора мыши;
- долговременную память, выполненную с возможностью хранения базы данных;
- вычислительное устройство, выполненное с возможностью выполнения вышеописанного способа.
В одном из возможных вариантов реализации заявленное решение является составной частью дистанционной системы банковского обслуживания.
В другом из возможных вариантов реализации заявленное решение является составной частью веб-сайта, подразумевающего авторизацию пользователей.
В другом из возможных вариантов реализации система идентификации пользователя является составной частью многопользовательской компьютерной игры, подразумевающей авторизацию пользователей.
В другом из возможных вариантов реализации система идентификации пользователя является составной частью программно-аппаратного комплекса для совместной работы, подразумевающего авторизацию пользователей.
ОПИСАНИЕ ЧЕРТЕЖЕЙ
Реализация изобретения будет описана в дальнейшем в соответствии с прилагаемыми чертежами, которые представлены для пояснения сути изобретения и никоим образом не ограничивают область изобретения. К заявке прилагаются следующие чертежи:
Фиг. 1 иллюстрирует компьютерно-реализуемый способ идентификации пользователя по траектории движения курсора;
Фиг. 2 иллюстрирует различные координаты, которые могут быть получены при определении положения курсора мыши;
Фиг. 3 иллюстрирует окно графического интерфейса пользователя, которое разделено на зоны;
Фиг. 4 иллюстрирует пример описания различных зон окна графического интерфейса пользователя;
Фиг. 5 иллюстрирует пример траектории движения курсора мыши в одном из окон графического интерфейса пользователя;
Фиг. 6 иллюстрирует пример разделения траектории движения курсора мыши на фрагменты;
Фиг. 7 иллюстрирует алгоритм поиска точек, разделяющих траекторию движения курсора мыши на фрагменты;
Фиг. 8 иллюстрирует пример общей схемы компьютерного устройства.
ДЕТАЛЬНОЕ ОПИСАНИЕ ИЗОБРЕТЕНИЯ
В приведенном ниже подробном описании реализации изобретения приведены многочисленные детали реализации, призванные обеспечить отчетливое понимание настоящего изобретения. Однако, квалифицированному в предметной области специалисту, будет очевидно каким образом можно использовать настоящее изобретение, как с данными деталями реализации, так и без них. В других случаях хорошо известные методы, процедуры и компоненты не были описаны подробно, чтобы не затруднять понимание особенностей настоящего изобретения.
Кроме того, из приведенного изложения будет ясно, что изобретение не ограничивается приведенной реализацией. Многочисленные возможные модификации, изменения, вариации и замены, сохраняющие суть и форму настоящего изобретения, будут очевидными для квалифицированных в предметной области специалистов.
Настоящее изобретение направлено на обеспечение компьютерно-реализуемого способа и системы идентификации пользователя по траектории движения курсора.
Способ будет описан на примере сервиса дистанционного банковского обслуживания (ДБО), однако, этот пример не является ограничивающим. Помимо системы ДБО, на примере которой будет описан способ, описываемый способ может также быть реализован в компьютерных онлайн-играх, программном обеспечении для совместной работы, программах или системах, поддерживающих жесты мышью и т.д.
Вообще описываемый способ может быть реализован в любом варианте сервиса авторизованного удаленного доступа, который подразумевает наличие на стороне пользователя компьютерной мыши, а также элементов пользовательского интерфейса, взаимодействие с которыми возможно посредством этого манипулятора. Как представлено на Фиг. 1, заявленный компьютерно-реализуемый способ идентификации пользователя по траектории движения курсора (100) реализован следующим образом:
На этапе (101) предварительно регистрируют учетные данные пользователя в системе. Учетные данные пользователя - это имя пользователя и пароль. Это важный компонент обеспечения сетевой безопасности.
Далее на этапе (102) присваивают соответствующий учетным данным идентификатор пользователя.
На этапе (103) на протяжении всего сеанса работы идентифицированного пользователя анализируют траекторию движения курсора мыши, для чего:
• для каждого положения курсора мыши фиксируют вертикальную и горизонтальную координаты курсора мыши и отметку времени, когда эти координаты были зафиксированы;
• сохраняют последовательность координат курсора мыши и соответствующих им отметок времени;
• анализируют записанную последовательность для поиска точек разбиения траектории движения курсора мыши на фрагменты;
• формируют список фрагментов траектории курсора во время сеанса работы данного пользователя.
На этапе (104) вычисляют для каждого фрагмента траектории курсора набор заранее определенных признаков и сохраняют вычисленные признаки в базе данных. На этапе (105) накапливают заданное количество сеансов работы данного пользователя, и на основе признаков, вычисленных в ходе этих сеансов работы, обучают по меньшей мере один классификатор идентифицировать данного пользователя по траектории движения курсора мыши.
На этапе (106) применяют обученный по меньшей мере один классификатор для последующего подтверждения идентичности пользователя, во время сеансов работы которого был обучен по меньшей мере один классификатор.
В дальнейшем будем считать, что вне зависимости от варианта технической реализации описываемого способа для каждого конкретного положения курсора мыши доступны: координата X, координата Y и время t, для которого зафиксированы данные X и Y.
В некоторых вариантах реализации, например, если программа, реализующая способ, исполняется в браузере, где открыто окно с полосами прокрутки, дополнительно могут быть доступны координаты pageX и\или pageY, имеющие тот же смысл, что X и Y, но отсчитываемые не от угла видимой пользователю части окна, а от угла активной зоны данной страницы. Понятно, что всегда pageX≥X и pageY≥Y; когда текущее окно графического интерфейса пользователя полностью помещается на экране компьютера, pageX=X и pageY=Y.
Все перечисленные координаты имеют размерность количества пикселей.
На Фиг. 2 в качестве примера показано окно системы ДБО 200, внутри которого расположена видимая пользователю часть окна 210, снабженная полосами прокрутки, вертикальной 220 и горизонтальной 230. В видимой части окна 210 находится курсор мыши 240.
Таким образом, набор данных D о текущем положении курсора мыши для любой точки к, где расположен курсор, выглядит следующим образом:
где tk - значение текущего времени, полученное, например, от системных часов.
В заявленном решении, полученный набор данных (1) сохраняют для дальнейшего анализа. В другом возможном варианте реализации заявленного решения набор данных (1) может быть проанализирован непосредственно в ходе работы пользователя, без предварительного сохранения.
Помимо данных (1), для реализации описываемого способа необходимо получение от системы ДБО идентификатора пользователя. Идентификатор пользователя - это минимум одно сочетание символов, уникальным образом характеризующее конкретного пользователя, работающего с системой ДБО.
Например, это может быть agent_id (внутренний идентификатор клиента, используемый в банковской системе). Возможен случай, когда идентификатор является функцией от набора сведений о программно-аппаратной конфигурации персонального компьютера, с которого осуществляется доступ к системе ДБО.
Как правило, идентификатор пользователя так или иначе зашифрован на стороне банка; его расшифровка не требуется для реализации описываемого способа, несущественно и то, каким конкретно образом он был сгенерирован. Достаточно, чтобы этот идентификатор был уникальным и стабильно воспроизводимым при каждом сеансе доступа к системе ДБО под конкретной учетной записью.
Возможен также вариант реализации описываемого способа, при котором идентификатор пользователя генерируется системой, реализующей способ, на основе одного или нескольких идентификаторов аналогичного назначения, поступающих от банковской системы.
Генерация такого уникального идентификатора может быть выполнена любым общеизвестным способом, например, хешированием символьной строки, полученной путем конкатенации идентификаторов, полученных из банковской системы.
В дальнейшем для простоты будем обозначать идентификатор пользователя как USER(i), где различное значение i указывает на разных пользователей.
В заявленном решении получают данные (1), поступающие от системы ДБО в ассоциации с конкретным USER(i), и формируют пользовательские сессии.
В рамках данного описания сессией S конкретного пользователя USER(i) являются ассоциированные с ним наборы данных (1), записанные за все время, пока данный пользователь находится в системе ДБО:
где N - общее количество точек, в которых побывал курсор, а каждый набор данных D соответствует (1). Понятно, что началом каждой сессии является момент ввода пользователем валидных логина и пароля, в результате чего система ДБО получает возможность идентификации посетителя. Окончанием сессии является момент, когда пользователь закрывает последнее из окон системы ДБО, либо нажимает ссылку "Выйти из системы".
В общем случае пользователю, работающему в системе ДБО, доступно более одного окна. Поэтому в одном из возможных вариантов реализации описываемого решения может также использоваться идентификатор текущего окна пользовательского интерфейса. Это некое сочетание символов, которое однозначно соответствует тому окну пользовательского интерфейса, которое в данный момент открыто пользователем.
Само окно может представлять собой страницу интернет-сайта, и тогда идентификатор может представлять собой, например, хэш от URL данной страницы или от ее заголовка (последовательности символов, помещенной под тэгом <title>). В другом случае окно может представлять собой элемент интерфейса программы, и тогда идентификатором может быть хэш названия данного элемента интерфейса либо иное используемое в программе его обозначение.
Для целей реализации описываемого способа достаточно, чтобы этот идентификатор был уникальным в рамках данной системы ДБО и стабильно воспроизводимым при каждом удачном акте доступа к конкретному окну интерфейса. В дальнейшем будем обозначать идентификатор текущего окна как PAGE(j), где различное значение j указывает на разные окна пользовательского интерфейса.
Сессия, описанная выражением (2) содержит набор данных для всех точек экрана, в которых побывал курсор на протяжении активности конкретного пользователя USER(i) в системе ДБО. Однако, в таких системах, имеющих более одного окна, система, реализующая описываемый способ, ведет раздельный анализ поведения курсора для каждого конкретного окна.
Поэтому данные (1), поступающие на протяжение каждой сессии пользователя USER(i), дополнительно группируются по PAGE(j) и анализируются отдельно для каждого конкретного окна. Это позволяет учесть тот факт, что разные окна системы ДБО в общем случае имеют разную визуальную структуру, на них по-разному располагаются элементы интерфейса, что обуславливает различные траектории движения курсора мыши.
В дальнейшем подразумевается, что описываемые здесь действия относятся к одному окну PAGE(j) из множества окон системы ДБО. В каждом из остальных окон действия системы, реализующей описываемый способ, выполняются алгоритмически идентично, но независимо от действий в других окнах.
Иными словами, способ учитывает семантический контекст в пределах каждого окна независимо от контекста других окон системы ДБО.
Каждое окно системы ДБО в целях реализации описываемого способа может быть предварительно, на этапе создания системы, реализующей способ, условно разделено на несколько зон, как показано пунктирными линиями на фиг. 3.
Например, в соответствии с фиг. 3, в окне 300 системы ДБО выделены:
1. Зона навигации верхнего меню 310, содержащая область со ссылкой 312 на стартовую страницу системы ДБО, область 314 дополнительных ссылок и "область выхода" 316, содержащую ссылку на выход из системы.
2. Зона левого меню 320, содержащая элементы интерфейса (графические "кнопки" или надписи) 322…329 со ссылками, например, на различные окна системы ДБО для различных банковских операций, доступных данному пользователю.
3. Зона текущей банковской операции 330, содержащая текстовые сообщения 331 и 339, поле 332 для указания счета, с которого осуществляется платеж или перевод, поле 334 для указания счета, на который осуществляется платеж или перевод, поле 336 для ввода, подтверждающего транзакцию кода из SMS-сообщения и кнопку 338, подтверждающую выполнение операции.
4. Зона рекламных сообщений 340, содержащая интерактивный рекламный баннер 342, под которым находится ссылка на страницу, например, рекламируемой акции.
5. Зона всплывающих сообщений 350, используемая для выдачи контекстных подсказок пользователю системы ДБО и не содержащая активных ссылок.
Технически предварительное разделение каждого окна ДБО на зоны может быть выполнено, например, в виде задания координат точек, являющихся углами каждой зоны, и сохранения данных координат в виде набора шаблонов зон Z1…Zm, ассоциированных с конкретным окном ДБО PAGE(j).
В качестве примера, на фиг. 4 показано, как зону 320 окна 300, ранее показанного на фиг. 3, описывают координатами точек А, В, С, D, а зону 330 того же окна описывают координатами точек В, Е, F, D. Аналогичным образом могут быть описаны любые зоны любого окна системы ДБО.
Шаблоны зон 320 и 330 могут иметь вид:
Координаты каждой точки, например, (ХВ, YВ) при этом могут быть выражены абсолютной величиной, например, (450, 275), и иметь размерность количества пикселей, находящихся по горизонтали и по вертикали между данной точкой и левым верхним углом окна.
Альтернативно, координаты (ХВ, YВ) могут быть выражены относительной безразмерной величиной, например, (0.2, 0.15) и рассчитываться для каждого конкретного пользователя USER(i) с учетом используемого им разрешения экрана и, соответственно, размеров окна системы ДБО на экране данного пользователя.
На этапе создания системы, реализующей описываемый способ, каждой зоне Z(m) каждого окна PAGE(j) системы ДБО может быть присвоен "коэффициент важности" Pz(m), ассоциированный с данной зоной. Этот коэффициент представляет собой константу, целочисленную или дробную, величина которой выбрана пропорционально приоритету данной зоны, например, по следующему принципу: чем больше значение константы, тем выше приоритет зоны.
Например, зона 330, показанная на фиг. 3 и 4, может иметь наивысший коэффициент важности Р330 из всех зон окна 300, поскольку она прямо ассоциирована с операцией перевода денежных средств со счета пользователя. Зона 320, ассоциированная с операциями перехода к другим счетам данного пользователя, может иметь следующий по величине коэффициент важности Р320, и т.д.
Наконец, зоны 340 и 350, не ассоциированные с какими-либо операциями над денежными средствами пользователя, могут иметь наименьшие по величине коэффициенты Р340, Р350. Таким образом
Численные значения коэффициентов, заданные на этапе создания системы, как и сведения о границах зон в каждом окне, ассоциированы системой с каждым конкретным окном и постоянно хранятся на протяжении всех этапов работы системы со всеми пользователями. Вышеописанные коэффициенты характеризуют определенные области (зоны) графического интерфейса пользователя, поэтому при работе системы с любым пользователем значения этих коэффициентов будут одни и те же.
В тех окнах системы ДБО, которые не имеют явно выраженной привлекательности для злоумышленников, завладевших чужими учетными данными, например, в окне оплаты коммунальных платежей или в окне с информацией о местоположении и часах работы отделений банка, разделение окна на зоны и присвоение зонам "коэффициентов важности" может не выполняться.
Тем не менее, система, реализующая способ, получает и сохраняет (либо сразу анализирует, как описано) данные D(k), соответствующие (1), и в таких окнах тоже.
На фиг. 5 показан пример траектории движения курсора мыши в одном из окон системы ДБО.
Эта траектория по существу представляет собой массив данных вида (2), хранящихся в оперативной либо постоянной памяти компьютерной системы, реализующей описываемый способ, однако, для простоты восприятия на рисунке она представлена в виде непрерывной линии. Подразумевается, что каждая из точек, составляющих эту линию, описана набором данных (1).
Начало траектории, соответствующее положению курсора мыши при открытии данного окна, в данном примере находится чуть выше текстового сообщения 331.
Как можно видеть на фиг. 5, после открытия окна пользователь сначала заинтересовался интерактивным баннером 342 и какое-то время двигал курсором над ним. Затем перешел к выполнению перевода и поместил курсор в поле указания счета плательщика 332, потом - в поле указания счета получателя 334. Спустя еще некоторое время, пользователь перевел фокус ввода в окно 336 для кода подтверждения из SMS и еще немного позже подвел курсор мыши к кнопке подтверждения платежа 338.
Нужно отметить, что полный ансамбль действий пользователя, помимо перемещения курсора, безусловно, также может включать в себя нажатия ("клики") левой и правой кнопок мыши, вращение колесика прокрутки мыши и другие действия.
В компьютерной системе или браузере, где работает пользователь, возникают соответствующие этим событиям сигналы. Однако, в рамках описываемого способа сигналы о подобных событиях не используются, поэтому и в данном описании ни сами эти события, ни соответствующие им сигналы не рассматриваются.
Анализ данных (2) о движении курсора мыши начинается с построения списка точек декомпозиции, т.е. списка точек, разбивающих полную траекторию движения курсора в данном окне системы ДБО на фрагменты.
На фиг. 6 показан пример такой декомпозиции применительно к траектории, показанной ранее на фиг. 5. Зоны 330 и 340 на фиг. 6 принадлежат ранее описанному окну системы ДБО 300. Находящиеся в этих зонах элементы пользовательского интерфейса 331…342 на фиг. 6 для простоты восприятия не показаны.
Первый фрагмент траектории, начало которого совпадает с началом траектории движения курсора мыши 610, заканчивается в точке пересечения 615 курсором границы зон 330 и 340, описанных ранее применительно к фиг. 3.
Из точки 615 начинается следующий фрагмент траектории, который заканчивается в точке 620, где курсор мыши остановился и некоторое время пребывал без движения, пока пользователь рассматривал отклик интерактивного баннера на помещение курсора поверх него.
Очередной фрагмент траектории начинается в точке 620 и заканчивается в точке 630, которая также определена как точка остановки курсора. Аналогично выделен фрагмент траектории между точками 630 и 640.
Затем курсор, двигаясь из точки 640, пересекает границу зон 330 и 340 в точке 645, и это определяет фрагмент траектории, лежащий между точками 640 и 645. Следующий фрагмент находится между точками 645 и 650. Точки 650…670, определяющие дальнейшие фрагменты траектории движения курсора мыши, также являются точками остановки курсора.
Наконец, точка 680, завершающая последний фрагмент, между 670 и 680, является последней в массиве данных, ассоциированных с данным окном, поскольку после нажатия пользователя на показанную ранее кнопку подтверждения транзакции 338, расположенную в этой точке, система ДБО закрыла данное окно 300 (и открыла следующее, но это в данном случае несущественно, поскольку действия, выполняемые системой, реализующей описываемый способ, в новом окне, будут аналогичны действиям, описанным для данного окна).
Обнаружение точек декомпозиции, подобных точкам 620, 630, 640 и т.д., выполняется путем поиска точек, в которых курсор какое-то время deltaT находился без движения, и сравнения этого времени deltaT с заранее заданным, эмпирически подобранным параметром dTmax.
Например, значение параметра dTmax может быть выбрано равным 0.3 секунды. В том случае, если deltaT оказывается больше dTmax, данная точка остановки курсора считается точкой, разделяющей фрагменты траектории движения.
Точки, подобные 615 и 645, обнаруживают путем сравнения координат каждой точки с координатами границ зон, которые были получены на этапе создания системы и хранятся, например, в виде (3а), (3b), как параметры, ассоциированные с конкретным окном системы ДБО.
На фиг. 7 показан пример алгоритма 700, который может использоваться для поиска точек, разделяющих на фрагменты траекторию движения курсора мыши. На стартовом шаге 710 инициализируют переменные i и deltaT, присваивая значения i=l и deltaT=0. На шаге 720 получают два соседних набора данных D(i) и D(i+1); каждый из этих наборов данных имеет вид (1).
На шаге 730 определяют, оставался ли курсор неподвижным относительно окна на промежутке времени между t(i) и t(i+l), и если да, то на шаге 750 увеличивают deltaT на величину, соответствующую разности t(i) и t(i+l), выполняют на шаге 780 инкремент i, проверяют на шаге 790, не достигнут ли конец сессии (2), то есть не является ли набор данных D(i) последним набором данных, зафиксированным в ходе работы пользователя в данном окне системы ДБО, и возвращаются к шагу 720. Проверка применительно к pageX, pageY позволяет учесть случаи, когда пользователь «прокрутил» окно ДБО, размерами превосходящее экран, при помощи клавиатуры или колесика мыши (координаты X и Y при этом не изменятся, но изменятся pageX и\или pageY, в зависимости от направления прокрутки).
Если на шаге 730 определили, что курсор переместился, то на шаге 740 проверяют, не принадлежит ли точка X(i+1), Y(i+1), в которую переместился курсор, к множеству точек, описывающих границы зон, как было показано выше применительно к фиг. 4.
Если это так, то идентификатор найденной точки пересечения границы зон (идентификатор может быть, например, представлен порядковым номером в цикле, то есть i+1) заносят в общий, в пределах данного окна PAGE(j), список точек декомпозиции, затем возвращаются к общему циклу шагами 780, 790.
Если пересечения границы зон на шаге 740 не обнаружено, то на шаге 760 проверяют накопленное значение deltaT, сравнивая его с заранее заданным параметром dTmax. Если deltaT превышает значение параметра dTmax, то это свидетельствует о том, что найдена точка достаточно длительной остановки курсора, и соответствующий идентификатор этой точки i+1 заносят в список точек декомпозиции, и затем возвращаются к общему циклу шагами 780, 790.
Выход из цикла осуществляется при достижении на шаге 790 конца данной сессии (2).
Таким образом, в результате выполнения алгоритма 700 для траектории, показанной на фиг. 5 и 6, будет получен полный список точек декомпозиции, а именно, в терминах фиг. 6:
При помощи списка точек декомпозиции получают список и координаты, то есть наборы данных Di, соответствующие (1), для начальных и конечных точек каждого из фрагментов траектории движения курсора Cn:
В альтернативном варианте реализации списки фрагментов составляют, группируя фрагменты по принадлежности к различным зонам окна системы ДБО.
В этом варианте будет сформировано два списка, один для зоны 330, второй для зоны 340:
Система, реализующая данный способ, выполняет вышеописанные шаги и сохраняет полученные данные, накапливая заданное на этапе проектирование системы количество сессий. По достижении этого заданного количества система переходит к обучению по меньшей мере одного классификатора.
Для каждого пользователя по составленным спискам фрагментов траектории движения курсора мыши (6а) или (6b) обучают как минимум одно решающее правило (классификатор). В том случае, если данное окно PAGE(j) системы ДБО было предварительно разделено на зоны, которым были присвоены различные "коэффициенты важности" (4), для каждой из зон может быть обучен свой классификатор. Также решения этих классификаторов могут дополнительно масштабироваться пропорционально "коэффициентам важности" соответствующих зон.
За счет этого масштабирования нетипичное поведение пользователя в потенциально привлекательных для злоумышленников зонах "высокорисковых" окон системы ДБО, например, таких как зона 330 на Фиг. 3, скорее приведет к выдаче системой предупреждающего сигнала, нежели нетипичное поведение пользователя в окнах системы ДБО, не связанных с платежами и переводами, например, таких как соседняя зона 340 того же окна, показанного на Фиг. 3.
Техническая реализация каждого классификатора может быть любой общеизвестной; он может быть реализован, например, как графовая вероятностная модель (Random Forest) или как SVM-классификатор.
Для обучения классификаторов из каждого из списков фрагментов траектории движения курсора предварительно извлекают признаки. Поскольку списки фрагментов траектории содержат наборы данных вида (1), каждый из которых содержат и координаты точки X, Y, и время t, когда эти координаты были зафиксированы, то по этим данным не составляет труда любым общеизвестным способом рассчитать любые параметры, имеющие смысл расстояния, направления, времени, скорости (движения курсора мыши), а также их производных.
Ниже в качестве неограничивающего примера приведен список признаков (7.1)…(7.9), которые могут вычисляться для обучения классификаторов по описываемому способу. Приводимый список не является полным; общее количество признаков, извлекаемых из названных данных, может быть значительно больше, до нескольких сотен. Кроме того, перечисляемые ниже параметры приведены исключительно с целью иллюстрации; вычисление любого из них не является обязательным для реализации описываемого метода.
В качестве неограничивающего примера можно перечислить следующие признаки, которые вычисляют для каждого фрагмента траектории движения курсора мыши из (6а) или (6b), описанного набором данных вида Ck={D(l), D(2), D(3), … D(N)}. Подразумевается, что каждый набор данных D, от 1-го до N-го, соответствует (1):
• полное время прохождения курсора от начала до конца данного фрагмента:
• длина рабочего пути S, т.е. выраженное в пикселях расстояние между началом и концом данного фрагмента траектории;
• погонная длина траектории фрагмента т.е. сумма расстояний между каждыми двумя соседними точками;
• средняя скорость движения курсора мыши
• средняя квадратичная скорость движения курсора мыши
• скорость движения курсора мыши на первых 5%, 10%, 20% длины данного фрагмента траектории, V0,05, V0,1,V0,2,:
• максимальная скорость Vmax движения курсора мыши на протяжении данного фрагмента траектории:
Вычисление этих, а также других параметров движения курсора мыши может быть выполнено любым общеизвестным способом. Используя рассчитанные параметры в качестве признаков, обучают классификатор или классификаторы.
Ниже приведен пример контроля идентичности пользователя.
Как указывалось, выше, в заявленном решении получают данные (1), поступающие от системы ДБО и ассоциированные с конкретным пользователем USER(i) и текущим окном PAGE(j), и формируют пользовательские сессии (2), анализируя данные отдельно для каждого конкретного окна.
После успешной авторизации пользователь идентифицируется на основании user_id, затем выбирается и запускается классификатор или классификаторы, обученные ранее на сессиях этого пользователя для данного конкретного окна либо для данной зоны конкретного окна. На вход классификатора или классификаторов подаются признаки, извлеченные из фрагментов траектории движения курсора мыши. Признаки представляют собой параметры, например, параметры (7.1…7.9), рассчитанные для текущей сессии аналогично тому, как они рассчитывались перед обучением классификатора или классификаторов.
Решение (результат работы) каждого классификатора представляет собой численную оценку вероятности того, что "курсорный почерк" человека, только что введшего логин и пароль, принадлежит именно тому пользователю, на сессиях которого был обучены классификатор или классификаторы.
В том варианте реализации, где некоторые окна системы ДБО содержат зоны, которым присвоены "коэффициенты важности" (4), решения классификаторов, обученных на данных зонах, могут дополнительно масштабироваться с учетом упомянутых коэффициентов.
Масштабирование может подразумевать, например, увеличение или уменьшение численного ответа классификатора на константу, соответствующую "коэффициенту важности". В другом варианте реализации численный ответ классификатора может быть умножен на такую константу.
Решения каждого классификатора или группы классификаторов, ассоциированных с данным USER(i), объединяют в общее решение системы, реализующей данный способ. В одном из возможных вариантов реализации - это объединение может представлять собой суммирование или перемножение численных ответов всех классификаторов, ассоциированных с данным пользователем.
Решение системы, также имеющее смысл численной оценки вероятности, поступает в антифрод-систему банка, где может использоваться для генерации тревожных оповещений, имеющих смысл предупреждения о нетипичном поведении конкретного пользователя, или других сигналов аналогичного назначения.
Для новых пользователей, а также для пользователей, по каким-либо причинам, недавно сменившим пароль, в то же время могут выполняться действия по получению новых сессий и обучению новых классификаторов. Такие действия были описаны выше в заявленном решении.
В альтернативном варианте реализации способа, подразумевающем работу в составе системы разграничения доступа, установленной и исполняемой на служебном персональном компьютере, сессия, оставленная пользователем после ввода логина и пароля, передается на вход множеству классификаторов, каждый из которых предварительно обучен "курсорному почерку" одного из множества сотрудников данного предприятия или подразделения.
В случае, если ни один из классификаторов не "узнает" человека, введшего учетные данные, а также в случае, если один из классификаторов "узнал" человека, не имеющего права доступа к данному компьютеру, подсистема, реализующая описанный способ, генерирует тревожный сигнал, передаваемый уполномоченным лицам, например, сотрудникам отдела информационной безопасности.
На Фиг. 8 далее будет представлена общая схема компьютерного устройства (800), обеспечивающего обработку данных, необходимую для реализации заявленного решения.
В общем случае устройство (800) содержит такие компоненты, как: один или более процессоров (801), по меньшей мере одну память (802), средство хранения данных (803), интерфейсы ввода/вывода (804), средство В/В (805), средства сетевого взаимодействия (806).
Процессор (801) устройства выполняет основные вычислительные операции, необходимые для функционирования устройства (800) или функциональности одного или более его компонентов. Процессор (801) исполняет необходимые машиночитаемые команды, содержащиеся в оперативной памяти (802).
Память (802), как правило, выполнена в виде ОЗУ и содержит необходимую программную логику, обеспечивающую требуемый функционал.
Средство хранения данных (803) может выполняться в виде HDD, SSD дисков, рейд массива, сетевого хранилища, флэш-памяти, оптических накопителей информации (CD, DVD, MD, Blue-Ray дисков) и т.п. Средство (803) позволяет выполнять долгосрочное хранение различного вида информации, например, вышеупомянутых файлов с наборами данных пользователей, базы данных, содержащих записи измеренных для каждого пользователя временных интервалов, идентификаторов пользователей и т.п.
Интерфейсы (804) представляют собой стандартные средства для подключения и работы с компьютерным устройством, например, USB, RS232, RJ45, LPT, COM, HDMI, PS/2, Lightning, Fire Wire и т.п.
Выбор интерфейсов (804) зависит от конкретного исполнения устройства (800), которое может представлять собой персональный компьютер, мейнфрейм, серверный кластер, тонкий клиент, смартфон, ноутбук, быть частью банковского терминала, банкомата и т.п.
В качестве средств В/В данных (805) в любом воплощении системы, реализующей описываемый способ, должна использоваться мышь. Аппаратное исполнение мыши может быть любым известным. Подключение мыши к компьютеру может быть, как проводным, при котором соединительный кабель мыши подключен к порту PS/2 или USB, расположенному на системном блоке настольного компьютера, так и беспроводным, при котором мышь осуществляет обмен данными по каналу беспроводной связи, например, радиоканалу, с базовой станцией, которая, в свою очередь, непосредственно подключена к системному блоку, например, к одному из USB-портов. Помимо мыши, в составе средств В/В данных также может использоваться: джойстик, дисплей (сенсорный дисплей), проектор, тачпад, клавиатура, трекбол, световое перо, динамики, микрофон и т.п.
Средства сетевого взаимодействия (806) выбираются из устройства, обеспечивающий сетевой прием и передачу данных, например, Ethernet карту, WLAN/Wi-Fi модуль, Bluetooth модуль, BLE модуль, NFC модуль, IrDa, RF1D модуль, GSM модем и т.п. С помощью средств (805) обеспечивается организация обмена данными по проводному или беспроводному каналу передачи данных, например, WAN, PAN, ЛВС (LAN), Интранет, Интернет, WLAN, WMAN или GSM.
Компоненты устройства (800) сопряжены посредством общей шины передачи данных (810).
В настоящих материалах заявки было представлено предпочтительное раскрытие осуществление заявленного технического решения, которое не должно использоваться как ограничивающее иные, частные воплощения его реализации, которые не выходят за рамки испрашиваемого объема правовой охраны и являются очевидными для специалистов в соответствующей области техники.
Изобретение относится к области вычислительной техники. Технический результат заключается в автоматической идентификации пользователя по траектории движения курсора. Способ идентификации пользователя по траектории движения курсора, заключающийся в выполнении этапов, на которых с помощью вычислительного устройства регистрируют учетные данные пользователя в системе, присваивают соответствующий учетным данным идентификатор пользователя, на протяжении всего сеанса работы идентифицированного пользователя анализируют траекторию движения курсора мыши, для каждого положения курсора мыши фиксируют вертикальную и горизонтальную координаты курсора мыши и отметку времени, сохраняют последовательность координат курсора мыши и соответствующих им отметок времени, анализируют записанную последовательность для поиска точек разбиения траектории движения курсора мыши на фрагменты, формируют список фрагментов траектории курсора во время сеанса работы данного пользователя, вычисляют для каждого фрагмента траектории курсора набор заранее определенных признаков и сохраняют вычисленные признаки в базе данных, применяют обученный по меньшей мере один классификатор для последующего подтверждения идентичности пользователя. 2 н. и 14 з.п. ф-лы, 8 ил.
1. Способ идентификации пользователя по траектории движения курсора, заключающийся в выполнении этапов, на которых с помощью вычислительного устройства:
- регистрируют учетные данные пользователя в системе;
- присваивают соответствующий учетным данным идентификатор пользователя;
- на протяжении всего сеанса работы идентифицированного пользователя анализируют траекторию движения курсора мыши, для чего:
• для каждого положения курсора мыши фиксируют вертикальную и горизонтальную координаты курсора мыши и отметку времени, когда эти координаты были зафиксированы;
• сохраняют последовательность координат курсора мыши и соответствующих им отметок времени;
• анализируют записанную последовательность для поиска точек разбиения траектории движения курсора мыши на фрагменты;
• формируют список фрагментов траектории курсора во время сеанса работы данного пользователя;
- вычисляют для каждого фрагмента траектории курсора набор заранее определенных признаков и сохраняют вычисленные признаки в базе данных;
- накапливают заданное количество сеансов работы данного пользователя, и на основе признаков, вычисленных в ходе этих сеансов работы, обучают по меньшей мере один классификатор идентифицировать данного пользователя по траектории движения курсора мыши;
- применяют обученный по меньшей мере один классификатор для последующего подтверждения идентичности пользователя, во время сеансов работы которого был обучен по меньшей мере один классификатор.
2. Способ по п. 1, характеризующийся тем, что точками разбиения траектории движения курсора мыши на фрагменты считают точки, в которых курсор находился без движения свыше заранее заданного времени.
3. Способ по п. 1, характеризующийся тем, что графический интерфейс, в котором проходят сеансы работы пользователя, предварительно делят на окна, а окна делят на зоны.
4. Способ по п. 3, характеризующийся тем, что точками разбиения траектории движения курсора мыши на фрагменты дополнительно считают точки перехода курсором мыши границы между зонами каждого окна, а также моменты смены окон графического интерфейса на дисплее пользователя.
5. Способ по п. 4, характеризующийся тем, что каждой зоне каждого окна может быть присвоен коэффициент, ассоциированный с данной зоной.
6. Способ по п. 1, характеризующийся тем, что обучают классификатор методом машинного обучения.
7. Способ по п. 6, характеризующийся тем, что классификатор может быть реализован как графовая вероятностная модель или как SVM-классификатор.
8. Способ по п. 3, характеризующийся тем, что для каждого окна обучают отдельный классификатор.
9. Способ по п. 3, характеризующийся тем, что для каждой зоны обучают отдельный классификатор.
10. Способ по пп. 6, 9, характеризующийся тем, что решение каждого классификатора домножают на постоянную величину, соответствующую коэффициенту той зоны, для которой обучен данный классификатор.
11. Способ по пп. 6, 9, 10, характеризующийся тем, что решение об идентичности или неидентичности пользователя представляет собой сумму решений всех классификаторов.
12. Система идентификации пользователя по траектории движения курсора, содержащая:
- компьютерную мышь;
- блок регистрации учетных данных пользователя в системе;
- системные часы, выполненные с возможностью фиксации времени;
- блок регистрации положения курсора мыши, выполненный с возможностью фиксировать вертикальную и горизонтальную координаты курсора мыши;
- долговременную память, выполненную с возможностью хранения базы данных;
- вычислительное устройство, выполненное с возможностью выполнения способа по любому из пп. 1-11.
13. Система по п. 12, характеризующаяся тем, что система идентификации пользователя является составной частью дистанционной системы банковского обслуживания.
14. Система по п. 12, характеризующаяся тем, что система идентификации пользователя является составной частью веб-сайта, подразумевающего авторизацию пользователей.
15. Система по п. 12, характеризующаяся тем, что система идентификации пользователя является составной частью многопользовательской компьютерной игры, подразумевающей авторизацию пользователей.
16. Система по п. 12, характеризующаяся тем, что система идентификации пользователя является составной частью программно-аппаратного комплекса для совместной работы, подразумевающего авторизацию пользователей.
Автомобиль-сани, движущиеся на полозьях посредством устанавливающихся по высоте колес с шинами | 1924 |
|
SU2017A1 |
Токарный резец | 1924 |
|
SU2016A1 |
US 8606725 B1, 10.12.2013 | |||
Способ обнаружения мошеннической активности на устройстве пользователя | 2016 |
|
RU2626337C1 |
ОБЕСПЕЧЕНИЕ ЗАЩИЩЕННОГО ВВОДА В СИСТЕМУ С ВЫСОКОНАДЕЖНОЙ СРЕДОЙ ИСПОЛНЕНИЯ ПРОГРАММ | 2004 |
|
RU2365988C2 |
Авторы
Даты
2023-03-22—Публикация
2019-03-19—Подача