# Patent

## Title
Certifier hierarchy for public key infrastructure in an ad-hoc network

## Abstract

A computer-implemented method for generating a hierarchical set of certifiers nodes for a public key infrastructure within an ad-hoc network. The method includes determining at least one potential certifier node that is eligible to become certifier nodes from a set of nodes in an ad-hoc network, creating a new certifier node from the at least one potential certifier node based on a selection criteria, and creating a parent-child relationship with the new certifier node.

## Background
GOVERNMENT LICENSE RIGHTS
The U.S. Government has a paid-up license in this invention and the right in limited circumstances to require the patent owner to license others on reasonable terms as provided for by the terms of Government Contract No. N00014-03-C-0322 awarded by the Office of Naval Research Tactical Network Security.


BACKGROUND OF THE INVENTION
The present invention relates generally to the field of ad-hoc network implementation. More particularly, the present invention relates to systems and methods for implementing a certifier hierarchy for a public key infrastructure in an ad-hoc network.
An ad-hoc network is a cooperative engagement of a collection of mobile nodes without the required intervention of any centralized access point or existing infrastructure. Decentralization of the certification architecture, although increasing robustness to changes in connectivity and mobility, creates difficulties in implementing a centralized certifier hierarchy for a public key infrastructure.
In public key cryptography, a public key infrastructure (PKI) is an arrangement which provides for third-party vetting of, and vouching for, user identities. It also provides a binding of public keys to user identities. This is usually carried by software at a central location together with other coordinated software at distributed locations. The public keys are typically embodied in certificates.
Traditional use of PKI assumes a fixed network architecture. In the fixed network, nodes that fill the role of certificate authority are manually paced in an organization for efficient distribution of certificates throughout the network. This distribution normally uses a hierarchical collection of certifiers disbursed throughout the network to create and distribute certificates to members of the network. Accordingly, users seeking access to the PKI are manually configured with knowledge of the most appropriate certificate authority.
The traditional PKI does not perform well in an ad-hoc environment. The mobility of nodes within the network makes preconfigured access to certificate authorities inefficient and does not guarantee connectivity to its assigned certificate authority. If the PKI scheme is used for network management and access control, variable network conditions caused by node mobility may require variability of rights delegated to certificate sub-authorities. Further, use of a single certifier may also create a single point of failure and a possible traffic bottleneck in a low-bandwidth tactical environment.
Accordingly, there is a need for a system and method configured to implement network management and access control within an ad-hoc network. Yet further, there is a need for such a process to be implemented such that authentication certifiers are organized in a hierarchical tree. There is further a need for such system and method wherein each certifier in the hierarchical tree is configured to be able to create a child certifier. Yet further, there is a need for such a system and method wherein a child certifier node may be configured to receive up to the same certification and other rights allocated to the parent certifier node.
It would be desirable to provide a system and/or method that provides one or more of these or other advantageous features. Other features and advantages will be made apparent from the present specification. The teachings disclosed extend to those embodiments which fall within the scope of the appended claims, regardless of whether they accomplish one or more of the aforementioned needs.
SUMMARY OF THE INVENTION
One embodiment of the invention relates to a computer-implemented method for generating a hierarchical set of certifier nodes for a public key infrastructure within an ad-hoc network. The method includes determining at least one potential certifier node that is eligible to become a new certifier node from a set of nodes in an ad-hoc network, creating the new certifier node from the at least one potential certifier node based on a selection criteria, and creating a parent-child relationship with the new certifier node.
Another embodiment of the invention relates to a system for generating a hierarchical set of certifier nodes for a public key infrastructure within an ad-hoc network. The system includes at least one certifier node that includes a computer implemented application configured to determine at least one potential certifier node that is eligible to become a new certifier node from a set of nodes in an ad-hoc network, create the new certifier node from the at least one potential certifier node based on a selection criteria, and create a parent-child relationship with the new certifier node.
Yet another embodiment of the invention relates to a program product for generating a hierarchical set of certifier nodes for a public key infrastructure within an ad-hoc network. The program product includes machine-readable program code for causing, when executed, one or more machines to perform a series of method steps. The method steps include determining at least one potential certifier node that is eligible to become a new certifier node from a set of nodes in an ad-hoc network, creating the new certifier node from the at least one potential certifier node based on a selection criteria, and creating a parent-child relationship with the new certifier node.
Alternative examples of other exemplary embodiments are also provided which relate to other features and combinations of features as may be generally recited in the claims.



BRIEF DESCRIPTION OF THE DRAWINGS
The invention will become more fully understood from the following detailed description, taken in conjunction with the accompanying drawings, wherein like reference numerals refer to like elements, in which:
FIG. 1 is a block diagram illustrating a simple ad-hoc network, according to an exemplary embodiment;
FIG. 2 is a flowchart illustrating a method for generating a hierarchical set of certifiers nodes for a public key infrastructure within an ad-hoc network, according to an exemplary embodiment; and
FIG. 3 is a flowchart illustrating a method for maintaining and distributing revocation information in an ad-hoc network, according to an exemplary embodiment.



DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
Before describing in detail the particular improved system and method, it may be observed that the invention includes, but is not limited to, a novel structural combination of conventional data/signal processing components and communications circuits, and not in the particular detailed configurations thereof. Accordingly, the structure, methods, functions, control, and arrangement of conventional components and circuits have, for the most part, been illustrated in the drawings by readily understandable block representations and schematic diagrams, in order not to obscure the disclosure with structural details which will be readily apparent to those skilled in the art, having the benefit of the description herein. Further, the invention is not limited to the particular embodiment depicted in the exemplary diagrams, but may be construed in accordance with the language in the claims.
Referring now to FIG. 1, a block diagram illustrating a simple ad-hoc network 100 is shown, according to an exemplary embodiment. Network 100 includes a first node 111, a second node 112, a third node 113, a fourth node 114, a fifth node 115, and a sixth node 116. Each node in the ad-hoc network may be one or more computing devices configured to communicate over the network. Each node further has a unique node id associated with it.
Embodiments of the present invention may be practiced in a networked environment using logical connections to one or more remote computing systems having processors. Logical connections may include a local area network (LAN) and a wide area network (WAN) that are presented here by way of example and not limitation. Such networking environments are commonplace in office-wide or enterprise-wide computer networks, intranets and the Internet and may use a wide variety of different communication protocols. Those skilled in the art will appreciate that such network computing environments will typically encompass many types of computer system configurations, including personal computers, hand-held devices, multi-processor systems, microprocessor-based or programmable consumer electronics, network PC's, minicomputers, mainframe computers, and the like. Embodiments of the invention may also be practiced in distributed computing environments where tasks are performed by local and remote processing devices that are linked (either by hardwired links, wireless links or by a combination of hardwired and wireless links) through a communications network. In a distributed computing environment, program modules may be located in both local and remote memory storage devices.
According to an exemplary embodiment, network 100 may be divisible into a series of network certifier regions. Each network certifier region may be any set of nodes selected from all available nodes. For example, referring to FIG. 1, a first certifier region may include nodes 111-113 and a second certifier region may include node 114-116. The set of nodes may include all of the nodes in the ad-hoc network. The selection criteria may be defined based on any information associated with the nodes or the network. Exemplary selection criteria may include network topology, network traffic, node function, node type, predicted traffic, network address, etc.
A network certifier region may be dynamically implemented within the ad-hoc network. Each node within the network certifier region may be configured to implement a network certifier region selection algorithm based on the selection criteria defining the neighborhoods. The algorithm may be implemented based on one or more than one of the selection criteria. For example, network certifier regions may be defined based on a combination of node function and network traffic. Each node may be configured to execute the network certifier region selection algorithm based on an elapsed period and/or based on the occurrence of an event such as addition of a new node, departure of a node, a change in network traffic loads, changes in tactical needs, etc.
One type of certifier region may be a network neighborhood that includes a subset of the nodes in the ad-hoc network. A neighborhood may be defined as all of the nodes within a predetermined number of hops from a given node. A hop is a direct connection between nodes that does not require messages pass through an intermediary node. Accordingly, in a 1-hop neighborhood, every node within the neighborhood is within one hop of any other node in the neighborhood. A 1-hop neighborhood for a given node includes all nodes that are within one hop of the given node. Certifier regions may alternatively be defined according to any other criteria such as a subnet in a fixed network, nodes with a certain role or type, etc.
Referring now to FIG. 2, a flowchart 200 illustrating a method for generating a hierarchical set of certifiers nodes for a public key infrastructure within an ad-hoc network is shown, according to an exemplary embodiment. After the selection criteria is selected for ad-hoc network 100, each node will execute the network certifier region selection algorithm to partition the nodes into the network certifier regions in a step 210. During partitioning, every node is partitioned into at least one certifier region. Execution of the network certifier region selection algorithm may be performed independently by each node, for example, where the selection algorithm is a node function selection algorithm, or may require intercommunication between nodes, for example, where the selection algorithm is a network traffic selection algorithm.
After nodes have been divided into network certifier regions, a determination must be made whether every network certifier region includes at least one certifier node in a step 220. The determination may be made by a root certifier node, made individually by potential certifier nodes, collectively by the certifier nodes, etc. The determination may be made based on any type of selection algorithm using any type of information available to the network nodes such as node topology, network resources, network traffic patterns, etc.
A certifier node is an entity which issues digital certificates for use by other nodes. A digital certificate uses a digital signature to bind together a public key with an identity—information such as the name of a person or an organization, their address, and so forth. The certificate can be used to verify that a public key belongs to an individual. A certifier node will issue a public key certificate which states that the certifier node attests that the public key contained in the certificate belongs to the person, organization, server, or other entity noted in the certificate. A certifier “signs” the certificate such that other nodes can examine the signature for validity.
If a network certifier region does not include a certifier node, a certifier node may be created from among the nodes in the network certifier region. Although all of the nodes may serve as certifiers, the eligibility of nodes to act as certifiers, hereinafter potential certifier nodes, is determined by policy. This potential is switched on only by existing certifiers through an update to the certificate of the newly designated potential certifier node. Potential certifier nodes within the certifier region are identified in a step 230.
After a determination has been made of the potential certifier nodes within a network certifier region, a certifier selection algorithm may be executed to select a certifier from among eligible nodes in a step 240. The certifier selection algorithm may select the certifier node based on network characteristics, potential node characteristics, or any other desired characteristic. Although at least one certifier node should be included within each network certifier region.
Upon creation, the certifier node that spawned the newly created certifier may further create a parent child relationship between the certifier node and the newly created certifier node in a step 250. The parent child relation may be created by updating the digital certificates of both the certifier node, to indicate a parent node status, and the newly created certifier node, to indicate a child node status.
The process of creating additional child nodes by a parent node may be iteratively performed as needed to create a hierarchy of certifier nodes defined by a series of parent child relationships. The hierarchical information may be stored at each certifier node. The hierarchical information may include information regarding all or any subset of the hierarchy information. For example, a certifier node may be configured to only maintain hierarchy information just for that node, i.e., related to its own parent child relationships, hierarchy information for the node's neighborhood, hierarchy information for an entire network, etc. By maintaining this information, the hierarchical structure becomes robust, even though it is not created or maintained by a root certifier.
Each newly created child certifier node may be granted up to all of the powers that are granted to the parent certifier node. Accordingly, the child certifier node may be granted less than all of the powers of the parent. For example, a parent certifier node may switch on a potential certifier node to create a certifier node, but may wish to limit the ability of the child node to switch on other certifier nodes. Accordingly, that power may be withheld from the child certifier node. The powers that are granted to a child certifier node may be defined in an update to the digital certificate of the child node in a step 260.
Advantageously, implementation of the certifier selection algorithm can greater increase the robustness of an ad-hoc network without requiring excessive redundant resources. Where the certifier nodes are created dynamically allocating memory and network bandwidth where needed, the ad-hoc network may be implemented with less consumption of resources and reduced buffer sizes.
Referring now to FIG. 3, a flowchart 300 illustrating a method for maintaining and distributing revocation information in an ad-hoc network is shown, according to an exemplary embodiment. Each node within the ad-hoc network may be configured to maintain revocation information. The revocation information may include all or a subset of the complete revocation information. Revocation information is received by a node in a step 310. The revocation information is processed by the node to determine how the information is used for maintenance of node revocation information and for distribution to other nodes. Maintaining and distributing revocation information may include distributing at least three different types of revocation messages. Although these message type are discussed within the context of network 100 which includes a hierarchical structure, it should be understood that the message types may equally be used within the context of any ad-hoc network.
A first type of revocation message may include an individual revocation message. This type of revocation is generally distributed based on an event such as an indication that a certificate issued to a node is invalid or should be revoked. For example, a certifier authority node or other node may determine that a node has become corrupted and shouldn't be trusted. Accordingly, the certifier authority may disseminate an individual revocation message to all of the nodes indicate that the corrupted nodes certificate is revoked. For an individual node, reinstatement and/or new certificates are similarly handled by a single message. These individual revocation and/or reinstatement messages generally only contain information related to the single event.
A second type of revocation message may include a cumulative revocation message. The cumulative revocation distribution may be either event driven or period driven. For example, a new node entering the network may request a cumulative list to have a complete listing of the revocation information. Alternatively, the cumulative list may be distributed periodically, perhaps during a time when network utilization is traditionally low. A cumulative list may include all of the revocation information for all of the nodes in the ad-hoc network.
A third type of revocation message may include a periodic revocation message that is distributed based on some defined schedule. Periodic messages are generally transmitted on the defined scheduled to maintain the stability of the ad-hoc network. Periodic messages may also be used by nodes to determine whether they have missed any previous individual and/or periodic messages. For example, each individual and/or periodic may include a sequence number, further discussed below, that can be monitored by each node to recognize missed messages.
Periodic messages may include both periodic differential messages and periodic incremental messages. A periodic differential message contains all revocation/reinstatement information that has occurred since the previous cumulative message distribution. A periodic incremental message contains all revocation/reinstatement information that has occurred since the previous message distribution of any type: cumulative, differential or incremental. Accordingly, a periodic incremental message is an aggregation of individual revocation messages that is sent on a periodic basis.
Each type of revocation message may be configured to include a sequence number to ensure continuity of messages. Upon receipt of a revocation message in step 310, each node within an ad-hoc network may be configured to compare the sequence number of a received revocation message with an expected revocation sequence number in a step 320. If the number matches, the expected revocation sequence number can be incremented and the revocation message processed. If the sequence number is not the expected revocation sequence number, the node may request re-transmission of the missing revocation number.
The implementation of the sequence number may be dependent on the type of revocation message being received. For example, sequence numbers may be implemented separately for the individual revocation and periodic-differential list messages. Further, cumulative revocation messages may be configured to contain reference to the latest periodic-differential sequence number that the cumulative list covers.
According to an exemplary embodiment, the revocation messages may be distributed in a two-stage process. In a first inter-certifier stage, revocation messages may be distributed among the certifiers in all regions in a step 330. A certifier node that determines that a certificate revocation is needed distributes the certificate revocation information to all other certifier nodes using the certifier hierarchy tree discussed above with reference to FIG. 2. In other words, each certifier node distributes the revocation information to its parent certifier and to all its children certifiers. In the second, intra-region stage, revocation messages may be distributed to the nodes within a region served by each certifier node in a step 340. Each certifier node distributes the revocation information throughout its own neighborhood using a repeated unicast, limited broadcast or multicast algorithm as appropriate for the underlying data link layer. The nodes may be configured to ignore messages that are not sent by nodes with their region. For example, if a revocation message is received by a node A in region A from a node B, that is not in the same region A, the node A ignores the message and information. Node A should receive the information from another node within its own region, thus completing the intra-region distribution of the revocation information.
Although the above methods and exemplary networks described execution of method within the context of an ad-hoc network, it should be understood that the methods and examples are equally applicable within any sub-network within the ad-hoc network.
It may be noted that although the flow charts provided herein show a specific order of method steps, it is understood that the order of these steps may differ from what is depicted. Also two or more steps may be performed concurrently or with partial concurrence. Such variation will depend on the software and hardware systems chosen and on designer choice. It is understood that all such variations are within the scope of the invention. Likewise, software and web implementations of the present invention could be accomplished with standard programming techniques with rule based logic and logic to accomplish the various database searching steps, correlation steps, comparison steps and decision steps. It may also be noted that the word “component” as used herein and in the claims is intended to encompass implementations using one or more lines of software code, and/or hardware implementations, and/or equipment for receiving manual inputs.
Embodiments within the scope of the present invention include program products comprising machine-readable media for carrying or having machine-executable instructions or data structures stored thereon. Such machine-readable media can be any available media which can be accessed by a general purpose or special purpose computer or other machine with a processor. By way of example, such machine-readable media can comprise RAM, ROM, EPROM, EEPROM, CD-ROM or other optical disk storage, magnetic disk storage or other magnetic storage devices, or any other medium which ca be used to carry or stored desired program code in the form of machine-executable instructions or data structures and which can be accessed by a general purpose or special purpose computer or other machine with a processor. When information is transferred or provided over a network or another communications connection (either hardwired, wireless, or a combination of hardwired or wireless) to a machine, the machine properly views the connection as a machine-readable medium. Thus, any such a connection is properly termed machine-readable medium. Combinations of the above are also included within the scope of machine-readable media. Machine-executable instructions comprise, for example, instructions and data which cause a general purpose computer, special purpose computer, or special purpose processing machines to perform a certain function or group of functions.
Embodiments of the invention are described in the general context of method steps which may be implemented in one embodiment by a program product including machine-executable instructions, such as program code, for example in the form of program modules executed by machines in networked environments. Generally, program modules include routines, programs, objects, components, data structures, etc. that perform particular tasks or implement particular abstract data types. Machine-executable instructions, associated data structures, and program modules represent examples of program code for executing steps of the methods described herein. The particular sequence of such executable instructions or associated data structures represent examples of corresponding acts for implementing the functions described in such steps.
While the detailed drawings, specific examples, and particular formulations given described preferred and exemplary embodiments, they serve the purpose of illustration only. The inventions disclosed are not limited to the specific forms shown. For example, the methods may be performed in any of a variety of sequence of steps. The hardware and software configurations shown and described may differ depending on the chosen performance characteristics and physical characteristics of the computing devices. For example, the type of computing device, communication bus or processor used may differ. The systems and methods depicted and described are not limited to the precise details and conditions disclosed. Furthermore, other substitutions, modifications, changes, and omissions may be made in the design, operating conditions, and arrangement of the exemplary embodiment without departing from the scope of the invention as expressed in the appended claims.

## Claims

1. A computer-implemented method for generating a hierarchical set of certifier nodes for a public key infrastructure within the ad-hoc network, the method comprising:
determining at least one potential certifier node that is eligible to become a new certifier node from a set of nodes in an ad-hoc network;
creating the new certifier node from the at least one potential certifier node based on a selection criteria; and
creating a parent-child relationship with the new certifier node, wherein revocation messages are sent in a first stage and a second stage, wherein the first stage includes sending the revocation messages from a first certifier node of the certifier nodes to a parent node of the first certifier node and to all children nodes of the first certifier node, wherein the second stage includes sending the revocation messages from each certifier node in a region to each of the non-certifier nodes in the region.

2. The method of claim 1, wherein the at least one potential certifier node includes every node in the ad-hoc network.

3. The method of claim 1, wherein the at least one potential certifier node includes a subset of the nodes in the ad-hoc network.

4. The method of claim 1, further including creating a certifier region within the ad-hoc network, the certifier region include a set of nodes.

5. The method of claim 4, further including assigning the new certifier node to the created certifier region within the ad-hoc network.

6. The method of claim 5, wherein each certifier region includes at least one certifier node.

7. The method of claim 1, wherein applying a selection criteria to the potential certifier nodes includes determining current network conditions.

8. A system for generating a hierarchical set of certifier nodes for a public key infrastructure within an ad-hoc network, the system comprising:
at least one certifier node, wherein the at least one certifier node includes a computer implemented application configured to:
determine at least one potential certifier node that is eligible to become a new certifier nodes from a set of nodes in the ad-hoc network,
create the new certifier node from the at least one potential certifier node based on a selection criteria, and
create a parent-child relationship with the new certifier node, wherein revocation messages are sent in a first stage and a second stage, wherein the first stage includes sending the revocation messages from the at least one certifier node to a parent node and to all children nodes of the at least one certifier node, wherein the second stage includes sending the revocation messages from each certifier node in a region to each of the non-certifier nodes in the region.

9. The system of claim 8, wherein the at least one potential certifier node includes every node in the ad-hoc network.

10. The system of claim 8, wherein the at least one potential certifier node includes a subset of the nodes in the ad-hoc network.

11. The system of claim 8, further including creating a certifier region within the ad-hoc network, the certifier region include a set of nodes.

12. The system of claim 11, further including assigning the new certifier node to the created certifier region within the ad-hoc network.

13. The system of claim 12, wherein each certifier region includes at least one certifier node.

14. The system of claim 8, wherein applying a selection criteria to the potential certifier nodes includes determining current network conditions.

15. A program product for generating a hierarchical set of certifier nodes for a public key infrastructure within an ad-hoc network, comprising machine-readable program code stored on an apparatus configured as a computer readable medium for causing, when executed, one or more machines to perform the following method steps:
determine at least one potential certifier node that is eligible to become a new certifier node from a set of nodes in the ad-hoc network,
create the new certifier node from the at least one potential certifier node based on a selection criteria,
create a parent-child relationship with the new certifier node; and
send revocation messages in a first stage and a second stage, wherein the first stage includes sending the revocation messages from a first certifier node of the certifier nodes to a parent node of the first certifier node and to all children nodes of the first certifier node, wherein the second stage includes sending the revocation messages from each certifier node in a region to each of the non-certifier nodes in the region.

16. The program product of claim 15, wherein the at least one potential certifier node includes every node in the ad-hoc network.

17. The program product of claim 15, wherein the at least one potential certifier node includes a subset of the nodes in the ad-hoc network.

18. The program product of claim 15, further including creating a certifier region within the ad-hoc network, the certifier region include a set of nodes.

19. The program product of claim 18, further including assigning the new certifier node to the created certifier region within the ad-hoc network.

20. The program product of claim 19, wherein each certifier region includes at least one certifier node.