Patent Document

TECHNICAL FIELD  
       [0001]     The present invention is related generally to computer communications, and, more particularly, to remotely provisioning a client device.  
       BACKGROUND OF THE INVENTION  
       [0002]     In the past, once a computer was configured for its working environment, that configuration rarely or never changed. In today&#39;s dynamic computing environment, however, a computer may need to change its configuration frequently. When, for example, a mobile computer moves from one wireless network to another, it might change its network address to one compatible with the new network. Also, when a computer temporarily joins an ad hoc networking group, administrative and security policies may require the computer to change its configuration to one more acceptable to the ad hoc group. In a third example, some computers change their configuration, at least their network address, every time they access the Internet through an Internet Service Provider (ISP).  
         [0003]     Protocols have been developed to support various aspects of dynamic configuration. As one example, DHCP, the Dynamic Host Configuration Protocol, provides, among other network configuration information, an IP (Internet Protocol) address to a requesting computer. DHCP uses a client-server model, where a client computer, needing an IP address, requests one of a DHCP server. The DHCP server, in some cases provided by an ISP, controls a pool of IP addresses. Upon receiving the client&#39;s request, the DHCP server performs one of three modes of address allocation. In the “automatic allocation” mode, the DHCP server chooses an unused IP address from its pool and permanently assigns it to the requesting client. In the “manual allocation” mode, a network administrator chooses the address. Most interestingly for dynamic configuration, in the “dynamic allocation” mode, the DHCP server assigns a currently unused IP address to the client, but this dynamic address is valid only for a limited period of time as set by the DHCP server or until the client explicitly gives up its use of the address. Regardless of the allocation mode used, the DHCP server responds to the client&#39;s request by informing the client of the IP address assigned to it along with, in the case of dynamic allocation, the time period of the assignment. If the DHCP server cannot provide an IP address (possibly because all of the addresses in its pool are currently in use), then the DHCP server informs the client of this fact, and the client must wait until later to access the network.  
         [0004]     In any dynamic computing system, ease of configuration should be balanced against security concerns. Many an institution establishes a dynamic network to perform the internal (that is to say, the private) work of the institution, and the institution can be compromised if an unauthorized computer is allowed to dynamically configure itself and join the network. Useful as they are, dynamic configuration protocols, including DHCP, are in general weak in the area of security. By relying heavily on post-configuration processes (such as encryption-key-based authentication mechanisms) to secure their network, some configuration servers inadvertently allow in rogue clients. While the post-configuration schemes usually work as advertised to limit the access and the possible harm of rogue clients, still, some harm can be done by a rogue even before it is forced to submit to, and to presumably fail, a post-configuration protection scheme.  
       SUMMARY OF THE INVENTION  
       [0005]     In view of the foregoing, the present invention provides a mechanism for securely provisioning a client by authenticating that client during a dynamic configuration process. Rather than relying on post-configuration authentication schemes, the present invention combines security and dynamic configuration into a unified scheme.  
         [0006]     Any client device attempting to access a network may request configuration information from a configuration server associated with that network, but the server does not comply with the request until the client has successfully authenticated itself as a device authorized to receive configuration information for the network. In one embodiment, the configuration server may provide the client with temporary configuration information, e.g., a temporary network address, that allows the client to proceed with the authentication process but that denies the client full access to the network. Upon successful authentication, the server may give the client new, non-temporary configuration information or may change the status of the information already given from temporary to a status giving fuller access.  
         [0007]     In one embodiment, the present invention uses an existing dynamic configuration protocol, such as DHCP, without the need for changing that protocol. Messages used in the authentication process are carried within existing configuration messages, for example within the options field in DHCP messages.  
         [0008]     In another embodiment, the present invention applies existing security protocols to a dynamic configuration environment. The Extensible Authentication Protocol (EAP), for example, can be used without modification as an authentication framework for many of the security tasks of the present invention.  
         [0009]     Combining the embodiments of the previous two paragraphs, EAP messages can be carried in the options field of DHCP messages. When a client requests configuration information, it includes within its DHCP message an EAP capability option. EAP is pursued until the client has authenticated itself to the DHCP server (and, in some scenarios, the server has authenticated itself to the client). At that point, the DHCP server can respond to the initial request by providing the requested configuration information.  
         [0010]     As part of a secured, dynamic provisioning mechanism, a configuration server can apply policies set up for the network it is serving. For example, the configuration information provided can be limited in duration or in scope. 
     
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0011]     While the appended claims set forth the features of the present invention with particularity, the invention, together with its objects and advantages, may be best understood from the following detailed description taken in conjunction with the accompanying drawings of which:  
         [0012]      FIG. 1  is a block diagram showing a client device attempting to join a network that is “guarded” by a secure configuration server;  
         [0013]      FIG. 2  is a schematic diagram generally illustrating an exemplary computing device that supports the present invention;  
         [0014]      FIGS. 3   a  through  3   c  together are a logic flow diagram showing an exemplary exchange between a client and a secure configuration server;  
         [0015]      FIGS. 4   a  and  4   b  together are a communications flow diagram showing how DHCP and EAP messages can be used to implement a secure configuration scheme; and  
         [0016]      FIG. 5  is a data structure diagram of an EAP message carried within the options field of a DHCP message. 
     
    
     DETAILED DESCRIPTION OF THE INVENTION  
       [0017]     Turning to the drawings, wherein like reference numerals refer to like elements, the present invention is illustrated as being implemented in a suitable computing environment. The following description is based on embodiments of the invention and should not be taken as limiting the invention with regard to alternative embodiments that are not explicitly described herein.  
         [0018]     In the description that follows, the environment surrounding the present invention is described with reference to acts and symbolic representations of operations that are performed by one or more computing devices, unless indicated otherwise. As such, it will be understood that such acts and operations, which are at times referred to as being computer-executed, include the manipulation by the processing unit of the computing device of electrical signals representing data in a structured form. This manipulation transforms the data or maintains them at locations in the memory system of the computing device, which reconfigures or otherwise alters the operation of the device in a manner well understood by those skilled in the art. The data structures where data are maintained are physical locations of the memory that have particular properties defined by the format of the data. However, while the invention is being described in the foregoing context, it is not meant to be limiting as those of skill in the art will appreciate that various of the acts and operations described hereinafter may also be implemented in hardware.  
         [0019]      FIG. 1  is useful for presenting an overview of various aspects of the present invention. A more detailed discussion follows with reference to the other figures. A secured network  100  is shown in  FIG. 1 . Here, secured simply means that the network  100  is closed to non-authorized users. Security is enforced by a set of configuration parameters: Devices  102  already in the network  100  have the proper configuration parameters and may thus freely communicate with one another. An outsider like the configuration client  106  does not have a proper set of configuration parameters and therefore cannot communicate with these devices  102 . Because the configuration client  106  wishes to join the network  100 , it seeks admission through the secure configuration server  104  that is “guarding” the network  100 . As a gateway to the network  100 , any outside device can freely communicate with the secure configuration server  104 .  
         [0020]     Upon receiving the configuration client  106 &#39;s request to join the network  100 , but before providing the configuration client  106  with a proper set of configuration parameters, the secure configuration server  104  forces the configuration client  106  to authenticate itself, that is, to prove that it is a device authorized to join the network  100 . How that authorization is initially set up is beyond the scope of the present discussion, but numerous methods are well known in the art.  
         [0021]     The configuration client  106  proceeds to prove its identity to the secure configuration server  104 . Detailed examples of this authentication process accompany  FIGS. 3   a  through  3   c ,  4   a ,  4   b , and  5 . In some networks, the secure configuration server also proves its identity to the requesting configuration client. This two-way, or mutual, authentication enhances the security of these networks by preventing a rogue device from impersonating the network&#39;s secure configuration server.  
         [0022]     If the authentication process completes successfully, then the secure configuration server  104  knows that the configuration client  106  is authorized to join the network  100 . The secure configuration server  104  then provides an appropriate set of configuration parameters to the configuration client  106 , and the configuration client  106  uses those parameters to join the network  100  and to freely communicate with the other devices  102  already in the network  100 .  
         [0023]     Eventually, the configuration client  106  leaves the network  100 . This may be at the discretion of the configuration client  106 , or the set of configuration parameters provided to it may expire. In any case, those configuration parameters are no longer valid, and whenever the configuration client  106  wishes to rejoin the network  100 , it repeats the above process.  
         [0024]     The scenario of  FIG. 1  is intentionally simplified in order to focus on relevant aspects of the present invention. The secure configuration server  104  of  FIG. 1  may in some networks actually be a configuration server working with a separate security server. Also, the secure configuration server  104  (of whatever description) may not actually reside within the network  100 : A relay agent sitting in the network  100  may transfer configuration and authentication messages to a secure configuration server located remotely. Relay agents eliminate the necessity of having a secure configuration server on every secure network segment.  
         [0025]     The configuration client  106  and the secure configuration server  104  of  FIG. 1  may be of any architecture.  FIG. 2  is a block diagram generally illustrating an exemplary computer system that supports the present invention. The computer system of  FIG. 2  is only one example of a suitable environment and is not intended to suggest any limitation as to the scope of use or functionality of the invention. Neither should the client  106  nor the secure configuration server  104  be interpreted as having any dependency or requirement relating to any one or combination of components illustrated in  FIG. 2 . The invention is operational with numerous other general-purpose or special-purpose computing environments or configurations. Examples of well known computing systems, environments, and configurations suitable for use with the invention include, but are not limited to, personal computers, servers, hand-held or laptop devices, multiprocessor systems, microprocessor-based systems, set-top boxes, programmable consumer electronics, network PCs, minicomputers, mainframe computers, and distributed computing environments that include any of the above systems or devices. In their most basic configurations, the client  106  and the secure configuration server  104  typically include at least one processing unit  200  and memory  202 . The memory  202  may be volatile (such as RAM), non-volatile (such as ROM or flash memory), or some combination of the two. This most basic configuration is illustrated in  FIG. 2  by the dashed line  204 . The client  106  and the secure configuration server  104  may have additional features and functionality. For example, they may include additional storage (removable and non-removable) including, but not limited to, magnetic and optical disks and tape. Such additional storage is illustrated in  FIG. 2  by removable storage  206  and by non-removable storage  208 . Computer-storage media include volatile and non-volatile, 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. Memory  202 , removable storage  206 , and non-removable storage  208  are all examples of computer-storage media. Computer-storage media include, but are not limited to, RAM, ROM, EEPROM, flash memory, other memory technology, CD-ROM, digital versatile disks, other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage, other magnetic storage devices, and any other media that can be used to store the desired information and that can be accessed by the client  106  or by the secure configuration server  104 . Any such computer-storage media may be part of the client  106  or of the secure configuration server  104 . The client  106  and the secure configuration server  104  may also contain communications channels  210  that allow them to communicate with other devices, including devices on a network  100 . Communications channels  210  are examples of communications media. Communications media typically embody 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 include 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, communications media include optical media, wired media, such as wired networks and direct-wired connections, and wireless media such as acoustic, RF, infrared, and other wireless media. The term “computer-readable media” as used herein includes both storage media and communications media. The client  106  and the secure configuration server  104  may also have input devices  212  such as a touch-sensitive display screen, a hardware keyboard, a mouse, a voice-input device, etc. Output devices  214  include the devices themselves, such as the touch-sensitive display screen, speakers, and a printer, and rendering modules (often called “adapters”) for driving these devices. All these devices are well know in the art and need not be discussed at length here. The client  106  and the secure configuration server  104  each has a power supply  216 .  
         [0026]     Going deeper than the overview of  FIG. 1 ,  FIGS. 3   a  through  3   c  provide details of exemplary secure configuration schemes according to the present invention. For illustrative purposes, the logic flow diagram of these figures includes options and variations that might not apply in a given embodiment. In particular, the steps in the figures represent logical tasks and do not necessarily correspond one-to-one with individual messages. More specific details of a particular embodiment, including message exchanges and message formats, is discussed in relation to  FIGS. 4   a ,  4   b , and  5 .  
         [0027]     The logic of  FIG. 3   a  begins in step  300  when the configuration client  106  requests from the secure configuration server  104  a set of configuration parameters that are valid for use on the network  100 . Rather than immediately complying with the request, the secure configuration server  104  in step  302  asks the configuration client  106  to authenticate itself. In some embodiments (see specifically step  400  of  FIG. 4   a ), the configuration client  106  does not wait for the secure configuration server  104  to request authentication; instead, the configuration client  106  begins the authentication process concurrently with its initial configuration request.  
         [0028]     There are some network configurations in which the configuration client  106  needs to use a valid set of configuration parameters in order to continue communicating with the secure configuration server  104 . This is somewhat of a Catch-22: For security reasons, the secure configuration server  104  does not want to provide valid configuration information to the configuration client  106  until the client  106  has authenticated itself as a device authorized to receive such information, but the authentication procedure cannot proceed until the client  106  has a set of valid parameters. Steps  304  and  306  present one way out of this dilemma, for some embodiments of the present invention. In step  304 , the secure configuration server  104  provides a valid set of configuration parameters to the configuration client  106  so that the client  106  can continue the authentication process. However, the provided configuration information, while valid, is “temporary” and is only useful during authentication. For example, the configuration information can include an IP address that marks the user of the address as not fully authenticated. In step  306 , the configuration client  106  receives the temporary configuration information and will use it during the remainder of the authentication process. In some instances, the temporary configuration information prevents the configuration client  106  from conversing with any device in the network  100  other than the secure configuration server  104 : The configuration client  106  is said to be in “quarantine.” 
         [0029]     In step  308 , the configuration client  106  and the secure configuration server  104  proceed through the authentication process. Many such authentication processes are well known in the art, and any of them can be used here. In some embodiments, the particular authentication process to be used is negotiated between the configuration client  106  and the secure configuration server  104 . As mentioned above in relation to  FIG. 1 , the authentication process may be mutual with the configuration client  106  and the secure configuration server  104  each authenticating itself to the other.  
         [0030]     If the authentication process fails, then, of course, the configuration client  106  is denied access to the network  100 . If the configuration client  106  received temporary configuration information in step  306 , the network  100  is still secure because of the limited use to which that information can be put. If the authentication process succeeds, then in step  310  of  FIG. 3   b  the secure configuration server  104  applies policies in place in the network  100 , if any, to decide how to provide the requested configuration information. These policies may, for example, limit the duration or scope of use of the configuration information (e.g., that information is only valid for a one-hour “lease”).  
         [0031]     If possible, then in step  312  the secure configuration server  104  provides the requested configuration information to the configuration client  106 , along with information on any limitations on use set by policy in step  310 . Of course, if the network  100  has exhausted the resources needed to fulfill the request (e.g., all of the assignable IP addresses are already in use), then the configuration process fails even though the authentication process succeeded. In some embodiments, resource availability is checked before proceeding through the authentication process, and the secure configuration server  104  can deny the configuration request on that basis instead of beginning the authentication process in step  302 . However, this is not preferred because it provides confidential information (that the network  100  is low on resources) to a configuration client  106  that has not been authenticated and that might be able to use the information to the detriment of the network  100 .  
         [0032]     Step  314  notes that if the configuration client  106  was provided with temporary configuration information in step  304 , then, in some embodiments, the secure configuration server  104  may choose to simply change the status of that information to non-temporary rather than sending a new set of configuration parameters. The effect is the same in either case.  
         [0033]     With authentication complete and with the non-temporary configuration information in hand, the configuration client  106  is now a device on the network  100  and, in step  316  of  FIG. 3   c , can communicate with the other devices  102  (subject to whatever policy limitations were imposed on the provided configuration information). This continues until step  318  where the configuration client  106  either chooses to relinquish the provided configuration information, or a lease on the information expires. In the later case, the secure configuration server  104  marks the provided configuration information as invalid. In either case, the client  106  exits the network  100  and, if it wishes to continue communicating, repeats the secure configuration process (step  320 ).  
         [0034]     The discussion accompanying  FIGS. 3   a  through  3   c  is kept at a high level to illustrate the breadth of application of the present invention (which is, however, ultimately defined by the scope of the claims and not by any illustrations in this specification). To further the discussion,  FIGS. 4   a  and  4   b  present a specific embodiment of the invention.  
         [0035]     While, in general, either party can initiate the secure configuration process, in step  400  of  FIG. 4   a  the configuration client  106  initiates the process by sending a DHCP Discover message to the secure configuration server  104 . This DHCP message contains the configuration client  106 &#39;s request for configuration information. Carried within the options field of the DHCP Discover message is a notice that the configuration client  106  is prepared to use EAP to authenticate itself. These two protocols, DHCP and EAP, are well known in the art, and so their details need not be discussed here. They are defined, respectively, in the Requests for Comments 2131 and 3748 of the Internet Engineering Task Force, which are incorporated herein in their entireties by reference.  
         [0036]     Because the secure configuration server  104  will not provide configuration information to an un-authenticated client, it responds in step  402  with a DHCP Offer message containing within its options field an EAP message requesting the identity of the configuration client  106 . The configuration client  106  responds in step  404  by sending an EAP message containing its identity. The EAP message is, once again, contained within the options field of a DHCP message.  
         [0037]     EAP allows the configuration client  106  and the secure configuration server  104  to negotiate and to use any of a number of authentication mechanisms. In steps  406  and  408 , the two parties proceed through the details of EAP and of the authentication mechanism they have chosen. In some embodiments, EAP need not be altered in any way for the purposes of the present invention, and so the details of EAP known in the art apply as well here. In steps  406  and  408 , as in the previous steps of  FIG. 4   a , EAP messages are carried within the options fields of DHCP messages.  
         [0038]     If the authentication process proceeds to a successful conclusion, then the secure configuration server  104  accepts the authenticity of the configuration client  106 , and, in step  410  of  FIG. 4   b , sends an EAP Success message carried in the options field of a DHCP ACK message. That DHCP message also includes the requested configuration information.  
         [0039]     When the configuration client  106  has completed its work with the network  100 , it relinquishes the configuration information by sending a DHCP Release message in step  412 .  
         [0040]      FIG. 5  is an exemplary data structure diagram of a DHCP message  500  containing, within its options field  502 , an EAP message  504 . The heart of the EAP message is its data field  506 . By combining a well known configuration protocol, DHCP, with a well known authentication framework protocol, EAP, embodiments of the present invention provide security to the configuration process without requiring any changes to either protocol.  
         [0041]     In view of the many possible embodiments to which the principles of the present invention may be applied, it should be recognized that the embodiments described herein with respect to the drawing figures are meant to be illustrative only and should not be taken as limiting the scope of the invention. Those of skill in the art will recognize that some implementation details, such as configuration and authentication protocols, are determined by specific situations. Although the environment of the invention is described in terms of software modules or components, some processes may be equivalently performed by hardware components. Therefore, the invention as described herein contemplates all such embodiments as may come within the scope of the following claims and equivalents thereof.

Technology Category: 5