Способ ввода конфиденциальных данных
METHOD OF CONFIDENTIAL DATA INPUT

Область техники
Изобретение относится к области защиты данных, а именно к способам защиты данных, вводимых пользователем на устройстве.
Уровень техники
Использование мобильных приложений для доступа к сервисам требующих ввода конфиденциальных данных приобрело массовый характер. Это происходит при оплате продуктов и услуг, при доступе к сервисам, требующим ввода регистрационных данных и т.д. При этом оплата с использованием банковских приложений применяется также и на стационарных персональных компьютерах (ПК). Результатом развития этой сферы стало появление вредоносного программного обеспечения, похищающего конфиденциальные данные пользователя, которые используются при оплате продуктов и услуг, а также при регистрации на сервисах и ресурсах в сети Интернет.
Одним из способов похищения данных, вводимых пользователем, является кража вводимых данных аутентификации и авторизации. Кража осуществляется на различных этапах, как в момент ввода, так и в момент обработки этих данных компонентами программно-аппаратной части устройства, на котором эти данные вводятся.
Для предотвращения вышеописанных действий применяются следующие решения, известные из уровня техники. Существуют способы защиты доступа к информации на мобильном устройстве, в которых символы, используемые для ввода пароля, располагаются на экране случайным образом. Подобные подходы затрудняют для стороннего человека подбор пароля с использованием следов нажатия на сенсорном экране. Существует ряд патентных публикаций, описывающих подобные методы. Так, например, в заявке US 20090038006 A1 описывается система аутентификации пользователя с помощью пароля, который может быть введен на сенсорном экране. Пользователь может выбирать символы для пароля и порядок их размещения на экране. После ввода одного или нескольких символов может происходить перемещение символов на экране. В патенте US 7698563B2 описываются система и способ для ввода паролей на дисплее банковского автомата (англ. Automated teller machine, ATM). В частности, описывается случайное распределение чисел и букв на экране. Таким образом, обеспечивается защита пароля от перехвата сторонним наблюдателем, так как каждый раз пароль вводится по-разному.
Описанные решения не позволяют гибко подстраиваться под изменяющиеся условия безопасности. Предложенное изобретение позволяет динамически изменять уровень защиты ввода данных, в зависимости от окружения.
Раскрытие изобретения
Настоящее изобретение относится к способам защиты данных, вводимых пользователем.
Технический результат настоящего изобретения заключается в повышении безопасности вводимых данных на устройстве путем использования на устройстве метода ввода, соответствующего требованиям безопасности.
Способ ввода данных в приложение, использующее методы ввода, которые обеспечивают ввод, обработку на устройстве вводимых данных на устройстве в соответствии с требованиями безопасности, в котором определяют активность приложения, связанную с запросом ввода данных, определяют требования безопасности к методам ввода, а также используют, по меньшей мере, один метод ввода, соответствующий полученным требованиям безопасности, где метод ввода, по меньшей мере, включает: устройство ввода; интерфейс передачи данных; способ хранения вводимых данных; отображение введенных данных в поле ввода.
В частном случае метод ввода дополнительно содержит тип передачи вводимых данных через сеть.
В другом частном случае метод ввода дополнительно содержит проверку кода приложения на целостность.
В частном случае дополнительно определяют требования безопасности, где в частном случае собирают информацию об окружении для определения требования безопасности к методам ввода. Информация об окружении, по меньшей мере, содержит местоположение устройства, версию прошивки устройства, а также тип и версию операционной системы.
В другом частном случае определяют требования безопасности путем получения требования безопасности от удаленного ресурса, которому передает введенные данные, а также требования безопасности могут храниьтся на устройстве
Устройством ввода может являться виртуальная клавиатура. В устройстве ввода символы могут располагаться в случайном порядке.
В частном случае интерфейс передачи данных предоставляется классами, унаследованными от классов передачи данных операционной системы Android OS.
Краткое описание чертежей
Сопровождающие чертежи включены для обеспечения дополнительного понимания изобретения и составляют часть этого описания, показывают варианты осуществления изобретения и совместно с описанием служат для объяснения принципов изобретения.
Заявленное изобретение поясняется следующими чертежами, на которых:
Фиг. 1 показывает пример реализации виртуальной клавиатуры на сенсорном экране;
Фиг. 2 показывает пример защищенного приложения на устройстве;
Фиг. 3 показывает способ формирования метода ввода при создании приложения;
Фиг. 4 показывает способ формирования метода ввода при работе приложения;
Фиг. 5 показывает пример компьютерной системы общего назначения.
Хотя изобретение может иметь различные модификации и альтернативные формы, характерные признаки, показанные в качестве примера на чертежах, будут описаны подробно. Следует понимать, однако, что цель описания заключается не в ограничении изобретения конкретным его воплощением. Наоборот, целью описания является охват всех изменений, модификаций, входящих в рамки данного изобретения, как это определено приложенной формуле.
Описание изобретения
Объекты и признаки настоящего изобретения, способы для достижения этих объектов и признаков станут очевидными посредством отсылки к примерным вариантам осуществления. Однако настоящее изобретение не ограничивается примерными вариантами осуществления, раскрытыми ниже, оно может воплощаться в различных видах. Приведенное описание предназначено для помощи специалисту в области техники для исчерпывающего понимания изобретения, которое определяется только в объеме приложенной формулы.
Предлагаемое изобретение в первую очередь определяет активность приложения. В контексте данной заявки под активностью в общем случае понимают состояния приложения, при которых приложение имеет запущенный процесс. Выделяют несколько состояний активности по отношению взаимодействия пользователя с приложением. Состояние, при котором пользователь взаимодействует с приложением, и приложение видимо пользователю, а окно данного приложения находится на переднем плане, называют работой в активном окне (англ. foreground). Подобная активность определяется разными способами, например отслеживанием сообщений (событий) в системе, которые сообщают приложению, что сейчас его окно на переднем плане (получение события WM ACTIVATE, для Windows, android.intent.action.USER_FOREGROUND для Android OS) или сообщений, которые сообщают приложению, что пользователь сейчас взаимодействует с одним из элементов интерфейса упомянутого приложения (например, пользователь установил курсор в поле ввода данных). Также определить подобную активность возможно опросом состояний запущенных процессов у менеджера активности (Activity Manager), процесс, имеющий состояние «Foreground activity», является активным процессом на переднем плане, т.е. приложение, которому принадлежит данный процесс, сейчас активно, видимо пользователю, и окно приложения находится на переднем плане.
Также выделяют другие состояния активности. Состояние, при котором активность приложения видна пользователю, но окно приложения не находится на переднем плане, называют visible активностью. Состояние, при котором активность приложения не видна пользователю, называют background активностью. В частном случае в Android OS эти состояния определяют опросом менеджера активности.
Далее, определив активность приложения, необходимо определить требования безопасности, предъявляемые к вводу данных для установленной активности. От этих требований будет зависеть, каким из методов будет осуществляться ввод. Сущность и варианты требований безопасности будут описаны ниже. Требования безопасности получают как с удаленных сетевых ресурсов 49, так и с локального устройства 20 (указано на Фиг. 2). Требования безопасности формируются как динамически, так и могут быть статическими (жестко заданными в приложении).
Метод ввода, который определяется требованиями безопасности, представляет из себя совокупность программно-аппаратных средств и их свойств, обеспечивающих ввод, обработку, передачу и вывод данных, которая включает в себя, но не ограничивается: устройствами ввода данных; полями ввода данных; интерфейсом передачи данных от устройства ввода полю ввода; способом хранения введенных данных на устройстве и приложении; способом отображения введенных данных в поле ввода; проверкой целостности приложения; интерфейсом передачи данных приложению или стороннему устройству, а также вводимыми данными.
Устройствами ввода являются клавиатуры 40, координатные устройства ввода 42 (мыши, трекболы, тачпады) (Фиг. 5), сканеры, сенсорные экраны 100 (Фиг. 1) и т.д. Устройство ввода данных, которым может являться, например, сенсорный экран 100, предназначено для ввода информации в мобильное устройство 20, а также для управления мобильным устройством через графический интерфейс. Ввод данных через сенсорный экран осуществляется при помощи виртуальной клавиатуры 110, пример реализации, которой представлен на Фиг. 1. Реализация виртуальной клавиатуры может быть различна. В качестве виртуальной клавиатуры может использоваться стандартная виртуальная клавиатура, предоставляемая операционной системой устройства по умолчанию, в частном случае универсальным интерфейсом 250 (Фиг. 2). В другом частном случае клавиатура может отличаться от стандартной клавиатуры и иметь дополнительные возможности, например такие как расширенный набор вводимых символов, переменный порядок символов, визуальные эффекты при наборе символов (или их отсутствие). Переменный порядок символов подразумевает то, что при каждом следующем отображении виртуальной клавиатуры порядок символов будет отличаться от порядка символов в предыдущем отображении. Ввод данных на виртуальной клавиатуре может сопровождаться визуальными эффектами, которые сигнализируют о нажатии некоторой клавиши. В частном случае реализации данные эффекты могут отсутствовать. Переменный порядок может быть как случайным, так и гарантируемым (предсказуемым). Специализированные реализации виртуальных клавиатур 230, в частном случае предоставляются специализированным интерфейсом 210 (Фиг. 2).
Фиг. 5 представляет пример компьютерной системы общего назначения, персональный компьютер или сервер 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, представленного на Фиг. 5. В вычислительной сети могут присутствовать также и другие устройства, например маршрутизаторы, сетевые станции, пиринговые устройства или иные сетевые узлы.
Сетевые соединения могут образовывать локальную вычислительную сеть (LAN) 50 и глобальную вычислительную сеть (WAN). Такие сети применяются в корпоративных компьютерных сетях, внутренних сетях компаний и, как правило, имеют доступ к сети Интернет. В LAN- или WAN-сетях персональный компьютер 20 подключен к локальной сети 50 через сетевой адаптер или сетевой интерфейс 51. При использовании сетей персональный компьютер 20 может использовать модем 54 или иные средства обеспечения связи с глобальной вычислительной сетью, такой как Интернет. Модем 54, который является внутренним или внешним устройством, подключен к системной шине 23 посредством последовательного порта 46. Следует уточнить, что сетевые соединения являются лишь примерными и не обязаны отображать точную конфигурацию сети, т.е. в действительности существуют иные способы установления соединения техническими средствами связи одного компьютера с другим.
Интерфейс передачи данных приложению, в частности полю ввода данных 120 от устройства ввода, или стороннему устройству, - это набор готовых классов, процедур, функций, структур и констант, предоставляемых приложению 37а (Фиг. 2) для передачи данных. Интерфейс в частном случае предоставляется операционной системой, под управлением которой работает устройство и в среде которой запущено приложение, использующее данный интерфейс. При создании приложений, использующих только интерфейс, предоставляемый операционной системой, используются непосредственно универсальные SDK (от англ. software development kit). Например, Android SDK, где SDK - это комплект средств, который позволяет специалистам по программному обеспечению создавать приложения для определенного пакета программ, программного обеспечения базовых средств разработки, аппаратной платформы, компьютерной системы, игровых консолей, операционных систем и прочих платформ. В другом частном случае интерфейс дополнительно предоставляет специализированный SDK. При этом стоит отметить, что приложение может использовать интерфейс универсальной SDK и специализированных SDK как исключительно, так и совместно. Интерфейс, предоставляемый специализированным комплектом, как правило, не поддерживается операционной системой по умолчанию, и поэтому его устанавливают на устройство дополнительно, либо включают в состав приложений, которые его используют, как это показано на Фиг. 2 на позиции 210. В частном случае специализированный интерфейс создается наследованием классов универсального интерфейса. Интерфейс передачи данных 220, в частном случае поставляется специализированным интерфейсом 210.
Способ хранения вводимых данных - это комплекс характеристик, который, по меньшей мере, подразумевает в открытом или зашифрованном виде хранятся данные на устройстве или в приложении, кодировку, в которой данные хранятся, метод сжатия данных, стойкость ключа шифрования, место хранения данных: в одном случае вводимые данные хранятся на устройстве, например в базе данных 260 в другом случае введенные данные хранятся удаленно 270.
Способ отображения введенных данных характеризует то, каким образом будут отображаться введенные данные пользователю. Введенные данные могут отображаться последовательно по мере введения, могут отображаться в случайном порядке (сначала третья буква/слово, потом первая буква/слово и т.д., пока не будет выведено все слово/предложение целиком), могут не отображаться совсем или в виде символов, отличных от введенных данных, например в виде "*".
Требования безопасности, о которых упоминалось выше, определяют, какой метод ввода используется. В частном случае требования безопасности указывают на средства и свойства этих средств, которые должны использоваться при вводе (например, средство - устройство ввода виртуальная клавиатура, а его свойства - переменный порядок символов и отсутствие визуальных эффектов). Как упоминалось, требования безопасности могут быть статическими и задаваться на этапе создания приложения (и хранится в приложении), их может быть несколько, а может быть одно. В том случае, когда требование безопасности статическое и единственное для приложения, то для приложения метод ввода будет постоянным (неизменным). Например, требование безопасности устанавливают использовать виртуальную клавиатуру с переменным порядком символов и отсутствием визуальных эффектов, ко всем остальным средствам методов ввода особых требований не предъявляется, следовательно, будут использоваться универсальные средства операционной системы. Статические требования безопасности, заданные на этапе создания приложения, зависят от многих критериев, от таких как назначение приложения (например, банковское), операционной системы, под которую создается приложение, законодательства в сфере информационной безопасности и других факторов, значение которых оказывает влияние на формирование требований безопасности. Описываемые выше требования безопасности носили конкретный характер, т.е. указывали непосредственно на средства, которые необходимо использовать при вводе. Требования безопасности могут носить в частном случае общий характер, например требования не отображать вводимые пользователем символы на экране устройства. В данном случае приложение имеет некоторую свободу в выборе средств, которые способны выполнить данное требование, в одном случае вводимые символы на экране будут заменены символом "*", в другом частном случае никакие символы не будут отображены на экране. Требования безопасности могут приходить на устройство вместе с обновлением приложения, например в случае появления новой уязвимости операционной системы, такой как возможность получения произвольным приложением координат нажатия на дисплей устройства. В этом случае на устройство или конкретному приложению придет обновление требований безопасности к методу ввода. Требование будет содержать указание обязательного использования при вводе данных специализированной виртуальной клавиатуры с переменным порядком символов, которая даже при получении координат нажатия экрана не позволит злоумышленнику определить, какой символ на виртуальной клавиатуре был нажат, т.к. по одной и той же координате при каждом случае использования клавиатуры располагаются различные символы. Стоит добавить, что дополнительно метод ввода может включать проверку части кода приложения или всего приложения в целом на целостность, т.е проверить, было ли нелегитимное изменение кода приложения, не санкционированное разработчиком. Соответственно использование проверки на целостность может содержаться в требованиях безопасности.
В частном случае требование безопасности для приложения используется единожды (например, на этапе компиляции очередной версии приложения) и метод ввода будет оставаться неизменным, соответствующим требованию безопасности, на протяжении всего времени существования версии приложения.
Выше описывались статические требования безопасности, также используют динамические требования безопасности, которые меняются в зависимости от ряда критериев. Такими критериями являются, по меньшей мере, местоположение устройства, версия прошивки устройства, тип операционной системы и ее версия, запущенные процессы на устройстве, приемник вводимых данных (например, сетевой ресурс), приложения, установленные на устройстве. Информация о критериях характеризует окружение устройства, которое имеет место быть в данный момент времени. В частном случае перед вводом данных собирают информацию об указанных выше критериях и на основании полученной информации формируют требование безопасности к методу ввода. Формирование требований безопасности осуществляют, например, при помощи базы данных, которая устанавливает ассоциации между критериями и требованиями безопасности. Пример приведен ниже,
В примере указаны требования к виртуальной клавиатуре в зависимости от прошивки устройства. Под базовой прошивкой понимается прошивка, установленная на устройство производителем, при этом устройство предназначено для максимально широкого неопределенного круга пользователей. Под специальной прошивкой понимается прошивка, которая отличается от базовой и может устанавливаться производителем и предназначаться для узкого определенного круга пользователей. В частном случае под специальной прошивкой понимается модифицированная базовая прошивка либо прошивка, не сходная с базовой и установленная устройством, но не рекомендованная производителем. Значение "0" в ячейке означает недопустимость использования, значение "1" - использование допускается. Динамические политики особенно полезны в случая вирусных эпидемий. В случае их возникновения, механизм использования динамических политик позволяет быстро внести изменения в методы ввода, что позволит защитить данные, на похищение которых нацелена конкретная модификация вируса, спровоцировавшая эпидемию.
Способы получения значений критериев различны. В одном частном случае может использоваться средство управления 240 (Фиг. 2), на устройстве 20, в частном случае средство управления 240 поставляется специализированным интерфейсом 210. Например, для определения местоположения устройства средство управления 240 получает данные от служб геолокации и средство управления в зависимости от координат установит значение критерия местоположения - дом или публичное место.
На Фиг. 3 отображен способ назначения метода ввода при создании приложения, на этапе 310 определяют, для какого из описанных состояний активностей выбирается метод ввода, в частном случае устанавливают, что метод ввода не зависит от состояния активности приложения, т.е. для каждого из состояний (описанных выше) метод ввода будет одним и тем же. Далее на этапе 320 определяют требования безопасности, на основании которых формируется метод ввода на этапе 330. Приложение, созданное таким образом, будет использовать один и тот же метод ввода для одного состояния активности, в том случае, когда метод ввода не зависит от состояний активности, метод ввода будет постоянен для всех случаев ввода в приложении.
В другом случае приложение создается таким образом, что методы ввода не задаются жестко, как в описанном выше случае. В этих случаях метод ввода формируется динамически при выполнении приложения на устройстве. Подобный способ ввода изображен на Фиг.4, где на этапе 410 определяют состояние активности приложения, в частном случае, связанную с запросом ввода данных. Определив состояние активности, на этапе 420 определяют требования безопасности к методам ввода. В частном случае требования ввода определяются не для всех, а только для определенных состояний активности, например для состояния Foreground activity (Android OS). Как описано выше, требования безопасности могут быть как статическими, так и динамически сформированными, требования безопасности могут формироваться и храниться как на устройстве, так и удаленно. Определив требования безопасности, на этапе 430 используют для ввода данных метод ввода, соответствующий полученным требованиям.
В заключение следует отметить, что приведенные в описании сведения являются примерами, которые не ограничивают объем настоящего изобретения, определенного формулой. Специалисту в данной области становится понятным, что могут существовать и другие варианты осуществления настоящего изобретения, согласующиеся с сущностью и объемом настоящего изобретения.