![]() |
Secure communication with mobile hostsNo:6507908 -Application no:09262191 -Filed date:1999-03-04 -Issue date:2003-01-14Abstract:A method for secure data communication with a mobile machine in which a data packet is received from the mobile machine having a particular network address. A pool of secure addresses is established and a data structure is created to hold address translation associations. Each association is between a particular network address and a particular one of the secure addresses. If the received data packet is a secure data packet an association between the received data packet's network address and a secure address in the data structure is identified and the data packet's network address is translated to the associated secure address before forwarding the data packet on to higher network protocol layers. When the received data packet is not secure it is passed it on without address translation to the higher network protocol layers. For outgoing packets addressed to a secure address, the secure address is translated to a real network address (e.g., IPv4 or IPv6 addresses) and the packet payload is encrypted. Outgoing packets that are addressed directly to real network addresses pass through in a conventional manner. US Classes:Inventors:Agents:Assignees:Claims:I claim: 1. A method for secure data communication with a mobile machine comprising the steps of: establishing a pool of secure addresses; receiving a data packet from the mobile machine, the data including a particular network address for the mobile machine; creating a data structure holding address translation associations wherein each association is between a particular network address and a particular one of the secure addresses; determining if the received data packet is a secure data packet; when the received data packet is a secure packet, identifying an association between the received data packet's network address and a secure address in the data structure; and translating the data packet's network address to the associated secure address before forwarding the data packet on to higher network protocol layers, wherein when the received data packet from the particular network address is not secure, passing it on without address translation to higher network protocol layers and terminating address translation for the particular network address after a preselected time interval. 2. The method of claim 1 further comprising: receiving a subsequent data packet from the mobile machine, the subsequent data packet including the particular network address; determining if the subsequent data packet a secure packet; and when the subsequent data packet is a secure packet, resetting a timer that measures time during the preselected time interval. 3. The method of claim 1 wherein the step of identifying an association between the received data packet's network address and a secure address in the data structure further comprises: examining the data structure to determine if an association for the particular network address is already stored in the data structure. 4. A method for secure data communication with a mobile machine comprising the steps of: establishing a pool of secure addresses; receiving a data packet from the mobile machine, the data including a particular network address for the mobile machine; creating a data structure holding address translation associations wherein each association is between a particular network address and a particular one of the secure addresses; determining if the received data packet is a secure data packet; when the received data packet is a secure packet, identifying an association between the received data packet's network address and a secure address in the data structure, determining a public key for the received data packet, determining whether the public key is already associated with one of the secure addresses and, if so, using the already assigned secure address to create an association in the data structure, and when the public key is not associated with one of the secure addresses assigning one of the secure addresses from the pool of secure addresses to create an association in the data structure; and translating the data packet's network address to the associated secure address before forwarding the data packet on to higher network protocol layers. 5. The method of claim 4 wherein the step of determining a public key comprises requesting the at least one key from a local database. 6. The method of claim 4 wherein the step of determining a public key comprises requesting the public key using certificate discover protocol (CDP). 7. The method of claim 4 further comprising a step of verifying that the public key is not revoked and not invalidated. 8. The method of claim 4 wherein when the public key is an X.509 key certificate. 9. A method for secure data communication with a mobile machine comprising the steps of: establishing a pool of secure addresses; receiving a data packet from the mobile machine, the data including a particular network address for the mobile machine; creating a data structure holding address translation associations wherein each association is between a particular network address and a particular one of the secure addresses; determining if the received data packet is a secure data packet; when the received data packet is a secure packet, identifying an association between the received data packet's network address and a secure address in the data structure; translating the data packet's network address to the associated secure address before forwarding the data packet on to higher network protocol layers; and discarding all received data packets that contain a particular network address that is one of the pool of secure addresses. 10. A system for secure data communications with a mobile machine comprising: a gateway machine having a secure port for coupling to a secure network and an insecure port for coupling to an insecure network; a data structure within the gateway machine holding address translation associations wherein each association is between a particular network address and a particular secure addresses; an address translation device within the gateway machine coupled to the data structure and operative to translate between a secure address and its associated network address and between a network address and its associated secure address; an analysis device in the gateway machine for analyzing data packets received from the insecure network to determine whether the received data packet is secure and operative to enable the address translation device when the receive data packet is secure; and means for measuring elapsed time since a packet is received in the clear, wherein the analysis device is coupled to the address translation device to invalidate a selected address translation association in the data structure at a preselected time after a packet is received in the clear from the network address associated with the address translation association. 11. The system of claim 10 wherein a timer that measures time during the preselected time interval is reset upon receiving a secure packet. 12. A system for secure data communications with a mobile machine comprising: a gateway machine having a secure port for coupling to a secure network and an insecure port for coupling to an insecure network; a data structure within the gateway machine holding address translation associations wherein each association is between a particular network address and a particular secure addresses; an address translation device within the gateway machine coupled to the data structure and operative to translate between a secure address and its associated network address and between a network address and its associated secure address; and an analysis device in the gateway machine for analyzing data packets received from the insecure network to determine whether the received data packet is secure and operative to enable the address translation device when the receive data packet is secure, wherein each address translation association in the data structure corresponds to a network address from which no data packet has been sent in the clear since receiving a secure data packet. 13. A system for secure data communications with a mobile machine comprising: a gateway machine having a secure port for coupling to a secure network and an insecure port for coupling to an insecure network; a data structure within the gateway machine holding address translation associations wherein each association is between a particular network address and a particular secure addresses; an address translation device within the gateway machine coupled to the data structure and operative to translate between a secure address and its associated network address and between a network address and its associated secure address; and an analysis device in the gateway machine for analyzing data packets received from the insecure network to determine whether the received data packet is secure and operative to enable the address translation device when the receive data packet is secure, wherein address translation associations in the data structure are dynamically updated in response to receiving a data packet from a network address that has an entry in the data structure but includes new key information. 14. A computer implemented system for secure data communication with a mobile machine operable on a computer system having a processor and data storage devices coupled to the processor, the system comprising: computer implemented code devices executing on the processor and configured to cause the computer to define a pool of secure addresses; computer implemented code devices executing on the processor and configured to cause the computer to receive a data packet from the mobile machine, the data including a particular network address for the mobile machine; computer implemented code devices executing on the processor and configured to cause the computer to create a data structure holding address translation associations wherein each association is between a particular network address and a particular one of the secure addresses; computer implemented code devices executing on the processor and configured to cause the computer to determine if the received data packet is a secure data packet; computer implemented code devices executing on the processor and configured to cause the computer to identify an association between the received data packet's network address and a secure address in the data structure when the received data packet is a secure packet; computer implemented code devices executing on the processor and configured to cause the computer to translate the data packet's network address to the associated secure address before forwarding the data packet on to higher network protocol layers; computer implemented code devices executing on the processor and configured to cause the computer to respond to receiving a data packet from the particular network address that is not secure by starting a timer measuring time elapsed since the insecure data packet was received; and computer implemented code devices executing on the processor and configured to cause the computer to terminate address translation for the particular network address after a preselected time interval as measured by the timer. 15. The system of claim 14 further comprising: computer implemented code devices executing on the processor and configured to cause the computer to pass the data packet on without address translation to higher network protocol layers when the received data packet from the particular network address is not secure. 16. The system of claim 15 further comprising: computer implemented code devices executing on the processor and configured to cause the computer to receive a subsequent data packet from the mobile machine, the subsequent data packet including the particular network address; computer implemented code devices executing on the processor and configured to cause the computer to determine if the subsequent data packet a secure packet; and computer implemented code devices executing on the processor and configured to cause the computer to reset a timer when the subsequent data packet is a secure packet. 17. The system of claim 14 wherein the computer implemented code devices that identify whether an association between the received data packet's network address and a secure address in the data structure further comprise: computer implemented code devices executing on the processor and configured to cause the computer to examine the data structure to determine if an association for the particular network address is already stored in the data structure. 18. The system of claim 14 wherein the computer implemented code devices that identify an association between the received data packet's network address and a secure address in the data structure further comprise: computer implemented code devices executing on the processor and configured to cause the computer to determine a public key for the received data packet; and computer implemented code devices executing on the processor and configured to cause the computer to determine whether the public key is already associated with one of the secure addresses and, if so, use the already assigned secure address to create an association in the data structure. 19. The system of claim 14 wherein the computer implemented code devices that identify an association between the received data packet's network address and a secure address in the data structure further comprise: computer implemented code devices executing on the processor and configured to cause the computer to verify that the public key is not revoked and not invalidated. 20. A computer implemented system for secure data communication with a mobile machine operable on a computer system having a processor and data storage devices coupled to the processor, the system comprising: computer implemented code devices executing on the processor and configured to cause the computer to define a pool of secure addresses; computer implemented code devices executing on the processor and configured to cause the computer to receive a data packet from the mobile machine, the data including a particular network address for the mobile machine; computer implemented code devices executing on the processor and configured to cause the computer to create a data structure holding address translation associations wherein each association is between a particular network address and a particular one of the secure addresses; computer implemented code devices executing on the processor and configured to cause the computer to determine if the received data packet is a secure data packet; computer implemented code devices executing on the processor and configured to cause the computer to identify an association between the received data packet's network address and a secure address in the data structure when the received data packet is a secure packet; computer implemented code devices executing on the processor and configured to cause the computer to translate the data packet's network address to the associated secure address before forwarding the data packet on to higher network protocol layers; and computer implemented code devices executing on the processor and configured to cause the computer to assign one of the secure addresses from the pool of secure addresses to create an association in the data structure when the public key is not associated with one of the secure addresses. 21. The system of claim 20 further comprising: computer implemented code devices executing on the processor and configured to cause the computer to pass the data packet on without address translation to higher network protocol layers when the received data packet from the particular network address is not secure. 22. The system of claim 20 wherein the computer implemented code devices that identify whether an association between the received data packet's network address and a secure address in the data structure further comprise: computer implemented code devices executing on the processor and configured to cause the computer to examine the data structure to determine if an association for the particular network address is already stored in the data structure. 23. The system of claim 20 wherein the computer implemented code devices that identify an association between the received data packet's network address and a secure address in the data structure further comprise: computer implemented code devices executing on the processor and configured to cause the computer to determine a public key for the received data packet; and computer implemented code devices executing on the processor and configured to cause the computer to determine whether the public key is already associated with one of the secure addresses and, if so, use the already assigned secure address to create an association in the data structure. 24. The system of claim 20 wherein the computer implemented code devices that identify an association between the received data packet's network address and a secure address in the data structure further comprise: computer implemented code devices executing on the processor and configured to cause the computer to verify that the public key is not revoked and not invalidated. Text:BACKGROUND OF THE INVENTION1. Field of the Invention The present invention relates, in general, to secure communications, and, more particularly, to secure data communications with a mobile computer over an insecure network. 2. Relevant Background A typical computing environment includes a secure network, such as a local area network (LAN) or wide area network (WAN) that can only be accessed by computers that are authorized by the network administrator to have access. These networks are non-public and so security can be readily controlled with conventional password management techniques. Mobile users can access the network through, for example, dial-up connections through server or gateway that verifies the user's identity and access privileges. An important use of the Internet and other public data communication networks is the ability to exchange data between mobile computers and an organization's secure internal network. However, the public network is not secure. An internal secure network uses a gateway machine or âfirewallâ to couple the internal network to the external insecure network. A firewall is a hardware and/or software system designed to prevent unauthorized access to or from a private network. A firewall examines all packets entering and exiting the private network and blocks those that fail to meet specified security criteria. In an Internet environment, the gateway performs security operations on the IP layer by using, for example SunScreen⢠SKIP, (SunScreen is a trademark of Sun Microsystems, Inc.). SKIP is a public key certificate-based key-management scheme which provides key-management for Internet protocols. Data communications using a secure gateway in this manner are referred to as âsecure IPâ. All external hosts must be able to communicate with the internal network using secure IP at any time, but must also be allowed to reach the internal network while transmitting in the clear. This is useful if some services on the internal network must be accessible by the general public (e.g., web server or software download access) and by privileged users such as employees which may have additional rights on those services, e.g., downloading proprietary information. Because of this, a gateway device cannot always provide authorization control simply by filtering out transmissions received in the clear. Prior secure IP systems provide authorization control using access control lists (ACLs) that list each IP network address (or other unique network identifier) that is authorized to access a particular resource on the internal network. In general, a gateway can place a static IP address on its ACL and authorize communication from that address to access services on the internal secure network. While this system addresses some problems related to access control, it does not authenticate that the received data packet truly originated from a particular machine. A particular difficulty arises in that hosts coupled to the external network may be both regular âstaticâ Internet nodes (i.e., having a permanently assigned IP address) or mobile nodes (i.e., nodes having a dynamically assigned IP address). It is also possible for a host with a static address to be in secure mode at some time, and be in a clear mode at some other time (e.g., the host running Windows(â¢) and Unix at different times). Moreover, two mobile hosts with different security properties may appear under the same dynamically assigned IP address at different times. In these instances merely relying on authorization based on the incoming packet's IP address is insufficient. The gateway machine must be able to authenticate or verify that data received from a remote system truly originated from that system. This situation must be correctly handled by the gateway to prevent, for example, hijacking of TCP connections. For example, when an outside machine using secureIP disconnects from the Internet, thereby relinquishing its IP address, it can be replaced by a second machine transmitting in the clear that has been assigned the first machine's IP address. From the secure network's perspective, the incoming TCP packets may have come from either a second machine using the first machine's IP address, or from the first machine that is now sending in the clear. The second machine will not be able to break the secureIP security, but it may be able to send data in the clear that will reach the internal network. Desirably, the gateway must detect the difference between these two situations, and hinder the second machine's attempts to send packets on behalf of the old machine. At the same time, the gateway must not allow the fallback to clear text to be abused by an enemy to force all communication to go on in the clear. However, the incoming IP packets do not identify any machine-specific information that would enable the gateway to distinguish between the first machine and the second machine using the same IP address. Many proposed approaches to mobile user security require the mobile user to specially configure the security software on the mobile machine. However, this makes the security software more difficult to install and use which is undesirable. To encourage widespread use of secureIP on a variety of machines, it is desirable that the software devices install out of the box, without significant effort to specially configure the software. Prior solutions, including SKIP and similar IP security protocols, offer support for mobile hosts by either assigning them a permanent ID (called a master key ID or MKID in SKIP) that is stored in the mobile machine and is transferred with every IP packet. Alternatively, a new security association may be established each time a new mobile IP address is acquired. Although these solutions prevent an intruder with a hijacked IP address from reading encrypted packets, they do not solve the problem of address hijacking so long as the gateway allows the mobile host to send data in the clear. In these cases, the intruder may set the MKID field to zero to force communication in the clear while the security association is maintained by the gateway. Moreover, this approach does not allow machines on the internal network to find out whether the incoming link is secure. The gateway holds the list of authorized addresses and performs the encryption/decryption functions. This information is not transmitted or shared with the internal network devices. Hence, the internal network machines cannot tell from examining the header of a received packet whether the packet was from a secureIP link or received in the clear. It would be useful for the internal devices to be aware of this information so that they could take intelligent action in response to receiving a packet with unexpected security properties. Another approach uses âfirewallsâ which give the capability to do address translation for topology hiding. This hinders non-authorized user's efforts to find out about the structure and potentially vulnerable points of the internal network. Although this approach makes address hijacking less effective, it does not prevent its occurrence. Another solution relies on control messages transmitted from mobile hosts to establish IP tunnels. These tunnels provide a mechanism needed to redirect data addressed to the mobile host to a dynamically assigned IP address. Tunnels hinder address hijacking by encrypting packet header information as well as the packet payload, but are difficult to set up and require complex security management mechanisms. The Internet Engineering Task Force (IETF) working groups for mobile IP have focused on one potential solution for the support of mobile hosts in the current Internet structure. For this, mobile hosts get assigned a âhome IP addressâ, and a temporary routing address that is used to address traffic. In the gateway from the mobile network to the traditional Internet, address translation and rerouting may be performed, such that the mobile node appears to be reachable on its home address at all times. This approach can result in a security risk if a request message was sent by a hosts that had hijacked the dynamic IP address without cryptographically verifying the authenticity of such messages. In order to avoid this risk, all request messages transmitted by a mobile host to the secure network must be authenticated using a message authentication code such as, for example, the keyed-MD5 algorithm. A need exists for a security method and system that support mobile hosts in a public network that solves the security risks created by dynamic IP address assignment to prevent an external machine from impersonating a secured machine, allow internal machines to detect whether the outside machine is coming in using a secured connection, and enable the system to be easily configured and used such that it can bootstrap with little or no user intervention. Desirably, the security method and system can be implemented without access control lists, timers, or other complex security management systems such that it is compatible with load balancing mechanisms. SUMMARY OF THE INVENTIONBriefly stated, the present invention involves a method for secure data communication between an inside network with a mobile machine in which a data packet is received from the mobile machine having a particular network address. A pool of secure addresses is established and a data structure is created to hold address translation associations. Each association is between a particular network address and a particular one of the secure addresses. If the received data packet is a secure data packet an association between the received data packet's network address and a secure address in the data structure is identified and the data packet's network address is translated to the associated secure address before forwarding the data packet on to higher network protocol layers. When the received data packet is not secure it is passed it on without address translation to the higher network protocol layers. When packets are received by the gateway from the inside network, and are addressed to a secure address, then the secure address is replaced by the corresponding network address and the packet is encrypted and authenticated. As used herein, the term âsecuring a packetâ means authentication and/or encryptionâand not necessarily encryption only. In this manner, bidirectional secure communications are supported. BRIEF DESCRIPTION OF THE DRAWINGSDETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTSThe present invention is described in terms of a method and apparatus implemented in conjunction with the SKIP secure Internet protocol system. However, it should be understood that the essential teachings of the present invention may be applied to other environments where network addresses are globally unique (i.e., only one user is able to use a given address at any given time) and where security is performed at the ISO/OSI network layer. The present invention employs a combination of dynamically enabled address translation together with packet encryption and authentication to achieve a secure data connection between an âinsideâ secure network and a mobile host. Optionally, a dynamically filled access control list (ACL) is used in combination with the address translation. Both unsigned Diffie-Hellman (uDH) keys and X.509 certificates may be used to identify mobile hosts. This prevents an insecure machine from hijacking the identity of a secure machine and allows machines on an internal secure network to detect whether an outside host is using a secure connection. A policy to accept uDH certificates without further analysis enables the system to be easily accessed by users in a secure manner, as the administrator does not have to authenticate the unsigned keys for them to be used. Although uDH certificates are not by themselves associated with a particular machine, and therefore are less secure than X.509 certificates, the present invention augments the uDH key with an assigned secureIP address. The unsigned uDH certificates can be upgraded at a later time to X.509 certificates by a system administrator with or without user involvement. This makes the system easy to use without significant user involvement and readily upgradable to provide improved security using X.509 certificates, or the equivalent. Storage unit Mobile host It should be understood that a typical environment will support any number of other devices including workstations, servers, personal computers, and peripheral devices coupled to internal network In a typical environment, some users have permanently assigned (i.e., static) network addresses while others have network addresses that are dynamically assigned by a service provider machine Ordinarily mobile users Secure network The data packets passing through gateway machine Gateway machine In general the present invention operates by assigning a secureIP:network address pair in address translation unit The address pair is maintained by updating the network address whenever a secure packet is received with the same key material as an existing address pair. That is to say, if Host A is sending secure packets from IP address â1.2.3.4â, address translation unit When Host A stops sending secure packets the address pair entry may eventually be removed from the address translation device It should be noted that while the address pair created by address translation unit The secureIP address is a unique address assigned to a particular machine, or more accurately, to the key held by a particular machine. When the gateway machine receiving a data packet has an address pair for a particular key the sending machine is said to be âknownâ to the gateway machine. As described below, the address pairs in address translation unit In operation, as a data packet is received the protocol field of the IP header (or the equivalent) for each incoming packet is examined to determine if the packet is secure. For example, SKIP packets are identified by a â57â in the protocol field. Packets that are received in the clear are passed on transparently to higher protocol layers in a conventional manner. Similarly, outbound packets that are received by gateway When an incoming packet is identified as secure (e.g., by having an appropriate value in the protocol field of the packet's IP header), the key is extracted from each packet by analysis device Optionally, an access control list Gateway machine Gateway machine In prior implementations address translation for outgoing data packets was performed indefinitely on the assumption that the translation remained valid for so long as packets continue to be received from and/or sent to the specified globally unique address. However, this allowed the secure network to continue sending data packets to a network address even after another machine had taken over that address. In accordance with the present invention, address translation device Devices on the inside network communicate with the secure mobile host using the secureIP address stored in address translation unit In a preferred implementation gateway machine Operation of the method and system in accordance with the present invention are conveniently understood in terms of processing incoming and outgoing data packets. Essential steps are described in reference to the flow diagrams shown in FIG. When the received data packet is secure (i.e., the machine sending the packet is using SKIP) it will include key information that enables gateway The process in accordance with the present invention determines if the key is known to the gateway machine. If the key was recently used it may be available in a cache, register, or local memory (not shown). If not, the public key corresponding to the sending machine's address is obtained from database Once a public key is obtained, the process continues by obtaining or assigning a secureIP address to the machine sending the data packet. When the public key information is an X.509 key certificate the address stored in the certificate is used as a secureIP address assigned to the entity holding the key certificate. When the public key information is a uDH key certificate database At least three ways to handle the address translation entries. These optional methods serve to maintain the address translation table and clear out old, unused entries. These methods include: 1) If the total number of concurrent users is smaller than the available address spaceâthen it is not necessary for address translation entries to time out. The gateway may hold address translation entries for all of the concurrent users, and just remember the latest used association of secureIP address (and key information) with the incoming network address. 2) In a second case, the time when the last secure packet came in is remembered by, for example, storing a time stamp with each entry in address translation unit 3) In a third case, a timer Steps involved in outbound packet processing are shown in FIG. For all incoming secured traffic, addresses are translated to the secureIP address, decryption performed, and the data packets are sent on to internal network For outgoing traffic, if the traffic goes to a normal outside address (e.g., a non-secureIP network address such as an IP address), it is passed on to the public network In a particular implementation, to further large availability, each mobile host is preconfigured with SKIP (or an equivalent security protocol), CDP running, and one strong DH key pair generated during system configuration. To begin using the SKIP gateway, these machines just send SKIP packets. The gateway will fetch the uDH certificate from them, and actually start using it immediately (unless otherwise configured by the gateway administrator). If more a persistent security association is desired, the gateway administrator signs the mobile host's public key, thereby binding the secureIP address to the public key value in a strong manner. The mobile host user is not involved, unless the gateway administrator wants to confirm an identity, which can be added to the certificate. Machines on the outside (assuming they all have differing keying material) simply can not interfere with each other. If the dynamic IP address is relocated to another host using a secure connection, the change can be detected due to differing MKID's and thus address translation easily switched over by updating the address pair entry in address translation device If an address from which SKIP packets have been received begins to talk in the clear, the incoming packets are passed on with their outside address. Outgoing packets to this address will pass unhindered, and in the clear. If there are still SKIP packets on the way to the outside, they will be mapped to the same address, SKIPed and forwarded. This does not compromise security because the non-SKIP machine will just throw those packets away. Because address translation and encryption/decryption remain in control of the legitimate host, the legitimate host can immediately talk in cleartext to the internal network while an intruder trying to throw an outside host into cleartext mode will fail. The legitimate host will go on doing SKIP (or equivalent security operation), get address translation and the translation will not expire. Even if address translation does expire it will simply be reestablished when the legitimate host begins sending secure packets later. In an optional embodiment, secureIP addresses assigned to uDH key certificates can be expired some time after they were last used, allowing reuse of the pool. This expiration is in the order of days or weeks. This is a mater of convenience as it cleans up the database making it smaller by removing information about secureIP addresses that are no longer in use. One potential attack involves an intruder trying to cause a denial of service failure in gateway Although the invention has been described and illustrated with a certain degree of particularity, it is understood that the present disclosure has been made only by way of example, and that numerous changes in the combination and arrangement of parts can be resorted to by those skilled in the art without departing from the spirit and scope of the invention, as hereinafter claimed. Field of search:Foreign documents:References: |
Browse by classes
Agriculture
Animals Automotives and Transportation Business and Commerce Chemistry Communications Construction Containers Electricity Energy Engineering Entertainment Fashion and Accessories Food Hardware and Tools Health and Medicine Home Industrial Information Technology Machines Materials and Material Science Miscellaneous Optics Outdoors Paper and Office Materials Physics Sanitation Technology Textiles Weaponry
Advertisements
|
