СПОСОБ И СЕРВЕР ДЛЯ ВЬПОЛНЕНИЯ АВТОРИЗАЦИИ ПРИЛОЖЕНИЯ НА ЭЛЕКТРОННОМ УСТРОЙСТВЕ
METHOD AND SERVER FOR EXECUTING AUTHORIZATION OF APPLICATION ON ELECTRONIC DEVICE

ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕ
[001] Настоящая технология относится к аутентификации электронного устройства в целом, и, конкретнее, к способу и серверу для выполнения авторизации приложения на электронном устройстве.
УРОВЕНЬ ТЕХНИКИ
[002] В современных компьютерных технологиях существует несколько способов авторизации пользователей/устройств. В широком смысле, задачей способа аутентификации является подтверждение личности пользователя или подлинности устройства, которые пытаются получить доступ к локальному или сетевому ресурсу. Например, распространенным способом аутентификации пользователя компьютерного устройства является запрос учетных данных от пользователя. Учетные данные могут быть предоставлены в форме сочетания имени пользователя и пароля, биометрических данных (отпечатков пальцев, голосового образца и т.д.), машиночитаемого устройства, цифрового сертификата и так далее. Также, часто для аутентификации пользователя, который пытается получить доступ к сетевому ресурсу или сетевому сервису, используются аутентификационные учетные данные пользователя (опять же, в форме сочетания имени пользователя и пароля, цифрового сертификата, ответа на специфические вопросы и так далее). Вне зависимости от того, по какой причине нужно идентифицировать пользователя (т.е. для доступа к локальному устройству или удаленному сетевому ресурсу), предоставленные учетные данные пользователя сравниваются с заранее сохраненными авторизованными учетными данными и, в зависимости от результата сравнения, пользователю предоставляется или не предоставляется доступ к запрошенному устройству или ресурсу.
[003] Также известен способ использования приложения(й) для авторизации на клиентских устройствах. Например, когда пользователь скачивает (или иным способом получает на машиночитаемый носитель или т.д.) приложение, использование которого регулируется лицензией, пользователю обычно требуется авторизовать версию приложения. Для аутентификации пользователь обычно вводит уникальный ключ приложения. Уникальный ключ приложения обычно предоставляется пользователю как часть оберточной лицензии (в случае, если приложение было куплено на машиночитаемый носитель) или как часть товарного чека (если приложение было скачано онлайн). Во время процесса установки пользователь вводит уникальный ключ приложения, который сравнивается с сетевой базой данных уникальных ключей приложений для проверки того, что пользователь действительно приобрел лицензию на использование приложения.
[004] Патентная заявка US 8,332,647 описывает систему и способ для динамической аутентификации, учитывающей множество признаков. В конкретном варианте осуществления технологии, способ аутентификации включает в себя получение, на вебсервер аутентификации, запроса на аутентификацию, который содержит сообщение рабочей станции и сообщение пользователя, причем сообщение рабочей станции включает в себя объект рабочей станции и подпись рабочей станции, объект рабочей станции включает в себя сертификат рабочей станции, связанный с рабочей станцией, сообщение пользователя включает в себя объект пользователя и подпись пользователя, и объект пользователя включает в себя копию сообщения рабочей станции и сертификат пользователя, связанный с пользователем рабочей станции. Способ далее включает в себя сравнение подписи рабочей станции и подписи пользователя, сравнение сертификата рабочей станции и сертификата пользователя, получение одного или нескольких предупреждений, связанных с рабочей станцией, и одного или нескольких предупреждений, связанных с пользователей, и определение одного или нескольких предупреждений, связанных как с рабочей станцией, так и с предупреждением.
[005] Патентная заявка US 8,756,661 описывает систему динамической аутентификации, которая делает аутентификацию более надежной, одновременно снижая расходы компаний и улучшая опыт для пользователей. Система включает в себя сервис, который предоставляет централизованную, неинтегрированную, проксированную аутентификацию. Система использует двухуровневый процесс аутентификации, который сначала получает предполагаемую личность пользователя, и далее определяет один или несколько критериев аутентификации для проверки предполагаемой личности. Когда пользователь пытается использовать онлайн сервис, который опирается на систему динамической аутентификации, сервис запрашивает личность пользователя. Система динамически определяет критерии аутентификации для пользователя, которые доказывают, что предоставленные данные о личности действительно принадлежат пользователю. На втором этапе, сервис получает ответ от пользователя, содержащий дополнительную информацию для аутентификации, и передает полученный ответ системе проверки. Если проверка завершается успешно, то пользователю предоставляется доступ к запрошенным ресурсам.
[006] Патентная заявка US 8,959,659 описывает систему авторизации программного обеспечения, которая обладает двумя сторонами - сервера и пользователя. Способ авторизации программного обеспечения включает в себя получение идентификационного кода от защищенного программного обеспечения, когда со стороны пользователя происходит скачивание защищенного программного обеспечения со стороны сервера; передачу кода идентификации программного обеспечения и присущего кода идентификации пользователя на сторону сервера; получение первого ключа и главного ключа стороной сервера в соответствии с кодом идентификации пользователя и кодом идентификации программного обеспечения соответственно, для создания второго ключа с использованием главного ключа и первого ключа, и передачу второго ключа стороне пользователя; сохранение главного ключа стороной пользователя со вторым ключом, совмещенным с первым ключом; и расшифровку защищенного программного обеспечения с помощью главного ключа. Следовательно, защищенное программное обеспечение сложно расшифровать.
РАСКРЫТИЕ
[007] Разработчики настоящего технического решения рассматривали по меньшей мере одну проблему, соответствующую известному уровню техники, которая связана с авторизацией доступа к ресурсу или аутентификации работы приложения. Конкретнее, разработчики настоящей технологии предположили, что может быть полезно не только аутентифицировать пользователя/устройство, которые пытаются получить доступ к ресурсу или пытаются авторизовать выполнение приложения, но также авторизовать среду работы устройства, из которой происходит запрос на авторизацию.
[008] В широком смысле, варианты осуществления настоящей технологии направлены на способы и системы для проверки того, что электронное устройство, которое пытается выполнять приложение или получить доступ к сетевому ресурсу, авторизовано выполнять приложение или получать доступ к сетевому ресурсу (в зависимости от ситуации). Варианты осуществления настоящей технологии предусматривают проверку с помощью учетных данных пользователя, а также проверку среды работы устройства, связанную с электронным устройством, которое пытается выполнить приложение или получить доступ к сетевому устройству. Проверка среды работы устройства выполняется путем обеспечения (сервером аутентификации и т.д.) исполняемого на компьютере кода, который выполнен с возможностью запрашивать заранее определенный результат выполнения с аутентифицированного электронного устройства, заранее определенный результат выполнения является уникальным для среды работы устройства для электронного устройства, которое пытается выполнить приложение или получить доступ к сетевому ресурсу.
[009] Некоторые варианты осуществления настоящего технического решения направлены на авторизацию электронного устройства, которое получает доступ на сервер (для доступа к веб-ресурсу для загрузки данных и так далее). Авторизация электронного устройства выполняется путем проверки пары маркеров - статического маркера и динамического маркера. Статический маркер и динамический маркер могут быть предоставлены во время процедуры предоставления аутентификации электронному устройству.
[0010] Статический маркер выполняется с возможностью авторизовать пользователя электронного устройства или само электронное устройство, и может включать в себя учетные данные пользователя (любое сочетание известных типов учетных данных пользователя). Динамический маркер включает в себя исполняемый на компьютере код, который выполнен с возможностью запрашивать результат выполнения, который является уникальным для среды работы устройства, связанной с аутентифицированным электронным устройством. Исполняемый на компьютере код может быть создан и внедрен в динамический маркер, при изначальном создании динамического маркера. Альтернативно, исполняемый на компьютере код может быть динамически создан сервером аутентификации (например, исполняемый на компьютере код может быть создан в режиме реального времени, каждый раз, когда электронное устройство запрашивает авторизацию с сервера авторизации, который может представлять собой тот же самый сервер, который размещает сетевой ресурс, к которому пытается получить доступ электронное устройство).
[0011] В некоторых вариантах осуществления настоящей технологии, сервер аутентификации создает исполняемый на компьютере код после получения и проверки статического маркера от электронного устройства (как часть этапа запроса на доступ или после него). В других вариантах осуществления настоящей технологии, сервер аутентификации создает исполняемый на компьютере код после получения статического маркера от электронного устройства, создание исполняемого на компьютере кода основано (по меньшей мере, частично) на информации, которая содержится в данных статического маркера. Например, сервер аутентификации может создавать исполняемый на компьютере код с помощью данных статического маркера в качестве входных данных для функции исполняемого на компьютере кода.
[0012] В ответ на то, что электронное устройство получает таким образом созданный исполняемый на компьютере код (или инициирующий элемент, который выполняет исполняемый на компьютере код, который был заранее введен в динамический маркер), электронное устройство выполняет исполняемый на компьютере код для создания результата выполнения. Сервер аутентификации сравнивает таким образом созданный результат выполнения с заранее определенным ожидаемым результатом выполнения (с учетом того, что таким образом исполняемый на компьютере код выполнен с возможностью запрашивать результат выполнения для среды работы устройства, связанной с аутентифицрованным электронным устройством). Если полученный результат выполнения совпадает с заранее определенным результатом выполнения, который уникален для среды работы устройства, динамический маркер считается проверенным. В ответ на то, что оба статический и динамический маркер являются проверенными, сервер аутентификации аутентифицирует электронное устройство и предоставляет доступ к сетевому устройству (или, в более широком смысле, позволяет выполнять приложение).
[0013] В конкретном варианте осуществления технологии, сетевой ресурс, к которому пытаются получить доступ, может представлять собой интерфейс программирования приложений (API) Yandex.Maps™ для доступа к картографическим данным для внедрения их в другой сетевой ресурс (например, корпоративный веб-сайт и т.д.), другой сетевой ресурс упоминается здесь как целевой сетевой ресурс. С этой целью, целевой сетевой ресурс обеспечивается кодом API для скачивания картографических данных для отрисовки карты на целевом сетевом ресурсе при отображении на запрашиваемом клиентском устройстве. Во время обработки кода API, электронное устройство, связанное с целевым сетевым ресурсом (например, сервером, размещающим сетевой ресурс), обеспечивается статическим маркером (содержащим, например, ID и пароль) и динамическим маркером. Динамический маркер содержит исполняемый на компьютере код (или, альтернативно, исполняемый на компьютере код может быть передан динамическому маркеру во время процедуры фактической аутентификации), исполняемый на компьютере код выполнен с возможностью запрашивать результат выполнения, который является уникальным для среды работы устройства, конкретной для электронного устройства. Например, исполняемый на компьютере код может быть выполнен с возможностью запрашивать результат выполнения, который уникален для операционной системы (ОС) и/или веб-браузера, связанного с электронным устройством.
[0014] Например, исполняемый на компьютере код выполнен с возможностью запрашивать результат выполнения, уникальный для среды работы устройства, который представляет собой: ОС, основанную на Linux, и Firefox™. В рамках этих примеров, исполняемый на компьютере код будет включать в себя команды, которые могут выполняться в рамках данной среды работы устройства, но могут выдавать неправильный или отсутствующий результат в другой среде работы устройства (например, тот же браузер, работающий в ОС Windows™ Server).
[0015] Во время процедуры аутентификации, сервер аутентификации или сервер, размещающий сетевой ресурс, проверяет статический маркер и динамический маркер, связанные с электронным устройством, на котором размещен сетевой ресурс, к которому пытается получить доступ электронное устройство. В ответ на то, что статический маркер и динамический маркер проверяются, запрашивающему электронному устройству дается доступ к сетевому ресурсу (т.е. в качестве примера, скачать картографические данные для внедрения их в целевой сетевой ресурс).
[0016] Таким образом, первым объектом настоящей технологии является способ авторизации выполнения приложения на электронном устройстве, электронное устройство может быть соединено с сервером через сеть передачи данных, электронное устройство связано со средой работы устройства, способ выполняется на сервере. Способ включает в себя: передачу электронному устройству статического маркера и динамического маркера, статический маркер включает в себя учетные данные пользователя для авторизации электронного устройства; и динамический маркер для авторизации среды работы устройства; получение запроса из электронного устройства на авторизацию электронного устройства для выполнения приложения, запрос включает в себя учетные данные пользователя, связанные с электронным устройством; передачу электронному устройству запроса для подтверждения статического маркера путем запроса учетных данных пользователя от электронного устройства; проверка статического маркера путем получения и проверки учетных данных пользователя; передача электронному устройству запроса на проверку динамического маркера, запрос включает в себя исполняемый на компьютере код, исполняемый на компьютере код выполнен с возможностью уникален для среды работы устройства; результат выполнения сравнивается с заранее определенным ожидаемым результатом подтверждения динамического маркера; подтверждения динамического маркера путем сравнения результата выполнения с заранее определенным ожидаемым результатом; и в ответ на то, что и статистический маркер и динамический маркер были подтверждены, авторизация электронного устройства для выполнения приложения.
[0017] В некоторых вариантах осуществления способа, способ далее включает в себя передачу инициирующего элемента выполнения электронному устройству, инициирующий элемент выполнения инициирует выполнение приложения электронным устройством.
[0018] В некоторых вариантах осуществления способа, среда работы устройства включает в себя по меньшей мере одно из: параметр аппаратного обеспечения, параметр операционной системы и параметр программного обеспечения, и при этом результат выполнения, уникален по меньшей мере для одного из параметра аппаратного обеспечения, параметра операционной системы и параметра программного обеспечения.
[0019] В некоторых вариантах осуществления способа, результат выполнения уникален для всех из параметра аппаратного обеспечения, параметра операционной системы и параметра программного обеспечения.
[0020] В некоторых вариантах осуществления способа, способ также включает в себя создание исполняемого на компьютере кода.
[0021] В некоторых вариантах осуществления способа, создание исполняемого компьютером кода включает в себя выбор подмножества исполняемых на компьютере инструкций из множества исполняемых на компьютере инструкций, набор исполняемых на компьютере инструкций был выбран заранее для среды работы устройства.
[0022] В некоторых вариантах осуществления способа, создание исполняемого на компьютере кода производится до передачи электронному устройству статического маркера и динамического маркера.
[0023] В некоторых вариантах осуществления способа, способ также включает в себя внедрение исполняемого на компьютере кода в динамический маркер.
[0024] В некоторых вариантах осуществления способа, создание исполняемого на компьютере кода производится в ответ на одно из: получение запроса на авторизацию электронного устройства на выполнение приложения и подтверждения статического маркера.
[0025] В некоторых вариантах осуществления способа, создание исполняемого на компьютере кода основано по меньшей мере, частично, на статическом маркере.
[0026] В некоторых вариантах осуществления способа, создание исполняемого компьютером кода включает в себя выбор по меньшей мере двух подмножеств исполняемых на компьютере инструкций из множества исполняемых на компьютере инструкций, набор исполняемых на компьютере инструкций был выбран заранее для среды работы устройства, каждое из двух подмножеств исполняемых на компьютере инструкций для авторизации конкретной части выполнения приложения.
[0027] В некоторых вариантах осуществления способ, приложение является веб-сессией на основе приложения, которое требует данных интерфейса программирования приложений (API), загружаемых с сервера.
[0028] Таким образом, другим объектом настоящей технологии является способ авторизации выполнения приложения на электронном устройстве, электронное устройство может быть соединено с сервером через сеть передачи данных, электронное устройство связано со средой работы устройства. Способ выполняется на сервере. Способ включает в себя: получение запроса от электронного устройства на авторизацию электронного устройства для выполнения приложения, запрос включает в себя учетные данные пользователя, связанные с электронным устройством; в ответ на положительную проверку учетных данных пользователя: создание запроса на подтверждение среды работы устройства, связанной с электронным устройством, запрос включает в себя исполняемый на компьютере код, исполняемый на компьютере код выполнен с возможностью запрашивать результат выполнения, уникальный для среды работы устройства; передачу запроса на подтверждение среды работы устройства электронному устройству; получение от электронного устройства результата выполнения, созданного исполняемым на компьютере кодом; в ответ на то, что результат выполнения совпадает с заранее определенным ожидаемым результатом выполнения, авторизацию электронного устройства на выполнение приложения.
[0029] В некоторых вариантах осуществления способа, способ далее включает в себя передачу инициирующего элемента выполнения электронному устройству, инициирующий элемент выполнения инициирует выполнение приложения электронным устройством.
[0030] В некоторых вариантах осуществления способа, среда работы устройства включает в себя по меньшей мере одно из: параметр аппаратного обеспечения, параметр операционной системы и параметр программного обеспечения, и при этом результат выполнения уникален по меньшей мере для одного из параметра аппаратного обеспечения, параметра операционной системы и параметра программного обеспечения.
[0031] В некоторых вариантах осуществления способа, результат выполнения уникален для всех из параметра аппаратного обеспечения, параметра операционной системы и параметра программного обеспечения.
[0032] В некоторых вариантах осуществления способа, способ также включает в себя создание исполняемого на компьютере кода.
[0033] В некоторых вариантах осуществления способа, создание исполняемого компьютером кода включает в себя выбор подмножества исполняемых на компьютере инструкций из множества исполняемых на компьютере инструкций, набор исполняемых на компьютере инструкций был выбран заранее для среды работы устройства.
[0034] В некоторых вариантах осуществления способа, создание исполняемого на компьютере кода производится до: получения запроса на авторизацию электронного устройства на выполнение приложения.
[0035] В некоторых вариантах осуществления способа, создание исполняемого на компьютере кода производится в ответ на одно из: получение запроса на авторизацию электронного устройства на выполнение приложения и положительной проверки учетных данных пользователя.
[0036] В некоторых вариантах осуществления способа, создание исполняемого на компьютере кода на основе по меньшей мере, частично, на учетных данных пользователя.
[0037] В некоторых вариантах осуществления способа, создание исполняемого компьютером кода включает в себя выбор по меньшей мере двух подмножеств исполняемых на компьютере инструкций из множества исполняемых на компьютере инструкций, набор исполняемых на компьютере инструкций был выбран заранее для среды работы устройства, каждое из двух подмножеств исполняемых на компьютере инструкций для авторизации конкретной части выполнения приложения.
[0038] В некоторых вариантах осуществления способ, приложение является веб-сессией на основе приложения, которое требует данных интерфейса программирования приложений (API), загружаемых с сервера.
[0039] В контексте настоящего описания «сервер» подразумевает под собой компьютерную программу, работающую на соответствующем оборудовании, которая способна получать запросы (например, от клиентских устройств) по сети и выполнять эти запросы или инициировать выполнение этих запросов. Оборудование может представлять собой один физический компьютер или одну физическую компьютерную систему, но ни то, ни другое не является обязательным для данной технологии. В контексте настоящей технологии использование выражения «сервер» не означает, что каждая задача (например, полученные команды или запросы) или какая-либо конкретная задача будет получена, выполнена или инициирована к выполнению одним и тем же сервером (то есть одним и тем же программным обеспечением и/или аппаратным обеспечением); это означает, что любое количество элементов программного обеспечения или аппаратных устройств может быть вовлечено в прием/передачу, выполнение или инициирование выполнения любого запроса или последствия любого запроса, связанного с клиентским устройством, и все это программное и аппаратное обеспечение может быть одним сервером или несколькими серверами, оба варианта включены в выражение «по меньшей мере один сервер».
[0040] В контексте настоящего описания «клиентское устройство» подразумевает под собой аппаратное устройство, способное работать с программным обеспечением, подходящим к решению соответствующей задачи. Таким образом, примерами электронных устройств (среди прочего) могут служить персональные компьютеры (настольные компьютеры, ноутбуки, нетбуки и т.п.), смартфоны, планшеты, а также сетевое оборудование, такое как маршрутизаторы, коммутаторы и шлюзы. Следует иметь в виду, что устройство, ведущее себя как электронное устройство в настоящем контексте, может вести себя как сервер по отношению к другим электронным устройствам. Использование выражения «электронное устройство» не исключает возможности использования множества электронных устройств для получения/отправки, выполнения или инициирования выполнения любой задачи или запроса, или же последствий любой задачи или запроса, или же этапов любого вышеописанного метода.
[0041] В контексте настоящего описания «база данных» подразумевает под собой любой структурированный набор данных, не зависящий от конкретной структуры, программного обеспечения по управлению базой данных, аппаратного обеспечения компьютера, на котором данные хранятся, используются или иным образом оказываются доступны для использования. База данных может находиться на том же оборудовании, выполняющем процесс, который сохраняет или использует информацию, хранящуюся в базе данных, или же она может находиться на отдельном оборудовании, например, выделенном сервере или множестве серверов.
[0042] В контексте настоящего описания «информация» включает в себя любую информацию, которая может храниться в базе данных. Таким образом, информация включает в себя, среди прочего, аудиовизуальные произведения (изображения, видео, звукозаписи, презентации и т.д.), данные (данные о местоположении, цифровые данные и т.д.), текст (мнения, комментарии, вопросы, сообщения и т.д.), документы, таблицы и т.д.
[0043] В контексте настоящего описания термин «фактор релевантности набора поисковых результатов» означает вероятность того, что пользователь, который вводит поисковый запрос, желает увидеть данные, расположенные в наборе результатов поиска.
[0044] В контексте настоящего описания «компонент» подразумевает под собой программное обеспечение (соответствующее конкретному аппаратному контексту), которое является необходимым и достаточным для выполнения конкретной(ых) указанной(ых) функции(й).
[0045] В контексте настоящего описания термин «набор результатов поиска» является списком результатов, выводимых поисковой системой, которая может охватывать один или несколько общих или специализированных поисковых модулей, в ответ на поисковый запрос. Набор результатов поиска может содержать список результатов, которые выводятся модулем веб-поиска или одним или несколькими модулями вертикального поиска или путем комбинации результатов, выведенных веб-модулем или одним или несколькими вертикальными модулями. Набор результатов поиска также может не содержать результатов.
[0046] В контексте настоящего описания термин «страница результатов поиска (SERP)» является списком результатов, которые будут показаны на электронном устройстве, список создается путем комбинации наборов результатов поиска с целевыми сообщениями.
[0047] В контексте настоящего описания «используемый компьютером носитель компьютерной информации» подразумевает под собой носитель абсолютно любого типа и характера, включая ОЗУ, ПЗУ, диски (компакт диски, DVD-диски, дискеты, жесткие диски и т.д.), USB флеш-накопители, твердотельные накопители, накопители на магнитной ленте и т.д.
[0048] В контексте настоящего описания слова «первый», «второй», «третий» и т.д. используются в виде прилагательных исключительно для того, чтобы отличать существительные, к которым они относятся, друг от друга, а не для целей описания какой-либо конкретной взаимосвязи между этими существительными. Так, например, следует иметь в виду, что использование терминов «первый сервер» и «третий сервер» не подразумевает какого-либо порядка, отнесения к определенному типу, хронологии, иерархии или ранжирования (например) серверов/между серверами, равно как и их использование (само по себе) не предполагает, что некий "второй сервер" обязательно должен существовать в той или иной ситуации. В дальнейшем, как указано здесь в других контекстах, упоминание «первого» элемента и «второго» элемента не исключает возможности того, что это один и тот же фактический реальный элемент. Так, например, в некоторых случаях, «первый» сервер и «второй» сервер могут являться одним и тем же программным и/или аппаратным обеспечением, а в других случаях они могут являться разным программным и/или аппаратным обеспечением.
[0049] Каждый вариант осуществления настоящей технологии преследует по меньшей мере одну из вышеупомянутых целей и/или объектов, но наличие всех не является обязательным. Следует иметь в виду, что некоторые объекты данной технологии, полученные в результате попыток достичь вышеупомянутой цели, могут не удовлетворять этой цели и/или могут удовлетворять другим целям, отдельно не указанным здесь.
[0050] Дополнительные и/или альтернативные характеристики, аспекты и преимущества вариантов осуществления настоящего технического решения станут очевидными из последующего описания, прилагаемых чертежей и прилагаемой формулы изобретения.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
[0051] Для лучшего понимания настоящей технологии, а также других ее аспектов и характерных черт сделана ссылка на следующее описание, которое должно использоваться в сочетании с прилагаемыми чертежами, где:
[0052] На Фиг. 1 представлена принципиальная схема системы, выполненной в соответствии с неограничивающими вариантами осуществления настоящего технического решения.
[0053] На Фиг. 2 представлен неограничивающий вариант осуществления компьютерного экрана (который может быть соединен с электронным устройством системы, показанной на Фиг. 1, или являться частью электронного устройства системы, показанной на Фиг. 1), компьютерный экран отображает отрисованную страницу.
[0054] На Фиг. 3 представлен неограничивающий вариант таблицы аутентификационных данных, находящейся на сервере системы, показанной на Фиг. 1.
[0055] На Фиг. 4 представлена блок-схема способа, реализованного в соответствии с неограничивающими вариантами осуществления настоящей технологии, и выполняемого в рамках системы, представленной на Фиг. 1.
[0056] На Фиг. 5 представлена блок-схема способа 800, реализованного в соответствии с другим неограничивающим вариантом осуществления настоящей технологии и выполняемого в рамках системы 300, представленной на Фиг. 1.
ОСУЩЕСТВЛЕНИЕ
[0057] На Фиг. 1 показана система 100, выполненная в соответствии с вариантом осуществления настоящего технического решения. Важно иметь в виду, что сервер ранжирования 100 является только одним из вариантов осуществления настоящей технологии. Таким образом, все последующее описание представлено только как описание иллюстративного примера настоящей технологии. Это описание не предназначено для определения объема или установления границ настоящей технологии. Некоторые полезные примеры модификаций системы 100 также могут быть охвачены нижеследующим описанием. Целью этого является также исключительно помощь в понимании, а не определение объема и границ настоящей технологии. Эти модификации не представляют собой исчерпывающий список, и специалистам в данной области техники будет понятно, что возможны и другие модификации. Кроме того, это не должно интерпретироваться так, что там, где это еще не было сделано, т.е. там, где не были изложены примеры модификаций, никакие модификации невозможны, и/или что то, что описано, является единственным вариантом осуществления этого элемента настоящей технологии. Как будет понятно специалисту в данной области техники, это, скорее всего, не так. Кроме того, следует иметь в виду, что система 100 представляет собой в некоторых конкретных проявлениях достаточно простой вариант осуществления настоящей технологии, и в подобном случае представлен здесь с целью облегчения понимания. Как будет понятно специалисту в данной области техники, многие варианты осуществления настоящей технологии будут обладать гораздо большей сложностью.
[0058] Система 100 включает в себя электронное устройство 102. Электронное устройство 102 обычно связано с пользователем (не показан) и, таким образом, иногда может упоминаться как «клиентское устройство». Следует отметить, что тот факт, что электронное устройство 102 связано с пользователем, не подразумевает какого-либо конкретного режима работы, равно как и необходимости входа в систему, быть зарегистрированным, или чего-либо подобного. Естественно, система 100 может обладать множеством электронных устройств, аналогичных или отличающихся от электронного устройства 102.
[0059] Варианты электронного устройства 102 конкретно не ограничены, но в качестве примера электронного устройства 102 могут использоваться персональные компьютеры (настольные компьютеры, ноутбуки, нетбуки и т.п.), беспроводное электронное устройство (мобильные телефоны, смартфоны, планшеты и т.п.), а также сетевое оборудование (маршрутизаторы, коммутаторы или шлюзы). Общий вариант осуществления электронного устройства 102 известен в области техники, и поэтому не будет здесь подробно описан. Достаточно сказать, что электронное устройство 102 содержит пользовательский интерфейс ввода (например, микрофон, клавиатуру, мышь, сенсорную панель, сенсорный экран и т.п.) для получения пользовательского ввода; пользовательский интерфейс вывода (например, экран, сенсорный экран, принтер и т.п.) для предоставления визуального или звукового вывода пользователю; интерфейс сетевой связи (например, модем, сетевую карту и т.п.) для двусторонней связи по сети 106 передачи данных; и процессор, соединенный с пользовательским интерфейсом ввода, пользовательским интерфейсом вывода и интерфейсом сетевой связи, который выполнен с возможностью выполнять различные процедуры, включая те, что описаны ниже. С этой целью процессор может сохранять или иметь доступ к машиночитаемым командам, выполнение которых инициирует процессор выполнять различные описанные здесь процедуры.
[0060] Вышеупомянутая сеть 106 передачи данных может быть реализована как Интернет. В других вариантах осуществления настоящей технологии, сеть 106 передачи данных может быть реализована иначе - в виде глобальной сети связи, локальной сети связи, частной сети связи и т.п.
[0061] Электронное устройство 102 содержит аппаратное и/или прикладное программное и/или системное программное обеспечение (или их комбинацию), которая позволяет электронному устройству 102 выполнять приложение 108. Приложение 108 может представлять собой браузерное приложение, которое выполнено с возможностью позволить пользователю получить доступ к одному или нескольким сетевым ресурсам через сеть 106 передачи данных, например, к сетевому ресурсу 110, расположенному на сервере 109 сетевого ресурса. Альтернативно, приложение 108 может представлять собой картографическое приложение, игровое приложение, приложение обработки документов, специализированное программное приложение и так далее.
[0062] Сервер 109 сетевого ресурса соединен с сетью 106 передачи данных через линию передачи данных (отдельно не пронумерована). Сервер 109 сетевого ресурса может представлять собой обычный компьютерный сервер. В примере варианта осуществления настоящего технического решения, сервер 109 сетевого ресурса может представлять собой сервер Dell™ PowerEdge™, на котором используется операционная система Microsoft™ Windows Server™. Излишне говорить, что сервер 109 сетевого ресурса может представлять собой любое другое подходящее аппаратное и/или прикладное программное, и/или системное программное обеспечение или их комбинацию. В представленном варианте осуществления настоящего технического решения, не ограничивающем ее объем, сервер 109 сетевого ресурса является одиночным сервером. В других вариантах осуществления настоящего технического решения, не ограничивающих ее объем, функциональность сервера 109 сетевого ресурса может быть разделена, и может выполняться с помощью нескольких серверов.
[0063] Вариант осуществления сервера 109 сетевого ресурса хорошо известен. Тем не менее, вкратце, сервер 109 сетевого ресурса содержит интерфейс связи (не показан), который настроен и выполнен с возможностью устанавливать соединение с различными элементами (например, электронным устройством 102 и другими устройствами, потенциально присоединенными к сети 106 передачи данных) через сеть 106 передачи данных. Сервер 109 сетевого ресурса дополнительно включает в себя один или несколько пунктов из следующего: компьютерный процессор (не показан), функционально соединенный с интерфейсом связи и настроенный и выполненный с возможностью выполнять различные процессы, описанные здесь. Сервер 109 сетевого ресурса выполнен с возможностью предоставлять доступ ко множеству сетевых ресурсов, одним из которых является сетевой ресурс ПО, представленный на Фиг. 2.
[0064] В некоторых вариантах осуществления настоящей технологии, сетевой ресурс 110 может представлять собой карту, включающую в себя геолокационную информацию о различных объектах. В некоторых вариантах осуществления настоящей технологии, сервер 109 сетевого ресурса может создавать карту, например, статичную карту для загрузки на электронное устройство 102 (статичная карта создается, например, с конкретной координатой и конкретной областью просмотра, запрашиваемой электронным устройством 102). Альтернативно, сервер 109 сетевого ресурса может создавать карту, например, интерактивную карту для загрузки на электронное устройство 102 (интерактивная карта связана с конкретной координатой и конкретной областью просмотра, запрашиваемой электронным устройством 102). Пользователь электронного устройства 102 может взаимодействовать с интерактивной картой, например, путем использования «мыши» на определенном объекте интерактивной карты для получения дополнительной информации, связанной с конкретными объектами (например, информация о часах работы, информации о размере среднего счета, информацию о рейтинге и так далее).
[0065] В альтернативных вариантах осуществления настоящей технологи, сервер 109 сетевого ресурса может создавать карту в виде скачиваемой карты для внедрения карты на целевой сетевой ресурс 114, размещенный на другом сервере 112 сетевого ресурса. Следует отметить, что другой сервер 112 сетевого ресурса может (но не обязан) быть реализован по существу аналогично серверу 109 сетевого ресурса.
[0067] Пример внедрения интерактивной карты, как отрисовано электронным устройством, представлен со ссылкой на Фиг.1, где представлен неограничивающий вариант осуществления компьютерного экрана 202 (который может быть соединен с электронным устройством 102, или соединен с другим электронным устройством, показанном на Фиг. 1, или быть его частью, и другому электронному устройству может быть необходимо скачать целевой сетевой ресурс 114 с картографическими данными с сетевого ресурса 110, в который они внедрены). Компьютерный экран 202 отображает отрисованную страницу 201. Отрисованная страница включает в себя (i) первую часть 204, первая часть 204 создается с помощью информации, полученной из целевого сетевого ресурса 114, и (ii) вторую часть 206, вторая часть 206 создается с помощью информации, полученной с сетевого ресурса 110.
[0068] В качестве примера вышеприведеного варианта осуществления, отрисованная страница 201 может представлять собой домашнюю страницу производственного предприятия, первая часть 204 представляет информацию о производственном предприятии, а вторая часть 206 предоставляет карту с указанием на то, как добраться до производственного предприятия. Вместо самостоятельной кодировки картографической информации, веб-мастер отрисованной страницы 201 может вместо этого скачать картографическую информацию, предоставляемую сервером 109 сетевого ресурса через сетевой ресурс 110 и API 116.
[0069] В рамках некоторых из этих вариантов осуществления настоящей технологии предполагается, что электронному устройству 102 требуется скачать целевой сетевой ресурс 114 с внедренной в него картографической информацией. С этой целью, электронное устройство получает доступ к целевому сетевому ресурсу 114 через сетевой адрес или другой идентификатор, связанный с целевым сетевым ресурсом 114. Целевой сетевой ресурс 114, скачанный приложением 108, содержит ресурсы API для получения доступа к картографической информации через API 116 от сетевого ресурса 110. В некоторых вариантах осуществления настоящей технологии, для того, чтобы скачать картографическую информацию через API 116, электронное устройство 102 (или приложение 108, выполняемое на электронном устройстве 102, или и то и другое) должно быть аутентифицировано на сервере 109 сетевого ресурса. В некоторых вариантах осуществления настоящей технологии, данные, необходимые для аутентификации на сервере 109 сетевого ресурса, предоставляются во время выполнения процедуры услуги предоставления (будет описана далее).
[0070] Приложение 108 может быть связано со средой работы устройства, конкретной для электронного устройства 102. В некоторых вариантах осуществления настоящей технологии, среда работы устройства включает в себя параметры аппаратного обеспечения электронного устройства 102. В других вариантах осуществления настоящей технологии, среда работы устройства включает в себя параметры операционной системы электронного устройства 102. В некоторых других вариантах осуществления, среда работы устройства включает в себя параметры программного обеспечения электронного устройства 102 (например, версия приложения 108, поставщик приложения 108 и так далее). В других дополнительных вариантах осуществления настоящей технологии, среда работы устройства включает в себя комбинацию некоторых из этих (или других): параметров аппаратного обеспечения, параметров операционной системы и параметров программного обеспечения.
[0071] Следует отметить, что для целей настоящего описания, которое будет представлено ниже, сервер 109 сетевого ресурса считается «сервером аутентификации», т.е. сервером, который авторизует электронное устройство 102 получать доступ к сетевому ресурсу 110 (например, авторизация для выполнения приложения, например, приложения 108). Тем не менее, следует отметить, что процесс аутентификации может выполняться отдельным сервером (не показан), т.е. сервером, предназначенным для процесса аутентификации, который может отличаться от сервера 109 сетевого ресурса, размещающего сетевой ресурс ПО, к которому получают доступ.
[0072] Процедура обеспечения аутентификации
[0073] Сервер 109 сетевого ресурса во время процедуры обеспечения аутентификации электронного устройства 102 создает два маркера для электронного устройства 102 - статический маркер 140 и динамический маркер 160. Как упоминалось выше, статический маркер 140 выполнен с возможностью авторизовать пользователя электронного устройства 102 или само электронное устройство 102. С этой целью, статический маркер 140 может включать в себя любые учетные данные пользователя (может быть использовано любое сочетание известных учетных данных пользователя, например, без установления ограничений: сочетание имени пользователя и пароля, биометрические данные (отпечатки пальцев, голосовой образец и так далее), машиночитаемый маркер, цифровой сертификат и так далее).
[0074] Динамический маркер 160 выполнен с возможностью проверять среду работы устройства, связанного с электронным устройством 102. В некоторых вариантах осуществления настоящей технологии, динамический маркер включает в себя исполняемый на компьютере код, который выполнен с возможностью запрашивать результат выполнения, который является уникальным для среды работы устройства, связанной с аутентифицированным электронным устройством. В рамках этих вариантов осуществления технологии, сервер 109 сетевого ресурса создает исполняемый на компьютере код и встраивает его в динамический маркер 160.
[0075] В альтернативных вариантах осуществления настоящей технологии, сервер 109 сетевого ресурса может создавать исполняемый на компьютере код динамически (например, исполняемый на компьютере код может создаваться в режиме реального времени, каждый раз когда электронное устройство 102 запрашивает авторизацию с сервера 109 сетевого ресурса).
[0076] В некоторых вариантах осуществления настоящей технологии, сервер 109 сетевого ресурса может создавать исполняемый на компьютере код на основе, по меньшей мере, частично, содержимого статического маркера 140. В тех вариантах осуществления настоящей технологии, где сервер 109 сетевого ресурса создает исполняемый на компьютере код в процедуре обеспечения аутентификации, сервер 109 сетевого ресурса создает исполняемый на компьютере код на основе (по меньшей мере, частично) информации, содержащейся в данных статического маркера 140. Например, сервер 109 сетевого ресурса может создавать исполняемый на компьютере код с помощью данных статического маркера 140 в качестве входных данных для функции исполняемого на компьютере кода.
[0077] В тех вариантах осуществления настоящей технологии, где сервер 109 сетевого ресурса создает исполняемый на компьютере код в режиме реального времени (т.е. при выполнении аутентификации), динамический маркер 160 включает в себя «конверт» для выполнения исполняемого на компьютере кода на более позднем этапе, когда сервер 109 сетевого ресурса создает и передает подобный исполняемый на компьютере код электронному устройству 102.
[0078] В этих вариантах осуществления настоящей технологии, сервер 109 сетевого ресурса может создавать исполняемый на компьютере код во время процедуры фактической аутентификации, т.е. после того, как сервер 109 сетевого ресурса получает запрос аутентификации (например, в форме запроса на доступ), и после того, как сервер 109 сетевого ресурса получает статический маркер 104 от электронного устройства 102 (как часть или после запроса доступа). В других вариантах осуществления настоящей технологии, сервер 109 сетевого ресурса создает исполняемый на компьютере код после получения статического маркера 140 от электронного устройства 102, создание исполняемого на компьютере кода основано (по меньшей мере, частично) на информации, которая содержится в данных статического маркера 140. Например, сервер 109 сетевого ресурса может создавать исполняемый на компьютере код с помощью данных статического маркера 140 в качестве входных данных для функции исполняемого на компьютере кода.
[0079] Сервер 109 сетевого ресурса далее передает статический маркер 140 и динамический маркер 160 электронному устройству (показано на Фиг. 1). Электронное устройство 102 сохраняет статический маркер 140 и динамический маркер 160 во внутренней памяти.
[0080] Как часть процедуры обеспечения аутентификации, сервер 109 сетевого ресурса создает (или обновляет, в зависимости от обстоятельств) таблицу 170 данных аутентификации, и сохраняет таблицу 170 данных аутентификации в базе 172 данных.
[0081] На Фиг. 3 представлен неограничивающий вариант осуществления таблицы 170 данных аутентификации, размещенной на сервере 109 сетевого ресурса в базе 172 данных.
[0082] Таблица 170 данных аутентификации включает в себя множество записей, созданных во время выполнения различных процедур обеспечения аутентификации, множество записей включает в себя первую запись 302, связанную (например) с электронным устройством 102, и множество дополнительных записей 302, связанных с другим электронным устройством (не показано), которое потенциально присутствует в системе 100.
[0083] В данной записи таблицы 170 данных аутентификации, например, пример первой записи 302 сопоставляет уникальный идентификатор 306 записи, связанный в данном случае с электронным устройством 102, указание на среду 308 работы устройства, связанную в данном случае с электронным устройством 102, и указание на учетные данные 310 аутентификации, связанные в данном случае с электронным устройством 102.
[0084] В рамках различных вариантов осуществления настоящей технологии, уникальный идентификатор 306 устройства может быть реализован как аппаратный адрес (МАС-адрес), статический IP адрес или любой подходящей идентификатор устройства, связанный с электронным устройством 102.
[0085] В рамках различных вариантов осуществления настоящей технологии, указание на среду 308 работы устройства может включать в себя параметры аппаратного обеспечения электронного устройства 102. В других вариантах осуществления настоящей технологии, указание на среду 308 работы устройства включает в себя параметры операционной системы электронного устройства 102. В некоторых других вариантах осуществления, указание на среду 308 работы устройства включает в себя параметры программного обеспечения электронного устройства 102 (например, версия приложения 108, поставщик приложения 108 и так далее). В других вариантах осуществления настоящей технологии, среда 308 работы устройства включает в себя один или несколько параметров операционной системы, параметры аппаратного обеспечения и параметры программного обеспечения, связанные с электронным устройством 102.
[0086] Указание на среду 308 работы устройства получают от электронного устройства 102 во время процедуры обеспечения аутентификации и используется, по меньшей мере, частично, для создания вышеупомянутого динамического маркера 160. Конкретнее, указание на среду 308 работы устройства может быть использовано для создания вышеупомянутого исполняемого на компьютере кода. С этой целью, указание на среду 308 работы устройства включает в себя указание на заранее определенный результат выполнения, ожидаемый в ответ на вышеупомянутый исполняемый компьютерный код. Указание на заранее определенный результат выполнения может сохраняться (и обновляться) в указании на среду 308 работы устройства каждый раз, когда создается новая версия исполняемого компьютерного кода.
[0087] В рамках различных вариантов осуществления настоящей технологии, указание на учетные данные 310 аутентификации включает учетные данные, предоставляемые электронному устройству 102. Учетные данные могут быть предоставлены в форме сочетания имени пользователя и пароля, биометрических данных (отпечатки пальцев, голосовой образец и т.д.), машиночитаемого устройства, цифрового сертификата и так далее. Указание на учетные данные аутентификации может быть использовано для проверки статического маркера 140, связанного с электронным устройством 102.
[0088] Создание процедуры исполняемого на компьютере кода
[0089] Как было упомянуто ранее, исполняемый на компьютере код, созданный сервером 109 сетевого ресурса, выполнен с возможностью получить результат выполнения, который уникален для среды работы устройства, связанной с электронным устройством 102. В широком смысле, результат выполнения, созданный исполняемым компьютером кодом, выполнен с возможностью идентифицировать среду работы устройства, связанную с электронным устройством 102 с достаточной конкретикой, чтобы сервер 109 сетевого ресурса был способен идентифицировать, что среда работы электронного устройства 102 является той же, которая была авторизована для использования сетевого ресурса 110.
[0090] Во избежание сомнений, термин "уникальный" не предполагает в рамках настоящего описания, что другое электронное устройство (не показано), которое потенциально присутствует в системе 100, не может генерировать тот же результат выполнения. С другой стороны, возможно, что одно или несколько других электронных устройств (не показано), которые потенциально присутствуют в системе 100, обладают той же средой работы устройства, и, в ответ на получение того же исполняемого компьютером кода, могут генерировать тот же результат выполнения. Следовательно, оставаясь в пределах настоящего описания, термин «уникально идентифицирует» обозначает уникальную идентификацию среды работы электронного устройства 102, которая была авторизована для доступа к сетевому ресурсу 110, в отличие от другой среды работы устройства, которая не была авторизована для доступа к сетевому ресурсу 110.
[0091] Как именно создается исполняемый на компьютере код, никак конкретно не ограничено, и далее следует несколько примеров реализации исполняемого на компьютере кода, который получает конкретный результат выполнения, уникальный для среды работы электронного устройства 102.
[0092] Определенные команды операционной системы (ОС):
[0093] Операционные системы на основе Linux™ и Unix™
[0094] SUDO ("superuser do") представляет собой тип исполняемых компьютерном команд, которые позволяют пользователю с достаточным уровнем доступа выполнять команды в качестве другого пользователя, например, суперпользователя (полный доступ или, попросту, права администратора). В качестве примера, этот тип исполняемых компьютером команд может быть использован для исполнения конкретных функций, например, вызова другого приложения из первого приложения.
[0095] Примеры команд SUDO:
[0096] sudo -и comphope ls /home/comphope/hope
[0097] Составляет список содержимого директории /home/comphope/hope каталога пользователя comphope.
[0098] sudo -v
[0099] Расширить/стереть автоматический тайм-аут аутентификации sudo, что позволяет продолжать вводить sudo комманды без ввода пароля.
[00100] Операционные системы на основе Windows™:
[00101] RUNAS (= «Run as») аналогично SUDO и ОС на основе Linux\Unix.
[00102] Позволяет пользователю запускать конкретные инструменты и программы с правами доступа, отличными от тех, с которыми связана текущая учетная запись.
[00103] runas [{/profile/noprofile}] [/env] [/netonly] [/smartcard] [/showtrustlevels] [/trustlevel] Zuser.UserAccountName program
[00104] Примеры исполняемых компьютером команд типа RUNAS.
[00105] Чтобы запустить команду из командной строки с правами администратора на локальном компьютере:
[00106] runas /user: localmachinename \administrator cmd
[00107] Определенные команды приложения:
[00109] function get_name_browser(){
[00110] В ответ на подобный исполняемый компьютером код, результат выполнения получают и обрабатывают следующим образом.
[00111] // получение вывода, указывающего на userAgent
[00112] var ua = navigator.userAgent;
[00113] // использование анализа, например, анализа регулярных выражения, для возможного обнаружения указания на заголовок версии браузера.
[00114] if (ua.search(/Chrome/) > 0) return 'Google Chrome';
[00115] if (ua.search(/Firefox/) > 0) return 'Firefox';
[00116] if (ua.search(/Opera/) > 0) return 'Opera';
[00117] if(ua.search(/Safari/) > 0) return 'Safari';
[00118] if (ua.search(/MSIE/) > 0) return 'Yandex Browser';
[00119] Естественно, любой анализ может включать в себя меньшее или большее количество условий, чем представлено здесь.
[00120] Другие примеры исполняемого компьютером кода включают в себя, без установления ограничений:
[00121] var browser = get name browser();
[00122] alert(browser);
[00124] Кроме того, важно, что обнаружение не должно обладать возможностью перезаписи (например, IE=!!top.execScript неверно, поскольку веб-сайт может переопределить execScript как переменную или функцию).
[00125] Детектор браузера Firefox™
[00126] FF=/a/[-1]=='a'
[00127] Детектор браузера IE™
[00128] IE='\v'=='v'
[00129] Детектор браузера Safari™
[00130] Saf=/a/._proto_=='//'
[00131] Детектор браузера Chrome™
[00132] Chr=/source/.test((/a/.toString+"))
[00133] Детектор браузера Opera™
[00134] Op=/^function \(/.test([].sort)
[00135] Детектор браузера IE6™ (с помощью учетных данных)
[00136] try {IE6=@cc_on @_jscript_version<=5.7&&@Jscript_build<10000}
[00138] Браузер Chrome™ (и другие браузеры на основе движка WEBKIT)
[00139] WebKit (Браузер Chrome™\Yandex™ Браузер)
[00140] .selector:not(*:root) {}
[00141] Браузера Firefox™
[00142] body:empty.selector {}
[00143] Браузер IE™ \ Браузер EDGE™
[00144] * html.selector {}
[00145] .unused-class.selector {}
[00146] Другой пример для браузера IE™:
[00147] <HEAD> {
[00148] 'document.getElementsByTagName("head")[0].nodeName.length', // "HEAD"
[00149] value: 4.
[00150] }.
[00151] Процедура аутентификации
[00152] После описания процедуры предоставления аутентификации, после установки того, как создаются и сохраняются статический маркер 140 и динамический маркер 160 электронным устройством 102, и после описания процедуры создания исполняемого на компьютере кода, обратимся к процедуре аутентификации, где используются статический маркер 140 и динамический маркер 160 для авторизации доступа электронного устройства к сетевому ресурсу 110.
[00153] Когда приложение 108 требует доступа к сетевому ресурсу 110, приложение 108 передает запрос 162 на доступ к приложению серверу 109 сетевого ресурса. Для целей иллюстрации, предполагается, что приложение 108 требует картографических данных, сохраненных сетевым ресурсом ПО для внедрения в целевой сетевой ресурс 114. В некоторых вариантах осуществления настоящей технологии, запрос 162 на доступ к приложению содержит указание на учетные данные от статического маркера 140.
[00154] В других вариантах осуществления настоящей технологии, сервер 109 сетевого ресурса запрашивает учетные данные от электронного устройства 102 в ответ на получение запроса 162 на доступ к приложению путем передачи запроса на учетные данные (не показано на Фиг. 1).
[00155] Предполагается, что запрос 162 на доступ к приложению содержит уникальный идентификатор электронного устройства для обнаружения конкретной записи в таблице 170 аутентификационных данных. Альтернативно, сервер 109 сетевого ресурса может запрашивать указание на уникальный идентификатор электронного устройства 102 от электронного устройства 102 как часть запроса на учетные данные или как отдельный запрос.
[00156] В ответ на получение учетных данных, сервер 109 сетевого ресурса обнаруживает подходящую запись в таблице 170 аутентификационных данных на основе примера с уникальным идентификатором данных, содержащимся в запросе 162 на доступ к приложению. Сервер 109 сетевого ресурса идентифицирует подходящую запись по полю 306 уникального идентификатора ресурса в таблице 170 аутентификационных данных. В данном примере, сервер 109 сетевого ресурса определяет первую запись 302. Сервер 109 сетевого ресурса далее сравнивает полученные учетные данные пользователя с записью указания на учетные данные 310 аутентификации. Если сервер 109 сетевого ресурса идентифицирует несовпадение, рутина аутентификации завершается, поскольку учетные данные пользователя не прошли аутентификацию (т.е. статический маркер 140 не подтверждается).
[00157] Если же сервер 109 сетевого ресурса идентифицирует совпадение, сервер 109 сетевого ресурса переходит к проверке динамического маркера 160. Следует напомнить, что существует два варианта создания динамического маркера 160 в исполняемом компьютером коде. Исполняемый на компьютере код может быть заранее создан и сохранен в динамическом маркере 160 или может быть создан в режиме реального времени в ответ на получение запроса 162 на получение доступа к приложению и/или в ответ на получение уведомления об успешной проверке статического маркера 140.
[00158] Для начала будут разобраны те варианты осуществления технологии, где исполняемый компьютером код был заранее создан и сохранен в динамическом маркере 160. Сервер 109 сетевого ресурса инициирует динамический маркер 160 выполнять исполняемый компьютером код и выводит серверу 109 сетевого ресурса результат выполнения исполняемого компьютером кода. В некоторых вариантах осуществления настоящей технологии, сервер 109 сетевого ресурса передает инициирующий элемент 164 электронному устройству, инициирующий элемент выполнен с возможностью инициировать динамический маркер 160 выполнять исполняемый компьютером код и создавать результат выполнения для передачи его серверу 109 сетевого ресурса.
[00159] В тех вариантах осуществления технологии, где исполняемый компьютером код создается в режиме реального времени в ответ на получение запроса 162 на получение доступа к приложению и/или в ответ на получение уведомления об успешной проверке статического маркера 140, сервер 109 сетевого ресурса создает исполняемый компьютером код в ответ на получение учетных данных от статического маркера 140 и/или успешное подтверждение учетных данных в статическом маркере 140. В некоторых вариантах осуществления настоящей технологии, таким образом созданный исполняемый на компьютере код по меньшей мере частично основан на информации, содержащейся в статическом маркере 140. В некоторых вариантах осуществления настоящей технологии, таким образом созданный исполняемый на компьютере код содержит случайно выбранные инструкции на основе, по меньшей мере, частично, информации, которая хранится в указании на среду 308 работы устройства, связанную с электронным устройством 102.
[00160] Сервер 109 сетевого ресурса далее передает исполняемый компьютером код электронному устройству - передача может инициировать динамический маркер 160 выполнять исполняемый компьютером код и выводит серверу 109 сетевого ресурса результат выполнения исполняемого компьютером кода.
[00161] В некоторых вариантах осуществления настоящей технологии, сервер 109 сетевого ресурса дополнительно передает инициирующий элемент 164 электронному устройству, инициирующий элемент выполнен с возможностью инициировать динамический маркер 160, выполнять исполняемый компьютером код и создавать результат выполнения для передачи его серверу 109 сетевого ресурса.
[00162] В ответ на получение таким образом созданного исполняемого компьютером кода или инициирующего элемента 164, электронное устройство 102 выполняет исполняемый компьютером код для создания результата выполнения. Электронное устройство 102 далее передает результат выполнения серверу 109 сетевого ресурса, представленному на Фиг. 1 в виде набора 166 проверок результата выполнения.
[00163] Сервер 109 сетевой ресурс получает набор 166 проверок результата выполнения и сравнивает таким образом полученный результат выполнения с заранее определенным ожидаемым результатом выполнения (с учетом того, что таким образом исполняемый на компьютере код выполнен с возможностью запрашивать результат выполнения для среды работы устройства, связанной с аутентифицрованным электронным устройством 102).
[00164] Если полученный результат выполнения совпадает с заранее определенным результатом выполнения, который уникален для среды работы устройства, динамический маркер 160 считается проверенным. В ответ на то, что оба статический маркер 140 и динамический маркер 160 являются проверенными, сервер 109 сетевого ресурса аутентифицирует электронное устройство 102 и предоставляет доступ к сетевому ресурсу 110 (или, в более широком смысле, позволяет выполнять приложение).
[00165] Описанная выше архитектура способна выполнять способ выполнения авторизации приложения на электронном устройстве 102. Как было упомянуто ранее, выполнение авторизации приложения 108 может включать в себя авторизацию доступа к сетевому ресурсу, например, сетевому ресурсу 110. Другими словами, приложение 108 может представлять собой либо локально выполняемое приложение 108, либо веб-сессию с сетевым ресурсом 110.
[00166] На Фиг. 4 представлена блок-схема способа 400, который выполняется в соответствии с неограничивающими вариантами осуществления настоящего технического решения. В некоторых вариантах осуществления настоящей технологии, способ 400 может выполняться сервером 109 сетевого ресурса. В других вариантах осуществления настоящей технологии, способ 400 может выполняться соответствующим сервером аутентификации (не показано), который может быть отделен от сервера 109 сетевого ресурса и другого сервера 112 сетевого ресурса.
[00167] Этап 402 - передача электронному устройству статического маркера и динамического маркера, статический маркер включает в себя учетные данные пользователя для авторизации электронного устройства; и динамический маркер для авторизации среды работы устройства.
[00168] Способ 400 начинается на этапе 402, где сервер 109 сетевого ресурса передает электронному устройству 102 статический маркер 140 и динамический маркер 160, статический маркер 140 включает в себя учетные данные пользователя для авторизации электронного устройства 102 (или, альтернативно, пользователя электронного устройства 102); и динамический маркер 160 для авторизации среды работы электронного устройства 102.
[00169] В некоторых вариантах осуществления способа 400, среда работы устройства включает в себя по меньшей мере одно из: параметр аппаратного обеспечения, параметр операционной системы и параметр программного обеспечения, и при этом результат выполнения уникален по меньшей мере для одного из параметра аппаратного обеспечения, параметра операционной системы и параметра программного обеспечения. В некоторых из этих вариантов осуществления способа 400, результат выполнения уникален для всех из параметра аппаратного обеспечения, параметра операционной системы и параметра программного обеспечения.
[00170] В некоторых вариантах осуществления способа 400, способ также включает в себя создание исполняемого на компьютере кода. Создание исполняемого компьютером кода включает в себя выбор подмножества исполняемых на компьютере инструкций из множества исполняемых на компьютере инструкций, набор исполняемых на компьютере инструкций был выбран заранее для среды работы устройства. То, как и когда исполняемый компьютером код может создаваться, было более подробно объяснено выше.
[00171] Этап 404 - получение запроса от электронного устройства для авторизации электронного устройства для выполнения приложения, запрос включает в себя учетные данные пользователя, связанные с электронным устройством.
[00172] На этапе 404, сервер 109 сетевого ресурса осуществляет получение запроса от электронного устройства 102 для авторизации электронного устройства для выполнения приложения 108, запрос включает в себя учетные данные пользователя, связанные с электронным устройством 102.
[00173] Как было упомянуто ранее, учетные данные пользователя могут быть реализованы с помощью любой комбинации известных учетных данных пользователя.
[00174] Этап 406 - передача электронному устройству запроса на проверку статического маркера с помощью запроса учетных данных пользователя от устройства.
[00175] На этапе 406, сервер 109 сетевого ресурса осуществляет передачу электронному устройству 102 запроса на проверку статического маркера 140 с помощью запроса учетных данных пользователя от электронного устройства 102.
[00176] Этап 408 - подтверждение статического маркера путем получения и проверки учетных данных пользователя.
[00177] На этапе 408, сервер 109 сетевого ресурса подтверждает статическую марку 140 путем получения и проверки учетных данных пользователя.
[00178] В некоторых вариантах осуществления способа 400, создание исполняемого на компьютере кода производится до передачи электронному устройству 102 статического маркера 140 и динамического маркера 160. В некоторых вариантах осуществления способа 400, способ также включает в себя внедрение исполняемого на компьютере кода в динамический маркер 160.
[00179] В некоторых вариантах осуществления способа 400, создание исполняемого на компьютере кода производится в ответ на одно из: получение запроса на авторизацию электронного устройства 102 на выполнение приложения 108 и подтверждения статического маркера 140.
[00180] В некоторых вариантах осуществления способа 400, создание исполняемого на компьютере кода основано по меньшей мере, частично, на статическом маркере 140.
[00181] Этап 410 - передача электронному устройству запроса на подтверждение динамического маркера, запрос включает в себя исполняемый на компьютере код, исполняемый на компьютере код выполнен с возможностью получать результат выполнения, уникальный для среды работы устройства; результат выполнения совпадает с заранее определенным ожидаемым результатом проверки динамического маркера.
[00182] На этапе 410, сервер 109 сетевого ресурса передает электронному устройству 1-2 запрос на подтверждение динамического маркера 160, запрос включает в себя исполняемый на компьютере код, исполняемый на компьютере код выполнен с возможностью получать результат выполнения, уникальный для среды работы устройства; результат выполнения совпадает с заранее определенным ожидаемым результатом проверки динамического маркера 160.
[00183] Этап 412 - проверка динамического маркера путем проверки результата выполнения заранее определенного ожидаемого результата.
[00184] На этапе 412, сервер 109 сетевого ресурса проверяет динамический маркер 160 путем проверки результата выполнения заранее определенного ожидаемого результата.
[00185] Этап 414 - в ответ на то, что оба статический маркер и динамический маркер были проверены, авторизация электронного устройства для выполнения приложения.
[00186] На этапе 414, сервер 109 сетевого ресурса, в ответ на то, что оба статический маркер 140 и динамический маркер 160 были проверены, авторизация электронного устройства 120 для выполнения приложения 108.
[00187] В некоторых вариантах осуществления настоящей технологии, авторизация для выполнения приложения 108 включает в себя авторизацию доступа к сетевому ресурсу 110, расположенному на сервере 109 сетевого ресурса через приложение 108.
[00188] В некоторых вариантах осуществления способа 400, способ далее включает в себя передачу инициирующего элемента выполнения электронному устройству 102, инициирующий элемент выполнения инициирует выполнение приложения 108 электронным устройством 102.
[00189] В некоторых вариантах осуществления способа 400, создание исполняемого компьютером кода включает в себя выбор по меньшей мере двух подмножеств исполняемых на компьютере инструкций из множества исполняемых на компьютере инструкций, набор исполняемых на компьютере инструкций был выбран заранее для среды работы устройства, каждое из двух подмножеств исполняемых на компьютере инструкций для авторизации конкретной части выполнения приложения 108.
[00190] В некоторых вариантах осуществления способ 400, приложение 108 является веб-сессией на основе приложения 108, которое требует данных интерфейса программирования приложений (API), загружаемых с сервера 109 сетевого ресурса.
[00191] В некоторых вариантах осуществления настоящей технологии далее способ 400 заканчивается.
[00193] Тем не менее, важно иметь в виду, что варианты осуществления сигналов никак конкретно не ограничены. Таким образом, варианты осуществления настоящей технологии могут быть реализованы для аутентификации доступа к другим типам ресурсов (локальных или сетевых), а также для авторизации выполнения приложения в целом.
[00194] Описанная выше архитектура способна выполнять способ выполнения авторизации приложения 108 на электронном устройстве 102 в соответствии с другим вариантом осуществления настоящей технологии. Как было упомянуто ранее, выполнение авторизации приложения 108 может включать в себя авторизацию доступа к сетевому ресурсу, например сетевому ресурсу 110.
[00195] На Фиг. 5 представлена блок-схема способа 500, который выполняется в соответствии с другими неограничивающими вариантами осуществления настоящего технического решения. В некоторых вариантах осуществления настоящей технологии, способ 500 может выполняться сервером 109 сетевого ресурса. В других вариантах осуществления настоящей технологии, способ 500 может выполняться соответствующим сервером аутентификации (не показано), который может быть отделен от сервера 109 сетевого ресурса и другого сервера 112 сетевого ресурса.
[00196] Этап 502 - получение запроса от электронного устройства на авторизацию электронного устройства для выполнения приложения, запрос включает в себя учетные данные пользователя, связанные с электронным устройством.
[00197] Способ 500 начинается на этапе 502, где сервер 109 сетевого ресурса осуществляет получение запроса 162 от электронного устройства 102 для авторизации электронного устройства 102 для выполнения приложения 108, запрос включает в себя учетные данные пользователя, связанные с электронным устройством 102 (или, альтернативно, с пользователем электронного устройства 102).
[00198] Этап 504 - создание запроса на проверку среды работы устройства, связанной с электронным устройством, запрос включает в себя исполняемый компьютером код, исполняемый компьютером код выполнен с возможностью получать результат выполнения, уникальный для среды работы устройства
[00199] На этапе 504, сервер 109 сетевого ресурса осуществляет создание запроса для проверки среды работы устройства, связанной с электронным устройством 102, запрос включает в себя исполняемый компьютером код, исполняемый компьютером код выполнен с возможностью получать результат выполнения, уникальный для среды работы устройства.
[00200] В некоторых вариантах осуществления настоящей технологии, этап 504 (и последующие этапы) выполняется в ответ на положительную проверку учетных данных пользователя сервером 109 сетевого ресурса.
[00201] Этап 506 - передача запроса на проверку среды работы устройства электронному устройству
[00202] На этапе 506, сервер 109 сетевого ресурса осуществляет передачу запроса на проверку среды работы устройства электронному устройству 102.
[00203] Этап 508 - получение, от электронного устройства, результата выполнения, созданного исполняемым на компьютере кодом; в ответ на то, что результат выполнения совпадает с заранее определенным ожидаемым результатом, авторизация электронного устройства выполнять приложение
[00204] На этапе 508, сервер 109 сетевого ресурса получает, от электронного устройства 102, результат выполнения, созданный исполняемым на компьютере кодом.
[00205] Этап 510 - в ответ на то, что результат выполнения совпадает с заранее определенным ожидаемым результатом, авторизация электронного устройства для выполнения приложения
[00206] На этапе 510, сервер 109 сетевого ресурса, в ответ на то, что результат выполнения совпадает с заранее определенным ожидаемым результатом, авторизует электронное устройство 102 для выполнения приложения 108.
[00207] В некоторых вариантах осуществления настоящей технологии, авторизация для выполнения приложения 108 включает в себя авторизацию доступа к сетевому ресурсу 110, расположенному на сервере 109 сетевого ресурса через приложение 108.
[00208] В некоторых вариантах осуществления способа 500, способ далее включает в себя инициирующий элемент 164 для электронного устройства 102, инициирующий элемент выполнения инициирует выполнение приложения электронным устройством 102.
[00209] В некоторых вариантах осуществления способа 500, среда работы устройства включает в себя по меньшей мере одно из: параметр аппаратного обеспечения, параметр операционной системы и параметр программного обеспечения, и при этом результат выполнения уникален по меньшей мере для одного из параметра аппаратного обеспечения, параметра операционной системы и параметра программного обеспечения. В некоторых вариантах осуществления способа 500, результат выполнения уникален для всех из параметра аппаратного обеспечения, параметра операционной системы и параметра программного обеспечения.
[00210] В некоторых вариантах осуществления способа 500, способ также включает в себя создание исполняемого на компьютере кода.
[00211] В некоторых вариантах осуществления способа 500, создание исполняемого компьютером кода включает в себя выбор подмножества исполняемых на компьютере инструкций из множества исполняемых на компьютере инструкций, набор исполняемых на компьютере инструкций был выбран заранее для среды работы устройства.
[00212] В некоторых вариантах осуществления способа 500, создание исполняемого на компьютере кода производится до: получения 502 запроса 162 на авторизацию электронного устройства 102 на выполнение приложения 108. В некоторых вариантах осуществления способа 500, создание исполняемого на компьютере кода производится в ответ на одно из: получение запроса на авторизацию электронного устройства 102 на выполнение приложения 108 и положительной проверки учетных данных пользователя.
[00213] В некоторых вариантах осуществления способа 500, создание исполняемого на компьютере кода на основе по меньшей мере, частично, на учетных данных пользователя.
[00214] В некоторых вариантах осуществления способа 500, создание исполняемого компьютером кода включает в себя выбор по меньшей мере двух подмножеств исполняемых на компьютере инструкций из множества исполняемых на компьютере инструкций, набор исполняемых на компьютере инструкций был выбран заранее для среды работы устройства, каждое из двух подмножеств исполняемых на компьютере инструкций для авторизации конкретной части выполнения приложения 108.
[00215] В некоторых вариантах осуществления способа 500, приложение является веб-сессией на основе приложения, которое требует данных интерфейса программирования приложений (API), загружаемых с сервера 109 сетевого ресурса.
[00216] Таким образом, с одной точки зрения, варианты осуществления настоящего технического решения можно изложить следующим образом, структурированно, пронумерованными пунктами.
[00217] ПУНКТ 1 Способ (400) авторизации выполнения приложения (108) на электронном устройстве (102), электронное устройство соединено с сервером (109) через сеть (106) передачи данных, электронное устройство связано со средой работы устройства, способ выполняется на сервере, способ включает в себя:
[00218] передачу (402) электронному устройству статического маркера (140) и динамического маркера (160), статический маркер включает в себя учетные данные пользователя для авторизации электронного устройства; и динамический маркер для авторизации среды работы устройства;
[00219] получение (402) запроса (162) от электронного устройства для авторизации электронного устройства для выполнения приложения, запрос включает в себя учетные данные пользователя, связанные с электронным устройством;
[00220] передачу (404) электронному устройству запроса на проверку статического маркера с помощью запроса учетных данных пользователя от электронного устройства;
[00221] подтверждение (406) статического маркера путем получения и проверки учетных данных пользователя;
[00222] передачу (408) электронному устройству запроса на подтверждение динамического маркера, запрос включает в себя исполняемый на компьютере код, исполняемый на компьютере код выполнен с возможностью получать результат (166) выполнения, уникальный для среды работы устройства; результат выполнения совпадает с заранее определенным ожидаемым результатов проверки динамического маркера;
[00223] подтверждение (410) динамического маркера путем проверки результата выполнения заранее определенного ожидаемого результата; и
[00224] в ответ на то, что оба статический маркер и динамический маркер были проверены, авторизацию (412) электронного устройства для выполнения приложения.
[00225] ПУНКТ 2 Способ по п. 1, который включает в себя передачу инициирующего элемента (164) выполнения электронному устройству, инициирующий элемент выполнения инициирует выполнение приложения электронным устройством.
[00226] ПУНКТ 3 Способ по любому из пп. 1 или 2, в котором среда работы устройства включает в себя по меньшей мере одно из: параметр аппаратного обеспечения, параметр операционной системы и параметр программного обеспечения, и при этом результат выполнения уникален по меньшей мере для одного из параметра аппаратного обеспечения, параметра операционной системы и параметра программного обеспечения.
[00227] ПУНКТ 4 Способ по п. 3, в котором результат выполнения уникален для всех из параметра аппаратного обеспечения, параметра операционной системы и параметра программного обеспечения.
[00228] ПУНКТ 5 Способ по любому из пп. 1-4, дополнительно включающий в себя создание исполняемого компьютером кода.
[00229] ПУНКТ 6 Способ по п. 5, в котором создание исполняемого компьютером кода включает в себя выбор подмножества исполняемых на компьютере инструкций из множества исполняемых на компьютере инструкций, набор исполняемых на компьютере инструкций был выбран заранее для среды работы устройства.
[00230] ПУНКТ 7 Способ по п. 5, в котором создание исполняемого на компьютере кода производится до передачи электронному устройству статического маркера и динамического маркера.
[00231] ПУНКТ 8 Способ по п. 7, который далее включает в себя внедрение исполняемого на компьютере кода в динамический маркер.
[00232] ПУНКТ 9 Способ по п. 5, в котором создание исполняемого на компьютере кода производится в ответ на одно из: получение запроса на авторизацию электронного устройства на выполнение приложения и подтверждения статического маркера.
[00233] ПУНКТ 10 Способ по п. 9, в котором создание исполняемого на компьютере кода основано по меньшей мере, частично, на статическом маркере.
[00234] ПУНКТ 11 Способ по любому из пп. 1-10, в котором создание исполняемого компьютером кода включает в себя выбор по меньшей мере двух подмножеств исполняемых на компьютере инструкций из множества исполняемых на компьютере инструкций, набор исполняемых на компьютере инструкций был выбран заранее для среды работы устройства, каждое из двух подмножеств исполняемых на компьютере инструкций для авторизации конкретной части выполнения приложения.
[00235] ПУНКТ 12 Способ по любому из пп. 1-11, в котором приложение является веб-сессией на основе приложения, которое требует данных интерфейса программирования приложений (API), загружаемых с сервера.
[00236] ПУНКТ 13 Способ (500) авторизации выполнения приложения (108) на электронном устройстве (102), электронное устройство соединено с сервером (109) через сеть (106) передачи данных, электронное устройство связанно со средой работы устройства, способ выполняется на сервере, способ включает в себя:
[00237] получение (502) запроса (162) от электронного устройства для авторизации электронного устройства для выполнения приложения, запрос включает в себя учетные данные пользователя, связанные с электронным устройством;
[00238] в ответ на положительную проверку учетных данных пользователя:
[00239] создание (504) запроса для проверки среды работы устройства, связанной с электронным устройством, запрос включат в себя исполняемый компьютером код, исполняемый компьютером код выполнен с возможностью получать результат выполнения, уникальный для среды работы устройства;
[00240] передачу (506) запроса на проверку среды работы устройства электронному устройству;
[00241] получение (508) от электронного устройства результата (166) выполнения, созданного исполняемым на компьютере кодом;
[00242] в ответ на то, что результат выполнения совпадает с заранее определенным ожидаемым результатом, авторизацию (510) электронного устройства для выполнения приложения.
[00243] ПУНКТ 14 Способ по п. 13, который включает в себя передачу инициирующего элемента (164) выполнения электронному устройству, инициирующий элемент выполнения инициирует выполнение приложения электронным устройством.
[00244] ПУНКТ 15 Способ по любому из пп. 13 или 14, в котором среда работы устройства включает в себя по меньшей мере одно из: параметр аппаратного обеспечения, параметр операционной системы и параметр программного обеспечения, и при этом результат выполнения уникален по меньшей мере для одного из параметра аппаратного обеспечения, параметра операционной системы и параметра программного обеспечения.
[00245] ПУНКТ 16 Способ по п. 15, в котором результат выполнения уникален для всех из параметра аппаратного обеспечения, параметра операционной системы и параметра программного обеспечения.
[00246] ПУНКТ 17 Способ по любому из пп. 1-16, дополнительно включающий в себя создание исполняемого компьютером кода.
[00247] ПУНКТ 18 Способ по п. 17, в котором создание исполняемого компьютером кода включает в себя выбор подмножества исполняемых на компьютере инструкций из множества исполняемых на компьютере инструкций, набор исполняемых на компьютере инструкций был выбран заранее для среды работы устройства.
[00248] ПУНКТ 19 Способ по п. 17, в котором создание исполняемого на компьютере кода производится до: получения запроса на авторизацию электронного устройства на выполнение приложения.
[00249] ПУНКТ 20 Способ по п. 17, в котором создание исполняемого на компьютере кода производится в ответ на одно из: получение запроса на авторизацию электронного устройства на выполнение приложения и положительной проверки учетных данных пользователя.
[00250] ПУНКТ 21 Способ по п. 20, в котором создание исполняемого на компьютере кода на основе по меньшей мере, частично, на учетных данных.
[00251] ПУНКТ 22 Способ по любому из пп. 13-21, в котором создание исполняемого компьютером кода включает в себя выбор по меньшей мере двух подмножеств исполняемых на компьютере инструкций из множества исполняемых на компьютере инструкций, набор исполняемых на компьютере инструкций был выбран заранее для среды работы устройства, каждое из двух подмножеств исполняемых на компьютере инструкций для авторизации конкретной части выполнения приложения.
[00252] ПУНКТ 23 Способ по любому из пп. 12-22, в котором приложение является веб-сессией на основе приложения, которое требует данных интерфейса программирования приложений (API), загружаемых с сервера.
[00253] ПУНКТ 24 Сервер выполнен с возможностью выполнять способ по любому из пп. 1-23.
[00254] Модификации и улучшения вышеописанных вариантов осуществления настоящей технологии будут ясны специалистам в данной области техники. Предшествующее описание представлено только в качестве примера и не устанавливает никаких ограничений. Таким образом, объем настоящей технологии ограничен только объемом прилагаемой формулы изобретения.