System for automated connection to virtual private networks related applications
Summary by NHIP
VPN Gateway Interface Unit
The network interface unit authenticates LAN clients and establishes secure tunnels to VPN nodes via non-secure networks. It authenticates incompatible first clients using credentials from compatible second clients and retrieves stored configuration profiles to access specific connection types.
Claim Score by NHIP
Abstract
A network interface unit is provided for use intermediate a LAN and a public or private network, or a combination of both, for establishing secure links to a VPN gateway. Login by a LAN client with the network interface unit, addressing, authentication, and other configuration operations achieved using a web page-based GUI are applied in establishing tunnels from LAN clients to desired VPN destinations. Illustrative network interface units include a DHCP server and provide encryption-decryption and encapsulation-decapsulation of data packets for communication with VPN nodes. Configuration and connection of a client are further enhanced by a built-in DNS server and other functional servers to provide a high degree of autonomy in establishing connections to a desired VPN gateway via an ISP or other public and/or private network links to. The interface unit then performs required authentication exchanges, and required encryption key exchanges.

Term
Projected expiry 2 January 2029.
- Priority and filed
- Granted
- Today
- Projected expiry
19 claims: 3 independent, 16 dependent
- 1A network interface unit for communicating data packets over one or more non-secure networks between one or more client devices associated with one or more local area networks (LAN) and a secure virtual private network (VPN) node, comprising:means for authenticating the one or more client devices for access to the secure VPN node, a graphical user interface server for presenting an authentication menu to the one or more client devices, wherein, when a first one of the client devices is incompatible with the authentication menu, the authentication means is to authenticate the first client device in response to an authentication of a second one of the client devices via the authentication menu, the second client device being compatible with the authentication menu;means for receiving a menu selection from the second client device, the selection corresponding to a connection profile associated with a first type of connection;means for accessing the one or more non-secure networks using information associated with the selection;and a security server for establishing a secure communication over the non-secure network between the LAN and the secure VPN node.
- 16A method for communicating data packets over a non-secure network between client devices a secure virtual private network (VPN) node, comprising:receiving a request from a first client device associated with a first local area network (LAN) to access the secure VPN node;presenting an authentication menu via a graphical user interface on the first client device;in response to receiving valid authentication information from the first client device, authenticating the first client device for access to the secure VPN node;when a second client device associated with the first LAN is incompatible with the authentication menu, authenticating the second client device associated with the first LAN in response to the authentication of the first client device associated with the first LAN, the first client device being compatible with the authentication menu;receiving a menu selection from the first client device corresponding to a connection profile associated with a first type of connection;accessing the non-secure network using information associated with the selection;and establishing a secure communication over the non-secure network between the first LAN and the secure VPN node.
- 18Broadest claimClaim Score 46, average(NHIP)A non-transitory memory storing instructions that, when executed, cause a machine to:receive a request from a first client device associated with a first local area network (LAN) to access a secure VPN node;present an authentication menu via a graphical user interface to the first client device;in response to receiving valid authentication information from the first client device, authenticate the first client device for access to the secure VPN node;when a second client device associated with the first LAN is incompatible with the menu, authenticate the second client device of the first LAN in response to the authentication of the first client device of the first LAN;receive a menu selection from the first client device corresponding to a connection profile associated with a first type of connection;access a non-secure network using information associated with the selection;and establish a secure connection over the non-secure network between the first LAN and the secure VPN.
Independent claims3
105 paragraphs in 5 sections, as filed
Related Applications
The present application is also related to a concurrently filed non-provisional application by the applicants of the present application, which related application is entitled Flexible Automated Connection to Virtual Private Networks, has been granted application Ser. No. 09/911,061 (pending), and is assigned to the assignee of the present invention, and which related application is hereby incorporated by reference as if set forth in its entirety herein.
FIELD OF THE INVENTION
The present invention relates to data networks, and, more particularly, to automated access to data networks. Still more particularly, the present invention relates to flexible automated access to virtual private networks based on selectable access criteria.
BACKGROUND OF THE INVENTION
Recent years have witnessed a surge in popularity of the Internet. Access and increased use by home users, small businesses, large corporations, universities and government agencies continues to increase at a rapid rate.
Generally speaking, the Internet may be considered as the interconnection of a large number of local, regional or global networks interconnected using one of several global backbone communications routes, with access provided by Internet service providers (ISPs) or direct network-to-network connection (typically for large users). Access to ISP networks is typically accomplished using the well-known Internet Protocol (IP) through ISP points of presence (POPs) in many different locations around the country, thus permitting customers to have local dial-in access or a short leased-line access. After gaining access to an ISP users have access to the Internet, usually through a hierarchy of local access providers and other network service providers. Increasingly, access is available through a variety of broadband access technologies, such as “always-on” cable and DSL modems connected over CATV cable facilities or local telephone lines at data rates many times higher than dial-up telephone links.
Another aspect of evolving networking needs of corporate and other data communications users relates to the mobility of employees, customers and suppliers requiring access to headquarters or branch locations of an enterprise. Home office and temporary access to corporate networks, including access from hotels and offices of customers, suppliers and others is of increasing importance to many network users and operators.
Such widespread use and access, including temporary or mobile access, has raised concerns by many for the security of transmissions over the public links of the Internet. Large corporations with extensive networking needs have in many cases preferred private networks for their typically large volumes of data to many different locations. It has proven relatively easier to provide security measures for insuring the integrity and privacy of communications between stations or nodes in private networks using a variety of data checking and encryption technologies.
For example, secure private networks are typically protected by firewalls that separate the private network from a public network. Firewalls ordinarily provide some combination of packet filtering, circuit gateway, and application gateway technology, insulating the private network from unwanted communications with the public network.
Encryption in private networks is illustratively performed using an encryption algorithm using one or more encryption keys, with the value of the key determining how the data is encrypted and decrypted. So-called public-key encryption systems use a key pair for each communicating entity. The key pair consists of an encryption key and a decryption key. The two keys are formed such that it is not feasible to generate the decryption key from the encryption key. Further, in public-key cryptography, each entity makes its encryption key public, while keeping its decryption key secret. When sending a message to node A, for example, the transmitting entity uses the public key of node A to encrypt the message; the message can only be decrypted by node A using its private key. Many other encryption algorithms are described in the literature. See, for example B. Schneier, <i>Applied Cryptography—Protocols, Algorithms, and Source Code in C</i>, John Wiley and Sons, New York, 1994.
Information regarding encryption keys and the manner of using them to encrypt data for a particular secure communications session is referred to as key exchange material. Key exchange material illustratively includes keys to be used and a time duration for which each key is valid. Both end stations in an end-to-end path must know key exchange material before encrypted data can be exchanged in a secure communications session. The manner of making key exchange material known to communicating stations for a given secure communications session is referred to as session key establishment.
Many of the integrity and privacy safeguards long employed in private networks have not always been available in networks involving at least some public network links. Yet, smaller users and, increasingly, large users have sought techniques for safely employing public networks to meet all or part of their communications network needs. Among the techniques employed to provide varying degrees of approximation to security advantages available in private networks while employing public links are so-called virtual private networks or VPNs.
VPNs provide secure communications between network nodes by encapsulating and encrypting messages. Encapsulated messages are said to traverse a tunnel in a public network, and are encapsulated by a process of tunneling. Tunnels using encryption provide protected communications between users at network nodes separated by public network links, and may also be used to provide communications among a selected or authorized subset of users in a private network.
In a VPN, a tunnel endpoint is the point at which any encryption/decryption and encapsulation/de-encapsulation (sometimes called decapsulation) is provided in a tunneling process. In existing systems, tunnel end points are predetermined network layer addresses. The source network layer address in a received message is used to determine the credentials of an entity that requests establishment of a tunnel connection. For example, a tunnel server uses the source network layer address to determine whether a requested tunnel connection is authorized. The source network layer address is also used to determine a cryptographic key or keys to be used to decrypt received messages.
Existing tunneling processing is typically performed by encapsulating encrypted network layer packets (also referred to as frames) at the network layer. Such systems provide network layer within network layer encapsulation of encrypted messages. Tunnels in existing systems are typically between firewall nodes that have statically allocated IP addresses. In such existing systems, the statically allocated IP address of the firewall is the address of a tunnel end point within the firewall. Existing systems that connect local-area networks (LANs) fail to provide a tunnel that can perform authorization for a node that must dynamically allocate its network layer address. This is especially problematic for a user wishing to establish a tunnel in a mobile computing environment for which an ISP allocates a dynamic IP address.
U.S. Pat. No. 6,101,543 issued Aug. 8, 2000 to K. H. Alden, et al., discloses techniques seeking to establish a tunnel using a virtual or so-called pseudo network adapter. In particular, Alden, et al., seeks to have a pseudo network adapter appear to the communications protocol stack as a physical device for providing a virtual private network having a dynamically determined end point to support a user in a mobile computing environment. The pseudo network adapter disclosed in Alden, et al. seeks to receive packets from the communications protocol stack and pass received packets back through the protocol stack either to a user or for transmission.
An important IP layer security architecture and protocol for use in networking over IP networks such as the Internet is described in S. Kent and R. Atkinson, “Security Architecture for the Internet Protocol,” IETF Network Working Group Request for Comments 2401, November 1998. The so-called IPsec protocols and processes described in that IETF document have proven useful in a number of contexts.
Despite growing experience with connecting computers or local networks to other networks, including the Internet, many users experience difficulties in establishing reliable, secure connections under a variety of circumstances. Such difficulties arise, in part, because many configuration variables must be taken into account, such as whether the connection is for a single computer or for a local area network (LAN), whether a location is to be identified by a dynamic or static IP address, as well as the type of connection required. Thus, for example, a traveling employee may require access to a corporate headquarters network using a dial-up telephone line from a hotel, or a leased line connection from a supplier location. Many home or home office users will connect to the Internet through a dial-up line using an analog modem, while others will employ cable or DSL modem links. Each connection type and location may require specific configuration information that can be daunting to frequent travelers and can consume considerable time and effort even by those having considerable networking skills.
Other factors that must be dealt with in establishing connections from home, field office, hotel, and other mobile locations (such as wireless links from the field) relate to network address information to be employed for network, including Internet, access. An IP (Internet protocol) address represents a communications end point, but some network nodes, such as shared computer facilities at a company location may have many users per address or many addresses per user. A typical network node will be identified by a unique 32-bit IP address of the form 101.100.2.2. A router that directs information to various end hosts has an IP address such as “101.100.2.1”, where the last part will be a unique number identifying end hosts connected to the router. For example, for three hosts connected to such a router, these hosts may have IP addresses of 101.100.2.2, 101.100.2.3, and 101.100.2.4.
While occasional users may only require a temporary or dynamic address for each session, or transaction, with the same address being assigned to another user after the session or transaction is complete, many network nodes, such as those associated with a corporate host or network service provider require one or more permanent or static IP addresses. With a static IP address, authorized persons may direct traffic to or access information available at the static IP address at any time.
As will be readily perceived, there are many complexities and difficulties involved with connecting to and configuring a computer or LAN for communication through the Internet. Moreover, it will be appreciated that routers, including any at a customer location or at an ISP, must be configured correctly. At an ISP, a trained network operator is typically available for entering configuration information into a router, including the IP address of a customer, an account number, etc. Other configuration information that must be entered includes telephone numbers to dial, passwords, packet filter rules, LAN network information, domain name information, e-mail configuration, compression parameters and others.
Further, even when this is accomplished at an ISP, a customer must be made aware of this information, to permit manual entry of corresponding required information into networking equipment at a user location, e.g., to configure a router. For any but the simplest of connections, this process can prove tedious and error-prone. Further, a mobile user will be required to reconfigure his or her terminal or LAN for each new location, or access facility. It will be appreciated that connecting a LAN can be considerably more difficult than connecting a single computer node (host or client), as networked components may require specification of a variety of specific configuration parameters. Thus, parameters for network components, e.g, routers, firewalls, DNS servers and DHCP servers, and security mechanisms, must all be set correctly before the LAN can successfully communicate with the Internet.
As noted above, secure links present additional configuration and setup requirements, including, in appropriate cases, key exchange material and other tunnel configuration information. In prior work reported by some present inventors, a network adaptor and configuration procedure was employed that facilitates establishment of secure VPN tunnels, illustratively using an IPsec protocol, for a range of applications and uses. See, J. S. Denker, et al., “Moat: a Virtual Private Network Appliance and Services Platform,” <i>Proc. </i>1999 <i>LISA XIII</i>-Nov. 7-12, 1999, Seattle.
From the foregoing it will be appreciated that automation of the configuration and setup of network nodes, including IP LAN network nodes, seeking to securely communicate over IP networks, such as the Internet, is highly desirable. Such automated configuration and setup of computers and other network elements is especially desirable for mobile users. It is likewise desired that a flexible access system and configuration process be provided for configuring a computer system for communication over IP networks.
SUMMARY OF THE INVENTION
Limitations of the prior art are overcome and a technical advance is made in accordance with the present invention, illustrative embodiments of which are described below.
In accordance with aspects of one illustrative embodiment, a network interface unit is provided for use intermediate a LAN and a public or private network, or a combination of both, for establishing secure links to other nodes in a VPN. Upon connection and login with the network interface unit, addressing, authentication, and other configuration operations are applied in establishing tunnels to desired VPN destinations.
An illustrative network interface unit includes a Dynamic Host Configuration Protocol (DHCP) server, illustratively accessible using a web browser running on a client machine seeking access to VPN nodes. Encryption and encapsulation of data packets for communication with remote nodes or selected other nodes on a LAN to which the subject client machine is connected (collectively, tunnel end points) provides the required secure data transfer.
Configuration of a client machine for use with illustrative embodiments of the present inventive network interface unit is rapidly achieved by logging on to the network interface unit, e.g., employing a web browser, and specifying the nature of the connection desired, including, as needed, the nature of the access link (e.g., cable, dial-up, etc.), identification of a desired ISP and destination. Information stored on the network interface unit is then used to perform necessary login and other data access procedures over links to an ISP and through public and/or private network links to a desired VPN gateway or other access point, including required authentication exchanges, and any required encryption key exchanges.
Advantageously, illustrative embodiments of the present inventive network interface unit present a uniform graphical user interface (GUI) for pre-specifying desired types of connections, ISP information and target VPNs. Moreover, using other aspects of the GUI, a user's client machine is quickly and efficiently configured to establish the desired secure tunnel to the target VPN, with the user experiencing a uniform interface for a variety of access circumstances.
It proves advantageous in some illustrative embodiments to employ readily available components and streamlined storage and processing to effect the configuring and establishment of secure links. In some embodiments, some or all inventive network interface unit functions will be incorporated in a client machine (e.g., personal computer), or in a dial-up, cable, DSL or other modem, or in a LAN hub, switch, router or other network element connecting client machines to an ISP or otherwise connecting a client machine (directly or indirectly) to one or more public network links.
Aspects of the present inventive network interface unit and its use include methods for entering use and configuration information into an interface unit database, as well as extraction and application of configuration information to client machines and subsequent secure connection to desired VPNs.
BRIEF DESCRIPTION OF THE DRAWING
The above-summarized invention will be more fully understood upon consideration of the following detailed description and the attached drawing wherein:
<figref idrefs="DRAWINGS">FIG. 1</figref> shows an illustrative prior art network arrangement for establishing a link between an illustrative home office LAN and a corporate network.
<figref idrefs="DRAWINGS">FIG. 2</figref> shows an illustrative network arrangement for establishing a secure link between the illustrative home office LAN and corporate network of <figref idrefs="DRAWINGS">FIG. 1</figref> using prior VPN arrangements.
<figref idrefs="DRAWINGS">FIG. 3</figref> shows illustrative extensions to the network of <figref idrefs="DRAWINGS">FIG. 2</figref> in accordance with aspects of the present invention wherein a variety of access modes are served from a common network interface.
<figref idrefs="DRAWINGS">FIG. 4</figref> shows more detailed aspects of the organization of the network interface unit of <figref idrefs="DRAWINGS">FIG. 3</figref>.
<figref idrefs="DRAWINGS">FIG. 5</figref> shows illustrative content of a database or table structure for memory elements shown in the network interface unit of <figref idrefs="DRAWINGS">FIG. 4</figref>.
<figref idrefs="DRAWINGS">FIG. 6</figref> is a flowchart showing illustrative client configuration and link establishment employing the network interface unit of <figref idrefs="DRAWINGS">FIG. 4</figref>.
<figref idrefs="DRAWINGS">FIG. 7</figref> shows an illustrative login web page presented at a user computer using a web browser for accessing a network interface unit running a GUI server, this at a time when the user is seeking to establish a secure link to a VPN.
<figref idrefs="DRAWINGS">FIG. 8</figref> is a web page presented by a GUI server running at a network interface unit to a user after login to the network interface unit when a connection is to be specified.
<figref idrefs="DRAWINGS">FIG. 9</figref> is a web page presented by a GUI server running at a network interface unit to a user when a specified standard dial-up connection link is to be edited.
<figref idrefs="DRAWINGS">FIG. 10</figref> is a web page presented by a GUI server running at a network interface unit to a user when a customized dial-up connection link is selected at the screen of <figref idrefs="DRAWINGS">FIG. 8</figref>.
<figref idrefs="DRAWINGS">FIG. 11</figref> shows a main menu page presented by a GUI server running at a network interface unit at a time when a network connection may be selected or newly specified.
<figref idrefs="DRAWINGS">FIG. 12</figref> shows a screen that is presented by GUI server <b>450</b> upon selection of the DHCP option at the main menu of <figref idrefs="DRAWINGS">FIG. 8</figref>.
<figref idrefs="DRAWINGS">FIG. 13</figref> is a web page presented by a GUI server running at a network interface unit to a user for selecting a desired network service.
<figref idrefs="DRAWINGS">FIG. 14</figref> is a screen presented when a new connection is requested at main menu screen.
<figref idrefs="DRAWINGS">FIG. 15</figref> is a web page presented by a GUI server running at a network interface unit to a user when the user wishes to edit a dial-up connection previously specified.
<figref idrefs="DRAWINGS">FIG. 16</figref> is a web page presented by a GUI server running at a network interface unit to a user when the user wishes to edit a specified DHCP connection.
DETAILED DESCRIPTION
The following detailed description and accompanying drawing figures depict illustrative embodiments of the present invention. Those skilled in the art will discern alternative system and method embodiments within the spirit of the present invention, and within the scope of the attached claims, from consideration of the present inventive teachings.
<figref idrefs="DRAWINGS">FIG. 1</figref> shows an overall view of an illustrative LAN (e.g., home-office or telecommuter LAN) <b>101</b> as physically connected through the Internet to a corporate headquarters (or main, or other substantial secured network LAN node), <b>197</b>. LAN <b>197</b> is shown having a firewall <b>195</b> for receiving and appropriately filtering packets in accordance with a predetermined security plan. Security Portal <b>190</b> provides encryption and decryption services for received authorized packets, as well as encapsulation and de-encapsulation of received packets, as is well known in the art. Hosts <b>1</b> and <b>2</b> provide illustrative sources and sinks for information passing through firewall <b>195</b>.
Illustrative user LAN <b>101</b> is shown having an illustrative assortment of user client computers and other facilities <b>104</b>-<b>107</b> and <b>110</b>. MICROSOFT PC <b>104</b> represents a typical personal computer client running applications under one of the MICROSOFT WINDOWS operating system versions, while MAC computer <b>105</b> represents an illustrative APPLE computer client running applications under APPLE's proprietary operating system. Block <b>106</b> represents yet another client computer, this one running one of the many variants of the UNIX operating system, e.g., the LINUX operating system, and applications compatible with that environment. Peripherals, such as printer <b>107</b> and other clients are also shown connected to LAN <b>101</b>, as is well known in the art.
LAN <b>101</b> and illustrative clients connected thereto are shown connected through network interface unit <b>102</b> and, for the illustrative case of case of CATV (cable) access to the Internet, a cable modem <b>103</b>. (For illustrative context, another cable modem <b>120</b> serving a neighbor of the user at LAN <b>101</b> is included in <figref idrefs="DRAWINGS">FIG. 1</figref> as being connected on neighborhood cable <b>130</b> along with user's cable modem <b>103</b>.) Finally, representative Internet routers <b>140</b>, <b>150</b> and <b>180</b> are shown providing links through the Internet, though other network elements (not shown) may be included in the path from LAN <b>101</b> to LAN <b>197</b>.
By way of illustration a path from router <b>150</b> is shown to a World Wide Web host <b>160</b>, while block <b>170</b> represents illustrative ones of the many available Internet sites that may be accessible through (generally unprotected) links from LAN <b>101</b>. Finally, as representative of the many security threats to communications over the Internet and other public networks, <figref idrefs="DRAWINGS">FIG. 1</figref> shows a block <b>175</b> labeled threats. The latter category of public network perils includes, by way of example, monitoring nodes and agents seeking to extract information passing between users without authorization by such communicating users, as well as unauthorized access to nodes, such as LAN <b>101</b>. Inventive structure and operational features of network interface units <b>102</b> acting in cooperation with other elements of the illustrative LAN-to-LAN network provide apparatus and methods for foiling attempts by threats represented by block <b>175</b>. Such structures and operational features and methods will be described more fully in the sequel.
<figref idrefs="DRAWINGS">FIG. 2</figref> shows network interface unit <b>202</b> logically connected through a tunnel <b>215</b> in the Internet to security portal <b>290</b> corresponding to portal <b>190</b> in <figref idrefs="DRAWINGS">FIG. 1</figref>. Thus, in accordance with another aspect of the present invention firewall, encryption/decryption, encapsulation/de-encapsulation and other well-known VPN functions are performed through cooperation of interface network unit <b>202</b> and security portal <b>290</b>. Further, inventive structures and functions of network interface unit <b>202</b> provide additional, enhanced services and processes to serve clients at LAN <b>201</b> and other user locations, whether served by a fixed or temporary network address.
<figref idrefs="DRAWINGS">FIG. 3</figref> shows an elaboration of links from user LAN <b>301</b> to LAN <b>397</b> interconnecting hosts <b>398</b> and <b>399</b> through firewall <b>395</b> using the services of security portal <b>390</b>. In particular, access to the Internet through illustrative neighborhood cable <b>130</b> (and <b>230</b> in <figref idrefs="DRAWINGS">FIG. 2</figref>) is elaborated to show a number and variety of access links and methods, including (as before) cable modem <b>303</b> connected to the Internet via cable ISP <b>323</b>. However, the links from LAN <b>301</b> to Internet <b>350</b> in <figref idrefs="DRAWINGS">FIG. 3</figref> by way of network interface unit <b>302</b> are now shown to include wireless modem <b>311</b> (via wireless ISP <b>321</b>), dial-up modem <b>312</b> (via dial-up ISP <b>322</b>), DSL modem <b>314</b> (via DSL ISP <b>324</b>) and private line interface <b>315</b> (via private line <b>325</b>). As will be appreciated, each of these modems, interfaces, ISPs and (private) lines, and services provided through them, are characterized by certain addressing and operating parameters that require configuration to coordinate with operations of the ISPs, backbone Internet operations and destination node characteristics (e.g., those of LAN <b>397</b>).
Network interface unit <b>302</b> is advantageously adapted to provide necessary configuration and operating control of secure links from illustrative LAN <b>301</b> and user-selected destination nodes, such as LAN <b>397</b>. Of course, LAN <b>301</b> may not include all of the client operations shown in <figref idrefs="DRAWINGS">FIG. 3</figref>, or more than one LAN may be connected through network interface unit <b>302</b> to appropriately configure and control the secure operation of whatever clients require VPN services over the Internet (<b>350</b>) or other IP-based network including public-network links.
<figref idrefs="DRAWINGS">FIG. 4</figref> shows in more detail functions advantageously available at network interface unit <b>302</b>, which network interface unit and operation thereof will now be described in greater detail.
In overall organization, the network interface unit shown in <figref idrefs="DRAWINGS">FIG. 4</figref> includes a plurality of input ports <b>401</b>-<i>i</i>, i=1, 2, . . . , N transmitting and receiving data to/from respective client devices, such as those shown in <figref idrefs="DRAWINGS">FIGS. 1-3</figref>, having illustrative standard RJ-11 or RJ-45 connectors. Other particular connectors will be used as appropriate to user needs. Correspondingly, ports <b>421</b>-<i>j</i>, j=1, . . . , N1, <b>422</b>-<i>k</i>, k=1, 2, . . . , N2, and <b>423</b>-<i>l</i>, l=1, 2, . . . , N3, with each grouping of ports illustratively representing RJ-11, RJ-45, and one or another variety of personal computer serial ports, respectively. One representative additional port, USB port <b>424</b> is also shown in <figref idrefs="DRAWINGS">FIG. 4</figref>. Other particular connection arrangements and formats will be used as requirements may dictate.
Input unit <b>410</b> in <figref idrefs="DRAWINGS">FIG. 4</figref> multiplexes/demultiplexes (performs mux/demux operations on) data passing from/to client devices connected through ports <b>401</b>-<i>i</i>, to output unit <b>420</b>, which provides similar multiplexing/demultiplexing functions with respect to data passing through ports <b>421</b>-<i>j</i>, <b>422</b>-<i>k</i>, and <b>423</b>-<i>l </i>and USB port <b>424</b>. (Input unit <b>410</b> and output unit <b>420</b> are arbitrarily referred to as input or output units, though both units are bi-directional data handlers. It sometimes proves convenient to identify input unit <b>410</b> and its associated ports as client-side unit and ports, while referring to output unit <b>420</b> and its associated ports as wild-side unit and ports).
In addition to standard buffering operations to accommodate different or varying data rates, buffer-PAD unit <b>430</b> in <figref idrefs="DRAWINGS">FIG. 4</figref> performs encapsulation and de-encapsulation (decapsulation) of IP packets passing in each direction through IPsec tunnels in accordance with IETF RFC 2406. Also, buffer-PAD <b>430</b> performs NAT transformations in cooperation with NAT server <b>445</b>, including transformations on packets that are not routed through a tunnel for policy reasons. See, for example, WETF RFC 1631. Packets in either direction are susceptible of being dropped if they violate firewall rules.
Controller <b>440</b> in <figref idrefs="DRAWINGS">FIG. 4</figref> operates under program control, including, illustratively, the well-known Linux operating system and a variety of control programs (all stored in memory unit <b>475</b>) advantageously used in realizing, organizing and controlling operation of the several functional units of the network interface unit of <figref idrefs="DRAWINGS">FIG. 4</figref>. These functional units interact with users at client devices (through ports <b>401</b>-<i>i</i>) primarily during client setup and configuration, illustratively using imbedded GUI server <b>450</b>. More particularly, as will be described below in connection with <figref idrefs="DRAWINGS">FIGS. 7-16</figref>, users logging-in to establish connections over a VPN are presented with standard web page formats on client machines with which connection and destination information is readily specified or selected using web browser functionality on client computers. These web pages are provided by GUI server <b>450</b> running at the network interface unit of <figref idrefs="DRAWINGS">FIG. 4</figref>, which GUI server is of a well-known design in widespread use for a range of web server applications. Once configured, client computers (and other client devices) send and receive packets under the overall control of controller <b>440</b> acting in cooperation with the various (preferably software-implemented) functional units to be described further below.
In one aspect, controller <b>440</b> interacts with configuration server <b>470</b> to receive and store configuration information. Such configuration information is advantageously maintained and updated in memory <b>475</b>, and retrieved during configuration setup operations through memory controller <b>480</b> under the overall control of controller <b>440</b>. Memory <b>475</b> is advantageously organized into one or more separate memory elements. Flash memory <b>485</b> and bulk memory <b>490</b> are shown by way of illustration in <figref idrefs="DRAWINGS">FIG. 4</figref>, but any convenient, appropriately sized memory device may be used-as will be recognized by those skilled in the art. Because of the modest memory requirements of many implementations of the network interface unit of <figref idrefs="DRAWINGS">FIG. 4</figref>, it will advantageous to rely primarily on removable memory devices, such as flash memory unit <b>485</b> shown in <figref idrefs="DRAWINGS">FIG. 4</figref>.
Other functional elements served by memory <b>475</b> that operate under the overall direction of controller <b>440</b> include GUI server <b>450</b> for providing web pages to users at client terminals <b>401</b>-<i>i </i>having appropriate browser software and display functions (such as those available in personal computers, handheld computers, or cell-phones capable of running web browsers or mini-browsers). When employing standard personal computer web browsers, such as NETSCAPE web browsers or MICROSOFT web browsers, client machines merely interact, e.g., entering or selecting data associated with predefined web page fields, as is well known in the art. Examples of such interactions will be presented below.
When particular client devices on LAN <b>301</b> in <figref idrefs="DRAWINGS">FIG. 3</figref> are not capable of running a suitable GUI client application (such as a web browser) for interacting with GUI server <b>450</b>, it proves advantageous to have another device, such as a personal computer that is capable of executing a compatible GUI client application may act on behalf of the client device not having such GUI client application. While web browsers are described as suitable for interaction with GUI server <b>450</b>, other particular GUI servers and compatible clients will be used in particular contexts and applications of present inventive principles. In one preferred embodiment of the present invention, a single GUI-client-enabled client device on LAN <b>301</b> will login and authenticate with network interface unit <b>302</b> on behalf of all devices on the LAN for purposes of establishing appropriate tunnels to other locations on one or more VPNs. Thus, once access to network interface unit <b>302</b> is granted for a device (such as a personal computer) on a client LAN, such as <b>301</b> in <figref idrefs="DRAWINGS">FIG. 3</figref>, all devices on that LAN are advantageously configured.
By way of illustration of the use of cell phone-based mini-browser interaction with GUI server <b>415</b>, an ERICSSON model R280LX cell phone (with add-on data port, including a wireless modem, represented <figref idrefs="DRAWINGS">FIG. 3</figref> by wireless mode <b>311</b>) will illustratively employ one of several micro-browser cards to display and receive information useful in specifying and selecting communications access and destination information while connected to the network interface unit of <figref idrefs="DRAWINGS">FIG. 4</figref>. User text input (and user-defined soft keys available as a feature of the illustrative ERICSSON cell phone) will likewise be used to direct setup and operation of secure data communications from a data source connected through a cell-phone data port. In other client machines graphical styli, touch-sensitive screens and other user inputs will be used, as appropriate to particular circumstances.
Other control functionality and browser/GUI-server interaction in executing particular user-level applications will be readily implemented using any of a variety of scripts and applets, e.g., coded in the well-known JAVA language and running at cell phones (and other wireless clients) in coordination with GUI server <b>450</b>. A variety of application tools are available, e.g., those from Sun Microsystems in support of JAVA applications generally, and, more particularly, for wireless applications using Sun's JAVA 2 Micro Edition (J2ME). Further application development support is available from companies such as LUTRIS TECHNOLOGIES, which offers its ENHYDRA XML- and JAVA-based server (including LUTRIS' i-mode microbrowser) and other tools in support of wireless applications. LUTRIS also offers tools promoting use of J2ME to create applications for MOTOROLA iDEN and other handsets. See, for example, WWW-based materials that were available from LUTRIS at the time of filing this application.
IPsec server <b>460</b> cooperates with controller <b>440</b> to apply desired encryption/decryption and encapsulation/de-encapsulation operations required by user or VPN system controls. Appropriate communications parameter values are provided to IPsec server <b>460</b> for communications between particular user clients and particular network (ISP, destination host, and other) elements during configuration setup. Encryption keys and other key exchange material is likewise provided as part of configuration setup. While various implementations of IPsec (IP security) software are available, one software implementation appropriate for the Linux environment is the so-called FreeS/WAN implementation available as a WWW-based download at the time of filing this application. While this package advantageously runs under the LINUX operating system illustratively employed by the network interface unit of <figref idrefs="DRAWINGS">FIG. 4</figref>, other IPsec implementations are available for use in a variety of contexts and environments.
IPsec uses strong cryptography to provide both authentication and encryption services. Authentication ensures that packets are from the right sender and have not been altered in transit, while encryption prevents unauthorized reading of packet contents. These services provided by IPsec support the desired secure tunnels through untrusted (non-secure) networks, thereby forming the desired VPN link. As note above, all data passing through the untrusted net is encrypted by one IPsec-enabled network node and decrypted by another IPsec-enabled node at the other end of the link. In the examples of <figref idrefs="DRAWINGS">FIGS. 3 and 4</figref>, the illustrative network interface unit of <figref idrefs="DRAWINGS">FIG. 4</figref> (<b>302</b> in <figref idrefs="DRAWINGS">FIG. 3</figref>) provides IPsec processing, while complementary IPsec processing is performed at security portal <b>390</b> in <figref idrefs="DRAWINGS">FIG. 3</figref>.
NAT server <b>445</b> shown in <figref idrefs="DRAWINGS">FIG. 4</figref> cooperates with controller <b>440</b> to optionally provide network address translation to packets received on client-side input unit <b>410</b> for the case of packets being sent to parts of the Internet not included in a private LAN such as LAN <b>397</b> in <figref idrefs="DRAWINGS">FIG. 3</figref>. Such packets are effectively masqueraded as coming from an address belonging to wild-side output unit <b>420</b>, a technique known as split-tunneling that is well known in the art. NAT server <b>445</b> also applies inverse operations to augment packets received from unit <b>420</b> to permit reception by the proper client device, all as is well known in IP networking. Use of NAT server <b>445</b> is advantageously a configuration option; a system administrator may elect instead to have a private LAN, such as <b>397</b> in <figref idrefs="DRAWINGS">FIG. 3</figref>, handle outside traffic, e.g., through firewall <b>395</b>.
DNS server <b>415</b> provides network address resolution for destinations specified in other formats, and substitutes for access to network-based DNS servers commonly used for non-secure networking applications. Thus, by constraining client access to only authorized destinations (as specified in the DNS server) a further measure of security is assured. Of course, the authorized destinations are those that have previously been authorized by respective VPN operators, as augmented by user specification within limits set by the network operators. While DNS server <b>415</b> stores address resolution information in tables or other convenient form in memory <b>475</b>, it advantageously forwards requests for entries not stored locally to a trusted server on the VPN, thus providing security against so-called DNS spoofing.
Dynamic Host Configuration Protocol (DHCP) server <b>457</b> in <figref idrefs="DRAWINGS">FIG. 4</figref> provides a temporary or dynamic host network address (in the context of <figref idrefs="DRAWINGS">FIGS. 3 and 4</figref>, a client network address in the sense of being an address for a client device, such as a personal computer on LAN <b>301</b> in <figref idrefs="DRAWINGS">FIG. 3</figref>). DHCP, defined in IETF RFC2131 and RFC2132, and widely described, e.g., in N. Alcott, <i>DHCP for Windows </i>2000, O'Reilly, Sebastopol, Calif., 2001, permits reuse of IP addresses when a client no longer needs the address. DHCP server <b>457</b> in <figref idrefs="DRAWINGS">FIG. 4</figref> accesses a database of available IP addresses and related configuration information (conveniently stored in memory <b>475</b>) and responds to requests from a client on illustrative LAN <b>301</b> for a temporary network address. A pool of network addresses is advantageously assigned to a VPN, and an authorized subset of such assigned addresses is pre-stored in memory <b>475</b> for use by a particular network adapter in the absence of any external network connection. Thus, a network adapter of the form shown in <figref idrefs="DRAWINGS">FIG. 4</figref> need not resort to an external DHCP server to commence operation.
Having DNS and DHCP servers <b>435</b> and <b>457</b> operate without recourse to hosts such as <b>398</b> and <b>399</b> (at the destination end of an IPsec tunnel) in <figref idrefs="DRAWINGS">FIG. 3</figref> in providing respective destination and client addresses permits local or otherwise limited network operation, even when WAN links to other network resources are not available.
PPP client <b>458</b> provides connection facilities similar to those provided by DHCP client <b>415</b>, but does so for point-to-point protocol connections. That is, IP addresses are allocated on an as-needed basis and are commonly applied to short-term connections, such as dial-up access to ISPs, and to some more permanent connections—such as ADSL connections.
<figref idrefs="DRAWINGS">FIG. 5</figref> provides a partial map of illustrative contents of memory <b>475</b> for the network adapter unit of <figref idrefs="DRAWINGS">FIG. 4</figref>. In many applications, especially those where size of the network interface unit is important, it proves convenient to employ flash memory elements <b>485</b> (or other detachable memory elements) for all of the memory needs of the network interface unit. In any event, <figref idrefs="DRAWINGS">FIG. 5</figref> shows, in a first memory portion, data components specifying device type and identification information for client devices, e.g., personal computers, etc. Such information will describe relevant aspects of the client device including, as appropriate, network interface card (NIC) information for the client devices. It proves convenient to also include, as needed, translated address information assigned to devices by NAT server <b>445</b> in this portion of memory <b>475</b>.
A second portion of the memory map of <figref idrefs="DRAWINGS">FIG. 5</figref> provides IP configuration information for each of the client devices, including assigned (permanent or temporary) IP addresses. Login, password, telephone number and other information needed for dial-up connections is also included in memory <b>475</b> as shown by the corresponding memory map entry in <figref idrefs="DRAWINGS">FIG. 5</figref>. Encryption keys, other key materials, as well as authentication and other security information employed in operation of IPsec server <b>460</b> is conveniently stored in the portion of memory map labeled tunnel id.
GUI server web pages for display (via a web browsers executing at client computers) and data input by users at clients are stored in yet another portion of memory <b>475</b>, as further reflected in the memory map of <figref idrefs="DRAWINGS">FIG. 5</figref>. GUI information, including any needed display element characteristics for each enrolled device type is provided in the portion of memory <b>475</b> mapped as GUI info in <figref idrefs="DRAWINGS">FIG. 5</figref>. Also shown in the memory map of <figref idrefs="DRAWINGS">FIG. 5</figref> is a portion labeled DNS information representing information used by DNS server <b>435</b> in effecting needed address translations. DHCP address information available for use by clients is stored in another illustrative memory portion shown in <figref idrefs="DRAWINGS">FIG. 5</figref>, as is PPP information.
Illustrative Operation
<figref idrefs="DRAWINGS">FIG. 6</figref> is a flowchart showing illustrative operations and method steps in performing configuration and connection of client devices, such as those shown by way of illustration in <figref idrefs="DRAWINGS">FIG. 3</figref>. <figref idrefs="DRAWINGS">FIGS. 7-16</figref> show illustrative web pages provided by GUI server <b>450</b> for use in setup and configuration of network clients in accordance with illustrative embodiments of the present invention.
In <figref idrefs="DRAWINGS">FIG. 6</figref>, starting at <b>600</b>, a scan is made (repetitively) to test for the presence of clients on client-side inputs <b>401</b>-<i>i</i>; a test for client activity is then made at <b>610</b>. If no client is actively connected to a client-side input, or if a previously active client becomes inactive (is effectively not present), all active links (or, when a previously active client becomes inactive, the previously active link) are taken down, as represented by <b>615</b> in <figref idrefs="DRAWINGS">FIG. 6</figref>.
If a client is found to be present at a client-side input by the test at <b>610</b>, a test is made at <b>620</b> to determine whether the client is a new client. (In the following discussion, other on-going links will be ignored to simplify description of steps for a newly arrived client.) When a new client (or newly arrived or returned client) is detected at <b>620</b>, a login/authentication process is performed by which a user at a client is determined to be a person authorized to gain access to a VPN using an embodiment of the present invention. As noted above, some embodiments of the present invention provide that a single authorization for access will grant access to all client devices on the LAN, so a presence on the LAN will give rise to configuration and access to VPN facilities.
Specifically, a user is presented with a login web page such as that shown in <figref idrefs="DRAWINGS">FIG. 7</figref> (or, in some embodiments, with an alternative text or graphical login screen presentation). Previously agreed on User ID and password information will be authenticated after selection of the log in button at a client presenting a web screen such as that in <figref idrefs="DRAWINGS">FIG. 7</figref>.
Successful login using the web page of <figref idrefs="DRAWINGS">FIG. 7</figref> advantageously causes the presentation of a main menu web page, illustratively of the form of the web page shown in <figref idrefs="DRAWINGS">FIG. 8</figref>. In <figref idrefs="DRAWINGS">FIG. 8</figref>, a menu including a list of available ISP (or other destination) selections is presented at the left, with scrolling available when the list exceeds the nominal list window size. Such menu entries will include ISPs to which users at clients on LAN <b>301</b> subscribe. Upon selection of a list entry, connection information associated with the selection conveniently appears to the right of the list window, in the area denominated NAME OF CONNECTION. Such connection information need not be a network address, but will be an appropriate logical specification of a connection sought to be made. In some cases, a name of an ISP will be appropriate to identify configuration information associated with the desired connection. Selecting the CONNECT screen button then effects the connection to the indicated ISP or other destination.
When a connection to a destination not specified in the menu of the main menu web page of <figref idrefs="DRAWINGS">FIG. 8</figref> is desired, provision is made in the web page of <figref idrefs="DRAWINGS">FIG. 8</figref> to select links to another web page associated with connections in any of the illustrative categories of connections shown in <figref idrefs="DRAWINGS">FIG. 8</figref> below the NAME OF CONNECTION field on that page. Specifically, Standard Dial-Up, Customized Dial-Up, Fixed IP address Network, DHCP Network and PPPoE Network connections are shown as available. In other contexts or applications of the present inventive teachings, other particular types of connections will, of course, be available for selection. Selection of one of the illustrative connection-type links in <figref idrefs="DRAWINGS">FIG. 8</figref> causes a follow-up web page to be sent to the selecting client from GUI server <b>450</b> in <figref idrefs="DRAWINGS">FIG. 4</figref>. These and other web pages will be discussed below in connection with <figref idrefs="DRAWINGS">FIGS. 9-16</figref>.
Returning to <figref idrefs="DRAWINGS">FIG. 6</figref>, block <b>625</b> corresponds to selections made at the main menu page of <figref idrefs="DRAWINGS">FIG. 8</figref> or other pages to be discussed below, as appropriate. The test at block <b>630</b> in <figref idrefs="DRAWINGS">FIG. 6</figref> corresponds to the selection by a user of the create a new connection link from the main menu of <figref idrefs="DRAWINGS">FIG. 8</figref>.
<figref idrefs="DRAWINGS">FIG. 9</figref> is a web page provided by GUI server <b>450</b> when the STANDARD DIAL-UP link is selected at the web page of <figref idrefs="DRAWINGS">FIG. 8</figref> (for the case that the desired connection is not listed in the menu at the left in <figref idrefs="DRAWINGS">FIG. 8</figref>). In <figref idrefs="DRAWINGS">FIG. 9</figref>, provision is made for a user at a client to enter a dial-up connection in the name of connection field, and to enter appropriate user id and password inputs to be used. Other information, such as phone number to dial, and options to add special characters (such as 9 for an outside line, or (*70 to disable call waiting) are likewise entered as needed. Of course, all information after the name of connection can be predicted in many cases by storing prior sessions associated with the connection name and retrieving appropriate parts of the prior session information to complete the form of <figref idrefs="DRAWINGS">FIG. 9</figref>. In any event, provision is made to edit presumed field information by selecting the edit button when incomplete or erroneous information is presently displayed. Editing screens will be described below.
Selection of the connect button in the screen of <figref idrefs="DRAWINGS">FIG. 9</figref> will cause a connection to be attempted based on the entered or accepted information presented on that screen. Other choices that are offered to a user at a client on LAN <b>301</b> by the network interface unit <b>302</b>, via its GUI server <b>450</b> include copying currently displayed information for use in another connection (perhaps after editing in the web page for such new connection) and deleting currently displayed connection information. Further, most screens presented by way of example in the present description include status, disconnect, view syslog and close buttons to select the respective well-known operations and displays.
<figref idrefs="DRAWINGS">FIG. 10</figref> is a web page that is illustratively displayed upon selecting the CUSTOMIZED DIAL-UP link from the main menu of <figref idrefs="DRAWINGS">FIG. 8</figref> when the menu at the left of <figref idrefs="DRAWINGS">FIG. 8</figref> fails to display a desired connection. Thus, in <figref idrefs="DRAWINGS">FIG. 10</figref>, as in <figref idrefs="DRAWINGS">FIG. 9</figref>, a name of connection field is completed and the remaining fields filled in (either manually or by recognition of presumed information associated with the name of connection information) before selecting connect. Customized modem dial settings are employed when a more complex digit or character string is needed to appropriately control a dial-up modem session.
<figref idrefs="DRAWINGS">FIG. 11</figref> is a web page that is illustratively displayed upon selecting the FIXED-IP NETWORK link from the main menu of <figref idrefs="DRAWINGS">FIG. 8</figref> when the menu at the left of <figref idrefs="DRAWINGS">FIG. 8</figref> fails to display a desired connection having a fixed IP address. As with the web pages of <figref idrefs="DRAWINGS">FIGS. 9 and 10</figref>, a name of a network connection is filled in and the other indicated information (ip_address, mask_address, and gateway) retrieved from a prior session or filled in by at the client device on LAN <b>301</b>. Selecting the connect button again initiates the connection to the indicated address.
<figref idrefs="DRAWINGS">FIG. 12</figref> is a web page that is illustratively displayed upon selecting the DHCP NETWORKS link from the main menu of <figref idrefs="DRAWINGS">FIG. 8</figref> when the menu at the left of <figref idrefs="DRAWINGS">FIG. 8</figref> fails to display a desired connection having a known temporary IP address. <figref idrefs="DRAWINGS">FIG. 12</figref> shows a screen that is presented by GUI server <b>450</b> upon selection of the DHCP option at the main menu of <figref idrefs="DRAWINGS">FIG. 8</figref>. This screen allows the insertion of a string used to identify DHCP client <b>415</b> in the network interface unit of <figref idrefs="DRAWINGS">FIG. 4</figref> to a network-based DHCP server when a network connection (such as a connection on a cable network) having a DHCP server to assign IP addresses. Thus, when a user inserts a network ID associated with the network interface unit in the Client: {Client Name} field and selects connect, the network-based DHCP server returns a packet (often called an offer packet) with at least one offered IP address. The network interface unit DHCP client <b>415</b> then accepts an address from the offer packet and notifies the network-based DHCP server of the selection so that the IP connection is fully defined. The IP address thus accepted is conveniently maintained at the network interface unit; this is a wild side IP address by which the network interface unit will be known on the Internet or other external network. In a complementary manner, IP addresses are assigned to network interface unit <b>302</b> (illustratively from a pool of reserved address) by a network administrator during a static setup of unit <b>302</b> will be used by DHCP server <b>457</b> to identify clients on the client side of network interface unit <b>302</b>.
While not shown expressly in the attached drawing, PPPoE connections are configured and setup in substantially the same manner as dial-up connections (with login id and password, but without a dialstring). Further, while not noted specifically for the web pages of <figref idrefs="DRAWINGS">FIGS. 9-12</figref>, each of those web pages (as well as others associated with connection-type-specifying links that will be included on a web page such as that shown in <figref idrefs="DRAWINGS">FIG. 8</figref>) will advantageously have a menu of connections from which the name of the connection can be selected. That is, the menus of <figref idrefs="DRAWINGS">FIGS. 9-12</figref> will in appropriate cases include available connections of the type (standard dial-up, etc.) associated with the respective web pages, rather than connections of all types as may be the case for the menu of <figref idrefs="DRAWINGS">FIG. 8</figref>.
<figref idrefs="DRAWINGS">FIG. 13</figref> is a web page displayed after a connection has been established for selecting an identified service destination from among those illustratively appearing in the menu at the left of the web page. It proves convenient to display the URL of a selected destination, as well as account and password information, which will advantageously be stored in a memory such as <b>480</b> in <figref idrefs="DRAWINGS">FIG. 4</figref> for use on future attempts to access the particular service. When the information is filled in the manner indicated, a connection to the application is then sought by selecting the login button on the screen of <figref idrefs="DRAWINGS">FIG. 13</figref>. Different particular connection profiles (for particular fixed-IP, dial-up, etc.) will, of course, display particular information fields appropriate to the service or application. Thus, mail service will have one set of displayed information fields, but other services (such as one of the illustrative VCS services shown in <figref idrefs="DRAWINGS">FIG. 13</figref>) will employ other particular fields.
When a desired link is not indicated in the list on the main menu of <figref idrefs="DRAWINGS">FIG. 8</figref>, or is known not to be available as a selection in one of the subordinate menus (such as the types shown in <figref idrefs="DRAWINGS">FIGS. 9-12</figref>) it proves advantageous to permit the specification of a new connection by selecting the hypertext link create a new connection in <figref idrefs="DRAWINGS">FIG. 8</figref>. In one illustrative context, selection of the create a new connection link gives rise to the display of a new connection form, illustratively having a layout shown in <figref idrefs="DRAWINGS">FIG. 14</figref>. User input specified in block <b>635</b> in <figref idrefs="DRAWINGS">FIG. 6</figref> is conveniently accomplished using the form of <figref idrefs="DRAWINGS">FIG. 14</figref>. Specifically, in the form of <figref idrefs="DRAWINGS">FIG. 14</figref>, a name is assigned to the desired connection, and the connection type is selected, illustratively as one of two (or more) radio buttons such as the dial-up connection and network connection radio buttons shown in <figref idrefs="DRAWINGS">FIG. 14</figref>.
Additional information required in specifying a new connection will, of course, depend on the nature of the connection. The form of <figref idrefs="DRAWINGS">FIG. 14</figref> provides for entry of information commonly associated a selected connection type (dial-up or network). When a dial-up connection has been selected at Step <b>2</b>, login information (User ID and password) for the dial-up connection is conveniently specified, as is a further selection (by a respective one of the radio buttons) between a standard dial-up connection or a dial-up connection using a customized modem dialing string. When the latter alternative is selected, the appropriate dialing string is also entered in the indicated space. When a standard dial-up connection is selected, then the (PSTN or other) phone number is entered, along with additional optional information, such as an 8 or 9 typically used to select an outside line at a hotel or some office spaces, and a code to disable call waiting, if applicable. Selecting the Save button causes the entered configuration information to be entered in associated portion of memory <b>475</b>.
<figref idrefs="DRAWINGS">FIG. 15</figref> is an example of an edit page presented by GUI server <b>450</b> when an Edit button is selected in another (dial-up) screen. In that page, the configuration information for an identified dial-up connection is modified by entering additional or alternative information, and the new configuration can be used to replace an existing one or saved as a specified other connection. <figref idrefs="DRAWINGS">FIG. 16</figref> provides an editing form for network connections similar in purpose to the edit form of <figref idrefs="DRAWINGS">FIG. 15</figref> used for dial-up connections. User inputs using the web page forms of <figref idrefs="DRAWINGS">FIGS. 15 and 16</figref> correspond to user input block <b>645</b> in <figref idrefs="DRAWINGS">FIG. 6</figref> after a test for editing of a pre-existing configuration.
Again returning to <figref idrefs="DRAWINGS">FIG. 6</figref>, following all editing of configuration information using the operations at blocks <b>640</b> and <b>645</b>, all available configuration information for a current link from a requesting client is retrieved at block <b>650</b> and tested for completeness at block <b>655</b> for the need for information derived by DHCP server <b>457</b>; if such a need exists, access to DHCP server (as indicated by block <b>660</b>) is effected. A similar test is made at block <b>665</b> for needed DNS information and recourse is had to DNS server <b>435</b> (block <b>670</b>) as appropriate. Another test is illustratively made for the completeness of key materials and other IPsec information and, if any such configuration and operational information needed for IP services, recourse is had to IPsec server <b>460</b>, as indicated by block <b>680</b>, labeled simply get key materials. Other tests for completeness of configuration information will also be performed when needed, as indicated by the test at <b>685</b> (with the get other configuration information block <b>690</b>) and the ellipsis between blocks <b>675</b> and <b>685</b>.
Finally, when configuration information has been found to be complete, at block <b>685</b> the secure link (tunnel) is created and communications proceeds over the link until a termination of the session for any reason.
From the foregoing, it will be seen that illustrative embodiments of the present invention provide flexible access to VPN tunnels with reduced complexity relating to configuration of client devices and secure network links. As will be appreciated, substantially all of the required configuration information, as well as operating system and interface unit software functions is conveniently stored in network interface unit memory <b>475</b>. Further, this memory may assume the form of a flash card or other readily removable memory device for additional network security.
The present invention has been described in the context of, and provides operational advantages for one or more LANs, each supporting a plurality of personal computers and other devices. Thus, for example, a traveling business person will efficiently and simply access a corporate headquarters LAN over the Internet by connecting through a network interface unit supporting a variety of client devices including one a laptop computer, web-enabled cell phone, personal digital assistant and a variety of peripheral devices. Such connections will be made from corporate branch offices, customer offices, supplier offices, hotel rooms and, via wireless links, from virtually anywhere. Such connections will be available over dial-up, cable, DSL, private line, wireless and other types of links, the configuration information for which will be automatically derived using present inventive teachings.
While illustrative embodiments of the present invention have been described in terms of a variety of servers, e.g., IPsec server, DHCP server, and the like, it will be understood that such servers represent functions advantageously performed in many cases by a processor operating under the control of stored programs and data in a network interface unit. In some embodiments it may prove useful to have a dedicated processor to one or a group of such servers or other functions, but in general controller <b>440</b> will be realized using a general purpose processor, which processor will be shared in carrying out the functions of the various servers, clients and other elements of illustrative network interface unit embodiments. It will prove convenient in many cases to have all required programs, including an operating system, such as the illustrative Linux operating system and the programs for performing functions of the described elements on a single removable memory unit, such as the above-mentioned flash memory card <b>485</b>.
While the present invention has been described in terms of illustrative network interface unit embodiments having a separate physical identity from client devices, such as personal computers, some embodiments will assume the form of an add-on device, such as a peripheral card or pc card, or such network interface unit may be built into a desktop, laptop, handheld or other computer, or may be similarly built into a personal communicator, cell phone or personal digital assistant. In appropriate cases, LAN hubs, switches or network bridges can be combined and used with the inventive network interface unit described herein to reduce the proliferation of interconnecting devices that are required to replicate in-office functionalities.
Configuration data for particular connections will illustratively include two types: (1) files in a network interface unit file system that are specific to each service application, e.g., tunnel configuration information, is advantageously stored in formats and file structures associated with security applications running on the network interface device, such as the above-cited Freeswan security software. DHCP server and DNS will illustratively be of this type. Connection profiles, on the other hand, are advantageously stored in a single flat file, illustratively of the following type
<tables id="TABLE-US-00001" num="00001"><table frame="none" colsep="0" rowsep="0"><tgroup align="left" colsep="0" rowsep="0" cols="3"><colspec colname="offset" colwidth="35pt" align="left" /><colspec colname="1" colwidth="56pt" align="left" /><colspec colname="2" colwidth="126pt" align="left" /><thead><row><entry /><entry namest="offset" nameend="2" align="center" rowsep="1" /></row></thead><tbody valign="top"><row><entry /><entry>T</entry><entry>tom@worldnet (fp)</entry></row><row><entry /><entry>t</entry><entry>dial</entry></row><row><entry /><entry>i</entry><entry>987654321@worldnet.att.net</entry></row><row><entry /><entry>w</entry><entry>c*m!cb@@KSw3arword!</entry></row><row><entry /><entry>n</entry><entry>5551212</entry></row><row><entry /><entry>p</entry><entry>9</entry></row><row><entry /><entry>.</entry></row><row><entry /><entry>T</entry><entry>Anonymous DHCP</entry></row><row><entry /><entry>t</entry><entry>network</entry></row><row><entry /><entry>.</entry></row><row><entry /><entry>T</entry><entry>@home DHCP</entry></row><row><entry /><entry>t</entry><entry>network</entry></row><row><entry /><entry>c</entry><entry>ZZ-123456X</entry></row><row><entry /><entry>.</entry></row><row><entry /><entry namest="offset" nameend="2" align="center" rowsep="1" /></row></tbody></tgroup></table></tables>
In this illustrative arrangement, each profile begins with a T line that contains the profile name. The end of the profile is a line consisting of a single dot (period). Intermediate lines include a tag and related information. These profile lines are advantageously interpreted by scripts behind associated with GUI server <b>450</b> as instructions describing how to create configuration files of the first kind. For example, if @home DHCP is selected, the script illustratively writes ZZ-123456X to DHCP client configuration file as the client id, and launches the DHCP client application <b>415</b>.
The user environment is advantageously set up as a LAN thus accommodating a large range of clients types, and a large range of Internet connection types—all with a minimum amount of user effort. At one end of the client device spectrum are printers, typically having fairly limited configuration possibilities, and which configurations are not easily changed after once being configured. The other end of the device spectrum includes personal computers and other flexible, programmable devices; these can be configured in myriad different ways, but present a user with a high level of configuration complexity. In each case connection to an Ethernet LAN with easily realized configuration and operating features in accordance with present inventive features proves highly attractive.
On the (typically public) network side of the above-described network interface unit (wild side), present inventive teachings present a uniform mechanism for a user to configure a wide variety of connection types, the details of which are not apparent to the client machines. For example, a user may have a preferred broadband service provider, but if broadband service is temporarily unavailable, a dial-up connection can be used in its place, and the client machines will see little effect (other than reduced speed).
It proves advantageous in accordance with embodiments of the present invention to store connection profile information in an encrypted file system that is unlocked by successful authentication of a user. So if a (highly portable network interface unit in accordance with embodiments of the present is lost, stored information is protected from unauthorized use.
Contents5
16 sheets
Sheet 1 Sheet 2 Sheet 3 Sheet 4 Sheet 5 Sheet 6 Sheet 7 Sheet 8 Sheet 9 Sheet 10 Sheet 11 Sheet 12 Sheet 13 Sheet 14 Sheet 15 Sheet 16
Every citation, both waysCites: the store holds 77 of 78
| Document | Relation | Office | Cited during |
|---|---|---|---|
| US10868715B2 | Cited by | United States of America | Applicant |
| US8572172B2 | Cited by | United States of America | Search report |
| US8443090B2 | Cited by | United States of America | Applicant |
| US9521037B2 | Cited by | United States of America | Applicant |
| US12432110B2 | Cited by | United States of America | Applicant |
| US2009193103A1 | Cited by | United States of America | Pre-grant |
| US8578003B2 | Cited by | United States of America | Applicant |
| WO2012114271A3 | Cited by | World Intellectual Property Organization (WIPO) | International search |
| US8844020B2 | Cited by | United States of America | Applicant |
| US8458786B1 | Cited by | United States of America | Search report |
| US8054804B2 | Cited by | United States of America | Search report |
| US11831496B2 | Cited by | United States of America | Applicant |
| US9756018B2 | Cited by | United States of America | Applicant |
| WO2012114271A2 | Cited by | World Intellectual Property Organization (WIPO) | International search |
| US10951586B2 | Cited by | United States of America | Applicant |
| US9524167B1 | Cited by | United States of America | Search report |
| US10630730B2 | Cited by | United States of America | Applicant |
| US10728089B2 | Cited by | United States of America | Applicant |
| US9137209B1 | Cited by | United States of America | Applicant |
| US11290320B2 | Cited by | United States of America | Applicant |
| US9374341B2 | Cited by | United States of America | Applicant |
| US2001034709A1 | Cites | United States of America | Applicant |
| US2001034758A1 | Cites | United States of America | Applicant |
| US2001037205A1 | Cites | United States of America | Applicant |
| US2001047387A1 | Cites | United States of America | Applicant |
| US2001054004A1 | Cites | United States of America | Applicant |
| US2001056389A1 | Cites | United States of America | Applicant |
| US2002010679A1 | Cites | United States of America | Applicant |
| US2002023004A1 | Cites | United States of America | Applicant |
| US2002055989A1 | Cites | United States of America | Applicant |
| US2002064149A1 | Cites | United States of America | Applicant |
| US2002065941A1 | Cites | United States of America | Applicant |
| US2002069096A1 | Cites | United States of America | Applicant |
| US2002069278A1 | Cites | United States of America | Applicant |
| US2002077993A1 | Cites | United States of America | Applicant |
| US2002095568A1 | Cites | United States of America | Applicant |
| US2002112162A1 | Cites | United States of America | Applicant |
| US2002129271A1 | Cites | United States of America | Applicant |
| US2002133722A1 | Cites | United States of America | Search report |
| US2002144144A1 | Cites | United States of America | Search report |
| US2002159463A1 | Cites | United States of America | Applicant |
| US2002169980A1 | Cites | United States of America | Applicant |
| US2003004859A1 | Cites | United States of America | Search report |
| US2003005115A1 | Cites | United States of America | Search report |
| US2003055652A1 | Cites | United States of America | Search report |
| US2003217288A1 | Cites | United States of America | Applicant |
| US2004107286A1 | Cites | United States of America | Applicant |
| US2005022183A1 | Cites | United States of America | Applicant |
| US5420926A | Cites | United States of America | Applicant |
| US5636139A | Cites | United States of America | Applicant |
| US5671279A | Cites | United States of America | Applicant |
| US5812670A | Cites | United States of America | Applicant |
| US5884270A | Cites | United States of America | Applicant |
| US5889863A | Cites | United States of America | Applicant |
| US5961593A | Cites | United States of America | Applicant |
| US6012088A | Cites | United States of America | Applicant |
| US6016318A | Cites | United States of America | Applicant |
| US6016504A | Cites | United States of America | Applicant |
| US6023510A | Cites | United States of America | Applicant |
| US6032118A | Cites | United States of America | Applicant |
| US6055236A | Cites | United States of America | Applicant |
| US6055518A | Cites | United States of America | Applicant |
| US6055575A | Cites | United States of America | Applicant |
| US6061789A | Cites | United States of America | Applicant |
| US6061796A | Cites | United States of America | Applicant |
| US6067568A | Cites | United States of America | Applicant |
| US6076078A | Cites | United States of America | Applicant |
| US6078586A | Cites | United States of America | Applicant |
| US6079020A | Cites | United States of America | Search report |
| US6081900A | Cites | United States of America | Search report |
| US6092198A | Cites | United States of America | Applicant |
| US6101543A | Cites | United States of America | Applicant |
| US6119234A | Cites | United States of America | Applicant |
| US6173399B1 | Cites | United States of America | Applicant |
| US6195705B1 | Cites | United States of America | Applicant |
| US6295556B1 | Cites | United States of America | Applicant |
| US6324525B1 | Cites | United States of America | Applicant |
| US6445920B1 | Cites | United States of America | Applicant |
| US6460072B1 | Cites | United States of America | Applicant |
| US6577642B1 | Cites | United States of America | Search report |
| US6606744B1 | Cites | United States of America | Applicant |
| US6636898B1 | Cites | United States of America | Applicant |
| US6640302B1 | Cites | United States of America | Search report |
| US6693878B1 | Cites | United States of America | Applicant |
| US6694437B1 | Cites | United States of America | Search report |
| US6697806B1 | Cites | United States of America | Applicant |
| US6697865B1 | Cites | United States of America | Applicant |
| US6751729B1 | Cites | United States of America | Applicant |
| US6795830B1 | Cites | United States of America | Applicant |
| US6909987B2 | Cites | United States of America | Applicant |
| US6928479B1 | Cites | United States of America | Applicant |
| US6965992B1 | Cites | United States of America | Applicant |
| US7039034B2 | Cites | United States of America | Applicant |
| US7055171B1 | Cites | United States of America | Applicant |
| US7085277B1 | Cites | United States of America | Applicant |
| US7418596B1 | Cites | United States of America | Applicant |
| US7523490B2 | Cites | United States of America | Applicant |
| US7631084B2 | Cites | United States of America | Applicant |
| "DHCP Configuration of IPSec Tunnel Mode", Patel et al., Aug. 1, 2000. | Non-patent | – | Search report |
| "The IPSEC Protocols". | Non-patent | – | Search report |
12 members in 2 offices
Priority claims2
| Document | Office | Kind | Date |
|---|---|---|---|
| 91098701 | United States of America | A | |
| US20010910987 | – | – | – |
Members12
| Document | Office | Kind | |
|---|---|---|---|
| CA2394455A1 | Canada | A1 | |
| CA2394456A1 | Canada | A1 | |
| US2003028650A1 | United States of America | A1 | |
| US2003200321A1 | United States of America | A1 | |
| US2006080441A1 | United States of America | A1 | |
| CA2394456C | Canada | C | |
| CA2394455C | Canada | C | |
| US7827278B2This record | United States of America | B2 | |
| US7827292B2 | United States of America | B2 | |
| US8239531B1 | United States of America | B1 | |
| US2013163757A1 | United States of America | A1 | |
| US8676916B2 | United States of America | B2 |
75 transactions on the USPTO file
Allowed after 2 non-final rejections and 1 RCE.
- Non-final rejections
- 2
- Final rejections
- 0
- RCEs
- 1
- Appeals
- 0
Over time
Point at a mark for the transactionTransactions
| Event | Code | |
|---|---|---|
| Payment of Maintenance Fee, 12th Year, Large EntityM1553 | M1553 | |
| Payment of Maintenance Fee, 8th Year, Large EntityM1552 | M1552 | |
| Correspondence Address ChangeC.AD | C.AD | |
| Recordation of Patent Grant MailedPGM/ | PGM/ | |
| Patent Issue Date Used in PTA CalculationAllowedPTAC | PTAC | |
| Issue Notification MailedAllowedWPIR | WPIR | |
| Dispatch to FDCD1935 | D1935 | |
| Application Is Considered Ready for IssuePILS | PILS | |
| Issue Fee Payment VerifiedN084 | N084 | |
| Issue Fee Payment ReceivedIFEE | IFEE | |
| Mail Miscellaneous Communication to ApplicantMM327 | MM327 | |
| Miscellaneous Communication to Applicant - No Action CountM327 | M327 | |
| Information Disclosure Statement consideredIDSC | IDSC | |
| Information Disclosure Statement (IDS) Filed | – | |
| Information Disclosure Statement (IDS) Filed | – | |
| Mail Notice of AllowanceAllowedMN/=. | MN/=. | |
| Notice of Allowance Data Verification CompletedAllowedN/=. | N/=. | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Disposal for a RCE / CPA / R129AbandonedABN9 | ABN9 | |
| Information Disclosure Statement consideredIDSC | IDSC | |
| Electronic Information Disclosure StatementEIDS. | EIDS. | |
| Request for Continued Examination (RCE)RCEX | RCEX | |
| Information Disclosure Statement (IDS) FiledWIDS | WIDS | |
| Workflow - Request for RCE - BeginBRCE | BRCE | |
| Mail Examiner's AmendmentMEX.A | MEX.A | |
| Mail Notice of AllowanceAllowedMN/=. | MN/=. | |
| Notice of Allowance Data Verification CompletedAllowedN/=. | N/=. | |
| Examiner's Amendment Communication | – | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Information Disclosure Statement consideredIDSC | IDSC | |
| Electronic Information Disclosure StatementEIDS. | EIDS. | |
| Response after Non-Final ActionA... | A... | |
| Request for Extension of Time - GrantedXT/G | XT/G | |
| Information Disclosure Statement (IDS) FiledWIDS | WIDS | |
| Mail Non-Final RejectionNon-final rejectionMCTNF | MCTNF | |
| Non-Final RejectionNon-final rejectionCTNF | CTNF | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Mail Notice of Rescinded AbandonmentAbandonedMNRAB | MNRAB | |
| Notice of Rescinded Abandonment in TCsAbandonedNRAB | NRAB | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Change in Power of Attorney (May Include Associate POA)PA.. | PA.. | |
| Correspondence Address ChangeC.AD | C.AD | |
| Mail-Petition to Revive Application - GrantedMPREV | MPREV | |
| Petition to Revive Application - GrantedPREV | PREV | |
| Petition EnteredPET. | PET. | |
| Mail-Petition Decision - DismissedMPTDI | MPTDI | |
| Petition Decision - DismissedPTDI | PTDI | |
| Response to Election / Restriction FiledELC. | ELC. | |
| Petition EnteredPET. | PET. | |
| Mail Abandonment for Failure to Respond to Office ActionAbandonedMABN2 | MABN2 | |
| Aband. for Failure to Respond to O. A.AbandonedABN2 | ABN2 | |
| Mail Restriction RequirementMCTRS | MCTRS | |
| Restriction/Election RequirementCTRS | CTRS | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Response after Non-Final ActionA... | A... | |
| Request for Extension of Time - GrantedXT/G | XT/G | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Mail Non-Final RejectionNon-final rejectionMCTNF | MCTNF | |
| Non-Final RejectionNon-final rejectionCTNF | CTNF | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| IFW TSS Processing by Tech Center CompleteTSSCOMP | TSSCOMP | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Mail-Petition Decision - GrantedMPTGR | MPTGR | |
| Petition EnteredPET. | PET. | |
| Miscellaneous Incoming LetterLET. | LET. | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Application Dispatched from OIPEOIPE | OIPE | |
| Correspondence Address ChangeC.AD | C.AD | |
| IFW Scan & PACR Auto Security Review | – | |
| Information Disclosure Statement consideredIDSC | IDSC | |
| Reference capture on IDSRCAP | RCAP | |
| Information Disclosure Statement (IDS) Filed | – | |
| Information Disclosure Statement (IDS) Filed | – | |
| Initial Exam Team nnIEXX | IEXX |
9 legal events, as the office reported them to INPADOC
Over the term
Point at a mark for the eventEvents
| Event | Code | |
|---|---|---|
| Maintenance fee paymentMAFP | MAFP | |
| Maintenance fee paymentMAFP | MAFP | |
| Fee paymentFPAY | FPAY | |
| Information on status: patent grantGrantedPATENTED CASESTCF | STCF | |
| Fee payment procedurePAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITYFEPP | FEPP | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS |
Numbers
- Publication
- 07827278
- Publication, DOCDB
- 7827278
- Publication, EPODOC
- US7827278
- Application
- 9910987
- Application, DOCDB
- 91098701
- Application, EPODOC
- US20010910987
Titles
- English
- System for automated connection to virtual private networks related applications
Patent term adjustment
- A delay
- +1,308 daysthe office missed an examination deadline
- B delay
- +2,190 dayspendency past three years
- Overlap
- −639 daysdelays counted once
- Applicant delay
- −139 days
- Net adjustment
- 2,720 days
Classification
- CPC, 3
- H04L63/0272
- H04L63/0428
- H04L63/08
- IPC, 2
- H04L29 06
- G06F15 173
- USPC, 3
- 709225000
- 709223000
- 726015000