RU2422886C2 - Providing coordinated passage of firewall having application information - Google Patents

Providing coordinated passage of firewall having application information Download PDF

Info

Publication number
RU2422886C2
RU2422886C2 RU2008109223/08A RU2008109223A RU2422886C2 RU 2422886 C2 RU2422886 C2 RU 2422886C2 RU 2008109223/08 A RU2008109223/08 A RU 2008109223/08A RU 2008109223 A RU2008109223 A RU 2008109223A RU 2422886 C2 RU2422886 C2 RU 2422886C2
Authority
RU
Russia
Prior art keywords
client
resource
connection
protocol processor
gateway server
Prior art date
Application number
RU2008109223/08A
Other languages
Russian (ru)
Other versions
RU2008109223A (en
Inventor
Идо БЕН-ШАХАР (US)
Идо БЕН-ШАХАР
Мехер МАЛАКАПАЛЛИ (US)
Мехер МАЛАКАПАЛЛИ
Ашвин ПАЛЕКАР (US)
Ашвин ПАЛЕКАР
Тюдор БАРАБУА (US)
Тюдор БАРАБУА
Дэвид СТИР (US)
Дэвид СТИР
Джой ЧИК (US)
Джой ЧИК
Original Assignee
Майкрософт Корпорейшн
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US11/326,992 external-priority patent/US7685633B2/en
Application filed by Майкрософт Корпорейшн filed Critical Майкрософт Корпорейшн
Publication of RU2008109223A publication Critical patent/RU2008109223A/en
Application granted granted Critical
Publication of RU2422886C2 publication Critical patent/RU2422886C2/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)

Abstract

FIELD: information technology. ^ SUBSTANCE: method involves receiving a connection request from a client, where the connection request identifies a resource, identification, based on the resource, of an access policy from communication infrastructure installed on a gateway, wherein said one or more access policies are general for said communication infrastructure and are not created specifically for said resource, quarantining the connection with the client in order to determine whether the minimum set of one or more features which are determined by said one or more policies is installed on the client, identification of the plug-in of the protocol processor, wherein the identified plug-in processes the connection to multiple resources which have the same resource type, and redirecting the connection with the client to the identified plug-in of the protocol processor by controlling the channel of the tunnel connection to the plug-in of the protocol processor such that the next communications between the client and the resource is processed through the plug-in of the protocol process independent of the communication infrastructure. ^ EFFECT: faster operation. ^ 17 cl, 3 dwg

Description

Предпосылки и уровень техникиBACKGROUND AND BACKGROUND

С ростом популярности компьютеризированных систем растет потребность в распределении файлов и ресурсов обработки компьютерных систем в сетях, как больших, так и малых. В целом, компьютерные системы и связанные с ними устройства передают информацию по сети с разными целями, например для обмена персональными электронными сообщениями, торговли, обеспечения информации лицевого счета и т.д. Однако очевидно, что по мере усложнения компьютерных систем и связанных с ними приложений запросы, связанные с совместным использованием данных и ресурсов (например, "устройства", "приложения" или "компонента приложения") в сети, также усложняются.With the increasing popularity of computerized systems, the need for the distribution of files and processing resources of computer systems in networks, both large and small, is growing. In general, computer systems and related devices transmit information over a network for various purposes, for example, for exchanging personal electronic messages, trading, providing personal account information, etc. However, as computer systems and related applications become more complex, requests for sharing data and resources (such as “devices”, “applications” or “application component”) on the network also become more complex.

Некоторые современные подходы к управлению ресурсами в сети включают в себя сценарии централизованного вычисления, которые могут предусматривать центральный шлюзовой сервер, использующий ресурсы совместно с одним или несколькими клиентами, на которых эти ресурсы локально не установлены. Один такой пример предусматривает центральный шлюзовой сервер, который позволяет клиентской компьютерной системе регистрироваться на шлюзовом сервере по локальной интрасети или регистрироваться через сетевой брандмауэр. В этом случае компьютер-клиент может обращаться к нужным ему данным и ресурсам через брандмауэр с использованием защищенного соединения.Some modern approaches to managing resources in a network include centralized computing scenarios, which may include a central gateway server that shares resources with one or more clients on which these resources are not locally installed. One such example provides a central gateway server that allows a client computer system to register with a gateway server on a local intranet or register through a network firewall. In this case, the client computer can access the data and resources it needs through a firewall using a secure connection.

В одном примере брандмауэра клиентская компьютерная система может организовывать туннель через брандмауэр от сетевого уровня на клиентской компьютерной системе к соответствующему сетевому уровню на серверной компьютерной системе с использованием виртуальной частной сети ("VPN"), сервера удаленного доступа ("RAS") или другого родственного типа соединения с проходом через брандмауэр. Подобного рода туннельное соединение с проходом через брандмауэр, в общем случае, предусматривает, что клиент использует защищенный протокол передачи гипертекстовых файлов ("HTTPS"), который представляет собой механизм http, обеспечивающий обмен зашифрованной информацией с использованием механизмов шифрования протокола защищенных сокетов ("SSL") или защиты транспортного уровня ("TLS") для аутентификации на шлюзовом сервере. После того, как шлюзовой сервер разрешает проход через брандмауэр, клиентская компьютерная система может обращаться ко всем ресурсам “позади” брандмауэра, например с использованием одного или нескольких сокетов для взаимодействия с данным ресурсом.In one example of a firewall, a client computer system may tunnel through a firewall from the network layer on the client computer system to the corresponding network layer on the server computer system using a virtual private network ("VPN"), remote access server ("RAS"), or other related type connections to pass through the firewall. Such a tunnel connection with a pass through the firewall, in general, provides that the client uses a secure protocol for transferring hypertext files ("HTTPS"), which is an http mechanism that provides the exchange of encrypted information using encryption mechanisms of the secure socket protocol ("SSL" ) or Transport Layer Security ("TLS") for authentication on the gateway server. After the gateway server allows passage through the firewall, the client computer system can access all the resources “behind” the firewall, for example, using one or more sockets to interact with this resource.

Согласно другому решению с проходом через брандмауэр, например, предусматривающему соединение уровня приложений на клиенте с уровнем приложений на сервере, клиенту также может понадобиться вызывать протокольный процессор, связанный с нужным ему ресурсом. Протокольный процессор в этом случае, является, по существу, программным интерфейсом приложения ("API"), который также обычно пишется сторонним разработчиком в виде плагина (сменного модуля) (т.е. "плагина протокольного процессора") к стеку обмена RPC/HTTPS. Кроме того, для настройки на осуществление связи с ресурсом или прикладной программой определенного типа, плагин протокольного процессора также обычно призван включать в себя некоторые сетевые политики для использования данного ресурса (или "приложения"). Таким образом, после входа и прохождения всех необходимых уровней аутентификации, предписанных плагином протокольного процессора, клиентская компьютерная система может обмениваться информацией с запрашиваемым ресурсом на серверной компьютерной системе. Например, клиент может посылать события мыши и клавиатуры, которые затем пересылаются на соответствующий ресурс. Ресурс обрабатывает эти события и возвращает результаты обработки на клиент для локального отображения.According to another solution with passing through a firewall, for example, involving connecting the application level on the client to the application level on the server, the client may also need to call the protocol processor associated with the resource it needs. The protocol processor in this case is essentially the application programming interface (“API”), which is also usually written by a third-party developer as a plug-in (plug-in module) (ie, “protocol processor plug-in”) to the RPC / HTTPS exchange stack . In addition, in order to configure communication with a resource or application of a certain type, the protocol processor plug-in is also usually intended to include some network policies for using this resource (or “application”). Thus, after entering and passing through all the necessary authentication levels prescribed by the protocol processor plug-in, the client computer system can exchange information with the requested resource on the server computer system. For example, a client can send mouse and keyboard events, which are then forwarded to the corresponding resource. The resource processes these events and returns the processing results to the client for local display.

К сожалению, несмотря на некоторые возможные выгоды этих различных типов проходных решений, существует ряд недостатков, из-за которых эти типы связи (обмена) трудно реализовать с точки зрения стороннего разработчика. Например, при использовании сетевого соединения между сетевыми уровнями, а не уровнями приложений, клиент может эффективно блокировать операции локальной сети. Например, туннель подключения, созданный между сетевыми уровнями, может отключать некоторые типы сетевых ресурсов, которые иначе были бы доступны с использованием других типов сетевых соединений, из-за чего, например, клиент может не иметь доступа к принтеру локальной сети, устройству воспроизведения музыки или видеопотока, обеспеченного в локальной сети, и т.п.Unfortunately, despite some possible benefits of these various types of pass-through solutions, there are a number of drawbacks that make these types of communication (exchange) difficult to implement from the point of view of a third-party developer. For example, when using a network connection between network layers rather than application layers, the client can effectively block LAN operations. For example, a connection tunnel created between network layers may disable some types of network resources that would otherwise be available using other types of network connections, for example, due to which a client may not have access to a local network printer, music player, or video stream provided in the local network, etc.

Другая проблема состоит в том, что весь Интернет-трафик направляется через серверную компьютерную систему, к которой подключена клиентская компьютерная система. Таким образом, если клиент подключен к корпоративному брандмауэру с использованием VPN и клиент запрашивает внешний новостной веб-сайт, новостной веб-сайт должен быть туннелирован через корпоративный брандмауэр прежде, чем направиться на клиентскую компьютерную систему. Еще одна проблема состоит в том, что VPN/RAS может осуществлять только проверку и фильтрацию пакетов, что обычно затруднительно на сложных протоколах или протоколах, предусматривающих потоковую проверку.Another problem is that all Internet traffic is routed through the server computer system to which the client computer system is connected. Thus, if the client is connected to the corporate firewall using a VPN and the client requests an external news website, the news website must be tunneled through the corporate firewall before heading to the client computer system. Another problem is that VPN / RAS can only check and filter packets, which is usually difficult on complex protocols or protocols that require streaming checking.

Альтернативно, проблемы с соединениями на уровне приложений включают в себя тот факт, что сторонним разработчикам может быть трудно прописывать на высоком уровне плагины протокольного процессора, которые могут контролировать протокол уровня приложений, идущий через шлюзовой сервер. В частности, в то время как соединение уровня приложений может позволять клиенту одновременно подключаться к другим сетям - поскольку каждое соединение основано на идентичности приложения, а не на идентичности сети - такого рода интеграция может означать, что разработчику приходится также создавать отдельный плагин протокольного процессора для каждого отдельного ресурса или приложения, к которому по желанию разработчика клиент должен иметь возможность осуществлять доступ. Это может приводить к дополнительным проблемам, поскольку для каждого отдельного протокольного процессора может потребоваться, чтобы он включал в себя дополнительные, уникальные политики доступа. Такие политики доступа могут включать в себя, например, условия, определяющие, как, когда или может ли вообще пользователь, или даже класс пользователей, получать разрешение на вход в определенный ресурс (или доступ к нему).Alternatively, application-level connectivity issues include the fact that it may be difficult for third-party developers to prescribe high-level plug-ins for the protocol processor, which can control the application-level protocol through the gateway server. In particular, while an application-level connection can allow a client to simultaneously connect to other networks - since each connection is based on the identity of the application, and not on the identity of the network - this kind of integration may mean that the developer also has to create a separate protocol processor plug-in for each a separate resource or application to which, at the request of the developer, the client should be able to access. This can lead to additional problems, since for each individual protocol processor it may be necessary to include additional, unique access policies. Such access policies may include, for example, conditions that determine how, when, or whether, at all, a user, or even a class of users, can receive permission to enter a specific resource (or access to it).

Таким образом, например, разработчик, реализующий соединения уровня приложений, может писать один плагин протокольного процессора, который использует протокол удаленного компьютера ("RDP"), который реализует один вид политики доступа с использованием шлюзового сервера; и, одновременно, писать другой плагин протокольного процессора, который использует протокол блока серверных сообщений ("SMB"), который реализует другие политики доступа на шлюзовом сервере. Кроме того, чтобы иметь потенциально уникальные политики доступа, каждый протокольный процессор также может иметь отдельные, уникальные скрипты, которые используются для других разнообразных инструментов администрирования и диагностики. Таким образом, зачастую может быть так, что разработчикам все время приходится с нуля создавать разные плагины, сетевые политики и соответствующие диагностические скрипты для каждого отдельного ресурса, представляющего интерес, который они хотят сделать доступным через брандмауэр.Thus, for example, a developer implementing application-level connections can write a single protocol processor plugin that uses the Remote Computer Protocol ("RDP"), which implements one kind of access policy using a gateway server; and, at the same time, write another protocol processor plugin that uses the server message block protocol ("SMB"), which implements other access policies on the gateway server. In addition to having potentially unique access policies, each protocol processor can also have separate, unique scripts that are used for various other administration and diagnostic tools. Thus, it can often be that developers all the time have to create different plugins, network policies, and corresponding diagnostic scripts from scratch for each individual resource of interest that they want to make available through the firewall.

Это может оказаться весьма сложной задачей для разработчиков, а также администраторов сети, особенно с учетом различных версий кода, которые могут выполняться на сервере и/или ресурсе в течение его времени жизни. Например, если на клиентской компьютерной системе могут быть не установлены некоторые особенности ресурса или приложения до подключения к серверу, эти особенности могут гарантировать, что соединение не будет перехвачено или как-то иначе подвержено повреждению. Однако современные протоколы защитной аутентификации и плагины протокольного процессора обычно не учитывают подобного рода ограничения. Напротив, с этими вопросами приходится позже разбираться подключенному ресурсу, что может приводить к ошибкам связи и разрыву или перехвату соединения, и даже, в худшем случае, компрометации шлюзового сервера. В частности, современные средства управления политиками доступа не гарантируют обеспечение администраторам сети и/или ресурса дифференцированного управления. Соответственно, современная организация связи между клиентом и сервером страдает рядом недостатков, которые нужно исправить.This can be a daunting task for developers as well as network administrators, especially given the different versions of the code that can run on the server and / or resource during its lifetime. For example, if some features of a resource or application may not be installed on the client computer system before connecting to the server, these features can ensure that the connection is not intercepted or otherwise damaged. However, modern security authentication protocols and protocol processor plugins usually do not take into account such restrictions. On the contrary, the connected resource has to deal with these issues later, which can lead to communication errors and disconnection or interception of the connection, and even, in the worst case, compromise of the gateway server. In particular, modern means of managing access policies do not guarantee the provision of differentiated management resources to network administrators and / or resources. Accordingly, the modern organization of communication between the client and the server suffers from a number of shortcomings that need to be fixed.

Сущность изобретенияSUMMARY OF THE INVENTION

Реализации настоящего изобретения решают одну или несколько проблем, присущих уровню техники, посредством систем, способов и компьютерных программных продуктов, призванных обеспечивать стандартную платформу, на которой разработчики могут легко обеспечивать связь между клиентскими/серверными приложениями. В частности, одна реализация настоящего изобретения включает в себя защищенную инфраструктуру связи (обмена), способную эффективно и безопасно соединять удаленный клиент и любой серверный ресурс на уровне приложений стека связи через брандмауэр. Инфраструктура связи может стимулировать соединение с учетом различных пригодных политик доступа, которые не обязательно должны быть независимо разработаны разработчиком. Кроме того, инфраструктура связи может дополнительно включать в себя некоторые карантинные функции, которые можно использовать, чтобы гарантировать, что клиент не сможет подключиться к ресурсу без установки минимальной программной “заплатки”.Implementations of the present invention solve one or more of the problems inherent in the prior art through systems, methods and computer software products designed to provide a standard platform on which developers can easily provide communication between client / server applications. In particular, one implementation of the present invention includes a secure communication (exchange) infrastructure capable of efficiently and securely connecting a remote client and any server resource at the application level of the communication stack through a firewall. A communications infrastructure can encourage connectivity based on various suitable access policies, which need not be independently developed by the developer. In addition, the communication infrastructure may additionally include some quarantine functions that can be used to ensure that the client cannot connect to the resource without installing a minimum software “patch”.

Например, на шлюзовом сервере, имеющем, по меньшей мере, уровень вызова удаленных процедур и уровень защищенного протокола передачи гипертекстовых файлов в инфраструктуре связи, способ в соответствии с реализацией настоящего изобретения может содержать этап, на котором принимают запрос подключения от клиента. В общем случае запрос подключения может идентифицировать ресурс, к которому клиент хотел бы подключиться. Способ также может содержать этап, на котором подвергают карантину соединение с клиентом для определения, поддерживает ли клиент минимальный набор особенностей. Кроме того, способ может содержать этапы, на которых идентифицируют плагин протокольного процессора на основании типа ресурса для идентифицированного ресурса и перенаправляют соединение с клиентом на идентифицированный плагин протокольного процессора.For example, on a gateway server having at least a remote procedure call level and a secure protocol layer for transferring hypertext files in a communication infrastructure, the method in accordance with an embodiment of the present invention may comprise receiving a connection request from a client. In general, a connection request can identify a resource to which a client would like to connect. The method may also include quarantining the client connection to determine if the client supports a minimum set of features. In addition, the method may comprise the steps of identifying the protocol processor plugin based on the type of resource for the identified resource and redirecting the client connection to the identified protocol processor plugin.

Кроме того, на клиентской компьютерной системе, где клиент осуществляет доступ к ресурсу через брандмауэр шлюзового сервера, способ в соответствии с реализацией настоящего изобретения может содержать этап, на котором посылают запрос соединения на шлюзовой сервер. В общем случае запрос может идентифицировать серверный ресурс для соединения с соответствующим клиентским ресурсом. Способ также может содержать этап, на котором принимают от шлюзового сервера запрос на минимальный набор особенностей, имеющихся в клиентском ресурсе. Кроме того, способ может содержать этапы, на которых посылают на шлюзовой сервер ответ версии, где ответ указывает набор поддерживаемых особенностей на клиенте. Кроме того, способ со стороны клиента может содержать этап, на котором подключаются к уровню приложений стека связи на шлюзовом сервере. При этом клиентский ресурс может передавать данные посредством плагина протокольного процессора, связанного с серверным ресурсом.In addition, on the client computer system, where the client accesses the resource through the gateway server firewall, the method in accordance with an embodiment of the present invention may comprise sending a connection request to the gateway server. In general, a request can identify a server resource for connecting to a corresponding client resource. The method may also include the stage at which a request is received from the gateway server for the minimum set of features available in the client resource. In addition, the method may comprise the steps of sending a version response to the gateway server, where the response indicates a set of supported features on the client. In addition, the method on the client side may include connecting to the application layer of the communication stack on the gateway server. In this case, the client resource can transmit data using the protocol processor plugin associated with the server resource.

Эта сущность изобретения приведена здесь для ознакомления с рядом концепций в упрощенной форме, которые дополнительно описаны ниже в подробном описании. Эта сущность изобретения не призвана выявлять ключевые признаки или существенные признаки заявленного изобретения, а также не призвана помогать в определении объема заявленного изобретения.This summary is presented here to introduce a number of concepts in a simplified form, which are further described below in the detailed description. This invention is not intended to identify key features or essential features of the claimed invention, nor is it intended to help determine the scope of the claimed invention.

Дополнительные признаки и преимущества изобретения изложены в нижеследующем описании, и отчасти будут явствовать из описания, или могут быть изучены при практическом осуществлении изобретения. Признаки и преимущества изобретения могут быть реализованы и получены посредством инструментов и комбинаций, конкретно указанных в прилагаемой формуле изобретения. Эти и другие особенности настоящего изобретения будут более очевидны из нижеследующего описания и прилагаемой формулы изобретения или могут быть изучены при практическом осуществлении изобретения, изложенном ниже.Additional features and advantages of the invention are set forth in the following description, and will in part be apparent from the description, or may be learned by practice of the invention. The features and advantages of the invention can be realized and obtained by means of tools and combinations specifically indicated in the attached claims. These and other features of the present invention will be more apparent from the following description and appended claims, or may be learned by practice of the invention set forth below.

Краткое описание чертежейBrief Description of the Drawings

Чтобы описать, каким образом можно добиться вышеупомянутых и других преимуществ и признаков изобретения, обратимся к более конкретному описанию изобретения, кратко описанного выше, приведенному со ссылками на конкретные варианты его осуществления, которые проиллюстрированы на прилагаемых чертежах. С учетом того, что эти чертежи изображают лишь типичные варианты осуществления изобретения и потому не призваны ограничивать его объем, изобретение описано и объяснено в дополнительных частностях и деталях с использованием прилагаемых чертежей, в которых:To describe how the above and other advantages and features of the invention can be achieved, let us turn to a more specific description of the invention, briefly described above, with reference to specific embodiments thereof, which are illustrated in the accompanying drawings. Given that these drawings depict only typical embodiments of the invention and therefore are not intended to limit its scope, the invention is described and explained in further details and details using the accompanying drawings, in which:

фиг.1A - общая схема системы, в которой клиентская компьютерная система осуществляет связь с инфраструктурой связи шлюзового сервера, согласующейся с проходом через брандмауэр, в соответствии с реализацией настоящего изобретения;figa is a General diagram of a system in which a client computer system communicates with the communication infrastructure of the gateway server, consistent with the passage through the firewall, in accordance with the implementation of the present invention;

фиг.1B - общая схема системы, показанной на фиг.1A, в которой клиентская компьютерная система осуществляет связь с указанным ресурсом, в соответствии с реализацией настоящего изобретения; иfigv is a General diagram of the system shown in figa, in which the client computer system communicates with the specified resource, in accordance with the implementation of the present invention; and

фиг.2 - блок-схемы способов, со стороны клиентской компьютерной системы и шлюзового сервера, прохода через брандмауэр и обмена с указанным ресурсом в соответствии с сетевыми политиками, обеспеченными инфраструктурой связи.figure 2 is a flowchart of methods from the client computer system and the gateway server, passing through the firewall and exchanging with the specified resource in accordance with the network policies provided by the communications infrastructure.

Подробное описаниеDetailed description

Реализации настоящего изобретения относятся к системам, способам и компьютерным программным продуктам, призванным обеспечивать стандартную платформу, на которой разработчики могут легко обеспечивать связь между клиентскими/серверными приложениями. В частности, одна реализация настоящего изобретения включает в себя защищенную инфраструктуру связи (обмена), способную эффективно и безопасно соединять удаленный клиент и любой серверный ресурс на уровне приложений стека связи через брандмауэр. Инфраструктура связи может стимулировать соединение с учетом различных пригодных политик доступа, которые не обязательно должны быть независимо разработаны разработчиком. Кроме того, инфраструктура связи может дополнительно включать в себя некоторые карантинные функции, которые можно использовать, чтобы гарантировать, что клиент не сможет подключиться к ресурсу без установки минимальной программной “заплатки”.Implementations of the present invention relate to systems, methods, and computer software products designed to provide a standard platform on which developers can easily provide communication between client / server applications. In particular, one implementation of the present invention includes a secure communication (exchange) infrastructure capable of efficiently and securely connecting a remote client and any server resource at the application level of the communication stack through a firewall. A communications infrastructure can encourage connectivity based on various suitable access policies, which need not be independently developed by the developer. In addition, the communication infrastructure may additionally include some quarantine functions that can be used to ensure that the client cannot connect to the resource without installing a minimum software “patch”.

В результате этих и других особенностей инфраструктура связи, в соответствии с аспектами настоящего изобретения, способствует усовершенствованию протоколов двухточечной связи на уровне приложений, тем самым повышая роль шлюзов. Например, аспекты настоящего изобретения позволяют клиенту предоставлять плагины протокольного процессора, знающие (оповещенные о) приложение, на шлюзовом сервере, что, в свою очередь, может позволять конкретно регулировать, как, когда и кто может осуществлять доступ к определенным ресурсам. Поскольку политика доступа по большей части включена в инфраструктуру связи, разработчик плагинов протокольного процессора может легко реализовать дифференцированные политики конфигурирования и пропуска (прохода) и сделать разработку плагинов протокольного процессора значительно более простой и эффективной. Кроме того, инфраструктура связи, в соответствии с аспектами настоящего изобретения, может гарантировать, что только клиенты, которые поддерживают определенные особенности, смогут туннелировать через брандмауэр шлюзового сервера в первую очередь и, в конце концов, устанавливать канал к ресурсу.As a result of these and other features, the communications infrastructure, in accordance with aspects of the present invention, improves application-level point-to-point communication protocols, thereby enhancing the role of gateways. For example, aspects of the present invention allow a client to provide protocol processor plug-ins that know (are notified about) an application on a gateway server, which, in turn, can allow you to specifically control how, when, and who can access certain resources. Because access policies are mostly included in the communications infrastructure, a protocol processor plug-in developer can easily implement differentiated configuration and skip (pass) policies and make protocol processor plug-in development much simpler and more efficient. In addition, the communication infrastructure, in accordance with aspects of the present invention, can ensure that only clients that support certain features can tunnel through the gateway server firewall in the first place and, ultimately, establish a channel to the resource.

Как указано выше, в описанных здесь схемах и блок-схемах приведены ссылки на ряд программных интерфейсов приложения ("API"), которые можно использовать в соответствии с аспектами настоящего изобретения. Количество API, которое можно использовать в инфраструктуре связи со стороны клиента и со стороны шлюзового сервера, может зависеть от реализации. Например, в одной реализации можно использовать по меньшей мере два API клиента и по меньшей мере четыре API шлюзового сервера.As indicated above, in the diagrams and block diagrams described herein, references are made to a number of application programming interfaces (“APIs”) that may be used in accordance with aspects of the present invention. The number of APIs that can be used in the communication infrastructure from the client and from the gateway server may depend on the implementation. For example, in one implementation, at least two client APIs and at least four gateway server APIs can be used.

Со стороны клиента, например, один API клиента может включать в себя "базовый API", который позволяет плагинам протокольного процессора клиента создавать и находить туннели, создавать каналы и направлять трафик на серверы ресурсов. Базовый API также может включать в себя дополнительные API для сбора мандатов, не принятых по умолчанию, в соответствии с политиками доступа к ресурсам. Второй API клиента может включать в себя "конфигурационный API". Конфигурационный API может позволять плагинам протокольного процессора клиента сохранять и загружать информацию конфигурации для подключения к шлюзовым серверам (например, имя шлюзового сервера, тип авторизации и т.д.) и управлять поведением клиентского адаптера.On the client side, for example, one client API may include a “core API” that allows client protocol processor plug-ins to create and find tunnels, create channels, and direct traffic to resource servers. The core API may also include additional APIs for collecting non-default credentials in accordance with resource access policies. The second client API may include a “configuration API”. The configuration API can allow client protocol processor plug-ins to save and load configuration information for connecting to gateway servers (for example, gateway server name, authorization type, etc.) and control the behavior of the client adapter.

Со стороны сервера один API шлюзового сервера также может включать в себя "базовый API," который позволяет плагинам протокольного процессора шлюзового сервера обслуживать клиентский запрос для создания каналов и перенаправлять трафик с клиента на шлюзовой сервер и обратно. Второй API, также "конфигурационный API", может обеспечивать общее хранилище постоянных данных протоколов сервера. Третий API, "API политик", может обеспечивать указание политикам доступа к сети и ресурсам, какие плагины протокольного процессора шлюзового сервера можно использовать для определения, авторизован ли пользователь на подключение к конкретному серверу ресурсов, в ходе создания канала. Четвертый API, "API состояния и контроля среды выполнения", может позволять терминальным инструментам администрирования отслеживать использование и изменять состояние среды выполнения, например, перекрывая туннели, принадлежащие пользователям, ведущим себя неправильно.On the server side, a single gateway server API can also include a “core API,” which allows the plug-in protocol gateway server plug-ins to serve a client request to create channels and redirect traffic from the client to the gateway server and vice versa. The second API, also the “configuration API”, can provide a common repository of persistent server protocol data. The third API, the “Policy API”, can provide an indication of network access and resource policies to which plug-ins of the gateway server protocol processor can be used to determine if a user is authorized to connect to a specific resource server during channel creation. The fourth API, the "Runtime Status and Monitoring API", can allow terminal administration tools to monitor usage and change the state of the runtime, for example, by blocking tunnels owned by misbehaving users.

Существуют примеры конкретных типов API, которые можно использовать в соответствии с общими принципами изобретения. Функции этих API рассмотрены с общей ссылкой на следующие чертежи. Например, на фиг.1A схематически показана реализация настоящего изобретения, в которой клиентская компьютерная система 100 пытается осуществить связь с конкретным ресурсом (например, приложением или соответствующим компонентом), находящимся “позади” брандмауэра на шлюзовом сервере 150. Для осуществления этой связи клиент 100 и шлюзовой сервер 150 будут, в конце концов, использовать аналогично сконфигурированный плагин протокольного процессора (например, 115a-b), который содержит набор API (например, вышеупомянутых), которые могут осуществлять связь и/или работать в контексте инфраструктуры связи 107 (т.е. "встроенных" в инфраструктуру).There are examples of specific types of APIs that can be used in accordance with the general principles of the invention. The functions of these APIs are described with a general reference to the following drawings. For example, FIG. 1A schematically illustrates an implementation of the present invention in which a client computer system 100 attempts to communicate with a specific resource (eg, an application or a corresponding component) that is “behind” the firewall on the gateway server 150. For this communication, the client 100 and gateway server 150 will ultimately use a similarly configured protocol processor plug-in (e.g. 115a-b) that contains a set of APIs (e.g., the above) that can implement ide and / or work in the context of communication infrastructure 107 (i.e., “embedded” in the infrastructure).

Как объяснено более подробно в нижеследующем описании изобретения и формуле изобретения, инфраструктура 107 связи представляет собой структуру данных, богатую особенностями (например, включающую в себя четыре вышеупомянутых API), которая включает в себя различные компоненты, модули обработки, инструменты, индексы и т.п. В общем случае инфраструктура 107 связи (обмена) построена и/или сконфигурирована так, чтобы разработчик мог легко конструировать плагин протокольного процессора (например, 115a-b, 117), который взаимодействует с инфраструктурой 107 связи, и использовать особенности и политики, обеспеченные в инфраструктуре 107 связи, без необходимости отдельно разрабатывать или прописывать эти особенности и политики.As explained in more detail in the following description of the invention and the claims, the communication infrastructure 107 is a feature-rich data structure (for example, including the four above-mentioned APIs), which includes various components, processing units, tools, indexes, etc. . In the General case, the infrastructure 107 communication (exchange) is built and / or configured so that the developer can easily design a plug-in protocol processor (for example, 115a-b, 117), which interacts with the infrastructure 107 communication, and use the features and policies provided in the infrastructure 107 communications, without the need to separately develop or prescribe these features and policies.

В частности, на фиг.1A показано, что инфраструктура 107 связи содержит стек 113 связи, который используется для взаимодействия между физической границей в сети 135 и различными программными компонентами на шлюзовом сервере 150. В общем случае, шлюзовой сервер 150 может содержать любой терминальный сетевой сервер, например интернет-сервер, защищенный брандмауэром, для большой организации, через который проходит весь входящий и исходящий Интернет-трафик. Например, сотрудник организации, желающий подключиться из дома к ресурсу в офисе, будет подключен через шлюзовой сервер 150 прежде, чем получит доступ к ресурсу позади брандмауэра.In particular, FIG. 1A shows that the communications infrastructure 107 includes a communications stack 113 that is used to interface between the physical boundary in the network 135 and various software components on the gateway server 150. In general, the gateway server 150 may comprise any terminal network server for example, an Internet server protected by a firewall for a large organization through which all incoming and outgoing Internet traffic passes. For example, an employee who wants to connect from a home to a resource in the office will be connected through the gateway server 150 before accessing the resource behind the firewall.

При этом инфраструктура 107 связи может включать в себя любое количество компонентов и модулей для взаимодействия с ресурсами позади брандмауэра, которые можно использовать для доступа к конкретному ресурсу. Например, на фиг.1A показано, что реализация стека 113 связи (обмена) на инфраструктуре 107 связи содержит уровень 105b защищенного протокола передачи гипертекстовых файлов ("HTTPS"), а также транспортный уровень 110b с возможностью встраивания. В одной реализации транспортный уровень 110b с возможностью встраивания (а также уровень 110a) представляет собой уровень 110b вызова удаленной процедуры ("RPC"), в связи с чем уровень 105a-b и уровень 110a-b можно совместно рассматривать как "HTTPS/RPC". При таком использовании уровень HTTPS 105b дешифрует или декодирует любое шифрование/кодирование SSL или TLS, тогда как транспортный уровень 110b с возможностью встраивания распаковывает любую упаковку (например, RPC), выполненную на соответствующем транспортном уровне 110a с возможностью встраивания на клиенте 100.Moreover, the communication infrastructure 107 may include any number of components and modules for interacting with resources behind the firewall that can be used to access a specific resource. For example, FIG. 1A shows that the implementation of the communication (exchange) stack 113 on the communication infrastructure 107 comprises a secure hypertext file transfer protocol (“HTTPS”) layer 105b as well as an embeddable transport layer 110b. In one implementation, the embeddable transport layer 110b (as well as layer 110a) is a remote procedure call (“RPC”) layer 110b, and therefore, layer 105a-b and layer 110a-b can be collectively referred to as “HTTPS / RPC” . With this use, the HTTPS layer 105b decrypts or decodes any SSL or TLS encryption / encryption, while the transport layer 110b embeddable unpacks any packaging (e.g., RPC) made on the corresponding transport layer 110a with the possibility of embedding on the client 100.

Конечно, в стек 113 связи может быть включено любое количество дополнительных или альтернативных уровней, причем стек связи может входить в состав или коррелировать с традиционной 7-уровневой моделью взаимодействия открытых систем ("OSI"). Например, хотя в этой реализации уровень HTTPS/транспортный уровень с возможностью встраивания 105b/110b для простоты показан в виде минимального набора уровней, аспекты изобретения этим не ограничиваются. В других реализациях, например, разработчик может обходиться без HTTPS и использовать другой механизм подключения на основании решения SSL и/или протокола управления передачей ("TCP"), которое также предусматривает соединение уровней приложений клиента и шлюза через защищенное соединение. Поэтому HTTPS/встраиваемый транспорт, в частности набор HTTPS/RPC, является единственно возможным способом обеспечения элементов решения с проходом брандмауэра.Of course, any number of additional or alternative levels may be included in communication stack 113, wherein the communication stack may be part of or correlated with the traditional 7-level Open Systems Interconnection (“OSI”) model. For example, although in this implementation the HTTPS / transport layer with embeddability 105b / 110b is shown for simplicity as a minimal set of layers, aspects of the invention are not limited to this. In other implementations, for example, a developer can dispense with HTTPS and use a different connection mechanism based on SSL and / or Transmission Control Protocol ("TCP"), which also involves connecting the application layers of the client and the gateway through a secure connection. Therefore, HTTPS / embedded transport, in particular the HTTPS / RPC suite, is the only possible way to provide elements of a solution with a firewall pass.

Заметим, что одно преимущество HTTPS и транспортного уровня с возможностью встраивания, например, RPC состоит в том, что некоторые протоколы, например RPC, обратно совместимы с более ранними версиями HTTP (например, HTTP версии 1.0). Таким образом, разработчик, использующий набор HTTPS/RPC, может обнаружить, что этот элемент решения с проходом брандмауэра можно легче применять на более старых серверах или на серверах, которые ограничивают типы трафика более общим типом трафика HTTP.Note that one advantage of HTTPS and the transport layer with the ability to embed, for example, RPC, is that some protocols, such as RPC, are backward compatible with earlier versions of HTTP (for example, HTTP version 1.0). Thus, a developer using the HTTPS / RPC suite may find that this solution element with a firewall pass can be more easily applied on older servers or on servers that restrict traffic types to a more general type of HTTP traffic.

В любом случае на фиг.1A также показано, что сквозной интерфейс приложения ("сквозной API") 160 располагается в верхней части связки HTTPS/встраиваемого транспорта стека 113. Сквозной API 160 может содержать любое количество компонентов и модулей (например, один или несколько вышеупомянутых "базовых API", "конфигурационных API", "API политик" и/или "API состояния и контроля среды выполнения") для создания надлежащего соединения между клиентом 100 и соответствующим плагином протокольного процессора и для гарантированной реализации надлежащих сетевых политик в соединении. Например, сквозной API 160 включает в себя компонент 170 политик доступа (например, "API политик") и компонент 175 инструментов администрирования ((например, "конфигурационный API" и/или "API состояния и контроля среды выполнения"), которые можно рассматривать как ряд функций, которые более подробно описаны ниже. Однако в более общем случае сквозной API 160 может действовать как прокладка между связками HTTPS/встраиваемого транспорта в стеке связи 113 и одним или несколькими плагинами протокольного процессора, которые используются для связи с конкретным ресурсом.In any case, FIG. 1A also shows that the end-to-end application interface (“end-to-end API”) 160 is located at the top of the HTTPS / Embedded Transport stack stack 113. The end-to-end API 160 may contain any number of components and modules (for example, one or more of the above “basic APIs”, “configuration APIs”, “policy APIs” and / or “runtime state and control APIs”) to create an appropriate connection between client 100 and the corresponding protocol processor plug-in and to ensure that proper network policies are implemented in connection. For example, end-to-end API 160 includes an access policy component 170 (for example, a “Policy API”) and an administration tool component 175 ((for example, a “Configuration API” and / or “Runtime Status and Monitoring API”), which can be considered as a number of functions, which are described in more detail below, however, in a more general case, end-to-end API 160 can act as a route between HTTPS / embedded transport bundles in communication stack 113 and one or more protocol processor plug-ins that are used to communicate with a specific resource rsom.

Например, на фиг.1A показано, что шлюзовой сервер 150 также включает в себя, по меньшей мере, плагины протокольного процессора 115b и 117. В общем случае плагин протокольного процессора - это интерфейс, разработанный сторонним разработчиком, который способен взаимодействовать в пределах инфраструктуры 107 связи на одном конце и передавать данные, принятые через инфраструктуру 107 связи, конкретному ресурсу на другом конце. Кроме того, плагин протокольного процессора можно определить применительно к "типу" плагина, связанного с ресурсом или классом ресурсов. Например, набор офисных приложений, которые взаимодействуют через общий интерфейс, может составлять один тип приложения, а программа базы данных, которая взаимодействует через другой интерфейс, может составлять другой тип приложения или ресурса. Кроме того, оборудование, например принтеры или дисководы, может составлять ресурсы других типов, которые имеют другие типы интерфейсов для связи. Поэтому разработчик, обеспечивающий ресурс, также может написать уникальный плагин протокольного процессора для этого данного ресурса.For example, FIG. 1A shows that gateway server 150 also includes at least plug-ins for protocol processor 115b and 117. In general, a protocol processor plug-in is an interface developed by a third-party developer that is able to communicate within communications infrastructure 107 at one end and transmit data received through the communications infrastructure 107 to a specific resource at the other end. In addition, the protocol processor plugin can be defined in relation to the “type” of the plugin associated with the resource or resource class. For example, a set of office applications that interact through a common interface can make up one type of application, and a database program that interacts with another interface can make up another type of application or resource. In addition, equipment, such as printers or disk drives, may constitute other types of resources that have other types of communication interfaces. Therefore, the developer providing the resource can also write a unique protocol processor plugin for this given resource.

Однако разработчику нужно также обеспечить соответствующий плагин протокольного процессора для клиента, чтобы клиент мог осуществлять связь с запрашиваемым ресурсом. Таким образом, например, на фиг.1A также показано, что клиент 100 имеет стек 103 связи (обмена), который также включает в себя уровень HTTPS 105a и транспортный уровень 110a с возможностью встраивания. В общем случае транспортный уровень 110a с возможностью встраивания используется для упаковки всех исходящих сообщений (например, 130) в соответствии с надлежащим протоколом (например, протоколом RPC при использовании уровня RPC), тогда как уровень HTTPS 105a используется для шифрования или кодирования исходящих сообщений, например посредством шифрования или кодирования SSL или TLS. Плагин 115а протокольного процессора располагается в верхней части связки HTTPS/встраиваемого транспорта клиента.However, the developer also needs to provide an appropriate protocol processor plugin for the client so that the client can communicate with the requested resource. Thus, for example, FIG. 1A also shows that client 100 has a communication (exchange) stack 103, which also includes an HTTPS layer 105a and an embeddable transport layer 110a. In general, an embeddable transport layer 110a is used to package all outgoing messages (e.g., 130) in accordance with an appropriate protocol (e.g., the RPC protocol using the RPC layer), while the HTTPS layer 105a is used to encrypt or encode outgoing messages, e.g. through encryption or encryption of SSL or TLS. The protocol processor plug-in 115a is located at the top of the client's HTTPS / embedded transport bundle.

В общем случае плагин 115а протокольного процессора содержит любые интерфейсы (например, "базовый API" и/или "конфигурационный API"), ресурсы или компоненты, необходимые для создания туннеля подключения и соответствующего канала (внутри туннеля) с нужным ресурсом на шлюзовом сервере 150. Соответственно, плагин 115а протокольного процессора, по меньшей мере, комплементарен с плагином 115b протокольного процессора. Например, на фиг.1A показано, что плагин 115а протокольного процессора относится к определенному типу (т.е. "типу A"), соответствующему типу ресурса (т.е. ресурса 120a), который клиент 100 использует локально, и таким образом способен осуществлять связь с комплементарным плагином протокольного процессора, использующим те же вызовы, кодирование и т.д.In the general case, the protocol processor plug-in 115a contains any interfaces (for example, a “basic API” and / or a “configuration API”), resources or components necessary to create a connection tunnel and a corresponding channel (inside the tunnel) with the desired resource on the gateway server 150. Accordingly, the protocol processor plug-in 115a is at least complementary to the protocol processor plug-in 115b. For example, FIG. 1A shows that the protocol processor plugin 115a refers to a specific type (ie, “type A”) corresponding to the type of resource (i.e., resource 120a) that client 100 uses locally, and thus is capable of communicate with a complementary protocol processor plugin using the same calls, encoding, etc.

Таким образом, на фиг.1A дополнительно показано, что стек 103 связи включает в себя ресурс 120a (например, прикладную программу, компонент или даже другой API). Например, клиент открывает приложение базы данных в локальной компьютерной системе, которое синхронизировано с рабочей версией базы данных, находящейся позади брандмауэра на шлюзовом сервере 150. Хотя ресурс 120a в ряде случаев может представлять собой полную версию приложения, ресурс 120a также может быть просто программным компонентом приложения, который позволяет определенным образом отображать данные, передаваемые в потоковом режиме со шлюзового сервера 150. Поэтому компоненты, например ресурс 120a, обеспечивают в этом случае минимальный набор ресурсов, которые позволяют клиенту 100 напрямую подключаться к ресурсу на шлюзовом сервере 150.Thus, FIG. 1A further shows that the communication stack 103 includes a resource 120a (for example, an application program, component, or even another API). For example, a client opens a database application on a local computer system that is synchronized with a working version of the database located behind the firewall on the gateway server 150. Although resource 120a in some cases can be a full version of the application, resource 120a can also be just a software component of the application , which allows a certain way to display data transmitted in streaming mode from the gateway server 150. Therefore, components, for example, resource 120a, provide in this case a minimum Bundled resources that allow the client 100 to directly connect to a resource on the gateway server 150.

Например, на фиг.1A показано, что клиент 100 запрашивает 130 соединение с ресурсом 120b, используя ресурс 120a. Для этого клиент 100 инициирует стек связи 103, имеющий соответствующий плагин протокольного процессора (т.е. 115a), который относится к надлежащему типу (т.е. "типу A") для нужного ресурса (т.е. ресурса 120a). Затем клиент 100 отправляет сообщение 130 запроса подключения на шлюзовой сервер 150 через стек 103 связи. В частности, плагин 115а протокольного процессора снабжает исходящее сообщение 130 информацией аутентификации (содержащей, например, имя пользователя и пароль, идентификацию клиента, цифровые подписи), конкретным вызовом ресурса 120b и любой информацией сетевых политик, которая может потребоваться на сквозном API 160. Затем плагин 115а протокольного процессора отправляет сообщение 130, подлежащее упаковке на транспортном уровне 110a с возможностью встраивания, шифрованию на уровне HTTPS 105 (т.е. через TLS или SSL), с последующей отправкой по сети 135.For example, FIG. 1A shows that client 100 requests 130 a connection to resource 120b using resource 120a. For this, client 100 initiates a communication stack 103 having a corresponding protocol processor plug-in (i.e., 115a) that is of the appropriate type (i.e., "type A") for the desired resource (i.e., resource 120a). Then, the client 100 sends a connection request message 130 to the gateway server 150 through the communication stack 103. In particular, the protocol processor plug-in 115a supplies the outgoing message 130 with authentication information (containing, for example, username and password, client identification, digital signatures), a specific call to the resource 120b, and any network policy information that may be required on the pass-through API 160. Then, the plug-in 115a, the protocol processor sends a message 130 to be packed at the transport layer 110a with the possibility of embedding, encryption at the HTTPS level 105 (i.e., via TLS or SSL), followed by sending over the network 135.

Затем инфраструктура 107 связи принимает сообщение 130 и осуществляет функции первоначальной распаковки и дешифрования. Например, уровень HTTPS 105b дешифрует любое кодирование SSL или TLS, и транспортный уровень 110b с возможностью встраивания распаковывает сообщение из любого соответствующего кодирования (например, кодирования RPC). Затем сквозной API 160 может проверить информацию аутентификации в сообщении 130 и определить, авторизован ли клиент 100 на запрашиваемое подключение на основании весьма дифференцированных политик доступа. В одной реализации, в частности, дифференцирование политик доступа основано на разделении политик доступа на по меньшей мере два независимых набора: политику доступа к сети для определения, авторизован ли клиент создавать сетевое соединение с сервером 150 в первую очередь; и политику доступа к ресурсам для определения, авторизован ли клиент иметь канал подключения с запрашиваемым ресурсом помимо того, что ему разрешено создавать туннель подключения. Такая авторизация политики доступа (к сети или ресурсу) может быть конфигурирована в зависимости от любых параметров, которые желает рассматривать администратор сети и/или приложения/ресурса, например от аутентификации посредством традиционных имен пользователя и паролей, идентификации "здоровья клиента" и т.п. (например, карантинная особенность, более подробно рассмотренная ниже).Then, the communications infrastructure 107 receives the message 130 and performs the functions of initial decompression and decryption. For example, the HTTPS layer 105b decrypts any SSL or TLS encoding, and the transport layer 110b embeddable unpacks the message from any appropriate encoding (eg, RPC encoding). The end-to-end API 160 can then verify the authentication information in message 130 and determine if client 100 is authorized for the requested connection based on highly differentiated access policies. In one implementation, in particular, the differentiation of access policies is based on the separation of access policies into at least two independent sets: a network access policy to determine whether the client is authorized to create a network connection with server 150 in the first place; and a resource access policy to determine if the client is authorized to have a connection channel with the requested resource in addition to being allowed to create a connection tunnel. Such authorization of the access policy (to the network or resource) can be configured depending on any parameters that the administrator of the network and / or application / resource wants to consider, for example, authentication by means of traditional usernames and passwords, identification of “client’s health”, etc. . (for example, the quarantine feature discussed in more detail below).

Некоторые примеры правил, составляющих политику доступа к сети, включают в себя ограничения в отношении того, входит ли пользователь на клиенте 100 в авторизованную группу, связанную с запрашиваемым ресурсом. Набор политик доступа к сети также можно сконфигурировать на ограничение подключения к некоторым серверам только группой в отделе маркетинга, ограничение количества общих туннелей подключения к серверу некоторым максимальным количеством, ограничение доступа к определенному серверу (временем суток, определенными пользователями и т.д.) позади брандмауэра, или даже ограничение доступа только конкретными портами на данном сервере. Другие политики доступа к сети можно сконфигурировать на требование, чтобы клиент предъявил "интеллектуальную карту" до подключения к серверу 150.Some examples of rules constituting a network access policy include restrictions on whether a user on client 100 is included in an authorized group associated with a requested resource. A set of network access policies can also be configured to limit the connection to some servers to only a group in the marketing department, to limit the number of shared tunnels for connecting to a server to a certain maximum number, to restrict access to a specific server (time of day, specific users, etc.) behind the firewall , or even restricting access to only specific ports on a given server. Other network access policies can be configured to require the client to present a "smart card" before connecting to server 150.

Аналогично, набор политик доступа к ресурсам можно сконфигурировать на ограничение количества каналов подключения к ресурсу (хотя пользователь уже подключен к серверу через брандмауэр), ограничение всех ресурсов в целом и/или ограничение ресурсов и/или соединений для определенных групп пользователей лишь определенным количеством часов в сутки. По меньшей мере, частично, поскольку политики доступа к сети и политики доступа к ресурсам можно конфигурировать независимо, с индивидуальными критериями, компонент 170 политик доступа может обеспечивать администратору сети и/или ресурса значительно более дифференцированное управление по сравнению с аутентификацией и фильтрацией доступа на шлюзовом сервере 150.Similarly, a set of resource access policies can be configured to limit the number of channels connecting to a resource (although the user is already connected to the server through a firewall), limit all resources in general and / or limit resources and / or connections for certain user groups to only a certain number of hours in day. At least in part, since network access policies and resource access policies can be independently configured, with individual criteria, access policy component 170 can provide the network and / or resource administrator much more differentiated control compared to authentication and filtering access on the gateway server 150.

В частности, два класса политик (т.е. политики доступа к ресурсам и политики доступа к сети) могут быть связаны через "уровни доступа", что позволяет администратору сети и/или приложения/ресурса задавать и развивать свои политики совершенно независимо, особенно когда они согласуются с конкретным набором уровней доступа между ними. Например, пользователь может иметь возможность осуществлять доступ к одному набору ресурсов в одно время суток, предоставляя конкретные имя пользователя и пароль, но не имеет возможности осуществлять доступ к тому же набору ресурсов в другое время суток, не предъявив также интеллектуальной карты. Аналогично, пользователь может иметь возможность осуществлять доступ к другому набору неперекрывающихся ресурсов в другое время суток или, возможно, в выходные дни, независимо от того, предъявил ли пользователь какую-либо форму аутентификации.In particular, two classes of policies (ie, resource access policies and network access policies) can be connected through “access levels”, which allows the network administrator and / or application / resource to set and develop their policies completely independently, especially when they are consistent with a specific set of access levels between them. For example, a user may be able to access one set of resources at one time of the day by providing a specific username and password, but may not be able to access the same set of resources at another time of the day without also presenting a smart card. Similarly, a user may be able to access another set of non-overlapping resources at other times of the day or, possibly, on weekends, regardless of whether the user has presented any form of authentication.

Кроме того, можно использовать комбинацию политик доступа к сети и ресурсам, чтобы препятствовать пользователю в доступе к серверу 150 также в течение одного времени суток, которое имеет конкретное ограничение на максимальное количество туннелей подключения на сервере; или для подключения к версии ресурса, находящейся позади одного внутреннего сервера, но не к другой версии того же ресурса, размещенной на другом сервере, в течение определенного времени. Конечно, этот уровень дифференцированности управления, обеспечиваемый благодаря независимым критериям в политиках доступа к сети и ресурсам компонента 170 политик доступа, можно дополнительно модифицировать, просто изменяя уровень доступа пользователя от базового уровня к уровню доступа с более развитыми функциями администрирования.In addition, you can use a combination of network access policies and resources to prevent the user from accessing the server 150 also during one time of the day, which has a specific limit on the maximum number of connection tunnels on the server; or to connect to a version of a resource located behind one internal server, but not to another version of the same resource hosted on another server for a certain time. Of course, this level of management differentiation, provided by independent criteria in the network access policies and resources of the access policy component 170, can be further modified by simply changing the user's access level from the basic level to the access level with more advanced administrative functions.

В любом случае на фиг.1A также показано, что инфраструктура 107 связи в ответ посылает сообщение 140, запрашивающее любое количество из одной или нескольких особенностей, на обмен с которыми, например, настроена инфраструктура 107 связи. В частности, реализации настоящего изобретения могут дополнительно включать в себя, как указано выше, возможную карантинную особенность, входящую в состав политики доступа к сети, в которой инфраструктура 107 связи гарантирует, что только тем клиентам, которые имеют минимальный набор ресурсов или особенностей (например, определенные версии ресурса, наборы протоколов или компонентов, программные заплатки и т.д.), разрешено подключаться к данному серверному ресурсу.In any case, FIG. 1A also shows that the communications infrastructure 107 responds with a message 140 requesting any number of one or more features for exchange with which, for example, the communications infrastructure 107 is configured. In particular, implementations of the present invention may further include, as indicated above, a possible quarantine feature included in a network access policy in which communication infrastructure 107 ensures that only those clients that have a minimum set of resources or features (e.g. certain versions of the resource, sets of protocols or components, software patches, etc.) are allowed to connect to this server resource.

В альтернативных реализациях инфраструктура 107 связи просто отключает любые особенности, которые не поддерживаются клиентом 100, благодаря чему клиент не пытается установить связь в некоторый момент с такими неподдерживаемыми особенностями. Например, разработчик ресурса 120b может иметь обеспеченные ряд особенностей или обновлений особенности для этого ресурса, к которому клиент 100 (или клиенты, принадлежащие классу пользователей, указанному политикой доступа к ресурсам) не должен осуществлять доступ (или использовать его), пока клиент 100 также имеет минимальный набор соответствующих ресурсов, особенностей или обновлений особенности. Эти ресурсы, особенности и/или соответствующие обновления особенности могут быть функциональными, но также могут быть связаны с системой безопасности, из-за чего может быть важно, чтобы разработчик их применял. Соответственно, в одной реализации инфраструктура 107 связи может просто поместить запрашиваемое подключение в карантин, пока такие согласования особенностей с клиентом 100 не будут удостоверены или аутентифицированы.In alternative implementations, the communications infrastructure 107 simply disables any features that are not supported by the client 100, so that the client does not try to establish a connection at some point with such unsupported features. For example, the developer of a resource 120b may have a number of features or feature updates provided for that resource to which client 100 (or clients belonging to the user class specified by the resource access policy) should not access (or use it) while client 100 also has A minimum set of related resources, features, or feature updates. These resources, features, and / or corresponding feature updates may be functional, but may also be related to a security system, which may make it important for the developer to use them. Accordingly, in one implementation, the communications infrastructure 107 may simply quarantine the requested connection until such negotiation of features with the client 100 is authenticated or authenticated.

Затем клиент 100 обрабатывает сообщение 140, например, обнаруживая, какие особенности клиент 100 выполняет или способен выполнять, и подготавливает ответ. Например, на фиг.1B показано, что клиент 100 в ответ посылает сообщение 145, указывающее любые подобные идентифицированные поддерживаемые особенности. Затем сквозной API 160 может сравнить ответ 145 с информацией в компоненте 170 политик доступа для определения, пригодны ли эти поддерживаемые клиентом особенности для сетевого соединения или для установления канала к запрашиваемому ресурсу, или нужны ли другие особенности (или другие версии тех же особенностей). В одной реализации, если нужны другие особенности (т.е. клиент 100 недостаточно обновлен или не имеет определенных необходимых особенностей) для подключения к шлюзовому серверу 150, то сквозной API 160 может просто разорвать соединение, может послать сообщение об ошибке или может послать сообщение, указывающее место в сети, где клиент 100 может загрузить особенность. В других реализациях, например вышеупомянутых, инфраструктура 107 связи просто отключает те особенности шлюзового сервера 150, которые клиент 100 также не поддерживает.Then, the client 100 processes the message 140, for example, detecting what features the client 100 performs or is able to perform, and prepares a response. For example, FIG. 1B shows that client 100 sends a message 145 in response indicating any such identified supported features. The end-to-end API 160 can then compare the response 145 with the information in the access policy component 170 to determine whether these client-supported features are suitable for a network connection or to establish a channel to the requested resource, or whether other features (or other versions of the same features) are needed. In one implementation, if other features are needed (i.e., client 100 is not sufficiently updated or does not have certain necessary features) to connect to gateway server 150, then end-to-end API 160 may simply disconnect, may send an error message, or may send a message, indicating a location on the network where client 100 can download the feature. In other implementations, for example the aforementioned, the communication infrastructure 107 simply disables those features of the gateway server 150 that the client 100 also does not support.

Если сообщение 145 указывает надлежащий набор особенностей (когда такие особенности могут понадобиться), и клиент 100 авторизован на доступ к запрашиваемому ресурсу на стороне сервера, то сквозной API 160 может начать передавать соединение на соответствующий плагин протокольного процессора для ресурса. Например, сквозной API 160 может сначала посмотреть на "тип" запрашиваемого ресурса для определения, требует ли ресурс 120b особого плагина протокольного процессора, или является ли ресурс 120b частью более широкого класса ресурсов. В частности, на фиг.1B показано, что плагин протокольного процессора 115b связан, по меньшей мере, с ресурсами 120b и 123, а плагин 117 протокольного процессора, который является процессором "типа B", связан, по меньшей мере, с ресурсами 125 и 127. В общем случае этот этап определения соответствующего плагина протокольного процессора можно осуществлять путем просмотра системного реестра, в котором каждый плагин протокольного процессора прописывается при установке.If message 145 indicates an appropriate set of features (when such features may be needed), and client 100 is authorized to access the requested resource on the server side, then end-to-end API 160 may begin to transfer the connection to the corresponding protocol processor plug-in for the resource. For example, end-to-end API 160 may first look at the “type” of the requested resource to determine whether resource 120b requires a specific protocol processor plug-in, or whether resource 120b is part of a wider class of resources. In particular, FIG. 1B shows that the protocol processor plug-in 115b is associated with at least resources 120b and 123, and the protocol processor plug-in 117, which is a “type B” processor, is associated with at least resources 125 and 127. In general, this step of determining the corresponding protocol processor plug-in can be carried out by viewing the system registry in which each protocol processor plug-in is registered during installation.

В любом случае, на фиг.1B показано, что сквозной API 160 идентифицирует плагин 115b протокольного процессора, который является процессором "типа A" и связан с запрашиваемым ресурсом 120b. Затем сквозной API 160 осуществляет передачу управления каналом между клиентом 100 и плагином 115b протокольного процессора. Поэтому плагин 115a протокольного процессора на клиенте 100 и плагин 115b протокольного процессора на шлюзовом сервере 150 теперь соединены на соответствующих уровнях приложений стеков 103 и 113, соответственно, и, таким образом, могут обмениваться данными (например, 155) по каналу соединения. В частности, инфраструктура 107 связи допускает один или несколько каналов в туннеле для подключения к конкретному ресурсу с использованием соответствующих плагинов протокольного процессора клиента и шлюзового сервера, а не сетевого соединения, обрабатываемого сетевыми уровнями соответствующих стеков связи.In either case, FIG. 1B shows that end-to-end API 160 identifies a protocol processor plug-in 115b that is a “type A” processor and associated with the requested resource 120b. Then, the end-to-end API 160 transfers channel control between the client 100 and the protocol processor plug-in 115b. Therefore, the protocol processor plug-in 115a on the client 100 and the protocol processor plug-in 115b on the gateway server 150 are now connected at respective application levels of the stacks 103 and 113, respectively, and thus can exchange data (e.g., 155) over the connection channel. In particular, communication infrastructure 107 allows one or more channels in a tunnel to connect to a specific resource using the appropriate client protocol processor and gateway server plug-ins, rather than a network connection processed by the network layers of the respective communication stacks.

Управление этими каналами через туннель подключения может позволять клиенту 100 идентифицировать любые дополнительные ресурсы, к которым можно осуществить доступ, а также создавать дополнительные каналы с первоначально запрашиваемым ресурсом (т.е. ресурсом 120b). Например, клиент 100 может создать несколько каналов в туннеле подключения с одним и тем же ресурсом посредством инфраструктуры 107 связи, а также запросить у сквозного API 160 обеспечение дополнительных каналов (а также других туннелей и соответствующих одного или нескольких других каналов) к другим ресурсам, связанным с тем же плагином протокольного процессора, который связан с ресурсом 120b, например ресурсу 123. В некоторых реализациях клиент 100 также может просить инфраструктуру 107 связи идентифицировать другой плагин протокольного процессора (например, 117), пригодный для связи с другим ресурсом (например, 125). В любом случае управление соединением осуществляется, по меньшей мере отчасти, посредством компонента 170 политик доступа и/или компонента 175 инструментов администрирования (или "компонента 175 инструментов").Managing these channels through the connection tunnel may allow the client 100 to identify any additional resources that can be accessed, as well as create additional channels with the originally requested resource (i.e., resource 120b). For example, the client 100 can create several channels in the connection tunnel with the same resource through the communication infrastructure 107, and also request the end-to-end API 160 to provide additional channels (as well as other tunnels and the corresponding one or more other channels) to other resources related with the same protocol processor plugin that is associated with resource 120b, such as resource 123. In some implementations, client 100 may also request communication infrastructure 107 to identify another protocol process plugin a (e.g., 117) suitable for communication with another resource (e.g., 125). In any case, the connection is managed, at least in part, through the access policy component 170 and / or the administration tool component 175 (or the “tool component 175”).

В общем случае компонент 175 инструментов может содержать любое количество интерфейсов (например, один или несколько из "базового API", "конфигурационного API", "API политик" и/или "API состояния и контроля среды выполнения"). Компонент 175 инструментов администрирования также может содержать любые скрипты (сценарии), таблицы данных и соответствующие функции, доступ к которым может осуществлять, например, администратор шлюзового сервера 150. Например, администратор сети, желающий повлиять на сетевую политику для определенного плагина протокольного процессора или проанализировать количества соединений через инфраструктуру 107 связи, может открыть пользовательский интерфейс (не показан), обеспеченный компонентом 175 инструментов.In general, the tool component 175 may comprise any number of interfaces (for example, one or more of a “core API”, “configuration API”, “policy API” and / or “runtime state and control API”). The administration tool component 175 may also contain any scripts, scripts, data tables, and corresponding functions that can be accessed, for example, by the administrator of the gateway server 150. For example, a network administrator who wants to influence the network policy for a specific protocol processor plug-in or analyze the quantities connections through the communications infrastructure 107 may open a user interface (not shown) provided by the tool component 175.

Затем администратор сети может отслеживать общее использование Интернет, изменять состояние среды выполнения, перекрывать любые туннели, принадлежащие неправильно ведущим себя пользователям, ограничивать количества соединений с проходом брандмауэра и декларировать типы шифрования, используемые для создания такого соединения. Администратор сети также может изменять любую из этих и других сетевых настроек или политик, например, упомянутых в этом описании изобретения. Администратор сети может также использовать интерфейс, чтобы задать, каким пользователям разрешен доступ и к каким типам ресурсов, какие ресурсы вообще присутствуют, когда к этим ресурсам можно осуществлять доступ вне брандмауэра, и к каким серверам могут осуществлять доступ эти пользователи.Then the network administrator can monitor the overall use of the Internet, change the state of the runtime environment, block any tunnels belonging to improperly behaving users, limit the number of connections to the firewall pass and declare the types of encryption used to create such a connection. The network administrator can also change any of these and other network settings or policies, for example, mentioned in this description of the invention. The network administrator can also use the interface to specify which users are allowed to access and what types of resources, what resources are present, when these resources can be accessed outside the firewall, and which servers these users can access.

Разработчик плагина протокольного процессора также может обращаться к этим инструментам в компоненте 175. В частности, разработчик может прописать в плагине протокольного процессора возможность доступа и задать различные сетевые политики по умолчанию для использования с плагином протокольного процессора. Например, разработчик плагина протокольного процессора может сконструировать плагин протокольного процессора для взаимодействия с другим интерфейсом в инструментах 175 администрирования и задать минимальный ресурс или требования к особенностям. Соответственно, на фиг.1A-1B показан ряд компонентов, инструментов и схем, которые можно использовать в контексте инфраструктуры 107 связи и которые способны обеспечивать избирательный, безопасный и измеримый доступ к ресурсам в настройке брандмауэра.The developer of the protocol processor plug-in can also access these tools in component 175. In particular, the developer can specify the accessibility in the protocol processor plug-in and set various default network policies for use with the protocol processor plug-in. For example, a protocol processor plug-in developer can design a protocol processor plug-in to interact with a different interface in administration tools 175 and set a minimum resource or feature requirements. Accordingly, FIGS. 1A-1B show a number of components, tools, and circuits that can be used in the context of communication infrastructure 107 and which are capable of providing selective, secure, and measurable access to resources in configuring a firewall.

Реализации настоящего изобретения также можно описать применительно к способам, содержащим один или несколько этапов для достижения конкретного результата. Например, на фиг.2 показана блок-схема этапов способов со стороны клиента 100 и шлюзового сервера 150 для создания подключения (например, канала) к конкретному ресурсу через брандмауэр. Этапы, показанные на фиг.2, описаны ниже со ссылками на фиг.1A-1B.Implementations of the present invention can also be described in relation to methods comprising one or more steps to achieve a specific result. For example, FIG. 2 shows a flow diagram of the steps of a client 100 and a gateway server 150 to create a connection (eg, a channel) to a specific resource through a firewall. The steps shown in FIG. 2 are described below with reference to FIGS. 1A-1B.

В частности, на фиг.2 показано, что способ со стороны клиента 100 содержит этап 200, на котором посылают запрос подключения на шлюзовой сервер. Этап 200 включает в себя этап, на котором посылают запрос соединения на шлюзовой сервер, в котором запрос идентифицирует серверный ресурс для соединения с соответствующим клиентским ресурсом. Например, клиент 100 конкретизирует стек 103 связи плагином 115а протокольного процессора для доступа к ресурсу 120b. Затем клиент 100 подготавливает и отправляет сообщение 130, которое включает в себя информацию аутентификации, а также запрос доступа к ресурсу 120b, и отправляет сообщение 130 на шлюзовой сервер 150.In particular, FIG. 2 shows that the method on the client 100 includes a step 200, in which a connection request is sent to the gateway server. Step 200 includes the step of sending a connection request to the gateway server, in which the request identifies the server resource for connecting to the corresponding client resource. For example, client 100 instantiates communication stack 103 by protocol processor plugin 115a to access resource 120b. Then, the client 100 prepares and sends a message 130, which includes authentication information, as well as an access request to the resource 120b, and sends a message 130 to the gateway server 150.

Кроме того, на фиг.2 показано, что способ со стороны шлюзового сервера 150 содержит этап 210, на котором принимают клиентский запрос ресурса. Этап 210 включает в себя этап, на котором принимают клиентский запрос на клиентское соединение, в котором клиентский запрос идентифицирует ресурс, к которому клиент хотел бы подключиться. Например, шлюзовой сервер 150 принимает сообщение 130. Затем шлюзовой сервер 150 декодирует сообщение 130 на уровне HTTPS 105b, распаковывает упаковку любого другого протокола на транспортном уровне с возможностью встраивания 110b и оценивает любую содержащуюся в нем информацию аутентификации. Если информация аутентификации неверна, например, конфликтует с политикой доступа к сети, шлюзовой сервер 150 может просто отменить соединение. Альтернативно, если информация аутентификации верна, например, удовлетворяет минимальному стандарту (например, надлежащему имени пользователя и паролю) подключения через брандмауэр, шлюзовой сервер 150 может подвергнуть соединение карантину, пока определенный набор особенностей - также в соответствии с политикой доступа к сети или ресурсам - не будет идентифицирован из клиента 100.In addition, figure 2 shows that the method from the gateway server 150 includes a step 210, which accepts a client resource request. Step 210 includes the step of receiving a client request for a client connection, in which the client request identifies the resource to which the client would like to connect. For example, the gateway server 150 receives the message 130. Then, the gateway server 150 decodes the message 130 at the HTTPS 105b level, unpacks the packaging of any other protocol at the transport level with the possibility of embedding 110b and evaluates any authentication information contained therein. If the authentication information is incorrect, for example, in conflict with a network access policy, the gateway server 150 may simply cancel the connection. Alternatively, if the authentication information is correct, for example, satisfies the minimum connection standard (for example, the proper username and password) through the firewall, the gateway server 150 may quarantine the connection until a certain set of features - also in accordance with the network access policy or resources - will be identified from customer 100.

Таким образом, например, на фиг.2 также показано, что способ со стороны шлюзового сервера 150 содержит этап 220, на котором подвергают соединение карантину. Этап 220 включает в себя этап, на котором подвергают карантину соединение с клиентом для определения, установлен ли на клиенте минимальный набор из одной или нескольких особенностей. Например, на фиг.1A показано, что, приняв сообщение 130, инфраструктура 107 связи отправляет одно или несколько ответных сообщений 140. Вместо того, чтобы с необходимостью устанавливать соединения в этот момент, ответное сообщение 140 запрашивает дополнительную информацию для идентификации поддерживаемых особенностей на клиенте 100, например, версии плагина 115а протокольного процессора, особенностей соединения, которые клиент 100 и сервер 150 взаимно поддерживают, или любых других компонентов 120a ресурса (или соответствующих особенностей, обновлений особенности и т.д.), которые, в конце концов, можно использовать при соединении.Thus, for example, in FIG. 2, it is also shown that the method from the gateway server 150 includes a step 220 in which the connection is quarantined. Step 220 includes the step of quarantining the connection with the client to determine if a minimum set of one or more features is installed on the client. For example, FIG. 1A shows that, upon receiving message 130, communications infrastructure 107 sends one or more response messages 140. Instead of having to establish connections at this point, response message 140 requests additional information to identify supported features on client 100 , for example, the version of the protocol processor plugin 115a, the connection features that the client 100 and server 150 mutually support, or any other resource components 120a (or related features, has been updated first features, etc.), which, after all, can be used in conjunction.

Соответственно, на фиг.2 показано, что способ со стороны клиента 100 содержит этап 230, на котором принимают запрос для минимального набора особенностей. Этап 230 включает в себя этап, на котором принимают от шлюзового сервера запрос на минимальный набор из одной или нескольких особенностей, поддерживаемых клиентом для ресурса. Например, клиент 100 принимает сообщение 140 на стеке 103 связи и обрабатывает сообщение 140 на плагине 115а протокольного процессора, например, путем выполнения любых скриптов или проверки любой информации системного реестра на предмет запрашиваемых особенностей, включая любые другие ресурсы или ресурсные особенности, запрашиваемые сервером 150. В частности, плагин 115а протокольного процессора идентифицирует свою собственную информацию особенностей, или информацию особенностей для ресурса 120a, или информацию особенностей для другого программного компонента или ресурса (не показан) на клиенте 100.Accordingly, FIG. 2 shows that the method on the client side 100 includes a step 230 in which a request is received for a minimum set of features. Step 230 includes the step of receiving from the gateway server a request for a minimum set of one or more features supported by the client for the resource. For example, client 100 receives message 140 on communication stack 103 and processes message 140 on protocol processor plug-in 115a, for example, by running any scripts or checking any registry information for requested features, including any other resources or resource features requested by server 150. In particular, the protocol processor plugin 115a identifies its own feature information, or feature information for the resource 120a, or feature information for another program component or resource (not shown) on client 100.

Кроме того, на фиг.2 показано, что способ со стороны клиента 100 содержит этап 240, на котором посылают ответ особенностей на шлюзовой сервер. Этап 240 включает в себя этап, на котором посылают ответ поддерживаемых особенностей на шлюзовой сервер, причем ответ поддерживаемых особенностей указывает особенности, поддерживаемые клиентом. Например, на фиг.1B показано, что клиент 100 отправляет ответное сообщение 145, которое указывает набор из одной или нескольких особенностей, которые поддерживаются клиентом 100, например присутствие запрашиваемой версии программного обеспечения.In addition, FIG. 2 shows that the method on the client side 100 comprises step 240, in which a feature response is sent to the gateway server. Step 240 includes the step of sending a response of the supported features to the gateway server, the response of the supported features indicating features supported by the client. For example, FIG. 1B shows that client 100 sends a response message 145 that indicates a set of one or more features that are supported by client 100, such as the presence of a requested software version.

На фиг.2 также показано, что способ со стороны шлюзового сервера 150 содержит этап 250, на котором идентифицируют соответствующий плагин протокольного процессора. Этап 250 включает в себя этап, на котором идентифицируют плагин протокольного процессора на основании типа ресурса для идентифицированного ресурса. Например, сквозной API 160 идентифицирует, что плагин 115b протокольного процессора является плагином "типа A", и является тем же типом, который выявлен для протокольного процесса 115a на клиенте 100, и связан с запрашиваемым ресурсом 120b на шлюзовом сервере 150.Figure 2 also shows that the method from the gateway server 150 includes a step 250, which identifies the corresponding plug-in protocol protocol. Step 250 includes the step of identifying the protocol processor plugin based on the type of resource for the identified resource. For example, pass-through API 160 identifies that the protocol processor plug-in 115b is a "type A" plug-in, and is the same type that is identified for the protocol process 115a on the client 100, and is associated with the requested resource 120b on the gateway server 150.

На фиг.2 дополнительно показано, что способ со стороны шлюзового сервера 150 содержит этап 260, на котором перенаправляют подключение на плагин протокольного процессора. Этап 260 включает в себя этап, на котором перенаправляют соединение с клиентом на идентифицированный плагин протокольного процессора. Например, согласно фиг.1B, после того, как сквозной API 160 идентифицирует, что плагин 115b протокольного процессора пригоден и что информация, предоставленная клиентом 100, соответствует конкретной политике доступа к ресурсам, сквозной API 160 передает управление запрашиваемым подключением плагину 115b протокольного процессора. В общем случае этот процесс может предусматривать установление туннеля - и одного или нескольких каналов в туннеле - между протокольным процессором 115a на клиенте 100 и плагином протокольного процессора 115b на шлюзовом сервере 150. Затем плагин 115а протокольного процессора на клиенте 100 и плагин 115b протокольного процессора на шлюзовом сервере могут напрямую осуществлять связь на уровне приложений сетевых стеков 103 и 113 через этот туннель и соответствующие один или несколько каналов.Figure 2 further shows that the method on the part of the gateway server 150 comprises a step 260, in which the connection is redirected to the protocol processor plug-in. Step 260 includes redirecting a client connection to an identified protocol processor plugin. For example, according to FIG. 1B, after the end-to-end API 160 identifies that the protocol processor plug-in 115b is suitable and that the information provided by the client 100 matches a specific resource access policy, the end-to-end API 160 transfers control of the requested connection to the protocol processor plug-in 115b. In general, this process may include establishing a tunnel — and one or more channels in the tunnel — between the protocol processor 115a on the client 100 and the protocol processor plugin 115b on the gateway server 150. Then, the protocol processor plugin 115a on the client 100 and the protocol processor plugin 115b on the gateway the server can directly communicate at the application level of the network stacks 103 and 113 through this tunnel and the corresponding one or more channels.

Таким образом, на фиг.2 также показано, что способ со стороны клиента 100 содержит этап 270, на котором подключаются к плагину протокольного процессора на шлюзовом сервере. Этап 270 включает в себя этап, на котором подключаются к уровню приложений стека связи на шлюзовом сервере, в результате чего клиентский ресурс передает данные посредством плагина протокольного процессора, связанного с серверным ресурсом. Например, теперь, когда плагины 115а-b протокольного процессора сообщаются непосредственно через брандмауэр и поскольку соединение передается в соответствии с сетевой политикой, только клиент 100 получает через брандмауэр доступ, достаточный для связи с ресурсом 120b. Таким образом, клиент 100 не имеет свободного доступа ко всем ресурсам позади брандмауэра. Тем не менее, как описано выше, клиент 100 может иметь возможность инициировать дополнительные каналы или соединения с одним и тем же ресурсом, с разными экземплярами ресурса или с другими ресурсами, которые клиенту 100 разрешено идентифицировать через инфраструктуру 107 связи.Thus, FIG. 2 also shows that the method on the client side 100 includes a step 270, which connects to the plug-in protocol processor on the gateway server. Step 270 includes the step of connecting to the application layer of the communication stack on the gateway server, whereby the client resource transmits data through a protocol processor plugin associated with the server resource. For example, now that the protocol processor plugins 115a-b communicate directly through the firewall and since the connection is transmitted in accordance with the network policy, only client 100 receives sufficient access through the firewall to communicate with the resource 120b. Thus, the client 100 does not have free access to all resources behind the firewall. However, as described above, the client 100 may be able to initiate additional channels or connections with the same resource, with different instances of the resource or with other resources that the client 100 is allowed to identify through the communication infrastructure 107.

Соответственно, вышеописанные способы и схемы обеспечивают ряд подходов, согласно которым инфраструктура 107 связи может обеспечивать доступ к конкретным ресурсам с использованием различных плагинов, разработанных разработчиками. В частности, инфраструктура 107 связи обеспечивает ряд политик доступа (к сети и ресурсу), инструментов и компонентов, которые можно использовать для упрощения разработки и реализации плагина протокольного процессора. Например, разработчик может избежать независимой разработки скриптов плагина протокольного процессора для реализации конкретного ресурса политики доступа, или для реализации конкретных диагностических инструментов, поскольку эти инструменты уже включены в инфраструктуру 107 связи. Напротив, разработчику нужно разработать только плагин протокольного процессора для использования на клиенте и сервере, если разработчик предусматривает, что любой данный ресурс должен быть доступен через брандмауэр.Accordingly, the above methods and schemes provide a number of approaches, according to which the communication infrastructure 107 can provide access to specific resources using various plug-ins developed by the developers. In particular, communications infrastructure 107 provides a number of access policies (to the network and resource), tools, and components that can be used to simplify the development and implementation of the protocol processor plug-in. For example, a developer may avoid independently developing scripts of a protocol processor plug-in to implement a specific access policy resource, or to implement specific diagnostic tools, as these tools are already included in communication infrastructure 107. On the contrary, the developer only needs to develop a protocol processor plug-in for use on the client and server, if the developer provides that any given resource should be accessible through a firewall.

Аналогично, администратор сети может во многих случаях избежать необходимости независимо прописывать политики доступа для новых сетевых соединений, поскольку такие политики доступа уже можно найти в инфраструктуре связи и, таким образом, легко конфигурировать или активировать/деактивировать. Таким образом, раскрытые здесь особенности могут в некоторой степени упрощать работу разработчиков и администраторов сети и перекладывать бремя управления на устойчивую инфраструктуру связи.Similarly, the network administrator can in many cases avoid the need to independently prescribe access policies for new network connections, since such access policies can already be found in the communication infrastructure and, thus, it is easy to configure or activate / deactivate. Thus, the features disclosed here may, to some extent, simplify the work of developers and network administrators and shift the burden of management to a sustainable communications infrastructure.

Варианты осуществления настоящего изобретения могут содержать компьютер специального назначения или общего назначения, включающий в себя различное компьютерное оборудование, которое более подробно рассмотрено ниже. В частности, варианты осуществления в рамках настоящего изобретения также включают в себя компьютерно-считываемые носители для переноса или хранения компьютерно-выполняемых команд или структур данных. Такие компьютерно-считываемые носители могут представлять собой любые доступные носители, к которым может осуществлять доступ компьютер общего назначения или специального назначения. В порядке примера, но не ограничения, такие компьютерно-считываемые носители могут содержать ОЗУ, ПЗУ, ЭСППЗУ, CD-ROM или другой носитель в виде оптического диска, носитель в виде магнитного диска или другие магнитные запоминающие устройства, или любой другой носитель, который можно использовать для переноса или хранения нужного средства программного кода в форме компьютерно-выполняемых команд или структур данных, и к которому может осуществлять доступ компьютер общего назначения или специального назначения.Embodiments of the present invention may comprise a special purpose or general purpose computer including various computer equipment, which is discussed in more detail below. In particular, embodiments within the scope of the present invention also include computer-readable media for transferring or storing computer-executable instructions or data structures. Such computer-readable media can be any available media that can be accessed by a general purpose or special purpose computer. By way of example, but not limitation, such computer-readable media may include RAM, ROM, EEPROM, CD-ROM, or other media in the form of an optical disk, media in the form of a magnetic disk or other magnetic storage devices, or any other medium that can be use for transferring or storing the necessary means of program code in the form of computer-executable instructions or data structures, and to which a general purpose or special purpose computer can access.

Когда информация переносится или доставляется посредством сети или другого коммуникационного соединения (проводного, беспроводного или комбинированного) на компьютер, компьютер рассматривает соединение как компьютерно-считываемый носитель. Таким образом, любое подобное соединение можно называть компьютерно-считываемым носителем. Комбинации вышеперечисленных примеров также можно включить в понятие компьютерно-считываемых носителей.When information is transferred or delivered via a network or other communication connection (wired, wireless or combined) to a computer, the computer considers the connection as a computer-readable medium. Thus, any such connection can be called a computer-readable medium. Combinations of the above examples can also be included in the concept of computer-readable media.

Компьютерно-выполняемые команды содержат, например, команды и данные, которые предписывают компьютеру общего назначения, компьютеру специального назначения или устройству обработки специального назначения осуществлять определенную функцию или группу функций. Хотя изобретение было описано применительно к особенностям конструкции и/или этапам способа, следует понимать, что изобретение, заданное в прилагаемой формуле изобретения, не обязано ограничиваться вышеописанными конкретными особенностями или этапами. Напротив, вышеописанные конкретные особенности и этапы раскрыты в иллюстративных формах реализации формулы изобретения.Computer-executable instructions comprise, for example, instructions and data that direct a general-purpose computer, special-purpose computer, or special-purpose processing device to perform a particular function or group of functions. Although the invention has been described with reference to design features and / or method steps, it should be understood that the invention defined in the appended claims is not required to be limited to the specific features or steps described above. On the contrary, the above specific features and steps are disclosed in illustrative embodiments of the claims.

Настоящее изобретение можно реализовать в других конкретных формах, не выходя за рамки его сущности или отличительных особенностей. Описанные варианты осуществления следует рассматривать во всех отношениях исключительно как иллюстративные, но не ограничительные. Объем изобретения определен, таким образом, в прилагаемой формуле изобретения, а не в вышеприведенном описании. Этот объем охватывает любые изменения, отвечающие смыслу и объему эквивалентности формулы изобретения.The present invention can be implemented in other specific forms without going beyond its essence or distinctive features. The described embodiments should be considered in all respects exclusively as illustrative, but not restrictive. The scope of the invention is thus defined in the appended claims, and not in the above description. This scope covers any changes that correspond to the meaning and scope of equivalence of the claims.

Claims (17)

1. Способ создания соединения клиентского компьютера через брандмауэр шлюзового сервера в компьютеризированной среде, в которой клиентская компьютерная система осуществляет доступ к ресурсу на шлюзовом сервере через упомянутый брандмауэр, причем шлюзовой сервер обеспечивает соединения уровня приложений через брандмауэр, способ содержит этапы, на которых
принимают запрос на соединение от клиента, при этом запрос на соединение идентифицирует ресурс, к которому клиент хотел бы подключиться,
идентифицируют на основании ресурса, идентифицированного в запросе на соединение, одну или более политик доступа из инфраструктуры связи, установленной на шлюзе, причем упомянутые одна или более политик доступа являются общими для упомянутой инфраструктуры связи и не являются специально созданными для упомянутого ресурса,
подвергают карантину соединение с клиентом для определения, установлен ли на клиенте минимальный набор из одной или нескольких особенностей, которые определены в упомянутой одной или более политиках,
идентифицируют плагин протокольного процессора на основании типа ресурса для идентифицированного ресурса, причем идентифицированный плагин протокольного процессора обрабатывает соединения ко множеству ресурсов, которые имеют одинаковый тип ресурса, и перенаправляют соединение с клиентом на идентифицированный плагин протокольного процессора посредством предоставления управления каналом туннеля соединения плагину протокольного процессора на упомянутом сервере так, что последующие коммуникации между клиентом и ресурсом через упомянутый канал обрабатываются посредством упомянутого плагина протокольного процессора независимо от инфраструктуры связи.
1. A method for creating a client computer connection through a gateway server firewall in a computerized environment in which a client computer system accesses a resource on the gateway server through said firewall, the gateway server providing application level connections through a firewall, the method comprising the steps of
receive a connection request from the client, while the connection request identifies the resource to which the client would like to connect,
identifying, on the basis of the resource identified in the connection request, one or more access policies from a communication infrastructure installed on the gateway, said one or more access policies being common to said communication infrastructure and not specially created for said resource,
quarantine the connection with the client to determine whether the client has a minimum set of one or more features that are defined in the mentioned one or more policies,
the protocol processor plug-in is identified based on the type of resource for the identified resource, wherein the identified protocol processor plug-in processes connections to a plurality of resources that have the same resource type and redirects the client connection to the identified protocol processor plug-in by providing control of the tunnel channel of the connection to the protocol processor plug-in server so that subsequent communication between the client and the resource through the pack -mentioned channel is processed by a protocol processor independently of the communication infrastructure of said plug.
2. Способ по п.1, дополнительно содержащий этап, на котором аутентифицируют клиента на основании сравнения информации аутентификации, обеспеченной в клиентском запросе, с упомянутой одной или несколькими политиками доступа.2. The method of claim 1, further comprising authenticating the client based on comparing the authentication information provided in the client request with said one or more access policies. 3. Способ по п.1, дополнительно содержащий этапы, на которых принимают другой запрос на соединение для другого ресурса от клиента, и устанавливают другой канал соединения между клиентом и другим ресурсом через тот же самый туннель соединения.3. The method according to claim 1, further comprising the steps of receiving another connection request for another resource from the client, and establishing a different connection channel between the client and the other resource through the same connection tunnel. 4. Способ по п.1, дополнительно содержащий этап, на котором принимают другой запрос на соединение для ресурса, в результате чего запрашиваются множественные соединения с одним и тем же ресурсом от любого из клиента или клиента и одного или нескольких других клиентов вне брандмауэра.4. The method according to claim 1, further comprising the step of receiving another connection request for the resource, as a result of which multiple connections to the same resource are requested from any of the client or client and one or more other clients outside the firewall. 5. Способ по п.4, дополнительно содержащий этап, на котором передают управление другим каналом к идентифицированному плагину протокольного процессора с клиентом, делающим другой запрос на соединение.5. The method according to claim 4, further comprising transmitting control of the other channel to the identified protocol processor plug-in with a client making another connection request. 6. Способ по п.4, дополнительно содержащий этапы, на которых идентифицируют из дифференцированной настройки политик доступа, что другой запрос на соединение является неприемлемым, и отменяют другой запрос на соединение.6. The method according to claim 4, further comprising the steps of: identifying from a differentiated setting of access policies that another connection request is unacceptable, and canceling another connection request. 7. Способ по п.6, в котором политика доступа содержит политику доступа к сети для определения, авторизован ли клиент на соединение с сервером, и политику доступа к ресурсам для определения, авторизован ли клиент создавать канал с запрашиваемым ресурсом посредством соединения с сервером.7. The method according to claim 6, in which the access policy contains a network access policy for determining whether the client is authorized to connect to the server, and a resource access policy for determining whether the client is authorized to create a channel with the requested resource by connecting to the server. 8. Способ по п.6, в котором настройка политик доступа содержит указание, ограничивающее доступ клиента к ресурсу в течение суток, и в котором другой запрос на соединение не соответствует времени суток.8. The method according to claim 6, in which the setting of access policies contains an indication restricting client access to the resource during the day, and in which another connection request does not correspond to the time of day. 9. Способ по п.6, в котором настройка политик доступа содержит указание, ограничивающее доступ клиента к ресурсу конкретным портом сервера ресурсов позади брандмауэра, причем другой запрос на соединение запрашивает соединение с ресурсом на этом конкретном порте сервера ресурсов.9. The method according to claim 6, in which the setting of access policies contains an indication restricting client access to the resource to a specific resource server port behind the firewall, wherein another connection request requests a connection to the resource on that particular resource server port. 10. Способ по п.6, в котором настройка политик доступа является политикой доступа к сети, которая ограничивает количество туннелей соединения через брандмауэр на шлюзовом сервере, в результате чего другой запрос на соединение требует создания нового туннеля соединения сверх установленного предела.10. The method according to claim 6, in which the setting of access policies is a network access policy that limits the number of connection tunnels through the firewall on the gateway server, as a result of which another connection request requires the creation of a new connection tunnel over the set limit. 11. Способ по п.6, в котором настройка политик доступа требует, чтобы клиент делал клиентский запрос с помощью интеллектуальной карты, при этом другой запрос на соединение указывает, что клиент не имеет интеллектуальной карты.11. The method according to claim 6, in which the setting of access policies requires the client to make a client request using a smart card, while another connection request indicates that the client does not have a smart card. 12. Способ по п.6, в котором настройка политик доступа ограничивает доступ к одному и тому же ресурсу для разрешенного класса пользователей, при этом другой запрос на соединение исходит от другого пользователя, который не является членом этого разрешенного класса пользователей.12. The method according to claim 6, in which the setting of access policies restricts access to the same resource for the allowed class of users, while another connection request comes from another user who is not a member of this allowed class of users. 13. Считываемый компьютером носитель, на котором хранятся выполняемые компьютером команды, которые при выполнении предписывают одному или нескольким процессам на шлюзовом сервере в компьютеризированной среде, в которой клиентская компьютерная система осуществляет доступ к ресурсу на шлюзовом сервере через брандмауэр, причем шлюзовой сервер имеет по меньшей мере уровень вызова удаленных процедур и уровень защищенного протокола передачи гипертекстовых файлов в инфраструктуре связи, осуществлять способ, содержащий этапы, на которых
принимают запрос на соединение от клиента, причем запрос на соединение идентифицирует ресурс, к которому клиент хотел бы подключиться,
идентифицируют на основании ресурса, идентифицированного в запросе на соединение, одну или более политик доступа из инфраструктуры связи, установленной на шлюзе, причем упомянутые одна или более политик доступа являются общими для упомянутой инфраструктуры связи и не являются специально созданными для упомянутого ресурса,
подвергают карантину соединение с клиентом для определения, установлен ли на клиенте минимальный набор из одной или нескольких особенностей, которые определены в упомянутой одной или более политиках,
идентифицируют плагин протокольного процессора на основании типа ресурса для идентифицированного ресурса, причем идентифицированный плагин протокольного процессора обрабатывает соединения ко множеству ресурсов, которые имеют одинаковый тип ресурса, и
перенаправляют соединение с клиентом на идентифицированный плагин протокольного процессора посредством предоставления управления каналом туннеля соединения плагину протокольного процессора на упомянутом сервере так, что последующие коммуникации между клиентом и ресурсом через упомянутый канал обрабатываются посредством упомянутого плагина протокольного процессора независимо от инфраструктуры связи.
13. A computer-readable medium on which computer-executable instructions are stored which, when executed, require one or more processes on the gateway server in a computerized environment in which the client computer system accesses the resource on the gateway server through a firewall, the gateway server having at least the call level of remote procedures and the level of the secure protocol for transferring hypertext files in the communication infrastructure, implement a method comprising the steps of
receive a connection request from the client, and the connection request identifies the resource to which the client would like to connect,
identifying, on the basis of the resource identified in the connection request, one or more access policies from a communication infrastructure installed on the gateway, said one or more access policies being common to said communication infrastructure and not specially created for said resource,
quarantine the connection with the client to determine whether the client has a minimum set of one or more features that are defined in the mentioned one or more policies,
a protocol processor plug-in is identified based on the type of resource for the identified resource, wherein the identified protocol processor plug-in processes connections to a plurality of resources that have the same type of resource, and
redirect the connection with the client to the identified protocol processor plug-in by providing control of the connection tunnel channel to the protocol processor plug-in on said server so that subsequent communications between the client and the resource through said channel are processed by said protocol processor plug-in regardless of the communication infrastructure.
14. Инфраструктура связи, которая установлена на шлюзовом сервере в компьютеризированной среде, в которой клиентская компьютерная система осуществляет доступ к ресурсу на шлюзовом сервере через брандмауэр, причем шлюзовой сервер имеет по меньшей мере уровень вызова удаленных процедур и уровень защищенного протокола передачи гипертекстовых файлов в инфраструктуре связи, при этом инфраструктура связи содержит:
стек связи для взаимодействия между физической границей сети, к которой шлюзовой сервер подсоединен, и программными компонентами на шлюзовом сервере, при этом стек связи включает в себя уровень защищенного протокола передачи гипертекстовых файлов (HTTPS) и
уровень вызова удаленных процедур, и
интерфейс прикладного программирования, имеющий уровни на вершине уровня HTTPS, который обеспечивает функциональные возможности для установления соединений между клиентами, осуществляющими запросы через брандмауэр для соединения с ресурсом на шлюзовом сервере, идентификации подходящего плагина протокольного процессора для управления соединением с упомянутым ресурсом, и гарантирования, что подходящие сетевые политики применены к этому соединению, причем сетевые политики содержатся в инфраструктуре связи отдельно от плагина протокольного процессора, который управляет соединениями с одним или более ресурсами на шлюзовом сервере, и при этом подходящая политика выбирается на основании ресурса, к которому клиент запрашивает соединение, причем после установления соединения с клиентом инфраструктура связи перенаправляет соединение к выбранному плагину протокольного процессора так, что последующие коммуникации между клиентом и ресурсом обрабатываются посредством упомянутого плагина протокольного процессора независимо от инфраструктуры связи.
14. A communications infrastructure that is installed on a gateway server in a computerized environment in which a client computer system accesses a resource on a gateway server through a firewall, the gateway server having at least a remote procedure call level and a secure hypertext file transfer protocol layer in the communication infrastructure , while the communications infrastructure contains:
communication stack for interaction between the physical boundary of the network to which the gateway server is connected and software components on the gateway server, while the communication stack includes a layer of a secure protocol for transferring hypertext files (HTTPS) and
remote procedure call level, and
an application programming interface having layers at the top of the HTTPS layer that provides functionality for establishing connections between clients making requests through a firewall to connect to a resource on the gateway server, identifying a suitable protocol processor plug-in to control the connection to the said resource, and ensuring that suitable network policies are applied to this connection, and network policies are contained in the communication infrastructure separately from the protocol plug-in a processor that manages connections to one or more resources on the gateway server, and the appropriate policy is selected based on the resource to which the client requests a connection, and after establishing a connection with the client, the communication infrastructure redirects the connection to the selected protocol processor plug-in so that subsequent communications between the client and the resource are processed by the mentioned protocol processor plug-in regardless of the communication infrastructure.
15. Инфраструктура связи по п.14, в которой сетевые политики содержат политики доступа к сети для определения, авторизован ли клиент на соединение с шлюзовым сервером, и политику доступа к ресурсу для определения, авторизован ли клиент создавать канал с запрашиваемым ресурсом посредством установленного соединения.15. The communications infrastructure of claim 14, wherein the network policies contain network access policies for determining whether the client is authorized to connect to the gateway server, and a resource access policy for determining whether the client is authorized to create a channel with the requested resource through the established connection. 16. Инфраструктура связи по п.14, в которой интерфейс прикладного программирования извлекает одну или более особенностей из сетевых политик после приема запроса от клиента соединиться с ресурсом, и запрашивает клиента подтвердить, что он реализует упомянутые одну или более особенностей, перед созданием соединения или с шлюзовым сервером или с ресурсом.16. The communications infrastructure of claim 14, wherein the application programming interface retrieves one or more features from network policies after receiving a request from a client to connect to a resource, and asks the client to confirm that it implements the mentioned one or more features before creating a connection or with gateway server or with a resource. 17. Инфраструктура связи по п.14, в которой соединения между клиентами и ресурсами осуществляются на уровне приложений стека связи. 17. The communications infrastructure of claim 14, wherein the connections between clients and resources are at the application level of the communications stack.
RU2008109223/08A 2005-09-12 2006-08-15 Providing coordinated passage of firewall having application information RU2422886C2 (en)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US71629705P 2005-09-12 2005-09-12
US60/716,297 2005-09-12
US11/326,992 US7685633B2 (en) 2005-02-25 2006-01-05 Providing consistent application aware firewall traversal
US11/326,992 2006-01-05

Publications (2)

Publication Number Publication Date
RU2008109223A RU2008109223A (en) 2009-10-10
RU2422886C2 true RU2422886C2 (en) 2011-06-27

Family

ID=39662714

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2008109223/08A RU2422886C2 (en) 2005-09-12 2006-08-15 Providing coordinated passage of firewall having application information

Country Status (6)

Country Link
JP (1) JP4972646B2 (en)
KR (1) KR20080045195A (en)
CN (1) CN101263466B (en)
BR (1) BRPI0615752A2 (en)
NO (1) NO20081455L (en)
RU (1) RU2422886C2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2639670C2 (en) * 2012-08-24 2017-12-21 Тектроникс, Инк. Technology of removing and replacing virtual model adapter for cascade networks

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103561002B (en) * 2013-10-22 2017-02-15 北京神州泰岳软件股份有限公司 Safety access method and system based on fire wall policy
CN104954462A (en) * 2015-06-12 2015-09-30 福建新大陆通信科技股份有限公司 High-concurrency extensible smart home communication method and high-concurrency extensible smart home communication system
CN110365699B (en) * 2019-07-29 2021-11-26 北京奇艺世纪科技有限公司 Traffic processing method, device and system and gateway equipment

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1075695C (en) * 1996-09-02 2001-11-28 北京天融信网络安全技术有限公司 Fireproof wall system
US6101549A (en) * 1996-09-27 2000-08-08 Intel Corporation Proxy-based reservation of network resources
US6763395B1 (en) * 1997-11-14 2004-07-13 National Instruments Corporation System and method for connecting to and viewing live data using a standard user agent
US7137144B1 (en) * 2000-02-11 2006-11-14 International Business Machines Corporation Technique of defending against network connection flooding attacks
US7631084B2 (en) * 2001-11-02 2009-12-08 Juniper Networks, Inc. Method and system for providing secure access to private networks with client redirection
US8135843B2 (en) * 2002-03-22 2012-03-13 Citrix Systems, Inc. Methods and systems for providing access to an application
JP2004220120A (en) * 2003-01-09 2004-08-05 Nippon Telegr & Teleph Corp <Ntt> Network security system, access control method, authentication mechanism, firewall mechanism, authentication mechanism program, firewall mechanism program, and recording medium
CN2643555Y (en) * 2003-01-30 2004-09-22 刘燕南 A safety secrecy intelligent information terminal
US7559082B2 (en) * 2003-06-25 2009-07-07 Microsoft Corporation Method of assisting an application to traverse a firewall
JP2005063169A (en) * 2003-08-13 2005-03-10 Ricoh Co Ltd Information processor, image processor, server device, method for session connection, session connection program, and recording medium
JP4564739B2 (en) * 2003-11-07 2010-10-20 シャープ株式会社 Server apparatus and communication system

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2639670C2 (en) * 2012-08-24 2017-12-21 Тектроникс, Инк. Technology of removing and replacing virtual model adapter for cascade networks

Also Published As

Publication number Publication date
KR20080045195A (en) 2008-05-22
JP2009508213A (en) 2009-02-26
NO20081455L (en) 2008-04-11
CN101263466A (en) 2008-09-10
BRPI0615752A2 (en) 2011-05-24
CN101263466B (en) 2011-02-09
JP4972646B2 (en) 2012-07-11
RU2008109223A (en) 2009-10-10

Similar Documents

Publication Publication Date Title
US7685633B2 (en) Providing consistent application aware firewall traversal
US20210014220A1 (en) Trusted container
US10083290B2 (en) Hardware-based device authentication
US9258308B1 (en) Point to multi-point connections
US8327441B2 (en) System and method for application attestation
US8938799B2 (en) Security protection apparatus and method for endpoint computing systems
RU2439692C2 (en) Policy-controlled delegation of account data for single registration in network and secured access to network resources
US8166534B2 (en) Incorporating network connection security levels into firewall rules
US20150188779A1 (en) Split-application infrastructure
US20050015340A1 (en) Method and apparatus for supporting service enablers via service request handholding
WO2022022253A1 (en) Service authentication method, apparatus, device and system, and storage medium
US11362827B2 (en) IOT security mechanisms for industrial applications
RU2422886C2 (en) Providing coordinated passage of firewall having application information
US11463429B2 (en) Network controls for application access secured by transport layer security (TLS) using single sign on (SSO) flow
CN111628960B (en) Method and apparatus for connecting to network services on a private network
WO2012163587A1 (en) Distributed access control across the network firewalls
Bente et al. Interoperable Remote Attestation for VPN Environments: (Work in Progress)
Bishop et al. Windows Firewall with Advanced Security Design Guide and Deployment Guide

Legal Events

Date Code Title Description
PC41 Official registration of the transfer of exclusive right

Effective date: 20150526