СПОСОБ УСТАНОВЛЕНИЯ СОЕДИНЕНИЯ (ВАРИАНТЫ), СПОСОБ ПЕРЕДАЧИ ПАКЕТА ДАННЫХ И СИСТЕМА УДАЛЕННОГО ДОСТУПА
METHOD TO ESTABLISH CONNECTION (VERSIONS), METHOD TO TRANSFER DATA PACKET AND SYSTEM OF REMOTE ACCESS

Область техники, к которой относится изобретение
Настоящее изобретение в целом имеет отношение к доступу к удаленным приложениям в защищенной сети через виртуальную частную сеть (VPN = Virtual Private Network) и, в частности, к передаче данных с помощью удаленного приложения.
Предпосылки создания изобретения
Сеть представляет собой систему аппаратных и программных средств, используемых совместно с целью обмена данными и распределения ресурсов. Сеть включает в себя ресурсы, например передающую аппаратуру и устройства для подключения к среде передачи данных и для управления передачей данных, программное обеспечение для декодирования и форматирования данных, а также для выявления и устранения проблем при передаче данных. В настоящее время используется несколько типов сетей. В некоторых сетях, например локальных вычислительных сетях (ЛВС) и территориально-распределенных сетях (WAN = Wide Area Network), ресурсы физически соединяются друг с другом. В других сетях, таких как виртуальные частные сети (VPN), некоторые связи между ресурсами выполняются с помощью виртуальных соединений, маршрутизируемых через большие сети.
В VPN-сети обычно используется инфраструктура сети связи с общим доступом, такая как Интернет, для обеспечения удаленных офисов или индивидуальных пользователей безопасным доступом к сети предприятия. VPN-сеть работает на основе совместно используемой инфраструктуры с общим доступом при сохранении конфиденциальности личной информации благодаря процедурам и протоколам туннелирования, таким как протокол L2TP (Layer Two Tunneling Protocol - протокол туннелирования второго уровня), протокол SSL (Secure Socket Layer - протокол безопасных соединений) и протокол IPSec (Internet Protocol security - защита передачи данных в сетях, работающих по Интернет-протоколу).
Для создания на вычислительном устройстве модулей, которые обеспечивают подключение к VPN-сети и использование удаленных приложений, в традиционных VPN-системах на пользовательские вычислительные устройства необходимо устанавливать специализированное программное обеспечение, называемое клиентским программным обеспечением. Так как поддерживающее программное обеспечение на пользовательских вычислительных устройствах стало относительно дорогим и отнимающим много времени, были разработаны VPN-системы. Указанные бесклиентные VPN-системы не требуют предварительного конфигурирования с помощью клиентского программного обеспечения. Однако область применения таких бесклиентных VPN-систем ограничена только удаленными приложениями со статическими портами. При росте потребности в приложениях с динамическими портами, таких как VoIP (Voice over Internet Protocol - система телефонии по Интернет-протоколу) и системы проведения видеоконференций, преимуществом будет реализация способа обеспечения бесклиентного доступа к VPN-сети, которая может поддерживать и приложения с динамическими портами.
Краткое изложение сущности изобретения
Далее приводится описание способов и систем обеспечения пользовательского устройства безопасным доступом к сети предприятия через VPN-сеть. Пользовательское устройство может включать в себя VPN-клиента и пользовательское приложение. Агент в пользовательском устройстве может перехватить запрос к службе операционной системы на установление соединения, исходящий от пользовательского приложения, и на основе перехваченного запроса может быть создан канал связи между агентом и приложением VPN-клиент. После этого пакеты, посылаемые пользовательским приложением, могут перенаправляться VPN-клиенту через интерфейс Loopback (интерфейс канала коммуникации с одной конечной точкой - канала, замкнутого самого на себя). VPN-клиент устанавливает VPN-туннель с сетью предприятия и пересылает пакеты данных в сеть предприятия. Аналогичным образом, пакеты, принятые VPN-клиентом из сети предприятия, маршрутизируются в удаленное приложение через интерфейс Loopback. В одном из вариантов осуществления настоящего изобретения пользовательское приложение и VPN-клиент могут динамически загружаться в пользовательское устройство. VPN-клиент может выполнять пользовательское приложение на пользовательском устройстве и ассоциировать с ним агента.
Специалисты в данной области техники смогут оценить область действия настоящего изобретения и дополнительные возможности его осуществления после прочтения последующего подробного описания предпочтительных вариантов его осуществления со ссылкой на прилагаемые чертежи.
Краткое описание чертежей
Прилагаемые чертежи, включенные в данное описание и являющиеся его составной частью, иллюстрируют несколько особенностей изобретения и вместе с описанием служат для пояснения принципов настоящего изобретения.
На Фиг.1 представлена функциональная схема примера сети в соответствии с одним из вариантов осуществления настоящего изобретения, в которой удаленные пользователи имеют возможность получить удаленный доступ через VPN-сеть.
На Фиг.2 представлен пример пользовательского вычислительного устройства в соответствии с одним из вариантов осуществления настоящего изобретения.
На Фиг.3 показана работа приложения VPN-клиент.
На Фиг.4 показана работа приложения VPN-клиент, представленного на Фиг.3.
На Фиг.5 представлен пример способа реализации приложения VPN-клиент.
На Фиг.6 представлен способ передачи пакетов данных из пользовательского приложения в приложение VPN-клиент.
На Фиг.7 представлен способ передачи пакетов данных из приложения VPN-клиент в пользовательское приложение.
Подробное описание изобретения
В вариантах осуществления настоящего изобретения, рассматриваемых ниже, представлена необходимая информация, которая специалистам в данной области техники даст возможность оценить возможности реализации настоящего изобретения, а также иллюстрируется лучший способ реализации настоящего изобретения. После прочтения последующего описания с привлечением прилагаемых чертежей специалисты в данной области техники уяснят принципы изобретения и варианты осуществления этих принципов, в той числе и не рассмотренные в данном описании. Необходимо понимать, что эти принципы и варианты их осуществления входят в область действия описания и прилагаемой формулы изобретения.
В настоящем изобретении предлагаются способ и устройство для предоставления удаленного доступа с помощью виртуальной частной сети (VPN). Указанные способ и устройство предоставляют пользователям доступ к ресурсам в пределах сети предприятия с использованием пользовательского вычислительного устройства, подключенного через сеть общего доступа, такую как Интернет, даже при отсутствии административных привилегий для пользовательского вычислительного устройства.
На Фиг.1 представлен пример пользовательского устройства 102, которое осуществляет связь с сетью предприятия 104 через сеть общего доступа 106. Пользовательское устройство 102 может содержать компьютерные устройства любого типа, например портативный компьютер, карманный компьютер и персональный компьютер. Пользовательское устройство 102 может содержать устройство общего доступа, например интернет-будку, киоск и т.п.
Сеть предприятия 104 и сеть общего доступа 106 могут быть сетью беспроводной связи или сетью проводной связи, или их комбинацией. Сеть предприятия 104 содержит сетевые элементы, такие как маршрутизаторы или коммутаторы, соединенные друг с другом, чтобы обеспечить передачу данных внутри сети предприятия 104. Сеть предприятия 104 может содержать множество компонентов, таких как серверы электронной почты; хосты, ресурсы и другие общие сетевые элементы, которые в данных примерах не показаны. Область применения настоящего изобретения не ограничена сетями предприятия, конфигурация которых настроена определенным образом, и соответственно детали внутренней структуры сети предприятия 104 опущены, чтобы не загромождать описание изобретения.
В предпочтительном варианте осуществления настоящего изобретения сеть предприятия 104 включает в себя приложение масштаба предприятия 108 и VPN-шлюз 110. VPN-шлюзы хорошо известны, и изобретение не ограничено конкретным вариантом его осуществления, в котором используются определенные виды внешних ресурсов. VPN-шлюз 110 позволяет пользователю применять пользовательское устройство 102 в целях получения удаленного доступа к сети предприятия 104 по всей сети общего доступа 106 в защищенном режиме, например, путем создания VPN-туннеля между пользовательским устройством 102 и сетью предприятия 104. Приложение масштаба предприятия 108 может выполняться на одном сервере или на множестве серверов, оно может представлять собой ферму серверов или часть фермы серверов. Различные типы серверов хорошо известны, и изобретение не ограничено конкретным вариантом его осуществления, в котором используются серверы конкретных типов.
Обычно, когда пользователю нужно получить удаленный доступ к сети предприятия, ему необходимо установить VPN-клиент на пользовательский компьютер, который предполагается использовать для доступа к сети предприятия. Установленный VPN-клиент дает возможность удаленному компьютеру подключиться к сети предприятия через VPN-туннель. VPN-клиенты, имеющиеся в настоящее время, требуют, чтобы компоненты уровня ядра операционной системы были установлены в устройстве, требующем привилегии пользователя более высокого уровня (например, административную привилегию пользователя). Поскольку VPN-клиент установлен на определенном компьютере, то если пользователь хочет получить доступ с другого компьютера, ему необходимо установить на этом компьютере VPN-клиента. Например, если пользователь хочет войти в сеть предприятия 104 из дома, ему для получения доступа к сети предприятия 104 необходимо установить VPN-клиента на своем домашнем компьютере. Если пользователь путешествует без компьютера, на котором установлен VPN-клиент, VPN-доступ зачастую неосуществим, так как административная привилегия пользователю устройства общего доступа в общем случае не может быть предоставлена.
Чтобы преодолеть эти ограничения, в соответствии с одним из вариантов осуществления настоящего изобретения VPN-туннели могут создаваться с использованием динамически загружаемых VPN-клиентов, таких как VPN-клиент 112, показанный на Фиг.1. VPN-клиент 112 можно загрузить, например, с веб-портала или внешнего запоминающего устройства, такого как USB флэш-память. В предпочтительном варианте осуществления настоящего изобретения пользователь аутентифицируется веб-порталом или запоминающим устройством до загрузки VPN-клиента 112 на пользовательское устройство 102.
Благодаря тому, что пользовательское устройство 102 во время сеанса принудительно осуществляет динамическую загрузку VPN-клиента, это устройство не нуждается в предварительной загрузке VPN-клиента. Следовательно, любой компьютер с интернет-браузером может использоваться для входа в сеть предприятия 104. Динамические загружаемые компоненты могут удаляться после завершения сеанса так, чтобы возможность использования компонентов VPN-клиента 112 исчезала с окончанием сеанса. Соответственно пользователь будет способен осуществлять доступ к корпоративной сети даже с компьютера общего доступа.
В соответствии с одним из вариантов осуществления настоящего изобретения VPN-клиент 112 может быть загружен вместе с пользовательским приложением 114 так, чтобы он мог удаленно исполняться через веб-интерфейс. При работе пользователь после его аутентификации может быть снабжен списком приложений, к которым может быть открыт для него доступ. После выбора пользовательского приложения как пользовательское приложение 114, так и VPN-клиент 112 могут быть динамически загружены на пользовательское устройство 102. VPN-клиент 112 может исполнять пользовательское приложение 114 и ассоциировать VPN-агента 116 с пользовательским приложением 114, чтобы перехватывать запросы на установление соединения, например вызов соединения, исходящие от пользовательского приложения 114.
Кроме того, VPN-агент 116 может установить канал связи с VPN-клиентом 112, чтобы перенаправлять пакеты, например пакеты данных, передаваемые удаленным приложением 114. VPN-клиент 112 также создает логический туннель или VPN-туннель с VPN-шлюзом 110 для кодирования и пересылки пакетов. Различные аспекты вариантов осуществления пользовательского устройства 102 ниже подробно поясняются со ссылкой на Фигуры 2-4.
На Фиг.2 представлен пример пользовательского устройства 102. Для целей объяснения вариант осуществления настоящего изобретения, представленный на Фиг.2, показан в состоянии, где VPN-клиент 112 динамически загружен, так что пользовательское устройство 102 готово к передаче данных через сеть общего доступа 106 с использованием туннеля. Как уже обсуждалось выше, после завершения сеанса некоторые или все VPN-компоненты могут быть удалены из компьютера, чтобы вернуть пользовательское устройство 102 к нормальной конфигурации.
В предпочтительном варианте осуществления настоящего изобретения пользовательское устройство 102 содержит центральное процессорное устройство (ЦПУ) 202, запоминающее устройство 204 и сетевые интерфейсы 206. ЦПУ 202 реализует логику управления для обработки модулей, хранящихся в памяти 204. Запоминающее устройство 204 может содержать энергозависимые и энергонезависимые запоминающие устройства. Пользовательское устройство 102 взаимодействует с сетью общего доступа 106 и сетью предприятия 104 через сетевые интерфейсы 206. Сетевые интерфейсы 206 включают в себя, например, физический адаптер, содержащий порты, конфигурация которых настроена для подключения к физическим каналам в сети общего доступа 106 и к VPN-сетям, созданным с помощью VPN-клиента 112.
При работе, как уже обсуждалось выше, VPN-клиент 112 и пользовательское приложение 114 могут загружаться динамически на пользовательское устройство 102. Затем VPN-клиент 112 может ассоциировать VPN-агента 116 с пользовательским приложением 114. Для этого VPN-клиент 112 исполняет пользовательское приложение 114 и ассоциирует VPN-агента 116 с пользовательским приложением 114 так, чтобы VPN-агент 116 мог перехватывать запросы к службе операционной системы на установление соединения, такие как вызовы соединения, генерируемые пользовательским приложением 114. Вызовы соединения могут включать в себя вызовы, связанные с созданием соединений, получением адреса соединения получателя и т.п. В соответствии с одним из вариантов осуществления настоящего изобретения вызовами соединений могут быть вызовы, взаимодействующие с интерфейсами API (Application Program Interface - интерфейс прикладных программ), например интерфейсом WinSock API, который имеется в операционной системе Windows, разработанной корпорацией Microsoft.
Кроме того, VPN-агент 116 может установить канал связи с VPN-клиентом 112. Это может сопровождаться заменой адреса получателя в запросе, перехваченном VPN-агентом, на адрес интерфейса Loopback. Интерфейс Loopback представляет собой интерфейс виртуальной сети, который может быть интегрирован с операционной системой и используется для маршрутизации данных назад в объект-отправитель без их целенаправленной обработки или модификации. Самым распространенным IP-адресом, который используется для интерфейса Loopback, для протокола IPv4 является адрес 127.0.0.1, хотя на него отображается любой адрес в диапазоне от 127.0.0.0 до 127.255.255.255. Интерфейс Loopback может использоваться сетевым клиентом на компьютере для обмена данными с приложением на том же компьютере. Конфигурация интерфейса Loopback 208 может быть настроена для пересылки пакетов или в VPN-клиент 112, или в пользовательское приложение 114.
Кроме того, VPN-клиент 112 создает логический туннель или VPN-туннель с VPN-шлюзом 110 и принимает IP-адрес туннеля. В соответствии с одним из вариантов осуществления настоящего изобретения IP-адреса туннеля соответствует IP-адресам прокси на VPN-шлюзе 110 и приложения масштаба предприятия 108.
При работе, когда пользовательское приложение 114 должно отправлять пакеты на приложение масштаба предприятия 108, пакеты перенаправляются VPN-клиенту 112 через интерфейс Loopback 208. После этого VPN-клиент соответствующим образом кодирует и отправляет пакеты через VPN-туннель 110. Аналогичным образом, пакеты, принимаемые VPN-клиентом 112 из VPN-шлюза 110, отправляются в пользовательское приложение 114 через интерфейс Loopback 208.
На Фиг.3 представлен пример VPN-клиента 112 в пользовательском устройстве 102 в соответствии с одним из вариантов осуществления настоящего изобретения. Пользовательскому устройству 102 назначается IP-адрес, который является IP-адресом физического интерфейса 302 в сетевом интерфейсе 206. Физическим интерфейсом 302 может быть сетевой адаптер, например сетевая карта, осуществляющий функции интерфейса между пользовательским устройством 102 и любой сетью. Физическим интерфейсом 302 может быть адаптер сети проводной или беспроводной связи, поддерживаемый операционной системой пользовательского устройства 102 с помощью ряда модулей, таких как драйверы устройств.
Как уже обсуждалось выше, после успешной аутентификации пользователю предоставляется доступ к ряду заранее сконфигурированных приложений, которые могут находиться в различный местах. В соответствии с одним из вариантов осуществления настоящего изобретения заранее сконфигурированные удаленные приложения могут находиться на USB-устройстве. Пользователь может выбрать нужное приложение, например пользовательское приложение 114, из списка заранее сконфигурированных пользовательских приложений.
Затем выбранное пользовательское приложение 114 загружается на пользовательское устройство 102 вместе с VPN-клиентом 112 и исполняется VPN-клиентом 112. В случае, когда VPN-клиент 112 уже исполняется на пользовательском устройстве 102, например, когда другое пользовательское приложение было выбрано ранее, VPN-клиент 112 не может быть повторно загружен. VPN-клиент 112 также инициирует VPN-агента 116, который ассоциируется с пользовательским приложением 114. Инициализация VPN-агента может включать в себя ассоциирование библиотеки DLL (Hook Dynamic-link Library - библиотека динамически подключаемых модулей) с пользовательским приложением 114.
При исполнении пользовательское приложение 114 может активизировать системные вызовы для установления канала связи через физический интерфейс 302. В соответствии с одним из вариантов осуществления настоящего изобретения в случае операционной системы Windows исполняемое пользовательское приложение 114 активизирует WinSock API-вызовы (Windows Sockets API - API соединений Windows). Указанные системные вызовы или API-вызовы генерируются пользовательским приложением 114 с целью создания соединений на физическом интерфейсе 302 и приема адреса получателя Интернет-протокола (IP) для установления канала связи. VPN-клиент 112 перехватывает API-вызовы, генерируемые пользовательским приложением 114, чтобы ассоциировать VPN-агента 116 с удаленным приложением 114.
Перехват - это технология программирования, которая работает как обработчик событий путем перехвата вызовов библиотечных функций или API-вызовов, создаваемых приложением. В общем случае система перехвата включает в себя две части: сервер перехвата и драйвер перехвата, например Winsock.dll. Сервер перехвата вводит драйвер перехвата в адресное пространство приложения для перехвата API-вызовов. Кроме того, сервер перехвата управляет драйвером перехвата и обменивается с ним данными. Драйвер перехвата выполняет реальный перехват API-вызовов, активизируемых приложением.
VPN-клиент 112, играющий роль сервера перехвата, выполняет перехват путем создания VPN-агента 116 и ассоциирования VPN-агента 116 с удаленным приложением 114. VPN-агент 116 содержит логику API-перехвата или, другими словами, набор команд для перехвата API-вызовов, генерируемых удаленным приложением 114. VPN-агент 116 может отслеживать API-вызовы соединения, выдаваемые удаленным приложением 114, и передавать данные событий соединения на VPN-клиент 112. Следовательно, каждый раз, когда новое пользовательское приложение 114 исполняется на пользовательском устройстве 102, VPN-клиент 112 создает новый VPN-агент 116 и ассоциирует новый VPN-агент 116 с новым удаленным приложением 114. Соответственно WinSock API-вызовы, генерируемые новым удаленным приложением 114, интерпретируются новым VPN-агентом 116 и передаются VPN-клиенту 112.
Кроме того, как уже обсуждалось выше, VPN-агент 116 устанавливает канал связи с VPN-клиентом 112 через интерфейс Loopback 208, а VPN-клиент 112 устанавливает сетевое VPN-соединение, например SSL-туннель, с VPN-шлюзом 110. Интерфейс loop-back представляет собой виртуальный интерфейс, позволяющий пользовательскому приложению отправлять и принимать пакеты данных от VPN-клиента 112 по IP-адресу виртуального интерфейса, а не по IP-адресу физического интерфейса 302. SSL-туннель создается путем приема IP-адресов туннеля от VPN-шлюза. SSL-туннель может быть создан VPN-клиентом 112 только один раз, когда исполняется первое пользовательское приложение 114. Далее, каждый раз, когда исполняется новое пользовательское приложение 114, может устанавливаться новый SSL-сеанс для нового пользовательского приложения 114 в заранее созданном SSL-туннеле.
Интерфейс Loopback 208 может быть сконфигурирован так, чтобы он переправлял пакеты данных VPN-клиенту 112 во время выходного потока данных с целью отправки пакетов данных из пользовательского приложения 114 в приложение масштаба предприятия 108. На Фиг.3 путь, по которому передаются пакеты данных во время выходного потока данных, обозначен как 1E, 2E и 3Е.
В соответствии с одним из вариантов осуществления настоящего изобретения VPN-агент 116 заменяет адрес получателя пакетов данных, генерируемый пользовательским приложением 114, на IP-адрес интерфейса Loopback 208, тогда как адрес отправителя пакетов остается тем же, что и у физического интерфейса 302. В результате пакеты данных с физического интерфейса 302 направляются в интерфейс Loopback 208. Интерфейс loop-back 208 может быть сконфигурирован для отправки пакетов данных, принятых от физического интерфейса 302, на VPN-клиент 112. Чтобы принять пакеты данных VPN-клиент 112 осуществляет прослушивание на соединении, соответствующем интерфейсу Loopback 208.
На VPN-клиенте 112 IP-адрес отправителя пакетов данных заменяется IP-адресом отправителя прокси, предоставленным VPN-шлюзом 110. Модифицированный IP-адрес отправителя пакетов данных ведет себя как IP-адрес одного конца SSL-туннеля. Кроме того, IP-адрес получателя пакетов данных заменяется виртуальным IP-адресом получателя, предоставленным VPN-шлюзом 110. Модифицированный IP-адрес получателя пакетов соответствует IP-адресу приложения масштаба предприятия 108 в сети предприятия 104 и ведет себя как IP-адрес другого конца SSL-туннеля.
Пакеты данных с модифицированными IP-адресами отправителя и получателя после этого называются модифицированными пакетами данных и далее инкапсулируются и кодируются с помощью протокола SSL VPN-клиентом 112 для передачи через SSL-туннель в приложение масштаба предприятия 108. Инкапсулированные SSL-пакеты для передачи выдаются с IP-адресом физического интерфейса 302 в качестве IP-адреса отправителя и физическим IP-адресом VPN-шлюза 110 в качестве IP-адреса получателя. Таким образом, пакеты передаются на VPN-шлюз 110 с физического интерфейса 302. После приема пакетов данных от пользовательского устройства 102 VPN-шлюз 110 сможет развернуть пакеты данных и переслать их в приложение масштаба предприятия 108.
Аналогичным образом во время входного потока пакеты могут приниматься пользовательским приложением 114 от приложения масштаба предприятия 108 через VPN-клиента 112 и интерфейс Loopback 208. На Фиг.3 путь, по которому передаются пакеты данных во время входного потока данных, обозначен как 1I, 2I и 3I.
При реализации данной схемы во время входного потока интерфейс Loopback 208 принимает пакеты от VPN-клиента 112 и направляет пакеты данных в пользовательское приложение 114. Пользовательское приложение 114 во время ожидания запроса на установление соединения от приложения масштаба предприятия 108 активизирует событие ожидания, для чего пользовательское приложение 114 активизирует API-вызовы, например WinSock API-вызовы, чтобы передать данные о состоянии пользовательского приложения 114 в приложение масштаба предприятия 108. API-вызовы перехватываются VPN-агентом 116, который передает данные прослушивания соединения VPN-клиенту 112. VPN-клиент 112 инициирует запросы на установление соединения пользовательскому приложению через интерфейс Loopback 208, когда он через туннель принимает запросы на установление соединения от приложения масштаба предприятия 108.
В свою очередь, приложение масштаба предприятия 108 отправляет ответные пакеты на VPN-шлюз 110. VPN-шлюз 110 кодирует ответные пакеты и добавляет заголовок к ответным пакетам для отправки ответных пакетов через SSL-туннель. Заголовок, добавленный VPN-шлюзом 110, содержит IP-адрес туннеля пользовательского устройства 102 в качестве адреса отправителя. VPN-клиент 112 принимает эти ответные пакеты данных.
После приема ответных пакетов VPN-клиент 112 развертывает ответные пакеты и пересылает пакеты URP (Unwrapped Response Packet - развернутый ответный пакет) в пользовательское приложение 114 через интерфейс Loopback 208. Для этого интерфейс Loopback 208 может быть сконфигурирован для пересылки пакетов, принятых от VPN-клиента 112 на адрес соединения на физическом интерфейсе 302, который соответствует пользовательскому приложению 114. Физический интерфейс 302 отправляет пакеты в пользовательское приложение 114, что показано как входной поток данных 31.
Как уже обсуждалось выше, как во время выходного потока, так и во время входного потока пакетов данных VPN-агент 116 передает данные прослушивания соединения, касающиеся интерфейса Loopback 208 и физического интерфейса 302, на VPN-клиент 112 динамически. Таким образом, VPN-клиент 112 не должен предварительно быть сконфигурирован для прослушивания на нескольких статических портах. В результате, система может поддерживать приложения, которые используют динамические порты, такие как VoIP, видеоконференция и т.п.
На Фиг.4 показаны модули в примере VPN-клиента 112. В соответствии с одним из вариантов осуществления настоящего изобретения VPN-клиент 112 содержит модуль управления 402, модуль обработки данных 404, модуль отображения введенных данных соединения 406, стек протокола управления передачей / Интернет-протокола (TCP/IP) 408 и модуль обработки туннеля 410.
После успешной аутентификации пользователя для пользователя отображаются ссылки на предварительно сконфигурированные пользовательские приложения. Пользователь может выбрать множество пользовательских приложений из ссылок, отображаемых на пользовательском устройстве 102. В случае первого пользовательского приложения, например пользовательского приложения 114, выбранного пользователем, пользовательское приложение загружается в пользовательское устройство 102 вместе с VPN-клиентом 112. После этого в ответ на выбор пользователя отдельно загружаются только пользовательские приложения.
VPN-клиент 112 исполняет загруженные пользовательские приложения, используя модуль управления 402. Модуль управления 402 может ассоциировать отдельный VPN-агент 116 с каждым удаленным приложением 114, выбранным пользователем. Как уже обсуждалось выше, во время исполнения VPN-агент 116 перехватывает WinSock API-вызовы, активизируемые ассоциированным удаленным приложением 114. Модуль управления 402 может также создать канал связи между каждым VPN-агентом 116 и VPN-клиентом 112. Канал связи может быть создан для передачи данных о событиях соединения, таких как создание, удаление и модификация соединения. Каждый VPN-агент 116, в свою очередь, создает интерфейс Loopback 208 для перенаправления пакетов из ассоциированного пользовательского приложения 114 на VPN-клиента 112. Кроме того, модуль управления 402 может создать туннель между пользовательским устройством 102 и VPN-шлюзом 110 для передачи данных по защищенному каналу. Данные в форме пакетов данных передаются между пользовательским приложением 114 в пользовательском устройстве 102 и VPN-шлюзом 110 через интерфейс Loopback 208 и VPN-клиент 112.
VPN-клиент 112 использует модуль обработки данных 404 для приема и/или отправки пакетов данных от интерфейса Loopback 208 или на него. Для передачи пакетов данных модуль обработки данных 404 может использовать отображение между реальными соединениями, например соединениями, созданными операционной системой, и туннельными соединениями, такими как соединения, созданные в VPN-туннеле.
Модуль отображения введенных данных соединения 406 может содержать введенные данные с информацией, касающейся реальных соединений и туннельных соединений, такой как IP-адреса соединений. Указанные введенные данные позволяют модулю обработки данных 404 идентифицировать соответствующий интерфейс Loopback, через который должны маршрутизироваться пакеты данных.
Стек TCP/IP 408 обрабатывает протокол, связанный с различными функциями, такими как подготовка и модификация заголовков и распределение во времени операций отправки и/или приема пакетов данных. Кроме того, стек TCP/IP 408 предоставляет интерфейс для модуля обработки данных 404.
Инкапсуляция, развертывание, передача и прием инкапсулированных пакетов данных осуществляются с помощью модуля обработки туннеля 410. Например, модуль обработки туннеля 410 может кодировать и инкапсулировать пакеты данных с их SSL-заголовками так, чтобы их можно было переслать в VPN-шлюз 110. Модуль обработки туннеля 410 может также развертывать пакеты данных и пересылать их в модуль обработки данных 404 для передачи в пользовательское приложение 114.
Таким образом, модуль управления 402, модуль обработки данных 404, модуль отображения введенных данных соединения 406, стек TCP/IP 408 и модуль обработки туннеля 410 для перенаправления пакетов данных через туннель работают совместно.
На Фиг.5 представлена блок-схема алгоритма, иллюстрирующая пример способа 500 осуществления VPN-клиента 112, а на Фиг.6 представлена блок-схема алгоритма, иллюстрирующая способ 600 передачи пакетов данных от пользовательского приложения 114 на VPN-клиент 112. Эти примеры способов можно описать в общем контексте программ, исполнимых на компьютере. В общем случае, программы, исполнимые на компьютере, могут включать в себя подпрограммы, другие программы, объекты, компоненты, структуры данных, процедуры, модули, функции и т.п., которые выполняют конкретные функции или реализуют конкретные обратные типы данных. Программы, исполнимые на компьютере, могут храниться на носителях, считываемых компьютерами и могут загружаться или внедряться в соответствующие устройства для исполнения.
Способ 500 инициируется в блоке 502, где осуществляется доступ пользователя к каналу VPN-портала, такому как веб-портал сети предприятия, доступ к которому может осуществляться через веб-браузер. В другом примере возможен доступ к VPN-клиенту 112 с веб-портала сети предприятия 104 через веб-браузер.
В блоке 504 пользователь аутентифицируется VPN-шлюзом 110. Для обеспечения безопасности и ограничения доступа к приложению масштаба предприятия 108 пользователь может проходить аутентификацию на VPN-шлюзе 110 путем использования различных методов. Например, пользователь может быть аутентифицирован на VPN-шлюзе 110 с помощью индивидуальных имени и пароля пользователя. Аутентификация пользователя также облегчает VPN-шлюзу 110 выполнение задачи идентификации приложений масштаба предприятия, к которым аутентифицированному пользователю разрешен доступ.
В блоке 506 пользователь выбирает ссылку на пользовательское приложение 114, которое предполагается выполнить. После успешной аутентификации пользователя на VPN-шлюзе 110 нужное пользовательское приложение 114 можно выбрать из множества пользовательских приложений, к которым данному пользователю разрешен доступ.
В блоке 508 VPN-клиент 112 и выбранное по ссылке пользовательское приложение 114 загружаются и выполняются. Выбранное пользовательское приложение 114 выполняется VPN-клиентом 112 для осуществления требуемой функции. В альтернативном варианте выполнения шагов с 504 по 508 VPN-клиент 112, а также пользовательское приложение 114 могут находиться в промежуточном устройстве. Например, они могут быть расположены в USB-устройстве (Universal Serial Bus - универсальная последовательная шина). Кроме того, такое устройство может включать в себя выполнение дополнительной функции аутентификации пользователей на шаге 504.
В блоке 510 VPN-агент 116 прикреплен к пользовательскому приложению 114. Например, VPN-клиент 112 может инициировать перехват API-вызовов соединения пользовательским приложением 114, чтобы ассоциировать с ним VPN-агента. VPN-агент 116 - это модуль, который содержит логику API-перехвата. Другими словами, VPN-агент 116 приспособлен для перехвата API-вызовов, таких как WinSock API-вызовы в платформе Windows.
В блоке 512 канал связи создается между пользовательским приложением 114 и VPN-клиентом 112. При его использовании VPN-агент 116, прикрепленный к пользовательским приложениям 114, облегчает создание канала связи между пользовательскими приложениями 114 и VPN-клиентом 112 через интерфейс Loopback 208 путем использования различных методов. Например, VPN-агент 116 для настройки канала связи может использовать при условии использования операционной системы Windows функциональность создания соединений через Winsock API-вызовы.
В блоке 514 создается логический туннель между VPN-клиентом 112 и VPN-шлюзом 110. VPN-клиент 112 создает логический туннель к VPN-шлюзу 110, чтобы обеспечить канал связи между VPN-клиентом 112 и приложением масштаба предприятия 108 в сети предприятия 104 путем использования различных известных методов.
В блоке 516 IP-адреса туннеля принимаются для обмена данными с приложением масштаба предприятия 108. Чтобы облегчить обмен данными между пользовательским устройством 102 и сетью предприятия 104, IP-адреса туннеля принимаются VPN-клиентом 112 от VPN-шлюза 110.
Порядок, в котором описывается способ 500, не следует рассматривать в качестве ограничения, и для осуществления указанного или альтернативного способа любое число описанных блоков способа может комбинироваться в любом порядке. Кроме того, отдельные блоки могут быть удалены из способа, не выходя за пределы сущности и области действия описываемого здесь изобретения. Кроме того, указанный способ может осуществляться на любом подходящем аппаратном обеспечении, программном обеспечении, микропрограммном обеспечении или их сочетании.
На Фиг.6 представлен способ 600 передачи пакетов данных от пользовательского приложения 114 на VPN-клиент 112, где пользовательское приложение 114 запрашивает установление соединения с приложением масштаба предприятия 108.
В блоке 602 VPN-агент 116, ассоциированный с пользовательским приложением 114, перехватывает запрос от пользовательского приложения 114, чтобы установить соединение с приложением масштаба предприятия 108. Обычно, чтобы отправить или принять пакеты данных, необходимо соединить пользовательское приложение 114 с физическим адаптером или интерфейсом 302. Прежде чем отправить пакеты данных пользовательскому приложению 114, необходимо создать соединение в физическом интерфейсе 302. Пользовательское приложение 114 обычно взаимодействует с физическим интерфейсом 302 путем инициирования вызова соединения. Например, в среде платформы Windows пользовательское приложение 114 генерирует Winsock API-вызовы для запроса физического интерфейса 302, чтобы создать соединение для передачи графика данных. Кроме того, вызов включает в себя запрос к физическому интерфейсу 302 на определение IP-адреса получателя, на который должны быть отправлены пакеты данных. Запрос на получение адреса получателя, исходящий от пользовательского приложения 114, перехватывается VPN-агентом 116 в блоке 602 способа 600.
В блоке 604 в ответ на запрос адреса получателя VPN-агент 116 создает интерфейс Loopback 208. Это может сопровождаться заменой IP-адреса получателя в запросе на установление соединения адресом интерфейса loop-back. Тогда интерфейс Loopback 208 может служить промежуточным модулем, который может временно сохранять пакеты данных и перенаправлять их в заданное местоположение или приложение внутри пользовательского устройства 102. В блоке 606 VPN-агент отправляет запрос VPN-клиенту на прослушивание пакетов данных, адресованных интерфейсу Loopback 208.
В блоке 608 пакетам данных, отправляемым из пользовательского приложения 114, в качестве адреса получателя, назначается адрес интерфейса Loopback 208. Таким образом, пакеты теперь перенаправляются на интерфейс Loopback 208.
В блоке 610 VPN-клиент принимает пакеты данных, первоначально адресованные приложению масштаба предприятия 108, и после прибытия пакетов данных на интерфейс Loopback 208 пакеты данных пересылаются VPN-клиенту 112.
На Фиг.7 представлен способ 700 передачи пакетов данных от VPN-клиента 112 на пользовательское приложение 114, где приложение масштаба предприятия 118 запрашивает установление соединения с пользовательским приложением 114.
В блоке 702 VPN-агент 116, ассоциированный с пользовательским приложением 114, перехватывает запрос от пользовательского приложения 114, чтобы обеспечить прослушивание запросов на соединение других приложений. Этот запрос может включать в себя Winsock API-запрос к физическому интерфейсу 302.
В блоке 704 VPN-агент запрашивает у VPN-клиента пересылку запросов, которые он принимает от приложения масштаба предприятия 108, на пользовательское приложение 114 через интерфейс Loopback 208.
В блоке 706 приложение масштаба предприятия 108 отправляет запрос на установление соединения через туннель, созданный между VPN-клиентом 112 и VPN-шлюзом 110.
В блоке 708 VPN-клиент 112 инициирует соединение с пользовательским приложением 114 через интерфейс Loopback 208.
Порядок, в котором описываются способы 600 и 700, не следует рассматривать в качестве ограничения, и для осуществления указанного или альтернативного способа любое число описанных блоков способов может комбинироваться в любом порядке. Кроме того, отдельные блоки могут быть удалены из способа, не выходя за пределы сущности и области действия описываемого здесь изобретения. Кроме того, указанный способ может осуществляться на любом подходящем аппаратном обеспечении, программном обеспечении, микропрограммном обеспечении или их сочетании.