1. Field of the Invention
The present invention relates to a method and a Mobility Anchor Point for authenticating binding updates received at the Mobility Anchor Point from a Mobile Node in a mobile network.
2. Description of the Related Art
The following paragraphs introduce some concepts that are required to understand the problem addressed hereinbelow.
Internet Protocol version 6 (IPv6) addresses comprise 128 bits and are formed of eight (8) 16-bit elements. Many devices use unicast IPv6 addresses 100, as shown on
A Cryptographically Generated Address (CGA) is an IPv6 address for which the interface identifier 120 differs from any actual link-layer interface of the device, but is rather generated by computing a one-way hash function of a CGA public key of the device along with an auxiliary parameter such as, for instance, a random number.
A Crypto-based Identifier (CBID) is a 128-bit non routable identifier derived from hashing a public key of a device, and a 64-bit imprint, which may be, for example, a 64-bit random number. CBIDs are sometimes used in lieu of IPv6 addresses in some IPv6 messages, when no routing based on such addresses is needed.
Diffie-Hellman (DH) key exchange is a cryptographic protocol which allows two parties that have no prior knowledge of each other to jointly establish a shared secret key over an insecure communications channel, U.S. Pat. No. 4,200,770 (HELLMAN, DIFFIIE, MERKLE).
A problem that exists in packet-based mobile communication networks relates to a lack of authentication between Mobile Nodes (MN) and some elements of a local network serving the MNs. The lack of authentication may provide an opportunity for a malicious node to obtain service normally intended to a legitimate MN. This may be the case, for example, in Hierarchical Mobile IPv6 (HMIPv6) networks, which allow the establishment of sessions between MNs roaming within a local network with Correspondent Nodes (CN) located in external networks.
The MN 210 may freely move around, or roam, between the coverage of the various AP 220 and obtain service therefrom. When the MN 210 connects with one of the AP 220, called serving AP, through a radio link, the MN 210 generally select the one AP 220 that is in closest proximity. In order to communicate within the HMIPv6 network 200, the MN 210 obtains a network prefix from the AR 230 connected to the serving AP 220. By use of the network prefix of the AR 230, the MN 210 configures an IPv6 address called Local Care-of Address (LCoA), also sometimes called on-link Care-of Address. The LCoA is used between the MN 210 and the AR 230 for addressing the MN 210. The LCoA may be CGA-generated. In order to communicate within the HMIPv6 network 200 beyond the AR 230, the MN 210 configures a Regional Care-of Address (RCoA), which is also an IPv6 address, by use of a network prefix of the MAP 250. The RCoA may also be CGA-generated.
In order to ensure that the MN 210 may communicate within the HMIPv6 network 200, it needs to request that the MAP binds the LCoA and the RCoA. Binding these two addresses implies that the MAP stores both addresses in an internal table entry, called Binding Cache Entry (BCE), and uses this table to associate regional and local addresses. In the event that the MN 210 moves from a first AR 230 to a second AR 230, it configures a new LCoA by use of a network prefix of the second AR 230. It then needs to request that the MAP binds the new LCoA with the RCoA already stored in the BCE.
A malicious node located within the HMIPv6 network 200 might attempt to establish another, invalid relationship between the RCoA and an illegitimate LCoA.
The malicious node could in this way steal information intended for the MN 210, or simply get access to service normally paid for by a user of the MN 210. There would thus be clear advantages of having a method and a MAP for securely authenticating binding update requests received at the Mobility Anchor Point from a Mobile Node in a mobile network.
It is therefore a broad object of this invention to provide a method and a Mobility Anchor Point (MAP) for authenticating updates received from a Mobile Node (MN) at the MAP in a local network.
A first aspect of the present invention is directed to a method for authenticating a binding update received from a MN at a MAP. The MAP receives from the local network, for example from an Access Router (AR), a first message, named a pre-binding, comprising a public key of the MN (MNK+), a Local Care-of Address (LCoA) of the MN and a Crypto-Based Identifier (CBID) of the MN. The MAP creates an entry in an internal table to store information elements received in the first message, wherein the LCoA may be used as a pointer to locate the entry within the table. The MAP then receives a second message, named an update, received directly from the MN, and comprising a Regional Care-of Address (RCoA) of the MN along with the LCoA. The MAP locates the table entry by use of the LCoA. It then hashes an interface identifier, which forms a part of the RCoA, with the MNK+. It then compares a result of the hashing with the CBID. If the comparison fails, the second message is ignored. If the comparison is successful, the update is authenticated. The MAP stores the RCoA in the table entry, alongside with the LCoA, thereby binding the LCoA with the RCoA.
A second aspect of the present invention is directed to a variant of the method described hereinabove, wherein the MNK+, received in the first message, is used as a pointer to locate the table entry in the MAP. The first message also comprises a Key secret (Ks), which is stored in the table entry. The second message comprises the MNK+, and both the LCoA and the RCoA. The MAP locates the table entry by use of the MNK+received in the second message. The MAP hashes the Ks with the MNK+.
It then compares a result of the hashing with interface identifiers forming parts of the LCoA and of the RCoA. If the comparison is successful, the MAP binds the LCoA with the RCoA in its table entry.
A third aspect of the present invention is directed to an optional extension of the methods described hereinabove, wherein, following binding of the LCoA with the RCoA, the MAP generates a Security Association Key (SAK) for the MN. The MAP then sends to the MN a Hint based on the SAK, to enable the MN to generate its own copy of the SAK. Subsequent messages exchanged between the MN and the MAP are authenticated by use of the SAK.
A fourth aspect of the invention is directed to the methods described hereinabove, wherein defining the Hint comprises encrypting the SAK.
A fifth aspect of the invention is directed to an alternative aspect of the methods described hereinabove, wherein the second message further comprises a Diffie-Hellman (DH) public value of the MN (DHMN+), the MAP having both a DH public value (DHMAP+) and a DH private value (DHMAP−), the SAK being computed in the MAP using the DHMN+ and the DHMAP−, and wherein defining the Hint comprises defining the DHMAP+.
A sixth aspect of the present invention is directed to a MAP for authenticating binding updates received from a MN, comprising an input port for receiving messages, a memory for storing binding table entries, a processor for executing hashing and matching algorithms, and a logic unit for deciding on the acceptance or refusal of binding updates messages.
For a more detailed understanding of the invention, for further objects and advantages thereof, reference can now be made to the following description, taken in conjunction with the accompanying drawings, in which:
a, 3b and 3c show a sequence diagram of a first exemplary method for authenticating an update message;
a, 4b and 4c show a sequence diagram of a second exemplary method for authenticating an update message; and
The innovative teachings of the present invention will be described with particular reference to various exemplary uses and aspects of the preferred embodiments. However, it should be understood that these embodiments provide only a few examples of the many advantageous uses of the innovative teachings of the invention. In general, statements made in the specification of the present application do not necessarily limit any of the various claimed aspects of the present invention. Moreover, some statements may apply to some inventive features but not to others. In the description of the figures, like numerals represent like elements of the invention.
The present invention provides a method and a Mobility Anchor Point (MAP) for authenticating a binding update request received from a Mobile Node (MN). In order for the MN to establish a session with a far-end Correspondent Node (CN), it first needs to access a local network such as the one shown on
Optionally, the present invention provides for the establishment of a bidirectional security association between the MN and the MAP. In this case, messages exchanged between the two nodes after the first binding event can be securely authenticated by use of a Security Association Key (SAK) known to no other party in the network. More specifically, messages such as subsequent update messages, used by the MN to request that the MAP binds the new LCoA with the RCoA, are advantageously authenticated by use of the SAK. Under this option, the MAP generates the SAK after binding the LCoA and the RCoA. The SAK is preferably not sent to the MN as is, without protection, in order to prevent any malicious node from eavesdropping on this information. Instead, the MAP defines a Hint, which comprises information that is sufficient for the MN to compute a copy of the SAK. The Hint is sent towards the MN in the acknowledgement message. The MN may then compute its own copy of the SAK. Thereafter, both the MN and the MAP may use the SAK to authenticate further messages.
In the context of the present invention, the MN may comprise a mobile cellular telephone, a personal assistant, a laptop computer and the like. The MN may receive service from more than one AR, and thereby have more than one LCoA and more than one RCoA. The MAP may be implemented on any general computer platform, on a router platform, or on any suitable platform capable of Internet communication. The local network may comprise one or more MAPs, each MAP being capable of binding a LCoA and RCoA pair for the MN. The AR is generally a generic router connected directly to an AP. The AP and the AR are oftentimes combined in a single unit. The MNs and the APs may connect through a cellular link, a wireless local area network link, a cable link, and the like.
An aspect of the preferred embodiment of the present invention will now be described by reference to
CBID=first 128 bits of(hash(MNK+,64-bit imprint)) [1]
where:
hash is a one-way hashing function; and
64-bit imprint is any 64-bit number selected by the MN 210.
In this exemplary method, the MN 210 uses the interface identifier of the RCoA as the 64-bit imprint for generation of the CBID.
At step 308, the MN 210 sends a Route Solicitation message (RtSol) towards the AR 230, the RtSol comprising the MNK+, the CBID and the LCoA. At step 310, the AR 230 replies to the RtSol with a RtAdv, preferably sent in unicast mode, sent towards the MN 210. The MN 230 verifies the validity of this RtAdv at step 312, and ignores the message at step 314 if the message is found to be invalid. The RtAdv is verified by the MN 210, for example, by authentication of a signature of the AR 230 included in the RtAdv. Responsive to receiving the RtSol, the AR 230 also sends at step 316 a first message towards the MAP 250, called a pre-binding message, which may for example be a Pre-Binding Update (PBU) message. The pre-binding message comprises the MNK+, the LCoA and the CBID received from the MN 210. At step 318, the MAP 250 creates an internal table entry, called a Binding Cache Entry (BCE), and stores the MNK+, the LCoA and the CBID. In the BCE, the LCoA can be used as a first pointer to locate this specific entry within the internal table. The CBID is stored as a first comparison data that may be used later to verify the authenticity of subsequent messages received at the MAP 250 on behalf of the MN 210. At step 320, responsive to having received a valid RtAdv, the MN 210 sends an update message, for example a Binding Update (BU) message or a Local Binding Update (LBU) message, towards the MAP 250. By sending the update message, the MN 210 requests the MAP 250 to bind the LCoA and the RCoA, which are both included in the update message. Optionally, if a Diffie-Hellman (DH) procedure is supported by both the MN 210 and the MAP 250, the update message may also comprise a DH public value of the MN (DHMN+). At step 322, the MAP 250 locates the relevant BCE in its table, using the LCoA received in the update message as a second pointer. It thus finds the BCE comprising a LCoA value equal to the one received in the update message. At step 324, the MAP 250 authenticates the update message, using the interface identifier of the RCoA as a second comparison data. To authenticate the update message, the MAP 250 hashes the interface identifier of the RCoA with the MNK+, and verifies at step 326 that the result matches the CBID already stored in the BCE. Because the MN 210 had earlier used the interface identifier of the RCoA as the 64-bit imprint for generation of the CBID, at step 306, a positive match is normally found at step 326. If however a malicious node has sent an invalid update message, no match is found and the invalid update message is discarded at step 328. At step 330, the MAP 250 binds the LCoA and the RCoA by storing the RCoA in the same BCE. The MAP 250 preferably confirms to the MN 210 that the binding was accepted by sending an acknowledgement message, such as a Binding Acknowledgement (BA) message, at step 336.
Rather than sending the acknowledgement message immediately following the binding event of step 330, the method may optionally continue at step 332, where the MAP 250 generates a Security Association Key (SAK), sometimes also called a shared secret. Various manners of generating the SAK are well-known in the art; the SAK should preferably be of sufficient length to enable message encryption, for example 160 bits long, and be difficult to detect. In a variant of the preferred embodiment, the MAP 250 may generate the SAK using the DHMN+ and a DH private value of the MAP (DHMAP−). Because the SAK should remain known only to the MAP 250 and to the MN 210, the MAP 250 preferably does not send the SAK in any message towards the MN 210. Instead, it may send a Hint, that is, information that is sufficient for the MN 210 to compute a copy of the SAK. In an exemplary embodiment of the present invention, the Hint may be calculated by the MAP 250 by encrypting the SAK with the MNK+, at step 334. If the DH procedure is supported, the Hint may alternatively be set equal to a DH public value of the MAP (DHMAP+). The MAP 250 sends the acknowledgement message, comprising the Hint, towards the MN 210, at step 336. At step 338, the MN 210 decrypts the Hint. Decrypting may be effectuated by use of a private key of the MN (MNK−). If the DH procedure is supported, meaning that the Hint is equal to the DHMAP+, decrypting the Hint comprises calculating the SAK by use of the DHMAP+ and of a DH private value of the MN (DHMN−). At step 340, the MAP 250 and the MN 210 use the SAK to authenticate subsequent messages, such as subsequent update messages, BU messages, LBU messages, BA messages, and the like.
Another aspect of the preferred embodiment of the present invention will now be described by reference to
Having sent the RtAdv at step 410, the AR 230 also sends a pre-binding message, which may be for example a PBU message, at step 416, towards the MAP 250. The pre-binding message comprises the MNK+received from the MN 210 as well as the Ks. At step 418, the MAP 250 creates a BCE, and stores the MNK+ and the Ks. In the BCE, the MNK+can be used as a first pointer to locate this specific entry within the internal table. The Ks is stored as a first comparison data that may be used later to verify the authenticity of subsequent messages received at the MAP 250 on behalf of the MN 210. At step 420, after having generated the LCoA and the RCoA, the MN 210 sends an update message, for example a BU message or a LBU message, towards the MAP 250. By sending the update message, the MN 210 requests the MAP 250 to bind the LCoA and the RCoA, which are both included in the update message along with the MNK+. At step 422, the MAP 250 locates the relevant BCE in its table, using the MNK+received in the update message as a second pointer. It thus finds the BCE comprising a MNK+value equal to the one received in the update message. At step 424, the MAP 250 authenticates the update message, using the interface identifiers of the LCoA and of the RCoA as a second comparison data. The MAP 250 hashes the Ks with the MNK+, and verifies at step 426 that the result matches the interface identifiers of the LCoA and of the RCoA. Because the MN 210 had earlier used the Ks as the 64-bit imprint for generation of the CBID at step 414, and in turn used the CBID to define the interface identifiers at step 415, a positive match is normally found at step 426. If however a malicious node has sent an invalid update message, no match is found and the invalid update message is discarded at step 428. At step 430, the MAP 250 binds the LCoA and the RCoA by storing these two addresses in the BCE. The MAP 250 preferably confirms to the MN 210 that the binding was accepted by sending an acknowledgement message, for example a BA message, at step 436.
Rather than sending the acknowledgement message immediately following the binding event of step 430, the method may optionally continue at step 432, where the MAP 250 generates a SAK. The MAP 250 generates a Hint, which may be used by the MN 210 to compute a copy of the SAK, by encrypting the SAK with the Ks, at step 434. The MAP 250 sends the acknowledgement message, comprising the Hint, towards the MN 210, at step 436. At step 438, the MN 210 decrypts the Hint by use of the Ks. At step 440, the MAP 250 and the MN 210 use the SAK to authenticate subsequent messages, such as subsequent BU, LBU and BA messages.
An exemplary construction of a Mobility Anchor Point (MAP) built according to the present invention, capable of authenticating updates from MNs, and used in the preceding figures, will now be described by reference to
The Memory 510 comprises a table with several table entries 512, which may be BCEs. At least one table entry 512 is allocated for each MN 210 for which binding of a LCoA with a RCoA is requested. In each table entry 512, the Memory 510 stores a first pointer, a first comparison data, a MNK+, the LCoA, and the RCoA. The Memory is capable of scanning through its table to locate a specific table entry by use of a value equal to the first pointer. The Memory 510 may optionally comprise DH values of the MAP 250 itself called DHMAP+ and DHMAP−, and further store a DHMN+ and a SAK in the BCE. Depending on the alternative method used to authenticate the MN 210, the first pointer may consist of, for example, the LCoA or the MNK+. The first comparison data may comprise, for example, a CBID or a Ks.
The Input Port 540 receives pre-binding messages from a local network, generally from ARs 230, and update messages from the MNs 210. The Output Port 550 may be used to send acknowledgements towards the MNs 210. The Input Port 540 and Output Port 550 may also receive and send numerous other messages within the local HMIPv6 network as well as through external networks 260, as is well known in the art.
The Processor 520 comprises a hashing mechanism 522 for hashing a first data with the MNK+ and for producing a result, and a matching mechanism 524 for comparing the result of hashing with a second data and for producing a matching outcome. The Processor 520 optionally comprises a SAK generation algorithm 526, and an encryption algorithm 528 for calculating a Hint based on the SAK. The Processor 520 also supports other functions related to routing and addressing, as are well-known in the art.
The Logic Unit 530 takes decisions regarding the authenticity of update messages, based on matching outcomes received from the Processor 520. It also decides when to create table entries 512 in the Memory 510, and orders the Memory 510 to store both the RCoA with the LCoA of a same MN in a same table entry 512, thereby binding these two addresses.
When the Input Port 540 receives a pre-binding message, the Logic Unit 530 requests that the Memory 510 allocates a table entry 512 for the MN 210 identified in the pre-binding message. Information elements received in the pre-binding message, comprising at least the first pointer, the first comparison data and the MNK+, are stored in the table entry 512. The Input Port 540 later receives an update message comprising at least a second pointer, a second comparison data, the LCoA and the RCoA. The update message may further comprise the MNK+, or a DHMN+, or both. The Logic Unit 530 requests the Memory 510 to scan through its table entries 512 to find the proper table entry 512 comprising the first pointer equal to the second pointer. When the proper table entry 512 for the MN 210 is found, the Logic Unit 530 requests that the Processor 520 hashes one of the first or second comparison data with the MNK+. In one embodiment, the first comparison data is the CBID and the second comparison data is an interface identifier of the RCoA; the Processor 520 hashes the interface identifier of the RCoA with the MNK+ and produces a result of the hashing. It then checks for a match between the result and the CBID. In an alternate embodiment, the first comparison data is the Ks and the second comparison data comprises interface identifiers of both the RCoA and LCoA; the Processor 520 hashes the first 64 bits of the Ks with the MNK+ and produces a result of the hashing. It then checks for a match between the result and the interface identifiers of the RCoA and LCoA. In either case, the Logic Unit 530 considers the matching outcome provided by the Processor 520. If the matching outcome is negative, the update message was from a malicious node, and the Logic Unit 530 simply discards the message. If the matching outcome is positive, the update message is successfully authenticated and the Logic Unit 530 requests that the Memory 510 stores both the RCoA and the LCoA in the table entry 512. In a preferred embodiment, the Logic Unit 530 requests the Output Port 550 to send an acknowledgement message towards the MN 210.
Optionally, after having requested the Memory 510 to store both the RCoA and the LCoA in the table entry 512, the Logic Unit 530 may request that the Processor 520 generates the SAK and the Hint. The Processor 520 may generate the SAK using any well-known mechanism for generating shared secrets, and then use the MNK+ to further encrypt the SAK, thereby producing the Hint. Alternatively, the Processor 520 may generate the SAK from the DHMN+ with the DHMAP−, and set the Hint equal to the DHMAP+. In these alternative options, the Logic Unit 530 requests the Memory 510 to store the SAK in the table entry 512, and then requests the Output Port 550 to send the acknowledgement towards the MN 210, the acknowledgement comprising the Hint.
Although several aspects of the preferred embodiments of the method and of the Mobility Anchor Point of the present invention have been illustrated in the accompanying Drawings and described in the foregoing Detailed Description, it will be understood that the invention is not limited to the embodiments disclosed, but is capable of numerous rearrangements, modifications and substitutions without departing from the spirit of the invention as set forth and defined by the following claims.
| Filing Document | Filing Date | Country | Kind | 371c Date |
|---|---|---|---|---|
| PCT/IB2006/053138 | 9/6/2006 | WO | 00 | 2/27/2008 |
| Number | Date | Country | |
|---|---|---|---|
| 60718325 | Sep 2005 | US | |
| 60730826 | Oct 2005 | US | |
| 60778903 | Mar 2006 | US |