СИСТЕМА И СПОСОБ ЗАЩИТЫ ПЕРЕДАЧИ ДАННЫХ С УСТРОЙСТВ ВВОДА
SYSTEM AND METHOD OF PROTECTING DATA TRANSMISSION FROM INPUT DEVICES

Область техники
Изобретение относится к системам и способам защиты от несанкционированного доступа передачи данных приложениям с устройств ввода.
Уровень техники
Определим ряд основных терминов, используемых в описании:
Фреймворк для ввода текста с устройств ввода - программный интерфейс, позволяющий выполнять ввод текста, не зависящий от устройства ввода. Приложения могут получать вводимый текст, не зная о деталях реализации устройства ввода.
Текстовые сервисы - программное обеспечение, функционирующее как поставщик текста приложениям.
Менеджер фреймворка для ввода текста с устройств ввода - менеджер, функционирующий как промежуточный элемент между приложением и одним или несколькими текстовыми сервисами, управляющий текстовыми сервисами и позволяющий приложению и текстовым сервисам совместно использовать текст.
В современных операционных системах семейства Microsoft Windows данные с устройств ввода (таких как джойстик, игровой контроллер, клавиатура, мышь, планшет, сенсорный экран, тачпад, трекбол и т.д.) передаются операционной системе, которая затем, без какой-либо предварительной обработки, повышающей безопасность (например, использования шифрования, политик безопасности и т.д.), передает их приложениям. В результате такой организации работы становится возможным получение несанкционированного доступа к информации, вводимой пользователем, одним из следующих способов:
- использование WinAPI перехватчиков событий от устройств ввода;
- использование собственных драйверов устройств ввода, устанавливаемых в систему.
Описанными выше технологиями пользуются вредоносные программы - так называемые клавиатурные логгеры (trojan keyloggers). Внедрившись в операционную систему, они в реальном времени отслеживают ввод пользователя с целью кражи его конфиденциальных данных, таких как логины, пароли, номера счетов и т.д.
Частично проблема безопасности пользовательского ввода решается антивирусными программами за счет внедрения в операционную систему своего драйвер-фильтра, единолично принимающего данные напрямую от драйвера устройства и передающего их нужному приложению в обход операционной системы. Тем самым, пользовательский ввод защищается средствами антивируса от несанкционированного доступа к передаваемой информации.
Более подробно, описанная выше технология продемонстрирована на Фиг. 1, изображающей систему защищенной передачи данных от устройства ввода элементам интерфейса приложения.
Система защищенной передачи данных от устройства ввода элементам интерфейса приложения состоит из устройства ввода 110 (например, джойстика, игрового контроллера, клавиатуры, мыши, планшета, сенсорного экрана, тачпада, трекбола и т.д.), драйвера устройства ввода 120, средства обработки данных с устройства ввода 130, антивируса 140, приложения 150а (например, браузера Internet Explorer, Mozilla Firefox, Google Chrome и т.д.), группы приложений 160 и пользователя 170.
Устройство ввода 110 представляет собой периферическое оборудование для занесения данных или сигналов в компьютер либо другое электронное устройство во время его работы.
Устройство ввода 110 передает действие пользователя (такие как движение мышкой, нажатие клавиш на клавиатуре, клик по области сенсорного экрана и т.д.) в виде сигнала в компьютер, где он будет интерпретирован драйвером устройства ввода 120 в понятные операционной системе данные.
Драйвер устройства ввода 120 представляет собой компонент операционной системы и предназначен для получения от устройства ввода 110 сигнала, обработки и интерпретации его и передачи в виде данных (например, скан-коды нажатых на клавиатуре клавиш, смещение позиции мыши, координаты светового пера и т.д.), понятных операционной системе для дальнейшего использования драйвер-фильтру антивируса 141 или, в случае, когда драйвер-фильтр в системе не установлен, средству обработки данных с устройства ввода 130.
Средство обработки данных с устройства ввода 130 представляет собой компонент операционной системы и предназначено для получения от драйвера устройства ввода 120, драйвер-фильтра 141 или средства работы с приложениями 142 антивируса 140 данных операционной системе, организации и обслуживания очереди из приложений 160 на последовательное предоставления им данных от устройств.
Антивирус 140 представляет собой программное обеспечение для обнаружения вредоносного программного обеспечения и восстановления модифицированных такими программами файлов, а также для профилактики - предотвращения модификации файлов или операционной системы вредоносным кодом.
Антивирус 140 включает в себя драйвер-фильтр 141 и средство работы с приложениями 142.
Драйвер-фильтр 141 представляет собой компонент антивируса 140 и предназначен для перехвата от драйвера устройства ввода 120 данных операционной системе и, в зависимости от режима работы антивируса 140, передачи их дальше только средству работы с приложениями 142, или же только средству обработки данных с устройства ввода 130, или же и тому и другому средству одновременно.
Средство работы с приложениями 142 представляет собой компонент антивируса 140 и предназначено для приема данных от драйвер-фильтра 141, определении какому приложению или какому элементу приложения (например, полю ввода браузера) эти данные предназначены, подготовке данных и передаче их, как это сделала бы операционная система, требуемому приложению 150а (например, браузеру), в случае, если приложение входит в список приложений, чей ввод защищается антивирусом 140, или передачи данных средству обработки данных с устройства ввода 130, если приложение в список не входит.
Приложение 150а представляет собой программное обеспечение для выполнения определенных пользовательских задач и рассчитано на непосредственное взаимодействие с пользователем. В частном случае, в качестве приложения 150а может выступать браузер (например, Microsoft Internet Explorer, Mozilla Firefox, Google Chrome) - специализированное программное обеспечение для просмотра веб-сайтов, т.е. для запроса веб-страниц, их обработки, вывода и перехода от одной страницы к другой.
Приложение 150а включает в себя средство работы с антивирусом 151 и средство отображения пользовательского интерфейса 152.
Средство работы с антивирусом 151 представляет собой компонент антивируса 140, подключенный к приложению 150а в качестве плагина и предназначен для получения данных от средства работы с приложениями 142 антивирусу 140, обработки их и передачи средству отображения пользовательского интерфейса 152.
Средство отображения пользовательского интерфейса 152 представляет собой компонент приложения 150а и предназначено для отображения разнообразных элементов интерфейса (таких как кнопки, поля ввода и т.д.) в окне приложения.
Приложения 160 представляют собой совокупность всех доступных, т.е. активных программ, находящихся в оперативной памяти, предназначенных для выполнения определенных пользовательских задач и рассчитанных на непосредственное взаимодействие с пользователем 170.
Пользователь 170 является человеком, взаимодействующим с приложением 150а посредством получения (например, визуального) данных от средства отображения пользовательского интерфейса 152 и манипулирующим (внесения, изменения и т.д.) подобными данными посредством использования устройства ввода 110.
Работа системы защищенной передачи данных от устройства ввода, такого как клавиатура, элементам ввода приложения, такого как браузер, выглядит следующим образом:
Пользователь 170 через браузер 150а зашел, например, на сайт своего банка, и в поле ввода вводит конфиденциальную информацию. При нажатии кнопок на клавиатуре 110, сигналы от последней поступают в компьютер драйверу клавиатуры 120. Драйвер клавиатуры 120 интерпретирует их в виде данных, понятных операционной системе (например, скан-кода клавиши и тип состояния нажата/отжата), и передает их драйвер-фильтру 141. Драйвер-фильтр 141 антивируса 140 перехватывает данные от драйвера клавиатуры 120 и передает их в зависимости от режима работы антивируса 140 средству работы с приложениями 142 или средству обработки данных с устройства ввода 130. Средство работы с приложениями 142 получает данные от драйвер-фильтра 141, проверяет предназначены ли данные браузеру 150а и передает их в обход операционной системы средству работы с антивирусом 151 браузера 150а или же средству обработки данных с устройства ввода 130, если они предназначены другому приложению 160. Средство работы с антивирусом 151 принимает данные от средства работы с приложениями 142, обрабатывает (например, формирует текст из последовательности полученных символов) и передает их средству отображения пользовательского интерфейса 152 для корректного отображения в браузере 150а. Средство отображения пользовательского интерфейса 152 получает данные, которые необходимо отобразить от средства работы с антивирусом 151, обрабатывает их (например, переводит весь текст в верхний регистр, разбивает текст на группы слов и т.д.) и отображает в браузере (например, на странице отображаемого сайта) для визуального считывания их пользователем 170.
При выполнении всей цепочки операций от нажатия пользователем кнопки на клавиатуре до вывода символа в поле ввода на странице сайта в браузере данные (т.е. идентификатор и состояние кнопки) являются защищенными от несанкционированного доступа стороннего программного обеспечения. Поскольку драйвер-фильтр 141 антивируса 140 перехватывает данные напрямую от драйвера устройства ввода 120 (это связано с тем, что драйвер-фильтр зарегистрирован в системе сразу после драйвера устройства ввода), то вредоносное программное обеспечение не может получить данные от устройства ввода 110 на этом этапе, а поскольку антивирус 140 защищает свои потоки данных от вмешательства извне, то невозможен перехват данных как внутри самого антивируса 140, так и на этапе от антивируса 140 до браузера 150а.
Недостатком данной схемы работы является то, что она исключает возможность корректного ввода текстов на восточно-азиатских языках или текстов из систем рукописного или голосового ввода. Одним из таких примеров служит набор текста с использованием китайских иероглифов. Поскольку с клавиатуры иероглифы не могут быть введены напрямую, операционная система Microsoft Windows предоставляет ряд возможностей по составлению иероглифов путем набора некоторой последовательности символов, связанных с иероглифом и последующего выбора подходящего иероглифа из списка.
При использовании описанной выше технологии защиты данных при попытке ввести китайский иероглиф в поле ввода будет отображен лишь набор символов, из которых операционная система попыталась бы сформировать иероглиф, но поскольку ввод данных был осуществлен в обход операционной системы, этого не произошло.
Другой способ частичного решения проблемы безопасности пользовательского ввода был реализован в операционных системах Microsoft Windows, начиная с Microsoft Windows 2000 с введением TSF (Text Services Framework) - фреймворка, позволяющего выполнять ввод текста, не зависящего от языка и устройства ввода. При использовании TSF приложения могут получать вводимый текст, не зная о деталях реализации устройства ввода (например, с помощью распознавания речи или рукописного ввода). Технология TSF обеспечивает безопасность передачи данных от менеджера TSF приложению, использующему TSF.
Более подробно, описанная выше технология продемонстрирована на Фиг. 2, отображающей систему защищенной передачи данных от устройства ввода элементам интерфейса приложения.
Система защищенной передачи данных от устройства ввода элементам интерфейса приложения состоит из устройства ввода 110 (например, джойстика, игрового контроллера, клавиатуры, мыши, планшета, сенсорного экрана, тачпада, трекбола и т.д.), драйвера устройства ввода 120, средства обработки данных с устройства ввода 130, менеджера TSF 210, приложения 150b (например, браузера Internet Explorer, Mozilla Firefox, Google Chrome и т.д.) и пользователя 170.
Менеджер TSF 210 представляет собой компонент операционной системы и предназначен для получения данных от средства обработки данных с устройства ввода 130, их обработки (например, при вводе китайских иероглифов, определение возможных вариантов китайских иероглифов, предоставления пользователю интерфейса для их выбора или редактирования и преобразования ввода в UNICODE символ соответствующего иероглифа) и передачи результата по защищенному каналу приложению 150b.
Приложение 150b включает в себя средство отображения пользовательского интерфейса 152.
Работа системы защищенной передачи данных от устройства ввода, например, такого как клавиатура, элементам ввода приложения, например, такого как браузер, выглядит следующим образом:
Пользователь 170 через браузер 150b зашел, например, на сайт своего банка, и в поле ввода вводит конфиденциальную информацию. При нажатии кнопок на клавиатуре 110, сигналы от последней поступают в компьютер драйверу клавиатуры 120. Драйвер клавиатуры 120 интерпретирует их в виде понятных операционной системе команд и передает средству обработки данных с устройства ввода 130. Средство обработки данных с устройства ввода 130 на основе сформированной очереди приложений, ожидающих ввода данных, передает данные менеджеру TSF 210 (в случае если соответствующее приложение в очереди поддерживает данную технологию). Менеджер TSF 210 определяет, какой именно тип данных требуется (например, китайские иероглифы), в зависимости от этого обрабатывает полученные данные и преобразует в соответствующий вид, по необходимости предоставляя пользователю интерфейс для манипуляции данными (например, выбора какой именно иероглиф был введен), определяет какому именно компоненту интерфейса браузера 150b обработанные данные предназначены (например, пользователь вводит текст в поле ввода на странице сайта) и передает их средству отображения пользовательского интерфейса 152 для корректного отображения в браузере 150b. Средство отображения пользовательского интерфейса 152 получает данные, которые необходимо отобразить от менеджера TSF 210, обрабатывает их и отображает в браузере (например, на странице отображаемого сайта).
Такая схема работы обеспечивает безопасную передачу данных от менеджера TSF приложению, т.е. вредоносная программа не может получить к ним доступ (это объясняется особенностью работы TSF). Тем не менее, передача данных от устройства ввода до менеджера TSF остается уязвимой для несанкционированного доступа.
В публикации US 7024546B2 описана возможность ввода текста с использованием разнообразных языков, включая азиатские, но никак не решается ситуация с защитой от несанкционированного доступа к данным.
В публикации WO 1998044411 А1 описана работа с виртуальными машинами и использованием технологии Microsoft IME для ввода сложных текстов (таких как азиатских) на виртуальных машинах. Тем не менее, вопрос безопасности данных от несанкционированного доступа также не рассмотрен, за исключением технологии защиты виртуальной среды как таковой.
Хотя рассмотренные выше подходы направлены на решение определенных задач в области защиты данных, получаемых от устройств ввода, они обладают рядом недостатков - невозможностью обрабатывать нестандартные данные (например, ввод азиатских иероглифов) при надежном канале передачи данных или же ненадежностью канала передачи данных при полной поддержке ввода нестандартных данных. Настоящее изобретение позволяет более эффективно решить задачу защиты данных, получаемых от устройств ввода.
Раскрытие изобретения
Изобретение предназначено для защиты от несанкционированного доступа данных, получаемых от устройств ввода и передаваемых приложениям для дальнейшей обработки (в частности, для отображения в полях ввода и т.д.).
Технический результат настоящего изобретения заключается в обеспечении безопасности передачи данных от устройств ввода приложениям.
Система передачи данных от устройств ввода средствам приложения, которая содержит: драйвер-фильтр, являющийся компонентом антивируса, предназначенный для перехвата от драйвера устройства ввода данных операционной системе и последующей передачи их средству работы с приложениями с целью предотвращения получения этих данных другими приложениями, средство внедрения кода в приложение, представляющее собой компонент антивируса и предназначенное для внедрения в приложение средства взаимодействия антивируса с фреймворком для ввода текста с устройств ввода, средство работы с приложениями, представляющее собой компонент антивируса и предназначенное для приема данных от драйвер-фильтра, преобразования данных на основании настроек операционной системы в вид, доступный для обработки средством взаимодействия антивируса с фреймворком для ввода текста с устройств ввода, определения, готово ли средство взаимодействия антивируса с фреймворком для ввода текста с устройств ввода обработать данные, полученные от средства работы с приложениями, и передачи их требуемому приложению через средство взаимодействия антивируса с фреймворком для ввода текста с устройств ввода, средство взаимодействия антивируса с фреймворком для ввода текста с устройств ввода, представляющее собой компонент антивируса, внедренный в приложение и предназначенное для получения данных от средства работы с приложениями, определения элементов интерфейса приложения, для которых предназначены данные от устройства ввода и последующей передачи результата последним.
В другом частном случае реализации системы перехваченные драйвер-фильтром данные включают, по крайней мере, такие параметры, как скан-коды нажатых на клавиатуре клавиш, смещение позиции мыши, координаты светового пера.
Еще в одном частном случае реализации системы средство взаимодействия антивируса с фреймворком для ввода текста с устройств ввода внедряется в приложение по меньшей мере одним из следующих способов: как плагин, посредством использования средств межпроцессного взаимодействия, через внедрение в поток средства отображения пользовательского интерфейса.
В другом частном случае реализации системы в качестве настроек операционной системы выступает по крайней мере одно из следующих свойств: выбранный язык ввода текста, выбранный формат ввода текста.
Способ передачи данных от устройств ввода элементам интерфейса приложения, в котором: внедряют в приложение средство взаимодействия антивируса с фреймворком для ввода текста с устройств ввода, перехватывают с помощью драйвер-фильтра антивируса данные от устройства ввода, преобразуют на основании настроек операционной системы данные, полученные от драйвер-фильтра, в вид, доступный для обработки средством взаимодействия антивируса с фреймворком для ввода текста с устройств ввода, передают преобразованные данные, полученные от драйвер-фильтра антивируса, средству взаимодействия антивируса с фреймворком для ввода текста с устройств, определяют элементы интерфейса приложения, для которых предназначены данные от устройств ввода, передают преобразованные данные элементам интерфейса приложения.
В другом частном случае реализации способа перехваченные драйвер-фильтром данные включают, по крайней мере, такие параметры, как скан-коды нажатых на клавиатуре клавиш, смещение позиции мыши, координаты светового пера.
Еще в одном частном случае реализации способа внедряют в приложение средство взаимодействия антивируса с фреймворком для ввода текста с устройств ввода одним из следующих способов: как плагин, посредством использования средств межпроцессного взаимодействия, через внедрение в поток средства отображения пользовательского интерфейса.
В другом частном случае реализации способа в качестве настроек операционной системы выступает по крайней мере одно из следующих свойств: выбранный язык ввода текста, выбранный формат ввода текста.
Краткое описание чертежей
Фиг. 1 представляет структурную схему системы безопасной передачи данных от устройств ввода приложению с использованием драйвер-фильтра антивирусного продукта.
Фиг. 2 представляет структурную схему системы безопасной передачи данных от устройств ввода браузеру с использованием технологии TSF.
Фиг. 3 представляет структурную схему системы безопасной передачи данных от устройств ввода приложению с использованием драйвер-фильтра антивирусного продукта и технологии TSF.
Фиг. 4 представляет пример компьютерной системы общего назначения, персональный компьютер или сервер, в рамках которого может быть реализовано настоящее изобретение.
Хотя изобретение может иметь различные модификации и альтернативные формы, характерные признаки, показанные в качестве примера на чертежах, будут описаны подробно. Следует понимать, однако, что цель описания заключается не в ограничении изобретения конкретным его воплощением. Наоборот, целью описания является охват всех изменений, модификаций, входящих в рамки данного изобретения, как это определено в приложенной формуле.
Описание вариантов осуществления изобретения
Объекты и признаки настоящего изобретения, способы для достижения этих объектов и признаков станут очевидными посредством отсылки к примерным вариантам осуществления. Однако настоящее изобретение не ограничивается примерными вариантами осуществления, раскрытыми ниже, оно может воплощаться в различных видах. Сущность, приведенная в описании, является ничем иным, как конкретными деталями, необходимыми для помощи специалисту в области техники в исчерпывающем понимании изобретения, и настоящее изобретение определяется в объеме приложенной формулы.
Фиг. 3 представляет структурную схему системы безопасной передачи данных от устройств ввода приложению с использованием драйвер-фильтра антивирусного продукта и технологии TSF.
Структурная схема системы безопасной передачи данных от устройства ввода приложению с использованием драйвер-фильтра антивирусного продукта и технологии TSF состоит из устройства ввода 110 (например, джойстика, игрового контроллера, клавиатуры, мыши, планшета, сенсорного экрана, тачпада, трекбола и т.д.), драйвер устройства ввода 120, средства обработки данных с устройства ввода 130, антивируса 140, приложения 150 с (например, браузера Internet Explorer, Mozilla Firefox, Google Chrome и т.д.), группы приложений 160, пользователя 170 и менеджера TSF 210.
Антивирус 140 включает в себя драйвер-фильтр 141, средство работы с приложениями 142 и средство внедрения кода в приложение 143.
Средство внедрения кода в приложение 143 предназначено для внедрения компонент антивируса, таких как средство работы антивирусом 151 и средство работы с TSF 153 в приложение 150 с одним из следующих способов:
- как плагин;
- посредством использования средств межпроцессного взаимодействия;
- через внедрение в поток средства отображения пользовательского интерфейса 152.
Приложение 150 с включает в себя средство отображения пользовательского интерфейса 152 и средство взаимодействия антивируса с TSF 310.
Средство взаимодействия антивируса с TSF 310 включают в себя средство работы с антивирусом 151 и средство работы с TSF 153.
Средство взаимодействия антивируса с TSF 310 предназначено для взаимодействия антивируса с менеджером TSF 210, обработки данных и передачи результатов средству отображения пользовательского интерфейса 152 приложению 150 с. В время обработки данных выполняются следующие действия:
- происходит обращение к менеджеру TSF 210 с целью определить, готов ли он обработать полученные от устройства ввода данные.
Работа системы защищенной передачи данных от устройства ввода, такого как клавиатура, элементам ввода приложения, такого как браузер, выглядит следующим образом:
При запуске приложения 150 с средство внедрения кода в приложение 143 антивируса 140 внедряет средство взаимодействия антивируса с TSF 310 (или его части, такие как средство работы с антивирусом 151 и средство работы с TSF 153) в данное приложение (например, средство работы с антивирусом 151 подключается к приложению, такому как браузер, в качестве плагина, а средство работы с TSF 153 внедряется в поток средства отображения пользовательского интерфейса 152).
Пользователь 170 через браузер 150 с зашел, например, на сайт своего банка, и в поле ввода вводит конфиденциальную информацию. При нажатии кнопок на клавиатуре 110, сигналы от последней поступают в компьютер драйверу клавиатуры 120. Драйвер клавиатуры 120 интерпретирует их в виде понятных операционной системе данных (например, скан-коды нажатых на клавиатуре клавиш, смещение позиции мыши, координаты светового пера и т.д.) и передает драйвер-фильтру 141 код клавиши и ее состояние (нажата или отпущена). Драйвер-фильтр 141 антивируса 140 получает данные от драйвера клавиатуры 120 и передает их в зависимости от режима работы антивируса 140 средству работы с приложениями 142 или средству обработки данных с устройства ввода 130. Средство работы с приложениями 142 получает данные от драйвер-фильтра 141, проверяет предназначены ли данные браузеру 150 с и передает их в обход операционной системы средству работы с антивирусом 151 средства взаимодействия антивируса с TSF 310 или же, если они предназначены другому приложению 160, средству обработки данных с устройства ввода 130. Средство работы с антивирусом 151 принимает данные от средства работы с приложениями 142, обрабатывает (например, формирует текст из последовательности полученных символов) и передает их средству работы с TSF 153. Средство работы с TSF 153 передает данные менеджеру TSF 210 для обработки, затем получает от него обработанную информацию и передает ее средству отображения пользовательского интерфейса 152 для корректного отображения в браузере 150с. Менеджер TSF 210 определяет, какой именно тип данных требуется (например, китайские иероглифы), в зависимости от этого обрабатывает полученные данные и преобразует в соответствующий вид, по необходимости предоставляя пользователю интерфейс для манипуляции данными (например, выбора какой именно иероглиф был введен) и передает обработанные данные обратно средству работы с TSF 153. Средство отображения пользовательского интерфейса 152 получает данные, которые необходимо отобразить от средства работы с антивирусом 151, обрабатывает их и отображает в браузере (например, на странице отображаемого сайта).
Поскольку во многих приложениях плагины и средства отображения интерфейса запускаются в отдельных потоках (или даже процессах), а также из-за того, что взаимодействие с менеджером TSF 210 может осуществляться только в рамках одного потока, средство работы с TSF 153 должно работать в том же потоке, что и средство отображения пользовательского интерфейса 152. В частном случае, когда средство работы с TSF 153 является внешним компонентом и не может быть подключено к браузеру в качестве плагина, его внедрение в браузер может быть осуществлено другим способом, например, с использованием средств межпроцессного взаимодействия (таких как обмен сообщениями, сигналы, сокеты, именные каналы и т.д.) или инжектом кода работы с TSF в процесс средства отображения пользовательского интерфейса 152.
В результате такой схемы работы обеспечивается защита от несанкционированного доступа к пользовательским данным на всем маршруте от устройства ввода до средства отображения пользовательского интерфейса, а также корректная интерпретация пользовательского ввода в случае использования текстов на восточно-азиатских языках или текстов из систем рукописного или голосового ввода.
Рассмотрим частный случай работы, описанной выше, технологии:
Пользователь 170, пользуясь браузером Google Chrome 150с, зашел на страницу своего банка и вводит в поле ввода информацию о реквизитах своей кредитной карты с целью осуществить перевод денег. Данная информация является конфиденциальной, и ее кража (например, с помощью программ клавиатурных шпионов) способна привести к значительным финансовым потерям пользователя 170. При нажатии клавиш на клавиатуре 110, сигналы поступают в персональный компьютер пользователя 170, принимаются драйвером клавиатуры 120 и интерпретируются в данные, содержащие скан-код клавиши и ее флаг состояния - нажата или отжата. Драйвер клавиатуры 120 передает полученные данные дальше по стеку драйверов, где они перехватываются драйвер-фильтром 141 антивируса Kaspersky Internet Security 140. В зависимости от того, в каком режиме работает антивирус 140, перехваченные драйвер-фильтром данные поступают для дальнейшей обработки средству работы с приложениями 142, дальше в пул драйверов (являющийся реализацией средства обработки данных с устройства ввода 130) или обоим средствам одновременно. В случае, когда пользователь работает с банковской страницей, данные будут переданы только первому средству, чтобы исключить шанс их кражи. Средство работы с приложениями 142 передает данные средству работы с антивирусом 151, представляющему собой плагин браузера Google Chrome. Средство работы с антивирусом 151 по полученным от средства работы с приложениями 142 антивируса 140 данным формирует предварительный текст, используя сохраненные состояния клавиш (например, была зажата клавиша Shift, нажат Caps Lock и т.д.), и передает его средствами межпроцессного взаимодействия средству работы с TSF 153. Так как плагины в Google Chrome работают в отдельных процессах, нежели средство отображения пользовательского интерфейса 152, а менеджер TSF 210, из-за своей специфики, должен работать в том же процессе, что и средство отображения пользовательского интерфейса 152, то средство работы с TSF 153 не может быть реализовано как часть функционала плагина 151. Поэтому оно представляет собой независимый модуль, инжектируемый антивирусом 140 в тот же процесс браузера Google Chrome, в котором работает средство отображения пользовательского интерфейса 152. Средство работы с TSF 153 запрашивает у менеджера TSF 210 возможно ли обработать предоставляемые данные средствами TSF. Если такая возможность отсутствует, то данные обрабатываются средством работы с антивирусом 151, формируется текст и передается средству отображения пользовательского интерфейса 152, которое выводит полученный текст в соответствующее поле ввода страницы. Если же менеджер TSF 210 способен обработать предоставляемые ему данные, то средство работы с TSF 153 отправляет эти данные менеджеру TSF 210 на обработку, получает результат обработки, представляющие собой текст (например, в кодировке UTF32) и передает его через средство работы с антивирусом 151 средству отображения пользовательского интерфейса 152, которое в свою очередь выводит полученный текст в соответствующее поле ввода страницы.
Рассмотрим еще один частный случай работы:
Пользователь 170 вводит с графического планшета 110 с помощью стилуса конфиденциальную информацию в поле ввода приложения онлайн банкинга (англ. online banking) 150 с.Сигналы о перемещении стилуса поступают на персональный компьютер пользователя 170, принимаются драйвером графического планшета 120 и интерпретируются в данные, содержащие координаты позиции стилуса. Драйвер графического планшета 120 передает полученные данные дальше по стеку драйверов, где они перехватываются драйвер-фильтром 141 антивируса Kaspersky Internet Security 140. В зависимости от того, в каком режиме работает антивирус 140, перехваченные драйвер-фильтром данные поступают для дальнейшей обработки средству работы с приложениями 142, дальше в пул драйверов (являющийся реализацией средства обработки данных с устройства ввода 130) или обоим средствам одновременно. Средство работы с приложениями 142 передает полученные данные средству взаимодействия антивируса с TSF 310. Поскольку приложение онлайн банкинга 150с не имеет возможности подключения плагина, то средство работы с антивирусом 151 и средство работы с TSF 153 реализованы в рамках одного модуля - средства взаимодействия антивируса с TSF 310, которое, свою очередь, внедрено методом инжекта в приложение онлайн банкинга 150с. Так как менеджер TSF 210, из-за своей специфики, должен работать в том же процессе, что и средство отображения пользовательского интерфейса 152, то и средство взаимодействия антивируса с TSF 310 так же должно работать в том же процессе. Поэтому оно представляет собой модуль, инжектируемый антивирусом 140 в тот же процесс приложения онлайн банкинга, в котором работает средство отображения пользовательского интерфейса 152. Средство работы с TSF 153 запрашивает у менеджера TSF 210 возможно ли обработать предоставляемые данные средствами TSF. Если менеджер TSF 210 способен обработать предоставляемые ему данные, то средство работы с TSF 153 отправляет эти данные менеджеру TSF 210 на обработку, получает результат обработки, представляющие собой текст (например, в кодировке UTF32) и передает его через средство работы с антивирусом 151 средству отображения пользовательского интерфейса 152, которое в свою очередь выводит полученный текст в соответствующее поле ввода приложения.
Фиг. 4 представляет пример компьютерной системы общего назначения, персональный компьютер или сервер 20, содержащий центральный процессор 21, системную память 22 и системную шину 23, которая содержит разные системные компоненты, в том числе память, связанную с центральным процессором 21. Системная шина 23 реализована, как любая известная из уровня техники шинная структура, содержащая в свою очередь память шины или контроллер памяти шины, периферийную шину и локальную шину, которая способна взаимодействовать с любой другой шинной архитектурой. Системная память содержит постоянное запоминающее устройство (ПЗУ) 24, память с произвольным доступом (ОЗУ) 25. Основная система ввода/вывода (BIOS) 26, содержит основные процедуры, которые обеспечивают передачу информации между элементами персонального компьютера 20, например, в момент загрузки операционной системы с использованием ПЗУ 24.
Персональный компьютер 20 в свою очередь содержит жесткий диск 27 для чтения и записи данных, привод магнитных дисков 28 для чтения и записи на сменные магнитные диски 29 и оптический привод 30 для чтения и записи на сменные оптические диски 31, такие как CD-ROM, DVD-ROM и иные оптические носители информации. Жесткий диск 27, привод магнитных дисков 28, оптический привод 30 соединены с системной шиной 23 через интерфейс жесткого диска 32, интерфейс магнитных дисков 33 и интерфейс оптического привода 34 соответственно. Приводы и соответствующие компьютерные носители информации представляют собой энергонезависимые средства хранения компьютерных инструкций, структур данных, программных модулей и прочих данных персонального компьютера 20.
Настоящее описание раскрывает реализацию системы, которая использует жесткий диск 27, сменный магнитный диск 29 и сменный оптический диск 31, но следует понимать, что возможно применение иных типов компьютерных носителей информации 56, которые способны хранить данные в доступной для чтения компьютером форме (твердотельные накопители, флеш карты памяти, цифровые диски, память с произвольным доступом (ОЗУ) и т.п.), которые подключены к системной шине 23 через контроллер 55.
Компьютер 20 имеет файловую систему 36, где хранится записанная операционная система 35, а также дополнительные программные приложения 37, другие программные модули 38 и данные программ 39. Пользователь имеет возможность вводить команды и информацию в персональный компьютер 20 посредством устройств ввода (клавиатуры 40, манипулятора «мышь» 42). Могут использоваться другие устройства ввода (не отображены): микрофон, джойстик, игровая консоль, сканнер и т.п. Подобные устройства ввода по своему обычаю подключают к компьютерной системе 20 через последовательный порт 46, который в свою очередь подсоединен к системной шине, но могут быть подключены иным способом, например, при помощи параллельного порта, игрового порта или универсальной последовательной шины (USB). Монитор 47 или иной тип устройства отображения также подсоединен к системной шине 23 через интерфейс, такой как видеоадаптер 48. В дополнение к монитору 47, персональный компьютер может быть оснащен другими периферийными устройствами вывода (не отображены), например, колонками, принтером и т.п.
Персональный компьютер 20 способен работать в сетевом окружении, при этом используется сетевое соединение с другим или несколькими удаленными компьютерами 49. Удаленный компьютер (или компьютеры) 49 являются такими же персональными компьютерами или серверами, которые имеют большинство или все упомянутые элементы, отмеченные ранее при описании существа персонального компьютера 20, представленного на Фиг. 3. В вычислительной сети могут присутствовать также и другие устройства, например, маршрутизаторы, сетевые станции, пиринговые устройства или иные сетевые узлы.
Сетевые соединения могут образовывать локальную вычислительную сеть (LAN) 50 и глобальную вычислительную сеть (WAN). Такие сети применяются в корпоративных компьютерных сетях, внутренних сетях компаний и, как правило, имеют доступ к сети Интернет. В LAN- или WAN-сетях персональный компьютер 20 подключен к локальной сети 50 через сетевой адаптер или сетевой интерфейс 51. При использовании сетей персональный компьютер 20 может использовать модем 54 или иные средства обеспечения связи с глобальной вычислительной сетью, такой как Интернет. Модем 54, который является внутренним или внешним устройством, подключен к системной шине 23 посредством последовательного порта 46. Следует уточнить, что сетевые соединения являются лишь примерными и не обязаны отображать точную конфигурацию сети, т.е. в действительности существуют иные способы установления соединения техническими средствами связи одного компьютера с другим.
В заключение следует отметить, что приведенные в описании сведения являются примерами, которые не ограничивают объем настоящего изобретения, определенного формулой.