Computer networks are widely used by companies because they streamline business processes by enabling sharing of information at many locations. In many instances, companies provide network access to their employees and other authorized parties, even when those parties are at locations remote from the company's premises.
A corporate network may be configured to limit access to network resources to only authorized parties by using one or more domain controllers, which are sometimes called Active Directory servers. A domain controller may authenticate users to identify those that should be granted network access. In some instances, there may be multiple domain controllers. To map devices connected to the network to a nearby domain controller, each domain controller may have a table that identifies ranges of source network addresses. When a domain controller receives a request from a device, it may respond by identifying for the device a domain controller near the device.
Remote access to a corporate network may be provided through a virtual private network (VPN). With a VPN, a computer operated by an authorized user establishes a tunnel to the corporate network through a VPN gateway server over a public network to which the remote computer can connect. Because computers connected through a VPN tunnel comprise a portion of the corporate network, the computer can then use resources on the corporate network.
In many companies that allow remote access to their corporate networks, portable computers are used for network access. The portable computers can be used on company premises where they can be connected physically to the corporate network. At other times, the portable computers may be brought to remote locations where they are logically connected to the network through a VPN. To provide ease of use, such computers may be configured to have two different groups of settings: one appropriate for use on a private company network and another appropriate for use when the computer is connected to a public network over which a VPN tunnel can be established. These settings may affect operations of the portable computer, such as the default printer, a home page, a time zone setting for a clock or security functions. For example, the security setting used when the portable computer is directly connected to the network may rely on the firewall or other protective components of the corporate network and therefore be less restrictive. When the portable computer is connected to the corporate network via a VPN, a more restrictive security configuration may be applied.
To determine the appropriate group of settings, the portable computer may include a network location awareness component that can indicate the type of connection the computer has to the network. Conventionally, the network location has been ascertained by attempting to authenticate against a domain controller on the network. If the portable computer can authenticate with a domain controller, the computer may be configured with settings appropriate for devices directly connected to the corporate network. If authentication is not possible, different settings may be used.
In another context, some computers display an indication of whether the computer has connectivity to the Internet. A computer can determine its connection status by attempting to contact a known server on the Internet. If the computer receives a response from the server, the computer infers that it has connectivity to the Internet and displays an indication accordingly.
The inventors have recognized and appreciated that direct access to a private network by remote computers may soon be widespread. When remote access is possible without the use of a VPN, remote devices will be able to authenticate against domain controllers on the private network.
The inventors have further recognized and appreciated that direct access will alter the operation of network location awareness components that rely on the ability or inability to authenticate against a domain controller as a secure indication of network location. When the indication of network location is determined simply by the ability to authenticate with a domain controller, the case in which a remote device is connecting to a network without the use of a VPN will be indistinguishable from that of a client physically connected to the network or connecting to the network via a VPN connection. Yet, users or computer administrators may not expect or want the remote computer to have the same settings in these different scenarios.
To maintain appropriate settings, a private network may be configured with one or more devices that make different responses to requests from client devices, depending on a portion of the network address of the client device. A first response may be made when the request is received from a client device with a network address indicating that the client device is physically connected to the network within the network firewall. A second, different, response may be made when the request is received from a client device with a network address indicating that the client device is a remote device not connected to the network within the network firewall. And, possibly a third response may be made when the request is received from a remote client device connected within the network firewall through the use of VPN. Though, in this third scenario, the network alternatively may be configured, according to some embodiments, to generate the first response. In yet other embodiments, in the third scenario, the network alternatively may be configured to generate the second response. Regardless of the specific configuration, based on the nature of the response received by the client device, the client device may select an appropriate configuration.
The foregoing is a non-limiting summary of the invention, which is defined by the attached claims.
The accompanying drawings are not intended to be drawn to scale. In the drawings, each identical or nearly identical component that is illustrated in various figures is represented by a like numeral. For purposes of clarity, not every component may be labeled in every drawing. In the drawings:
For computers that are configured to access a corporate, enterprise or other private network, improved network location awareness can be provided by configuring the computer to attempt to communicate with a device on the network. By configuring that device to respond differently to devices depending on the nature of the connection to the network, the computer can gain useful information about its own location based on the response. For example, computers that are connected to the private network through a physical connection or a VPN may experience a different response than devices that are outside the private network, but connected to the private network through a remote access mechanism that involves a public network such as the Internet.
This information will be accurate even if direct network access is available and allows the computer to authenticate against a domain controller on the private network in a fashion that would cause some conventional network location determination approaches to incorrectly indicate that the computer is directly connected to the private network. Better security is provided for the computer when this location information is used to select an appropriate security configuration. For example, the computer may be configured to operate in different security states, one of which is appropriate for use when the computer is physically connected to the private network on company premises and therefore behind a firewall. Another security state may be appropriate for scenarios in which the computer is virtually connected to the private network through a secure VPN tunnel. Yet another scenario may apply in which the computer is not directly on the private network, either physically or virtually via a VPN tunnel, and therefore not protected by a firewall for the private network. Such security states may be implemented in any suitable way. In some instances, the security states are implemented by a firewall on the computer that supports different configurations. When not directly connected to the network, the firewall may have a more restrictive configuration. In contrast, when the computer is directly connected to the network, a less restrictive firewall configuration may be provided. Similarly, when other settings are selected based on computer location, more accurately determining location can lead to automated selection of those settings to provide a more desirable user experience.
Any of a number of approaches is suitable for configuring a device or devices to generate a different response based on the location of the computer that issued a request prompting the response. In some embodiments, the particular arrival interface of a network packet may be used to identify the location of the computer. In other embodiments, information in a header of a network packet may be used to identify the location of the computer. For example, a network address in a packet header containing the request or the response may allow a network device to determine whether the computer issuing the request is physically on the network, if the device has some way to know that the network address was not spoofed. As a specific example, a network prefix portion of the address may indicate the location of the computer once the computer has shown that it can receive packets destined to that address by being able to successfully establish a TCP connection.
Any suitable device or devices processing such packets may be configured to respond differently based on whether such packets have a network prefix indicating that they have been received from or are destined to either a device behind the network firewall or outside the network firewall. In some embodiments, the request may be directed to a server on the network. The server may be programmed to make a different response depending on the location of the computer issuing the request, such as is the case with domain controllers today. In other embodiments, one or more intermediate devices that would process a packet to or from a server replying to a request may behave differently depending on the location of the computer issuing the request. For example, an intermediate device, such as a firewall, may selectively block packets containing the request or the reply based on the network prefix associated with the computer that issued the request in the headers of those packets.
From the foregoing overview of some embodiments, one of skill in the art can appreciate that embodiments may be constructed based on programming of one or more computer devices. Prior to providing a more detailed description of the structure and operation of exemplary embodiments, an overview of components that may exist in a computing device is provided.
With reference to
Computer 110 typically includes a variety of computer readable media. Computer readable media can be any available media that can be accessed by computer 110 and includes both volatile and nonvolatile media, removable and non-removable media. By way of example, and not limitation, computer readable media may comprise computer storage media and communication media. Computer storage media includes both volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules or other data. Computer storage media includes, but is not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disks (DVD) or other optical disk storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to store the desired information and which can accessed by computer 110. Communication media typically embodies computer readable instructions, data structures, program modules or other data in a modulated data signal such as a carrier wave or other transport mechanism and includes any information delivery media. The term “modulated data signal” means a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal. By way of example, and not limitation, communication media includes wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, RF, infrared and other wireless media. Combinations of the any of the above should also be included within the scope of computer readable media.
The system memory 130 includes computer storage media in the form of volatile and/or nonvolatile memory such as read only memory (ROM) 131 and random access memory (RAM) 132. A basic input/output system 133 (BIOS), containing the basic routines that help to transfer information between elements within computer 110, such as during start-up, is typically stored in ROM 131. RAM 132 typically contains data and/or program modules that are immediately accessible to and/or presently being operated on by processing unit 120. By way of example, and not limitation,
The computer 110 may also include other removable/non-removable, volatile/nonvolatile computer storage media. By way of example only,
The drives and their associated computer storage media discussed above and illustrated in
The computer 110 may operate in a networked environment using logical connections to one or more remote computers, such as a remote computer 180. The remote computer 180 may be a personal computer, a server, a router, a network PC, a peer device or other common network node, and typically includes many or all of the elements described above relative to the computer 110, although only a memory storage device 181 has been illustrated in
When used in a LAN networking environment, the computer 110 is connected to the LAN 171 through a network interface or adapter 170. When used in a WAN networking environment, the computer 110 typically includes a modem 172 or other means for establishing communications over the WAN 173, such as the Internet. The modem 172, which may be internal or external, may be connected to the system bus 121 via the user input interface 160, or other appropriate mechanism. In a networked environment, program modules depicted relative to the computer 110, or portions thereof, may be stored in the remote memory storage device. By way of example, and not limitation,
Another networked computing device may be a computer acting as a name server 212, such as any combination of devices running a DNS service. Name servers are also known in the art, and name server 212 may be implemented using known techniques. However, any suitable techniques may be used for implementing name server 212. As one example of an alternative technique, it is possible that a name service may be implemented on the same computer as domain controller 210.
The secured network may also include a user client computer 214 physically connected to the secured network 200, which may access computing resources in the secured network 200, such as the domain controller 210 and the name server 212. Client computer 214 may be on the premises of a company providing secured network 200. In such a scenario, physical connectivity may be achieved by connecting client 214, either through a wired or wireless connection, to a network access point on the company's premises. However, any suitable mechanism for achieving a physical connection to secured network 200 may be employed.
In the scenario illustrated in
The networked computing environment of
Regardless of the specific hardware used to implement clients 214 and 234, the environment illustrated by
The networked computing environment also includes a Demilitarized Zone (DMZ) 240 for the secured network 200, allowing limited network communication between the secured network 200 and the Internet 230. DMZ 240 may include components that block unauthorized traffic, such as a firewall, and other components that allow some traffic to pass. The DMZ 240 may include networked computing devices, such as a computing system acting as a direct access server 250. In the embodiment illustrated, direct access server 250 may be implemented as a router. Clients not physically connected to the secured network 200, such as client computer 234, may connect through the direct access server 250 to communicate without the use of a VPN, with computing resources inside the secured network, such as domain controller 210 and name server 212. The user client 234's access to computing resources in the secured network is illustrated by bi-directional network links passing through the direct access server 250, such as the link 260 between the client 234 and the domain controller 210 and the link 262 between the client 234, and the name server 212. As illustrated, a remote client, such as client 234 may access the same network resources on secured network 200 as a computer, such as client 214, physically connected to secured network 200.
As a result, client 234, like client 214, may authenticate with domain controller 210. If client 234 establishes its security state based on the ability to authenticate with domain controller 210, client 234 may have a different security risk than client 214 that may configure its security state in the same way. While client 214 is separated by DMZ 240 from other devices on Internet 230 that may be used by malicious third parties, client 234 is not. Thus, while client 214 may appropriately use less restrictive security settings because all other devices on secured network 200 are considered trusted, client 234 is exposed to risk from devices connected to Internet 230 if it uses the same less restrictive settings. Thus, in some embodiments, even though client 234 authenticates with domain controller 210, the security states of client 234 may be established based on a determination of its network location that is independent of its ability to authenticate with domain controller 210.
Though settings that establish client security-related actions are used as an example of settings that may be selected based on network location, other types of settings may be similarly selected. For example, if client 234 establishes any other type of setting based on network location, it may function incorrectly or counter to what the user expects without accurate network location determination. Accordingly, techniques described herein may be applied to improve selection of any settings based on network location.
The direct access server 250 provides two network interfaces: a private interface 354 and a public interface 356. Private interface 354 provides connections between the direct access server 250 and networked computing devices directly connected to the secured network, such as user client 214 and VPN client 344. Public interface 356 provides connections between the direct access server and networked computing devices outside the secured network 200, such as user client 234. In the embodiment illustrated, public interface 356 and private interface 354 are configured such that, for certain requests, a network client will perceive a different response depending on its location. For example, client 214, physically connected to secured network 200, because of the actions of a public interface 356 and private interface 354, will perceive a different response to certain requests than client 234. The interfaces 354 and 356 are configured such that clients communicating through private interface 354 may communicate with HTTPS service 352, but clients communicating through public interface 356 may not communicate with HTTPS service 352. Other network communication between client 234 and other networked computing devices connected to secured network 200 is allowed to pass through public interface 356. Thus, in this embodiment, client 214 and VPN client 344 will receive a reply to a request sent to HTTPS service 352. In contrast, client 234 will receive no reply to a request sent to HTTPS service 352. In this way, the clients can perceive different responses, depending on whether a reply is received.
In
A client directly connected to the secured network 200 within a network firewall, such as client 214 or VPN client 344, is able to communicate through private interface 354 to the HTTPS service 352, and is therefore able to place a request to the HTTPS server 352 and receive a reply. Based on the reply from HTTPS server 352, client 214 or VPN client 344 is able to determine that it is directly connected to the secured network and set its security policies accordingly. On the other hand, a client not directly connected to the secured network 200, such as client 234, is not able to communicate through public interface 356 to the HTTPS service 352, and is therefore not able to place a request to the HTTPS server 352 or receive a reply. Based on the lack of a reply from HTTPS server 352, client 234 is able to make a determination that it is not directly connected to secured network 200, and can configure its security policies to be more restrictive than it would if it were directly connected to the secured network 200.
In the embodiment of
Private interface 354 may be implemented using techniques as are known in the art. Public interface 356 may similarly be implemented using known interface techniques. However, public interface 356 may be modified to block communications from a remote client. Any suitable blocking mechanism may be used. For example, public interface 356 may be configured with a filtering component that blocks network packets based on the destination address contained within the packet header. For example, public interface 356 may block all incoming packets that include a destination address for HTTPS service 352. However, other implementations are possible. For example, public interface 356 may block any outgoing packets that contain a source address indicating the packets were generated by HTTPS service 352.
In the embodiment illustrated in
The network service used for location awareness, such as HTTPS service 352, is secure in order to allow a client of the network service, such as client 214, client 234, or VPN client 344, to verify the identity or security credentials of the service and make a determination whether the client should trust a reply received from the service. For example, in some embodiments, the reply of HTTPS service 352 may include an SSL certificate containing the identity of the HTTPS service, which a client of the service, such as client 214, can verify to determine whether or not to trust the reply from HTTPS service 352. If client 214 determines that a reply from HTTPS service 352 is to be trusted, it can assume that it is physically connected to secured network 200, and implement its security settings accordingly to a less restrictive state. On the other hand, if client 214 is not able to verify the SSL certificate returned by HTTPS service 352, client 214 may deem that it has not received a reply from service 352 and assume it is not directly connected to secured network 200, and implement more restrictive security settings.
Though network address is used as an example of a criteria used to determine the nature of a reply, other criteria may be used to determine the nature of a response. For example, the reply could be different, depending on whether the request was received through a public or private interface. Moreover, though issuing a reply and not issuing a reply are used as examples of different responses, these are also only examples of different responses. As another example, different responses may be generated by issuing a reply in all cases, but using a different format for the reply depending on network location. As one example, a reply may indicate the network address or network location of the client. Also, in embodiments described above, the same device generates a reply to requests from clients that are directly or indirectly connected to the network. Such an architecture is not required. For example, requests from directly connected clients may be routed to one device, which issues one type of reply, while requests from clients not directly connected may be routed to another device, which issues a different type of reply.
In the embodiment illustrated in
As in previous illustrations, the ability or inability of networked computing devices to communicate with each other is illustrated by unidirectional or bi-directional network links. Bi-directional links passing through the direct access server 250 display the ability to communicate with networked computing resources in secured network 200, such as the link 260 between the client 234 and the domain controller 210 and the link 262 between the client 234 and the name server 212. Similarly, the bi-directional link 364 passing through network address filter 652 and the direct access server 250 illustrates connectivity between user client 214 and the HTTPS service 352. On the other hand, unidirectional link 374 between user client 234 and HTTPS service 352 does not pass through network address filter 652, illustrating the action taken by network address filter 652 to block a request from client 234 to the HTTPS service 352.
In this embodiment, as also discussed above in previous embodiments, the lack of a reply from the HTTPS service 352 may allow the requester, such as client 234, to make a determination that it is not directly connected to secured network 200, and to set its security settings accordingly to a more restrictive state.
Initially, client 700 does not know its network location and at block 701 may apply default settings appropriate for a client not directly connected to a secured network. With security policies, for example, the client applies a setting appropriate for the least secure location in which it may operate.
In step 704, client 700 may authenticate itself with a domain controller, such as domain controller 210. This may be done by connecting through a direct access server, such as direct access server 250, or directly, if the client is physically connected or virtually connected, such as via a VPN, to a secured network, such as secured network 200.
In step 706, client 700 retrieves the name of the HTTPS service 702 which has been provisioned to the client. For example, client 700 may have previously been provisioned with a name of the HTTPS service 702 at a time when it was physically connected to a secured network, such as secured network 200. At that time, the provisioned name may have been stored locally on a computer storage medium on the client to be retrieved later, as in step 706.
The client 700, in step 712, issues an HTTPS request to HTTPS service 702. In step 714, client 700 waits a predetermined time interval for a reply from HTTPS service 700.
If the request from client 700 was not blocked from reaching HTTPS service 702 by means of one of the mechanisms described above, HTTPS service 702 receives the client request in step 716. In step 718, a filter, such as network address filter 652, inspects a portion of the network address of the client to determine whether the network address of the client is in the range of the secured network, such as secured network 200. If the network address is not in the secured network range, the process of
Though, it should be appreciated that in some embodiments it may be desirable for HTTPS service 702 to respond, regardless of network location of the client issuing a request, but to respond with a different type or response depending on the location of the client. In such embodiments, the wait time at step 714 may be reduced if a response is generated regardless of location of the client.
The process of
If client 700 did receive a response from HTTPS service 702, it then verifies in step 724 the identity or security credentials of the HTTPS service 702, such as an SSL certificate. If the client 700 cannot successfully verify the SSL certificate received from HTTPS service 702, the client 700 proceeds to step 728, and as described above, makes the determination that it is not physically connected to the secured network, such as secured network 200. The client sets its policies accordingly, for example, setting its security policies to a more restrictive state.
If the client 700 successfully verifies the SSL certificate received from HTTPS service 702, it proceeds to step 726. At this point, the client may determine that it is physically connected to the secured network, such as secured network 200. The client sets its policies accordingly, for example, setting its security policies to a less restrictive state.
Having thus described several aspects of at least one embodiment of this invention, it is to be appreciated that various alterations, modifications, and improvements will readily occur to those skilled in the art.
Such alterations, modifications, and improvements are intended to be part of this disclosure, and are intended to be within the spirit and scope of the invention. Accordingly, the foregoing description and drawings are by way of example only.
The above-described embodiments of the present invention can be implemented in any of numerous ways. For example, the embodiments may be implemented using hardware, software or a combination thereof. When implemented in software, the software code can be executed on any suitable processor or collection of processors, whether provided in a single computer or distributed among multiple computers.
Further, it should be appreciated that a computer may be embodied in any of a number of forms, such as a rack-mounted computer, a desktop computer, a laptop computer, or a tablet computer. Additionally, a computer may be embedded in a device not generally regarded as a computer but with suitable processing capabilities, including a Personal Digital Assistant (PDA), a smart phone or any other suitable portable or fixed electronic device.
Also, a computer may have one or more input and output devices. These devices can be used, among other things, to present a user interface. Examples of output devices that can be used to provide a user interface include printers or display screens for visual presentation of output and speakers or other sound generating devices for audible presentation of output. Examples of input devices that can be used for a user interface include keyboards, and pointing devices, such as mice, touch pads, and digitizing tablets. As another example, a computer may receive input information through speech recognition or in other audible format.
Such computers may be interconnected by one or more networks in any suitable form, including as a local area network or a wide area network, such as an enterprise network or the Internet. Such networks may be based on any suitable technology and may operate according to any suitable protocol and may include wireless networks, wired networks or fiber optic networks.
Also, the various methods or processes outlined herein may be coded as software that is executable on one or more processors that employ any one of a variety of operating systems or platforms. Additionally, such software may be written using any of a number of suitable programming languages and/or programming or scripting tools, and also may be compiled as executable machine language code or intermediate code that is executed on a framework or virtual machine.
In this respect, the invention may be embodied as a computer readable medium (or multiple computer readable media) (e.g., a computer memory, one or more floppy discs, compact discs, optical discs, magnetic tapes, flash memories, circuit configurations in Field Programmable Gate Arrays or other semiconductor devices, or other tangible computer storage medium) encoded with one or more programs that, when executed on one or more computers or other processors, perform methods that implement the various embodiments of the invention discussed above. The computer readable medium or media can be transportable, such that the program or programs stored thereon can be loaded onto one or more different computers or other processors to implement various aspects of the present invention as discussed above.
The terms “program” or “software” are used herein in a generic sense to refer to any type of computer code or set of computer-executable instructions that can be employed to program a computer or other processor to implement various aspects of the present invention as discussed above. Additionally, it should be appreciated that according to one aspect of this embodiment, one or more computer programs that when executed perform methods of the present invention need not reside on a single computer or processor, but may be distributed in a modular fashion amongst a number of different computers or processors to implement various aspects of the present invention.
Computer-executable instructions may be in many forms, such as program modules, executed by one or more computers or other devices. Generally, program modules include routines, programs, objects, components, data structures, etc. that performs particular tasks or implement particular abstract data types. Typically the functionality of the program modules may be combined or distributed as desired in various embodiments.
Also, data structures may be stored in computer-readable media in any suitable form. For simplicity of illustration, data structures may be shown to have fields that are related through location in the data structure. Such relationships may likewise be achieved by assigning storage for the fields with locations in a computer-readable medium that conveys relationship between the fields. However, any suitable mechanism may be used to establish a relationship between information in fields of a data structure, including through the use of pointers, tags or other mechanisms that establish relationship between data elements.
Various aspects of the present invention may be used alone, in combination, or in a variety of arrangements not specifically discussed in the embodiments described in the foregoing and is therefore not limited in its application to the details and arrangement of components set forth in the foregoing description or illustrated in the drawings. For example, aspects described in one embodiment may be combined in any manner with aspects described in other embodiments.
Also, the invention may be embodied as a method, of which an example has been provided. The acts performed as part of the method may be ordered in any suitable way. Accordingly, embodiments may be constructed in which acts are performed in an order different than illustrated, which may include performing some acts simultaneously, even though shown as sequential acts in illustrative embodiments.
Use of ordinal terms such as “first,” “second,” “third,” etc., in the claims to modify a claim element does not by itself connote any priority, precedence, or order of one claim element over another or the temporal order in which acts of a method are performed, but are used merely as labels to distinguish one claim element having a certain name from another element having a same name (but for use of the ordinal term) to distinguish the claim elements.
Also, the phraseology and terminology used herein is for the purpose of description and should not be regarded as limiting. The use of “including,” “comprising,” or “having,” “containing,” “involving,” and variations thereof herein, is meant to encompass the items listed thereafter and equivalents thereof as well as additional items.
Number | Date | Country | |
---|---|---|---|
61108472 | Oct 2008 | US |