Network authenticators such as intelligent switches and access points provide authenticated access control of endpoints requesting access to a secure network. Endpoints may be devices such as personal computers (PCs), wireless-cameras or the like. Typical methods for authentication between the network authenticator and the network endpoint include mutually authenticating each other to establish a secure session based on public keys and secure secrets.
A hash function is a function that converts an input from a typically large domain into an output in a typically smaller range. A hash value is a number generated from a string of bits using a hash function. The hash value is typically substantially smaller than the input string of bits itself, and is generated by a formula. Hash functions are used in hash tables, cryptography and data processing.
Referring to
Network console 12 includes a display 12a and an input device 12b (e.g., a keyboard). Network console 12 is a user interface that allows a user to interact with authenticator 14 and device 16. A protocol channel 22 connects authenticator 14 to network console 12. A protocol, used on channel 22, may be a self-configuring protocol. The protocol may include discovery, eventing or control operations or any combination thereof. Eventing includes sending or receiving event signals. For example, the protocol may be the Universal Plug and Play Protocol (UPnP™).
Authenticator 14 includes a credential list 32 and a public key/private key pair 34 that includes a public key 33 and a private key 35. Credential list 32 includes public keys from other devices not shown that have been previously authenticated or have been previously added using network console 12. The public keys in credential list 32 are used in future network access authentications.
Public key 33 is an identifier of authenticator 14 that is recognized by a device for authentication after a successful introduction process. Public key 33 and private key 35 may be generated as part of a manufacturing process. In other techniques, public key 33 and private key 35 may be generated when authenticator 14 is powered-on for the first time.
Device 16 includes a credential list 42, a public/private key pair 44 (that includes a public key 43 and a private key 45), a secret 46, a hash value 48 of public key 43 and a label 49. Public key 43 is an identifier of device 16 that is recognized by an authenticator for authentication after a successful introduction process. Public key 43 and private key 45 may be generated as part of a manufacturing process. In other embodiments, public key 43 and private key 45 may be generated by device 16, either when the device is powered-on for the first time or at some other appropriate time.
Secret 46 includes a human intelligible string. Credential list 42 includes public keys from other authenticators not shown that have been previously authenticated or have been previously added by some other process.
Label 49 includes a printed hash value 49a that corresponds to hash 48 and a printed secret 49b that corresponds to secret 46. As will be shown below, printed hash 49a and printed secret 49b are used to mutually authenticate device 16 and the network system 10. The printed hash 49a is used to validate that the public key 43 sent to network system 10 actually came from device 16, and the printed secret 49b is used to validate that the network system 10 is a network with which the device 16 intends to connect.
Referring to
At authenticator 14, process 50 determines 58 whether device public key 43 is on credential list 32 of authenticator 14. If device public key 43 is not on credential list 32 of authenticator 14, process 50 validates the hash value 48 by sending a key query 60 to network console 12.
Referring to
Process 70 attempts 86 to negotiate a tunnel using a tunnel protocol with device 16 from authenticator 14. The tunnel protocol allows authentication between authenticator 14 and device 16 and the negotiation of an encryption algorithm and cryptographic keys before an application protocol transmits or receives any data. Process 70 accepts 88 the session for the authenticator 14 side. Device 16 side of process 50 may not yet be complete.
Referring back to
Referring to
Process 90 builds 104 a hash of printed secret 49b and other relevant values. The hash function used to generate the hash is a function of public key 33, public key 43, printed secret 49b, and a random number generated from the tunnel protocol. Process 90 encrypts 106 with public key 43 received from device 16 into a message. Process 90 optionally signs 108 with private key 35 to generate a signature. Process 90 sends 110 the message to device 16.
The building of the hash can occur either in network console 12 or authenticator 14. If it occurs in network console 12, authenticator 14 will forward authenticator 14 public key 33, device 16 public key 43, and the random number generated from the protocol tunnel to the network console 12. If it occurs in the authenticator 14, the network console 12 will forward the printed secret 49b to authenticator 14. Encrypting 106 of the hash built 104 occurs at the same location the hash was built.
Process 90 may check 112 the signature of the message using public key 33 received from authenticator 14. Process 90 decrypts 114 the message using private key 45.
Process 90 builds 116 a second hash value of secret 46 using a hash function based on secret 46, public key 33, public key 43 and a randomly generated number from the tunnel protocol. Process 90 determines 118 whether the hash value sent by the authenticator 14 or network console 12 matches the hash value generated on the device 16. If the hash values of the secrets do not match, process 90 and process 50 end. If the hash values of the secrets do match, device 16 will accept the session with the authenticator 14. Authenticator 14 side of process 50 may not yet be complete.
Referring to
Referring to
Process 50 is not limited to use with the hardware and software of
Each such program may be implemented in a high level procedural or object-oriented programming language to communicate with a computer system. However, the programs can be implemented in assembly or machine language. The language may be a compiled or an interpreted language. Each computer program may be stored on a storage medium or device e.g., CD-ROM, hard disk, or magnetic diskette that is readable by a general or special purpose programmable computer for configuring and operating the computer when the storage medium or device is read by the computer to perform process 50. Process 50 may also be implemented as one or more machine-readable storage media, configured with a computer program(s), where upon execution, instructions in the computer program(s cause a computer to operate in accordance with process 50.
Process 50 is not limited to the specific embodiments described herein. For example, device 16 may be a laptop PC, a small-embedded device without a user input/output capability (such as a digital wireless camera), a stereo system, a speaker, a personal digital assistant and the like. The device may be a cellular phone, a modem, a digital player or other consumer electronic product. The device may include a display, memory, a processor and circuitry to connect to a secure network.
Authenticator 14 may be located in a centralized network-side server. In other embodiments, authenticator 14 may be located in a hub, switch, or wireless access point as in small ‘server-less’ home or small office/home office (SOHO) networks.
In still other embodiments, instead of using a label 49, an application may display secret 49b and hash value 49a.
In some embodiments, network console 12 may be located on the same machine as authenticator 14. This may negate the messages sent between network console 12 and authenticator 14.
Processes 50, 70, 90 and 120 are not limited to the specific processing order of FIGS. 2 to 5. Rather, the blocks of FIGS. 2 to 5 may be re-ordered, as necessary, to achieve the results set forth above.
Other embodiments not described herein are also within the scope of the following claims.