WO2009062451A1 - Method, system and equipment for key distribution - Google Patents
Method, system and equipment for key distribution Download PDFInfo
- Publication number
- WO2009062451A1 WO2009062451A1 PCT/CN2008/073062 CN2008073062W WO2009062451A1 WO 2009062451 A1 WO2009062451 A1 WO 2009062451A1 CN 2008073062 W CN2008073062 W CN 2008073062W WO 2009062451 A1 WO2009062451 A1 WO 2009062451A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- key
- client node
- party device
- message
- verification
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Ceased
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
- H04L9/083—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/06—Network architectures or network communication protocols for network security for supporting key management in a packet data network
- H04L63/062—Network architectures or network communication protocols for network security for supporting key management in a packet data network for key distribution, e.g. centrally by trusted party
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0838—Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3236—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
- H04L9/3242—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/80—Wireless
Definitions
- the present invention relates to network security technologies, and in particular, to a method, system and device for key distribution. Background technique
- Cryptography is the core technology of network and information security.
- the security of modern cryptography is based on the protection of keys rather than the security of algorithms.
- the protection of the key is the key to confidentiality of information.
- the management of keys involves the generation, storage, distribution, etc. of keys, and the distribution of keys is a key issue in key management.
- a key distribution server in order to solve the problem of key distribution, there is usually a key distribution server. Both parties to be communicated in the system share a shared key with the key distribution server, and a certain message exchange is used to protect both parties. The shared key for communication.
- One or more shared keys Kas exist between the client node and the authentication server, and one or more shared keys Kbs exist between the third-party device and the authentication server, however
- a shared key Kab exists between the client node and the third-party device. This requires the verification server to generate a shared key Kab between the client node and the third party device, and distribute the Kab to the client node and the third party device so that the client node and the third party device can acquire the Kab.
- the home EAP server as the authentication server needs to generate a shared key between the EAP client node and the local authentication server.
- the process of key distribution is mainly: the client node sends a key distribution request of the client node identifier IDa and the third-party device identifier IDb to the third-party device; after receiving the key distribution request, the third-party device verifies the verification
- the server sends the client node ID Key distribution request of IDa and third-party device identification IDb; After receiving the key distribution request sent by the third-party device, the verification server utilizes the shared key Kas between the client node and the authentication server, and the string Label associated with the Kab usage.
- the key generation material such as the client node identifier IDa, the third-party device identifier IDb, and the key length generates a shared key Kab, and the generated Kab, IDa, IDb, Kab lifetime, etc. are encrypted by Kbs.
- the generated Kab, IDa, IDb, Kab lifetime, etc. are generated by the Kas to generate the MIC part; the third party device uses Kbs to decrypt the encrypted part, thereby acquiring the Kab, and using Kas for integrity protection. Partially forwarded to the client node; the client node uses Kas to perform integrity verification on some of the information forwarded by the third-party device, and obtains Kab after the verification is passed.
- the inventors have found that at least the following problems exist in the prior art: Since the key material used by the shared key Kab generated by the verification server is a fixed parameter, when during the lifetime of the Kab, Once the Kab leaks, the Kab cannot be changed, reducing the security of key distribution.
- Embodiments of the present invention provide a method, system, and device for key distribution to improve security of key distribution.
- a method of key distribution comprising:
- the client node sends a key distribution request to the third party device by using the first message, the first message includes a variable parameter, and the first message is protected by a shared key Kas between the client node and the authentication server;
- the third-party device After receiving the first message, the third-party device sends a key distribution request to the verification server by using the second message;
- the verification server calculates a shared key Kab between the client node and the third-party device by using a key material including the variable parameter, and passes the packet
- the third message including the Kab and the key material sends a key distribution response to the third party device; after receiving the third message, the third party device acquires the Kab, and forwards the key material to the client node
- the client node uses the key material to calculate the Kab in the same manner as the verification server.
- a system for key distribution comprising: a client node, a third party device, and an authentication server;
- the client node is configured to send a key distribution request to the third-party device by using the first message, and after receiving the key material forwarded by the third-party device, use the key material to calculate the same method as the verification server.
- the third-party device is configured to send a key distribution request to the verification server by using the second message after receiving the first message sent by the client node, and obtain the key distribution response sent by the verification server, and obtain the The Kab included in the key distribution response forwards the key material included in the key distribution response to the client node;
- the verification server is configured to: after receiving the second message sent by the third-party device, calculate a shared key Kab between the client node and the third-party device by using a key material including the variable parameter, to the third party
- the device sends a key distribution response containing the Kab and key material.
- An authentication server comprising: a receiving unit, a calculating unit, and a sending unit;
- the receiving unit is configured to receive a key distribution request sent by a third-party device, where the calculating unit is configured to calculate a client node by using a key material including a variable parameter after the receiving unit receives the key distribution request a shared key Kab between the third party device and the third party device;
- the sending unit is configured to send a key distribution request including the Kab and the key material to the third-party device.
- a client node comprising: a temporary value generating unit, a sending unit, a key material receiving unit, and a calculating unit;
- the temporary value generating unit is configured to generate a temporary value
- the sending unit is configured to send a key distribution request to the third-party device, where the key distribution request carries the temporary value generated by the temporary value generating unit;
- the key material receiving unit is configured to receive the key material forwarded by the third-party device; the calculating unit is configured to calculate, by using the key material received by the key material receiving unit, the same method as the verification server The shared key Kab between the client node and the third-party device.
- a method of key distribution comprising:
- the client node sends a first message including a cryptographic parameter, a client node public key PKa generated according to the cryptographic parameter and the private key X, to the third party device, and performs security protection on the first message; After the first message, sending a second message including the first message and the third-party device public key PKb generated by using the cryptographic parameter and the private key y to the verification server, and performing security protection on the second message;
- the verification server performs security verification on the received second message and the first message included in the second message, and after the verification is passed, sends a response message including the PKa and the PKb to the third-party device, and secures the content of the response message.
- Sexual protection
- the third-party device performs security verification on the received response message.
- the shared key Kab of the client node and the third-party device is calculated by using the PKa or PKb and the private key y according to the preset first manner;
- the PKa or PKb response message is sent to the client node; the client node performs security verification on the received response message containing the PKa or PKb, and after the verification is passed, according to the preset second mode, the PKa or PKb and the private key X are used.
- a system for key distribution comprising: a client node, a third party device, and an authentication server;
- the client node is configured to send, to the third-party device, a first message that includes a cryptographic parameter, a client node public key PKa generated according to the cryptographic parameter and the private key X, and performs the first message on the first message.
- Security protection performing security verification on the response message including the PKa or PKb sent by the third-party device, and after verifying, according to the preset second manner, calculating the Kab by using the PKa or PKb and the private key X;
- the third-party device after receiving the first message, sends a second message including the first message, and the third-party device public key PKb generated by using the cryptographic parameter and the private key y to the verification server, and Performing security protection on the second message; performing security verification on the response message sent by the verification server, and after verifying, using the PKa or PKb and the private key y to calculate the client node and the third party according to the preset first manner
- the shared key Kab of the device sends a response message
- the verification server is configured to perform security verification on the received second message and the first message included in the second message, and after the verification is passed, send a response message including the PKa and the PKb to the third-party device, and The content of the response message is secured.
- An authentication server comprising: a receiving unit, a security verification unit, a sending unit, and a security protection unit;
- the receiving unit is configured to receive, by the third-party device, a second message that includes a client node public key PKa and a third-party device public key PKb;
- the security verification unit is configured to perform security verification on the second message received by the receiving unit and the first message included in the second message;
- the sending unit is configured to send, after the security verification unit passes the verification, a response message including the client node public key PKa and the third party device public key PKb to the third party device;
- the security protection unit is configured to perform security protection on the response message sent by the sending unit.
- a third-party device includes: a receiving unit, a sending unit, and a calculating unit;
- the receiving unit is configured to receive a first message sent by the client node and a response message sent by the verification server;
- the sending unit is configured to send, after the receiving unit receives the first message, a second message that includes the first message, and the third-party device public key PKb generated by using the cryptographic parameter and the private key y to the verification server. Transmitting, by the receiving unit, a response message including the client node public key PKa and PKb received from the verification server to the client node;
- the calculating unit is configured to calculate a shared key Kab of the client node and the third party device by using the PKa or PKb and the private key y after the receiving unit receives the response message including the client node public keys PKa and PKb.
- a client node comprising: a sending unit, a receiving unit, and a computing unit;
- the sending unit is configured to send, to the third-party device, a first message that includes a cryptographic parameter, and a client node public key PKa generated according to the cryptographic parameter and the private key X.
- the receiving unit is configured to receive a third party. a response message sent by the device containing PKa or PKb;
- the calculating unit after the receiving unit receives the response message, using the PKa or PKb and the private key X to calculate a shared key of the client node and the third-party device, compared with the prior art, the embodiment of the present invention Has the following advantages:
- the client node sends a first key distribution request to the third party device; after receiving the first key distribution request, the third party device sends the first key distribution request to the verification server. a second key distribution request; after receiving the second key distribution request, the verification server calculates a shared key Kab between the client node and the third party device by using a key material containing the variable parameter, and sends the Kab containing the Kab to the third party device And a key distribution response of the key material; after receiving the key distribution response, the third-party device acquires the Kab, and forwards the key material of the generated Kab to the client node; after receiving the key material, the client node utilizes This key material calculates Kab in the same way as the authentication server.
- the verification server introduces the variable parameters into the key material to calculate the Kab, instead of using all the fixed parameters, so that once the Kab leaks, the variable parameters can be used to update the Kab in time, thereby improving the The security of the message transmission; and, the verification server provides the key material to the client node, so that the client node can calculate the Kab by using the key material through the same key calculation method, which further improves the security of the message transmission.
- a client node and The third-party device generates its own public key according to the same cryptographic parameters and its own private key, and sends the public key to the verification server for security verification.
- the client node and the third-party device follow a preset manner.
- the same shared key Kab is generated by using the public key of the client node or the public key of the third-party node included in the response replied by the verification server, and its own private key.
- the method introduces a variable private key in the process of calculating Kab, instead of adopting all fixed parameters, so that once the Kab leaks, the variable private key can be used to update the Kab in time, thereby improving message transmission. Security.
- FIG. 1 is a network structure diagram of the prior art
- FIG. 2 is a flowchart of a first main method according to an embodiment of the present invention
- FIG. 3 is a flowchart of a first specific method according to an embodiment of the present invention
- FIG. 5 is a structural diagram of a verification server according to an embodiment of the present invention
- FIG. 6 is a structural diagram of a first client node according to an embodiment of the present invention
- FIG. 8 is a structural diagram of a second system according to an embodiment of the present invention
- FIG. 9 is a structural diagram of an authentication server according to an embodiment of the present invention
- a third-party device structure diagram is provided
- FIG. 11 is a structural diagram of a second client node according to an embodiment of the present invention.
- FIG. 2 is a flowchart of a first main method according to an embodiment of the present invention.
- a shared key between a client node and an authentication server is recorded as a Kas, a third-party device and a test.
- the shared key between the servers, denoted as Kbs, the authentication server needs to distribute the shared key Kab between the client node and the third party device for the client node and the third party device.
- the Kas may be one or more shared passwords, a shared key, or other shared keys derived from the shared key. As shown in FIG.
- Step 201 A client node sends a key distribution request to a third-party device by using a first message.
- the first message may include a client node identifier IDa and a third-party device identifier IDb, and may also include information such as temporary values generated by the client node.
- the message can be protected by the shared key between the client node and the authentication server.
- the client node may generate an integrity verification code of the first message by using the shared key Kas between itself and the authentication server, denoted as MIC 1, and may also encrypt the first message by using the Kas.
- the temporary value generated by the client node may be information such as a random number, a serial number, or a timestamp.
- Step 202 After receiving the key distribution request sent by the client node, the third-party device sends a key distribution request to the verification server by using the second message.
- the second message may include a user identifier IDa and a third-party device identifier IDb, and the first message, and may also include a temporary value generated by the third-party device.
- the temporary value generated by the third-party device may be a random number, or a timestamp.
- the third-party device may also generate an integrity verification code of the second message by using the shared key Kbs between the third-party device and the authentication server, and record the MIC 2 as well as encrypt the second message.
- Step 203 The verification server calculates the shared key Kab between the client node and the third party device by using the key material containing the variable parameter, and sends the key distribution response to the third party device through the third message including the Kab and the key material. .
- the verification server receives the second message sent by the third-party device, performs message integrity verification on the MIC 2 by using the shared key Kbs between itself and the third-party device, and utilizes the shared key Kas between the self and the client node to the MIC 1 Perform message integrity verification, such as If the verification passes, the Kab is generated; if any of the verifications fails, the verification failure message is replied to the third-party device.
- the verification server first decrypts the first message and the second message, and may also verify the identity of the account node and the third party device. If the decryption is successful and the authentication is passed, a key distribution response message containing the Kab and the key material is generated and sent to the third party device.
- the authentication server when the authentication server generates the Kab, one or any combination of the Na generated by the client node, the Nb generated by the third-party device, or the temporary value Ns generated by the verification server itself may be used as a variable parameter in the key material.
- Kab can be calculated as follows:
- Kab KDF ( Kas, Label IDa 1 IDb Na ), or,
- Kab KDF ( Kas, Label IDa 1 IDb Nb ), or,
- Kab KDF ( Kas, Label IDa 1 IDb Ns ), or,
- Kab KDF ( Kas, Label IDa 1 IDb Na 1 Nb ), or,
- Kab KDF ( Kas, Label IDa 1 IDb Na 1 Ns ), or,
- Kab KDF ( Kas, Label IDa 1 IDb Nb 1 Ns ), or,
- Kab KDF ( Kas, Label
- KDF is a function to generate a key
- Label is a preset character string related to Kab usage
- I is a connector.
- the key material of the generated Kab may be included in the first part of the third message, and the first part of the information may further include a Na value, where the first part of the information may be used by the verification server and The shared key Kas between the client nodes generates the MIC 3, or can be encrypted using Kas.
- the second part of the information may further include a value generated by a certain operation, such as Nb+1, by Nb or Nb.
- the integrity verification code of the entire message may be generated using the shared key Kbs between the authentication server and the third party device, denoted as MIC 4; or, the entire third message may be encrypted using Kbs.
- Step 204 After receiving the third message sent by the verification server, the third-party device obtains the Kab included therein, and forwards the key material of the generated Kab to the client node.
- the part containing the key material is recorded as Key_Auth_Msg, and the Key_Auth_Msg may be a message that the authentication server uses Kas for security protection.
- the third-party device may first decrypt the part of the third message encrypted by using Kbs, or firstly perform integrity verification on the MIC 4 in the third message, and after obtaining the verification, obtain the Kab, and The Key_Auth_Msg containing the key material is forwarded to the client node.
- the message forwarded to the client node may also carry the message verification code MIC5 generated by the third party device using Kab, may be an integrity verification code generated by using Key_Auth_Msg as an input, or may generate an integrity verification code for a part of Key_Auth_Msg, such as Na. , one of IDa, IDb, MIC3 or any combination thereof, the integrity verification code is recorded as MIC 5.
- Step 205 After receiving the key material for generating Kab forwarded by the third-party device, the client node uses the key material to calculate the shared key Kab between itself and the third-party device by using the same method as the verification server.
- the same key calculation method as the authentication server can be set in the client node in advance.
- the client node After the client node receives the key material, if the verification server performs integrity protection on the part, the client node first completes the MIC 3 of the key material by using the shared key Kas between the key distribution server and the client node. Sexual verification, if the verification is passed, the Kab is calculated by using the key material; if the verification server encrypts the part, the client node first uses the shared key Kas between the key distribution server and the client node. The key material is decrypted and then the key material is used to calculate the Kab.
- the above temporary values Na, Nb and Ns may be a random number, a serial number, or a time stamp.
- the verification server may further save the temporary value Na or Nb sent by the client node or the third-party device, and after receiving the second message sent by the third-party device, extract the IDa in the message, if it is received for the first time.
- the message of the client node then MIC 1, if the verification is passed, store the Na. If the message of the client node is not received for the first time, the Na value contained in the user node and the last value of the Na value sent by the user equipment may be stored. For comparison, if the verification condition is satisfied, the step of calculating Kab is performed. This can further enhance the security during the message delivery process.
- the verification server determines that if the received Na value is larger than the Na value stored by itself, the verification condition is satisfied, and the Kab can be continuously calculated; otherwise, the Kab is refused to be calculated.
- the third-party device can also save the Na value sent by the client node.
- the security verification can also be performed according to the received Na value and the stored Na value.
- the client node can also save the Na value generated by itself.
- the client can first compare the Na value contained in the key material with the Na value stored by itself. If the same, the verification succeeds. The above method will be described below in terms of several specific embodiments. FIG.
- 3 is a flowchart of a first specific method according to an embodiment of the present invention.
- three parties performing communication are an EAP client node, a local authentication server, and a home EAP server, respectively corresponding to a client node, a third-party device, and an authentication server. .
- the EAP client node and the home EAP server have been authenticated and generated a shared key, that is, an extended master session key (EMSK) and a shared key KI_as that is derived from EMSK to protect message integrity;
- EMSK extended master session key
- KI_as shared key KI_as that is derived from EMSK to protect message integrity
- the home EAP server needs to distribute a shared key Kab for the EAP client node and the local authentication server, so that the EAP client node can use the share when re-authenticating at the access point.
- the key Kab authenticates to the local authentication server.
- the method specifically includes the following steps: Step 301: The EAP client node sends a key distribution request to the local authentication server by using the first message.
- the first message includes an EAP client node identifier IDa, a local authentication server identifier IDb, and a temporary value Na generated by the EAP client node, and generates the completeness of the first message by using the shared key KI_as between the EAP client node and the home EAP server.
- the sex insurance certificate code is recorded as MIC 1.
- Step 302 After receiving the first message, the local authentication server stores the Na value, and sends a key distribution request to the home EAP server by using the second message.
- the second message includes an EAP client node identifier IDa, a local authentication server identifier IDb, a temporary value Nb generated by the local authentication server, and a first message, and is generated by the shared key Kbs between the local authentication server and the home EAP server.
- the integrity verification code of the second message or generating the integrity verification code by using Kbs to generate Nb, IDa, IDb, and MIC 1, denoted as MIC 2.
- Step 303 After receiving the second message, the home EAP server performs integrity verification on the MIC 1 and the MIC 2 in the second message.
- the third message includes two parts, a part of which includes Kab and IDa, IDb and Na, Nb, and encrypts the part containing Kab through Kbs, and the other part includes Kas, Label IDa, IDb, Na, and the integrity verification code of the part containing the key material is generated by the shared key KI_as between the client node and the home server, and is recorded as MIC 3.
- the third message includes a kab encrypted using Kbs, and further includes Na, Nb, IDa, IDb, and a key verification authorization message Key_Auth_Msg containing the key material to the client node, the third message serving as a response of the server to the first message. It contains the key material of the generated Kab, the lifetime, and the integrity verification code generated by using KI_as, and uses Kbs to generate an integrity verification code for the entire message.
- the third message contains kab, and a key containing the key material to the client node
- the authentication authorization information Key_Auth_Msg, Key_Auth_Msg, as the response of the server to the first message includes the key material and lifetime of the Kab, the integrity verification code generated by KI_as, and the like, and the entire message is encrypted using Kbs.
- Step 304 After receiving the third message, the local authentication server decrypts by using Kbs, and determines whether the Na and Nb included in the third message are the same as the Na and Nb stored by the third message. If they are not the same, the verification fails.
- the key distribution server and the client node send a failure message; if they are the same, the verification succeeds, and the part containing the key material is forwarded to the EAP client node through the fourth message, and the local authentication server can also use Kab to generate the complete message.
- Sexual verification code recorded as MIC4, or Na, IDa, IDb and other information encrypted using Kab.
- the third message may also include a specially processed Na, for example, Na + 1; the local authentication server performs inverse processing on the specially processed Na, that is, Na + 1 - 1 , which will be inverse
- the processed result is compared with the Na stored by itself, and if they are the same, the verification is successful. This can further ensure the security of the message.
- Step 305 After receiving the fourth message, the EAP client node performs integrity verification on the MIC 3 containing the part of the key material by using KI_as, and compares the value of Na contained in the key material with the value of Na stored by itself. The verification is successful.
- the shared key Kab between the EAP client node and the third party device is calculated in the same way as the home EAP server, and the MIC4 is verified using Kab.
- the EAP client node may also inversely process the specially processed Na, and the result of the inverse processing is The self-stored Na is compared, and if they are the same, then 3 is successful.
- FIG. 4 is a structural diagram of a first system according to an embodiment of the present invention. As shown in FIG. 4, the system includes: a client node 401, a third-party device 402, and an authentication server 403.
- the client node 401 is configured to send a key distribution request to the third-party device 402 by using the first message, and after receiving the key material forwarded by the third-party device 402, using the key material,
- the Kab is calculated in the same manner as the verification server 403.
- the third-party device 402 is configured to send a key distribution request to the verification server 403 by using the second message after receiving the first message sent by the client node 401, and obtain the key distribution response sent by the verification server 403, and obtain the key.
- the Kab included in the distribution response forwards the key material contained in the key distribution response to the client node 401.
- the verification server 403 is configured to calculate the shared key Kab between the client node 401 and the third-party device 402 by using the key material including the variable parameter, after receiving the second message sent by the third-party device 402, to the third-party device 402. Send a key distribution reply containing the Kab and key material.
- the client node 401 can also be used to secure the first message by using the shared key Kas between itself and the authentication server 403.
- the third party device 402 can also be used to secure the second message by using the shared key Kbs between itself and the authentication server 403.
- the verification server 403 can also be used to perform security verification on the second message by using Kbs, and perform security verification on the first message included in the second message by using Kas.
- the verification server 403 can also be used to secure the part of the key distribution response containing the key material by using the shared key Kas between itself and the client node 401, and utilize the shared key between the self and the third party device 402. Kbs secures the part of the key distribution response that contains Kab.
- the third-party device 402 can also be used to perform security verification on the portion of the received key distribution response that includes Kba using Kbs.
- the client node 401 can also be used to perform security verification on the received key material using Kas.
- the third-party device 402 is further configured to generate an integrity check code for the part including the key material by using the acquired Kab, and record it as the MIC 5.
- FIG. 5 is a structural diagram of a first type of authentication server according to an embodiment of the present invention.
- the verification server includes: a receiving unit 501, a calculating unit 502, and a sending unit 503.
- the receiving unit 501 is configured to receive a key distribution request.
- the calculating unit 502 is configured to calculate, after the receiving unit 501 receives the key distribution request, the shared key Kab between the client node and the third party device by using the key material including the variable parameter.
- the sending unit 503 is configured to send a key distribution request including the Kab and the key material.
- the verification server may further include: a security verification unit 504, configured to perform security verification on the key distribution request received by the receiving unit 501, and if the verification passes, trigger the calculation unit 502 to perform an operation of calculating the Kab.
- the key generation unit may further include: a comparison unit 505 and a storage unit 506.
- the comparing unit 505 is configured to compare the temporary value included in the key distribution request received by the receiving unit 501 with the temporary value stored by the storage unit 506, and if the verification condition is satisfied, trigger the calculating unit 502 to perform an operation of calculating the Kab.
- the storage unit 506 is configured to store the temporary value included in the key distribution request when the result of the comparison by the comparing unit 505 is that the verification condition is satisfied.
- the key generation unit may further include: a security protection unit 507, configured to secure, by using a shared key Kas between the client node and the verification server, a part of the key distribution response that includes the key material,
- the shared key Kbs between the three-party device and the authentication server secures the portion of the key distribution response that contains the Kab.
- the calculation unit 502 may include: a variable parameter acquisition unit 5021 and a key calculation unit 5022.
- a variable parameter obtaining unit 5021 configured to acquire a temporary value generated by the client node Na, a variable parameter of one or any combination of the temporary value Nb generated by the third party device and the temporary value Ns generated by the verification server itself.
- Key calculation unit 5022 for calculating with key material containing variable parameters
- FIG. 6 is a structural diagram of a first type of client node according to an embodiment of the present invention.
- the client node may include: a sending unit 601, a key material receiving unit 602, and a calculating unit 603.
- the sending unit 601 is configured to send a key distribution request to the third-party device.
- the key material receiving unit 602 is configured to receive the key material forwarded by the third-party device.
- the calculating unit 603 is configured to calculate the shared key Kab between the client node and the third party device by using the key material received by the key material receiving unit 602 in the same manner as the verification server.
- the client node may further include: a temporary value generating unit 604, configured to generate a temporary value, and carry the temporary value in a key distribution request sent by the sending unit 601.
- a temporary value generating unit 604 configured to generate a temporary value, and carry the temporary value in a key distribution request sent by the sending unit 601.
- the client node may further include: a security verification unit 605, configured to perform security on the key material received by the key material receiving unit 602 by using the shared key Kas between the client node and the authentication server When the verification is passed, the trigger calculation unit 603 performs an operation of calculating Kab.
- the client node may further include: a Kab confirming unit 606, used to calculate the integrity verification code of the Kab authentication key material calculated by the calculating unit 603, and record it as the MIC 5, and if a risk certificate passes, confirm the Kab security.
- the sending unit 601 is further configured to send a failure message to the third-party device after the Kab confirming unit 606 fails to verify.
- FIG. 7 is a flowchart of a second method according to an embodiment of the present invention. As shown in FIG. 7, the method mainly includes the following steps: Step 701: A client node sends a cryptographic parameter (p, g) to a third-party device. The first message of the client node public key PKa generated according to the cryptographic parameter and the own private key X is used to secure the first message by using the shared key Kas between the client node and the authentication server.
- p, g a cryptographic parameter
- the first message includes a customer identifier IDa and a third-party device identifier IDb; and the messages transmitted in the following steps include IDa and IDb. It will not be described in the following description.
- the client node may be based on a discrete number of Diffie-Hellman key exchange cryptology parameter (P, g), where, p is a prime number, g is a generator of the finite field F p, and g ⁇ p.
- the first message may further include a temporary value Na generated by the client node.
- the security protection of the first message may be that the MIC 1 of the first message is generated by using the shared key Kas between the client node and the authentication server, and the first message may be encrypted by using the Kas.
- Step 702 After receiving the first message, the third-party device sends a second message including the first message and the third-party device public key PKb generated by itself using the cryptographic parameter and the private key to the authentication server, and using the third party.
- the third device may also save the Na value included in the first message.
- the temporary value Nb generated by the third party device may also be included in the second message.
- the security protection of the second message may be generated by using the shared key Kbs between the third-party device and the authentication server to generate the integrity verification code MIC 2 of the second message, or not in the second message.
- the part containing the first message generates MIC 2
- the second message may be encrypted by using the Kbs, or the part of the second message not including the first message may be encrypted.
- Step 703 After receiving the second message, the verification server performs security verification on the received second message and the first message included therein, and if the verification passes, sends a response message including the PKa and the PKb to the third-party device, and The part containing the PKa is secured by the shared key Kas between the client node and the authentication server, and the part containing the PKb is secured by the shared key Kbs between the third party device and the authentication server.
- the security protection can also be done by using Kas to generate MIC 3 for the part containing PKa, or by encrypting it; using Kbs to generate MIC 4 for the part containing PKb, or encrypt it.
- the PKa-containing portion may further include: Na, Nb, IDa, IDb, etc., and the portion including the PKb may further include Na, Nb, IDa, IDb, and the like.
- the verification server may further compare the Na value included in the second message with the stored Na value before the response message, and if the verification condition is met, store the received Na value and continue to execute the response response. The steps of the message.
- part of the response message that contains the PKa may also contain Na, or a specially processed Na.
- Step 704 After receiving the response message, the third-party device uses Kbs to perform security verification on the part that includes the PKb. If the verification succeeds, the PKb and the private key y are used to calculate the client node and the third party according to a preset manner.
- the shared key Kab of the device forwards the part containing the PKa to the client node.
- the security verification of the part containing the PKb by the third-party device may be: Using Kbs to perform integrity verification or decryption of the MIC 4 containing the PKb part.
- calculating Kab according to the preset method can be:
- the third-party device can also compare the value of Na contained in the PKb part with the value of Na stored in the PKb part before calculating the Kab. If the verification condition is met, the verification is successful, and the step of calculating the Kab is continued; or, the PKb is included. The value of the special processing of Na is inversely processed in the part, and the inversed value is compared with the stored Na value. If the verification condition is satisfied, the verification is successful, and the step of calculating the Kab is continued.
- Step 705 The client node performs security verification on the received part including the PKa, and if the verification passes, the Kab is calculated by using the PKa and its private key X. In this step, the same client node performs security verification on the part containing the PKb.
- the Kas can use the Kas to perform integrity verification or decryption on the MIC 3 containing the PKa.
- calculating Kab according to the preset method can be:
- the client node can also compare the Na value contained in the PKa part with the stored Na value before calculating the Kab. If the verification condition is met, the verification is successful, and the step of calculating the Kab is continued; or, the PKa part is included. The value included in the special processing of Na is inversely processed, and the inversely processed value is compared with the stored Na value. If the verification condition is satisfied, the verification is successful, and the step of calculating the Kab is continued.
- the part including the PKa and the part containing the PK in the response message replied in step 703 may also include one or any combination of Na, Nb and the temporary value Ns generated by the verification server.
- the Kab is generated by continuing to use one or any combination of Na, Nb, and Ns, and the calculated Master Key as a key material.
- the Kab calculation formula can be:
- Kab KDF (Master Key, Label IDa IDb Na 1 Nb 1 Ns).
- KDF is a function to generate a key
- Label is a pre-set string related to Kab usage
- I is a separator.
- elliptic curve cryptosystem parameters (p, d, f may also be used).
- the client node includes the generated public key PKa and cryptographic parameters (p, d, f, G, n ) in the first message and sent to the third party device.
- FIG. 8 is a structural diagram of a second system according to an embodiment of the present invention. As shown in FIG. 8, the system includes: a client node 801, a third-party device 802, and an authentication server 803.
- a client node 801 configured to send, to the third-party device 802, a first message that includes a cryptographic parameter, a client node 801 public key PKa generated according to the cryptographic parameter and the private key X, and secures the first message;
- the response message including the PKa or PKb sent by the three-party device 802 is used for security verification. After the verification is passed, the Kab is calculated by using the PKa or PKb and the private key X according to the preset second manner.
- the third-party device 802 after receiving the first message, sends a second message including the first message and the third-party device 802 public key PKb generated by using the cryptographic parameter and the private key y to the verification server 803, and The second message is security-protected; the security response verification is performed on the response message sent by the verification server 803.
- the client node 801 and the third-party device are calculated by using the PKa or PKb and the private key y according to the preset first manner.
- the shared key Kab of 802 sends a response message containing PKa or PKb to the client node 801.
- the verification server 803 is configured to perform security verification on the received second message and the first message included in the second message, and after the verification is passed, send a response message including the PKa and the PKb to the third-party device 802, and respond to the response.
- the content of the message is secured.
- FIG. 9 is a structural diagram of a second authentication server according to an embodiment of the present invention.
- the authentication server includes: a receiving unit 901, a security verification unit 902, a sending unit 903, and a security protection unit 904.
- the receiving unit 901 is configured to receive, by the third-party device, a client node public key The second message of the PKa and the third party device public key PKb.
- the security verification unit 902 is configured to perform security verification on the second message received by the receiving unit 901 and the first message included in the second message.
- the sending unit 903 is configured to send, after the security verification unit 902 passes the verification, a response cancellation message including the client node public key PKa and the third party device public key PKb to the third party device.
- the security protection unit 904 is configured to securely protect the response message sent by the sending unit 903.
- the verification server may further include: a comparison unit 905 and a Na storage unit 906.
- the comparing unit 905 is configured to compare the temporary value Na included in the second message received by the receiving unit 901 with the Na value stored by the Na storage unit 906, and if the verification condition is satisfied, trigger the sending unit 903 to perform an operation of sending the response message. If the verification condition is not satisfied, the transmission unit 903 is prohibited from performing an operation of transmitting a response message.
- the Na storage unit 906 is configured to store the Na included in the second message when the comparison result of the comparison unit 905 is that the verification condition is satisfied.
- the third-party device may include: a receiving unit 1001, a sending unit 1002, a security protection unit 1003, a security verification unit 1004, and a computing unit. 1005.
- the receiving unit 1001 is configured to receive a first message sent by the client node, and receive a response message sent by the verification server.
- the sending unit 1002 is configured to send, after the receiving unit 1001 receives the first message, a second message that includes the first message and the third-party device public key PKb generated by using the cryptographic parameter and the private key y to the authentication server, where After the verification by the security verification unit 1004, the response message including the client node public keys PKa and PKb is sent to the client node.
- the security protection unit 1003 is configured to secure the second message sent by the sending unit 1002.
- the security verification unit 1004 performs security verification on the response message received by the receiving unit 1001.
- the calculating unit 1005 is configured to, after the security verification unit 1004 passes the verification, follow The first mode preset uses the PKa or PKb and the private key y to calculate the shared key Kab of the client node and the third party device.
- the third party device may further include: a Na storage unit 1006 and a comparison unit 1007;
- the Na storage unit 1006 is configured to store the Na value included in the first message.
- the comparing unit 1007 is configured to compare the Na value included in the response message with the Na value stored by itself, and if the verification condition is met, trigger the calculating unit 1005 to perform the calculating step, and if the verification condition is not satisfied, prohibit the calculating unit 1005 from performing the calculating. step.
- the third-party device may further include: a public key generating unit 1008, configured to generate the third-party device public key PKb by using the cryptographic parameters included in the first message and the private key y.
- a public key generating unit 1008 configured to generate the third-party device public key PKb by using the cryptographic parameters included in the first message and the private key y.
- FIG. 11 is a structural diagram of a second type of client node according to an embodiment of the present invention.
- the client node includes: a sending unit 1101, a security protection unit 1102, a receiving unit 1103, a security verification unit 1104, and a computing unit 1105. .
- the sending unit 1101 is configured to send, to the third-party device, a first message that includes the cryptographic parameter and the client node public key PKa generated according to the cryptographic parameter and the private key X thereof.
- the security protection unit 1102 is configured to perform security protection on the first message sent by the sending unit 1101.
- the receiving unit 1103 is configured to receive a response message that is sent by a third-party device and includes a PKa or a PKb.
- the security verification unit 1104 is configured to perform security verification on the response message received by the receiving unit 1103.
- the calculating unit 1105 is configured to calculate the shared key Kab of the client node and the third party device by using the PKa or PKb and the private key X according to the preset second manner after the security verification unit 1104 verifies the passage.
- the client node may further include: a cryptographic parameter generating unit 1106 and a public key generating unit 1107.
- the cryptographic parameter generating unit 1106 is configured to generate cryptographic parameters.
- the public key generating unit 1107 is configured to generate a client node public key PKa according to the cryptographic parameter calculation generated by the cryptographic parameter generating unit 1106 and the own private key x .
- the client node may also include: a Na storage unit 1108 and a comparison unit 1109.
- the Na storage unit 1108 is configured to store the Na value generated by the client node where it is located.
- the comparison unit 1109 is configured to compare the temporary value Na included in the response message with the Na value stored by the Na storage unit 1108. If the verification condition is met, the trigger calculation unit 1105 performs an operation of calculating the Kab. Otherwise, the calculation unit 1105 is prohibited from executing. Calculate the operation of Kab.
- the client node sends a first key distribution request to the third party device; the third party device receives the first key distribution After the request, the second key distribution request is sent to the verification server; after receiving the second key distribution request, the verification server calculates the shared key Kab between the client node and the third party device by using the key material containing the variable parameter, Sending a key distribution response containing the Kab and the key material to the third party device; after receiving the key distribution response, the third party device acquires the Kab and forwards the key material to the client node; the client node receives the key After the material, using the key material, Kab is calculated in the same way as the verification server.
- the verification server introduces the variable parameters into the key material to calculate the Kab, instead of using all the fixed parameters, so that once the Kab leaks, the variable parameters can be used to update the Kab in time, thereby improving the The security of the message transmission; and, the verification server provides the key material to the client node, so that the client node can calculate the Kab by using the key material through the same key calculation method, which further improves the security of the message transmission.
- the MIC of the key material can be generated by using the Kab at the same time, and after the client node calculates the Kab by using the key material, the Kab can be used to verify the MIC, thereby confirming Third-party devices receive Kab, which enhances the security of key distribution.
- the client node and the third party device generate respective public keys according to the same cryptographic parameters and their own private keys, and send the public key to the verification server.
- Security verification After the verification is passed, the client node and the third-party device use the public key of the client node or the public key of the third-party node included in the response replied by the verification server according to a preset manner, and generate the same private key of the private node.
- Shared key Kab The method introduces a variable private key in the process of calculating Kab, instead of using fixed parameters all the time, so that once the Kab leaks, the method can be utilized. The changed private key updates the Kab in time, which improves the security of message transmission.
- the temporary value generated by each device can be used as a variable key material to calculate the Kab, and the Kab is more conveniently updated, thereby improving the security of message transmission.
- embodiments of the present invention incorporate various security measures for preventing key leakage and preventing replay attacks, for example, by encrypting a generated key distribution request and a key distribution response and generating an integrity check code, The security of message transmission is improved by comparing the received temporary value with the temporary value stored by itself.
- the present invention can be implemented by hardware, or can be implemented by means of software plus necessary general hardware platform.
- the technical solution of the present invention may be embodied in the form of a software product, which may be stored in a non-volatile storage medium (which may be a CD-ROM, a USB flash drive, a mobile hard disk, etc.), including several The instructions are for causing a computer device (which may be a personal computer, server, or network device, etc.) to perform the methods described in various embodiments of the present invention.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Power Engineering (AREA)
- Storage Device Security (AREA)
- Computer And Data Communications (AREA)
- Mobile Radio Communication Systems (AREA)
- Telephonic Communication Services (AREA)
Description
一种密钥分发的方法、 系统和设备 技术领域
本发明涉及网络安全技术, 特别涉及一种密钥分发的方法、 系统 和设备。 背景技术
随着网络安全技术的不断发展,对网络的安全保护技术要求也越 来越高, 密码学是网络与信息安全的核心技术, 现代密码学的安全是 建立在密钥的保护而不是算法保密的基础上的,因此密钥的保护管理 成了信息保密的关键。 密钥的管理包含密钥的生成、 存储、 分发等, 而密钥的分发是密钥管理的一个关键问题。 在基于对称密码系统中, 为了解决密钥的分发问题, 通常存在密钥分发服务器, 系统中待通信 的双方都与密钥分发服务器存在共享密钥,通过一定的消息交换建立 一个用于保护双方通信的共享密钥。
在实际应用的过程中, 通常会遇到如下情况: 客户节点与验证服 务器之间存在一个或多个共享密钥 Kas, 第三方设备与验证服务器之 间存在一个或多个共享密钥 Kbs, 然而在客户节点和第三方设备之间 需要进行消息交互时,为了对该客户节点和第三方设备之间消息的交 互进行安全保护,则需要在客户节点和第三方设备之间存在共享密钥 Kab。 这就需要验证服务器生成客户节点和第三方设备之间的共享密 钥 Kab, 并将该 Kab分发给客户节点和第三方设备,使得客户节点和 第三方设备能够获取该 Kab。 例如图 1所示的网络架构中, 作为验证 服务器的家乡 EAP服务器, 需要生成 EAP客户节点和本地认证服务 器之间的共享密钥。 现有技术中, 密钥分发的过程主要为: 客户节点向第三方设备发 送客户节点标识 IDa和第三方设备标识 IDb的密钥分发请求;第三方 设备接收到该密钥分发请求后,向验证服务器发送包含客户节点标识
IDa和第三方设备标识 IDb的密钥分发请求; 验证服务器收到第三方 设备发送的密钥分发请求后,利用客户节点和验证服务器之间的共享 密钥 Kas、 与 Kab用途相关的字符串 Label、 客户节点标识 IDa、 第 三方设备标识 IDb以及密钥长度等密钥生成材料生成共享密钥 Kab, 并将该生成的 Kab、 IDa, IDb, Kab生存期等利用 Kbs进行加密后形 成的部分和将生成的 Kab、 IDa、 IDb, Kab生存期等利用 Kas生成 MIC的部分发送给第三方设备; 第三方设备利用 Kbs对加密的部分 进行解密, 从而获取 Kab, 并将利用 Kas进行完整性保护的部分转发 给客户节点;客户节点利用 Kas对第三方设备转发来的部分信息进行 完整性验证, 验证通过后获取到 Kab。
在实现本发明的过程中, 发明人发现现有技术至少存在以下问 题: 由于验证服务器生成的共享密钥 Kab 所使用的密钥材料均是固 定不变的参数, 当在 Kab的生存期内, 一旦该 Kab泄漏, 则无法对 该 Kab进行变更, 降低了密钥分发的安全性。
发明内容
本发明实施例提供了一种密钥分发的方法、 系统和设备, 以实现 提高密钥分发的安全性。
一种密钥分发的方法, 该方法包括:
客户节点通过第一消息向第三方设备发送密钥分发请求,所述第 一消息中包含可变参数,所述第一消息受客户节点与验证服务器间共 享密钥 Kas的保护;
所述第三方设备接收到所述第一消息后,通过第二消息向验证服 务器发送密钥分发请求;
所述验证服务器接收到所述第二消息后,利用包含所述可变参数 的密钥材料计算客户节点和第三方设备之间的共享密钥 Kab,通过包
含 Kab和密钥材料的第三消息向第三方设备发送密钥分发应答; 所述第三方设备接收到所述第三消息后, 获取所述 Kab, 并将所 述密钥材料转发给客户节点; 所述客户节点接收到所述密钥材料后, 利用该密钥材料, 采用和验证服务器相同的方法计算 Kab。
一种密钥分发的系统, 该系统包括: 客户节点、 第三方设备和验 证服务器;
所述客户节点,用于通过第一消息向第三方设备发送密钥分发请 求, 接收到所述第三方设备转发的密钥材料后, 利用该密钥材料, 采 用和验证服务器相同的方法计算自身与第三方设备间的共享密钥 Kab;
所述第三方设备, 用于在接收到所述客户节点发送的第一消息 后, 通过第二消息向验证服务器发送密钥分发请求,接收到所述验证 服务器发送的密钥分发应答后, 获取该密钥分发应答中包含的 Kab, 将该密钥分发应答中包含的密钥材料转发给所述客户节点;
所述验证服务器, 用于接收到所述第三方设备发送的第二消息 后,利用包含可变参数的密钥材料计算客户节点和第三方设备之间的 共享密钥 Kab,向所述第三方设备发送包含所述 Kab和密钥材料的密 钥分发应答。
一种验证服务器, 该验证服务器包括: 接收单元、 计算单元和发 送单元;
所述接收单元, 用于接收第三方设备发送的密钥分发请求; 所述计算单元, 用于在所述接收单元接收到密钥分发请求后, 利 用包含可变参数的密钥材料计算客户节点和第三方设备之间的共享 密钥 Kab;
所述发送单元,用于向所述第三方设备发送包含所述 Kab和密钥 材料的密钥分发请求。
一种客户节点, 该客户节点包括: 临时值生成单元、 发送单元、 密钥材料接收单元和计算单元;
所述临时值生成单元, 用于生成临时值;
所述发送单元, 用于向第三方设备发送密钥分发请求, 所述密钥 分发请求中携带所述临时值生成单元生成的临时值;
所述密钥材料接收单元, 用于接收第三方设备转发的密钥材料; 所述计算单元,用于利用所述密钥材料接收单元接收到的密钥材 料,采用和验证服务器相同的方法计算客户节点和第三方设备之间的 共享密钥 Kab。
一种密钥分发的方法, 该方法包括:
客户节点向第三方设备发送包含密码学参数、根据所述密码学参 数和自身私钥 X生成的客户节点公钥 PKa的第一消息, 并对所述第 一消息进行安全保护; 第三方设备接收到该第一消息后, 向验证服务 器发送包含第一消息、以及利用密码学参数和自身私钥 y生成的第三 方设备公钥 PKb的第二消息, 并对该第二消息进行安全保护;
验证服务器对接收到的第二消息和第二消息中包含的第一消息 进行安全性验证, 验证通过后, 向第三方设备发送包含 PKa和 PKb 的响应消息, 并对该响应消息的内容进行安全性保护;
第三方设备对接收到的响应消息进行安全性验证, 验证通过后, 按照预设的第一方式, 利用 PKa或 PKb以及自身私钥 y计算客户节 点和第三方设备的共享密钥 Kab; 将包含 PKa或 PKb的响应消息发 送给客户节点; 客户节点对接收到的包含 PKa或 PKb的响应消息进 行安全性验证,验证通过后,按照预设的第二方式, 利用 PKa或 PKb 以及自身私钥 X计算 Kab;
其中, 利用所述第一方式和第二方式计算出的所述 Kab相同。 一种密钥分发的系统, 该系统包括: 客户节点、 第三方设备和验 证服务器;
所述客户节点, 用于向所述第三方设备发送包含密码学参数、 根 据所述密码学参数和自身私钥 X生成的客户节点公钥 PKa的第一消 息, 并对所述第一消息进行安全保护; 对所述第三方设备发送的包含 PKa或 PKb的响应消息进行安全性验证, 验证通过后, 按照预设的 第二方式, 利用 PKa或 PKb以及自身私钥 X计算 Kab;
所述第三方设备, 用于接收到所述第一消息后, 向验证服务器发 送包含第一消息、以及利用密码学参数和自身私钥 y生成的第三方设 备公钥 PKb 的第二消息, 并对该第二消息进行安全保护; 对所述验 证服务器发送的响应消息进行安全性验证, 验证通过后, 按照预设的 第一方式, 利用 PKa或 PKb以及自身私钥 y计算客户节点和第三方 设备的共享密钥 Kab, 将包含 PKa或 PKb的响应消息发送给客户节 点;
所述验证服务器,用于对接收到的第二消息和第二消息中包含的 第一消息进行安全性验证, 验证通过后, 向所述第三方设备发送包含 PKa和 PKb的响应消息, 并对该响应消息的内容进行安全性保护。
一种验证服务器, 该验证服务器包括: 接收单元、 安全性验证单 元、 发送单元和安全保护单元;
所述接收单元, 用于接收第三方设备发送的包含客户节点公钥 PKa和第三方设备公钥 PKb的第二消息;
所述安全性验证单元,用于对所述接收单元接收到的第二消息和 第二消息中包含的第一消息进行安全性验证;
所述发送单元, 用于在所述安全性验证单元验证通过后, 向第三 方设备发送包含客户节点公钥 PKa和第三方设备公钥 PKb的响应消 息;
所述安全保护单元,用于对所述发送单元发送的响应消息进行安 全保护。
一种第三方设备, 该第三方设备包括: 接收单元、 发送单元和计 算单元;
所述接收单元,用于接收客户节点发送的第一消息以及验证服务 器发送的响应消息;
所述发送单元, 用于在所述接收单元接收到第一消息后, 向验证 服务器发送包含第一消息、以及利用密码学参数和自身私钥 y生成的 第三方设备公钥 PKb 的第二消息; 将接收单元从验证服务器接收的 包含客户节点公钥 PKa和 PKb的响应消息发送给客户节点;
所述计算单元, 用于在接收单元接收到包含客户节点公钥 PKa 和 PKb的响应消息后, 利用 PKa或 PKb以及自身私钥 y计算客户节 点和第三方设备的共享密钥 Kab。
一种客户节点, 该客户节点包括: 发送单元、 接收单元、 和计算 单元;
所述发送单元, 用于向第三方设备发送包含密码学参数、 以及根 据该密码学参数和自身私钥 X生成的客户节点公钥 PKa的第一消息; 所述接收单元, 用于接收第三方设备发送的包含 PKa或 PKb的 响应消息;
所述计算单元, 用于接收单元接收到所述响应消息后, 利用所述 PKa或 PKb以及自身私钥 X计算客户节点和第三方设备的共享密钥 与现有技术相比, 本发明实施例有以下优点:
在本发明实施例提供的第一种方法、 系统和设备中, 客户节点向 第三方设备发送第一密钥分发请求;第三方设备接收到所述第一密钥 分发请求后, 向验证服务器发送第二密钥分发请求; 验证服务器接收 到第二密钥分发请求后,利用包含可变参数的密钥材料计算客户节点 和第三方设备之间的共享密钥 Kab,向第三方设备发送包含 Kab和密 钥材料的密钥分发应答; 第三方设备接收到该密钥分发应答后, 获取 该 Kab, 并将生成 Kab的密钥材料转发给客户节点; 客户节点接收到 该密钥材料后, 利用该密钥材料, 采用和验证服务器相同的方法计算 Kab。 通过这种方式, 验证服务器将可变参数引入密钥材料来计算 Kab, 而不是全部采用固定不变的参数, 使得一旦 Kab泄漏, 也能够 利用该可变参数及时对 Kab 进行更新, 从而提高了消息传输的安全 性; 并且, 验证服务器将密钥材料提供给客户节点, 使得客户节点能 够通过相同的密钥计算方法, 采用该密钥材料计算 Kab, 这更进一步 提高了消息传输的安全性。 在本发明实施例提供的第二种方法、 系统和设备中, 客户节点和
第三方设备根据相同的密码学参数和自身的私钥生成各自的公钥,并 将该公钥发送给验证服务器进行安全性验证, 验证通过后, 客户节点 和第三方设备按照预先设定的方式,利用验证服务器回复的响应中包 含的客户节点的公钥或第三方节点的公钥,以及自身的私钥生成相同 的共享密钥 Kab。 该方法通过在计算 Kab的过程中引入可变的私钥, 而不是全部采用固定不变的参数,使得一旦 Kab泄漏, 能够利用该可 变的私钥及时对 Kab进行更新, 从而提高了消息传输的安全性。 附图说明
图 1为现有技术中的一种网络结构图; 图 2为本发明实施例提供的第一种主要方法流程图; 图 3为本发明实施例提供的第一种具体方法流程图; 图 4为本发明实施例提供的第一种系统结构图; 图 5为本发明实施例提供的验证服务器结构图; 图 6为本发明实施例提供的第一种客户节点结构图; 图 7为本发明实施例提供的第二种主要方法流程图; 图 8为本发明实施例提供的第二种系统结构图; 图 9为本发明实施例提供的验证服务器的结构图; 图 10为本发明实施例提供的第三方设备结构图; 图 11为本发明实施例提供的第二种客户节点结构图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚, 下面结合附图 和具体实施例对本发明进行详细描述。 图 2为本发明实施例提供的第一种主要方法流程图, 该方法中, 客户节点与验证服务器之间的共享密钥, 记为 Kas, 第三方设备与验
证服务器之间的共享密钥, 记为 Kbs, 验证服务器需要为客户节点和 第三方设备分发客户节点和第三方设备之间的共享密钥 Kab。 其中, Kas可以是一个或多个共享口令、 共享密钥、 也可以是由共享密钥派 生出的其它共享密钥。 如图 2所示, 该方法可以包括以下步骤: 步骤 201: 客户节点通过第一消息向第三方设备发送密钥分发请 求。 该第一消息可以包含客户节点标识 IDa和第三方设备标识 IDb, 还可以包含客户节点生成的临时值等信息。 并且该消息可以受客户节点与验证服务器间的共享密钥的安全 保护。客户节点可以利用自身与验证服务器之间的共享密钥 Kas生成 该第一消息的完整性验证码, 记为 MIC 1 , 也可以采用该 Kas对该第 一消息进行加密。 其中客户节点生成的临时值可以是随机数、序列号 或时间戳等信息。 步骤 202: 第三方设备接收到客户节点发送的密钥分发请求后, 通过第二消息向验证服务器发送密钥分发请求。 该第二消息可以包含用户标识 IDa和第三方设备标识 IDb, 以及 第一消息, 还可以包含第三方设备生成的临时值。 其中第三方设备生 成的临时值可以是随机数、 或时间戳。 本步骤中,第三方设备还可以利用自身与验证服务器之间的共享 密钥 Kbs生成该第二消息的完整性验证码, 记为 MIC 2, 同样也可以 对该第二消息进行加密。 步骤 203: 验证服务器利用包含可变参数的密钥材料计算客户节 点和第三方设备之间的共享密钥 Kab,并通过包含 Kab和密钥材料的 第三消息向第三方设备发送密钥分发应答。 验证服务器收到第三方设备发送的第二消息,利用自身与第三方 设备之间的共享密钥 Kbs对 MIC 2进行消息完整性验证, 利用自身 与客户节点之间的共享密钥 Kas对 MIC 1进行消息完整性验证, 如
果验证都通过, 生成 Kab; 如果其中任意一个验证不通过, 则向第三 方设备回复验证失败消息。如果客户节点和第三方设备分别对第一消 息和第二消息进行加密,则验证服务器首先对该第一消息和第二消息 进行解密, 还可以对户节点和第三方设备的身份标识进行验证, 如果 解密成功且身份验证通过,则生成包含 Kab和密钥材料的密钥分发应 答消息发送给第三方设备。 本步骤中, 验证服务器在生成 Kab 时, 可以将客户节点生成的 Na、 第三方设备生成的 Nb或验证服务器自身生成的临时值 Ns中的 一个或任意组合作为密钥材料中的可变参数,生成 Kab。 即 Kab可以 采用如下方法进行计算:
Kab = KDF ( Kas, Label IDa 1 IDb Na ), 或者,
Kab = KDF ( Kas, Label IDa 1 IDb Nb ), 或者,
Kab = KDF ( Kas, Label IDa 1 IDb Ns ), 或者,
Kab = KDF ( Kas, Label IDa 1 IDb Na 1 Nb ), 或者,
Kab = KDF ( Kas, Label IDa 1 IDb Na 1 Ns ), 或者,
Kab = KDF ( Kas, Label IDa 1 IDb Nb 1 Ns ), 或者,
Kab = KDF ( Kas, Label | IDa | IDb | Na | Nb | Ns )。其中, KDF 为生成密钥的函数, Label为一个预先设定的与 Kab用途相关的字符 串, I 为连接符。
另夕卜, 还可以将 Kab生存期 K_Lifetime、 Kab长度 K_Length等 也作为密钥材料生成 Kab, 例如: Kab = KDF ( Kas, Label | IDa | IDb I K_Lifetime | K_Length | Na )等。 在发送给第三方设备的第三消息中,生成 Kab的密钥材料可以包 含在第三消息的第一部分信息中, 该第一部分信息中还可以包含 Na 值,该第一部分信息可以使用验证服务器与客户节点之间的共享密钥 Kas生成 MIC 3, 或者可以使用 Kas进行加密。 Kab可以包含在第三
消息的第二部分信息中, 如果在步骤 202中, 第三方设备生成的临时 值 Nb,则该第二部分信息中还可以包含 Nb或 Nb经过一定运算生成 的值, 比如 Nb+1。 可以使用验证服务器与第三方设备之间的共享密 钥 Kbs生成整个消息的完整性验证码, 记为 MIC 4; 或者, 可以使用 Kbs对整个第三消息进行加密。
步骤 204: 第三方设备接收到验证服务器发送的第三消息后, 获 取其中包含的 Kab, 并将生成 Kab的密钥材料转发给客户节点。
本步骤中, 该包含密钥材料的部分记为 Key_Auth_Msg , 该 Key_Auth_Msg可以是验证服务器利用 Kas进行安全保护的消息。
本步骤中,第三方设备可以首先对该第三消息中采用 Kbs进行加 密的部分进行解密,或者,首先对该第三消息中的 MIC 4进行完整性 验证, 验证通过后, 获取 Kab, 并将包含密钥材料的 Key_Auth_Msg 转发给客户节点。转发给客户节点的消息还可以携带第三方设备使用 Kab生成的消息验证码 MIC5 , 可以是以 Key_Auth_Msg为输入生成 的完整性验证码,也可以是对 Key_Auth_Msg中的一部分生成完整性 验证码, 比如 Na、 IDa、 IDb、 MIC3中的一个或其任意组合, 将该完 整性验证码记为 MIC 5。 步骤 205:客户节点接收到第三方设备转发的生成 Kab的密钥材 料后, 利用该密钥材料, 采用和验证服务器相同的方法计算自身和第 三方设备之间的共享密钥 Kab。
本步骤中, 在该步骤中, 可以预先在客户节点中设置与验证服务 器相同的密钥计算方法。
客户节点接收到该密钥材料后,如果验证服务器对该部分进行了 完整性保护,则客户节点首先利用密钥分发服务器与客户节点间的共 享密钥 Kas对该密钥材料的 MIC 3进行完整性验证, 如果验证通过, 则利用该密钥材料计算 Kab; 如果验证服务器对该部分进行了加密, 则客户节点首先利用密钥分发服务器与客户节点间的共享密钥 Kas
对该密钥材料进行解密, 然后利用该密钥材料计算 Kab。
上述临时值 Na、 Nb和 Ns可以是一个随机数, 序列号、 或一个 时间戳。
另外, 在上述方法中, 验证服务器还可以每次保存客户节点或第 三方设备发送的临时值 Na或 Nb,接收到第三方设备发送的第二消息 后, 提取消息中的 IDa, 如果首次接收到该客户节点的消息, 则 MIC 1 , 如果验证通过, 则存储该 Na, 如果不是首次接收到该客户节点的 消息, 则可以将其中包含的 Na与自身存储的上一次该用户设备发送 的 Na值进行比较, 如果满足验证条件, 则执行计算 Kab的步骤。 这 样可以进一步地增强消息发送过程中的安全性。 其中, 如果临时值是 每次递增的序列号, 则验证服务器判断如果接收到的 Na值比自身存 储的 Na值大, 则满足验证条件, 可以继续计算 Kab, 否则, 拒绝计 算 Kab。 另外, 第三方设备同样也可以保存客户节点发送的 Na值, 在接收到第一消息或第三消息时, 同样可以根据接收到的 Na值和自 身存储的 Na值进行上述安全验证。 另外, 客户节点也可以保存自身 生成的 Na值, 在接收到第四消息时, 可以首先将密钥材料中包含的 Na值与自身存储的 Na值进行比较, 如果相同, 则验证成功。 下面就几个具体的实施例对上述方法进行描述。图 3为本发明实 施例提供的第一个具体方法流程图, 该方法中, 进行通信的三方分别 为 EAP客户节点、 本地认证服务器和家乡 EAP服务器, 分别对应客 户节点、 第三方设备和验证服务器。 EAP客户节点与家乡 EAP服务 器已通过认证, 并生成了共享密钥, 即扩展主会话密钥 (EMSK, Extended Master Session Key)以及通过 EMSK派生出的保护消息完整 性的共享密钥 KI_as; 当 EAP客户节点离开家乡域时, 为了减小切换 认证时延, 需要家乡 EAP服务器为 EAP客户节点和本地认证服务器 分发一个共享密钥 Kab, 使得 EAP客户节点在访问地进行重认证时, 可以使用该共享密钥 Kab向本地认证服务器进行认证。 如图 3所示, 该方法具体包括以下步骤:
步骤 301: EAP客户节点通过第一消息向本地认证服务器发送密 钥分发请求。该第一消息包含 EAP客户节点标识 IDa、本地认证服务 器标识 IDb、 以及 EAP客户节点生成的临时值 Na , 并通过 EAP客户 节点和家乡 EAP服务器之间的共享密钥 KI_as生成该第一消息的完 整性险证码, 记为 MIC 1。 步骤 302: 本地认证服务器接收到该第一消息后, 存储 Na值, 通过第二消息向家乡 EAP服务器发送密钥分发请求。 该第二消息中 包含 EAP客户节点标识 IDa、 本地认证服务器标识 IDb、 本地认证服 务器生成的临时值 Nb、 以及第一消息, 并通过本地认证服务器与家 乡 EAP服务器之间的共享密钥 Kbs生成该第二消息的完整性验证码; 或者利用 Kbs生成 Nb、 IDa、 IDb, 以及 MIC 1生成完整性验证码, 记为 MIC 2。 步骤 303: 家乡 EAP服务器接收到该第二消息后,对该第二消息 中的 MIC 1和 MIC 2进行完整性验证, 如果验证成功, 则将 Label、 IDa、 IDb以及可变参数 Na、 Nb作为密钥材料, 并使用 EMSK生成 EAP客户节点和本地认证服务器之间的共享密钥 Kab。即: Kab = KDF ( EMSK, Label | IDa | IDb | Na | Nb )。 并向本地认证服务器发送第 三消息, 该第三消息中包含两部分, 其中一部分包含 Kab以及 IDa、 IDb和 Na、 Nb, 并通过 Kbs对该包含 Kab的部分进行加密, 另一部 分包含 Kas、 Label, IDa、 IDb, Na, 并通过客户节点与家乡服务器 之间的共享密钥 KI_as生成该包含密钥材料的部分的完整性验证码, 记为 MIC 3。 或者该第三消息包含使用 Kbs加密的 kab, 还包含 Na、 Nb、 IDa, IDb 及给客户节点的包含密钥材料的密钥验证授权消息 Key_Auth_Msg , 该第三消息作为服务器对第一消息的响应包含了生 成 Kab的密钥材料、生存期, 及使用 KI_as生成的完整性验证码等信 息, 并使用 Kbs对整个消息生成完整性验证码。
或者该第三消息包含 kab , 及给客户节点的包含密钥材料的密钥
验证授权信息 Key_Auth_Msg, Key_Auth_Msg作为服务器对第一消 息的响应包含了生成 Kab的密钥材料及生存期,使用 KI_as生成的完 整性验证码等信息, 并使用 Kbs对整个消息加密。
步骤 304: 本地认证服务器接收到该第三消息后, 利用 Kbs进行 解密, 判断该第三消息中包含的 Na、 Nb是否与自身存储的 Na、 Nb 相同, 如果不相同, 则验证失败, 向密钥分发服务器及客户节点发送 失败消息; 如果相同, 则验证成功, 将包含密钥材料的部分通过第四 消息转发给 EAP客户节点, 另外, 本地认证服务器还可以利用 Kab 生成该第四消息的完整性验证码, 记为 MIC4 , 或使用 Kab进行加密 的 Na、 IDa、 IDb等信息。
更优地, 该第三消息中, 也可以包含经过特殊处理后的 Na, 例 如, Na + 1; 本地认证服务器对该经过特殊处理后的 Na进行逆处理, 即 Na + 1 - 1 ,将逆处理后的结果与自身存储的 Na进行比较,如果相 同, 则验证成功。 这样可以进一步保证消息的安全性。
步骤 305: EAP客户节点接收到第四消息后, 利用 KI_as对包含 密钥材料的部分的 MIC 3进行完整性验证, 且将密钥材料中包含的 Na值与自身存储的 Na值进行比较,如果都验证成功, 利用该密钥材 料, 采用和家乡 EAP服务器相同的方法计算 EAP客户节点和第三方 设备之间的共享密钥 Kab, 并使用 Kab验证 MIC4。
同样地, 在包含 Kab 的部分中, 也可以包含经过特殊处理后的 Na, 例如, Na + 1; 该 EAP客户节点也可以将经过特殊处理后的 Na 进行逆处理, 将逆处理后的结果与自身存储的 Na进行比较, 如果相 同, 则 3全证成功。
图 4为本发明实施例提供的第一种系统结构图, 如图 4所示, 该 系统包括: 客户节点 401、 第三方设备 402和验证服务器 403。
客户节点 401 , 用于通过第一消息向第三方设备 402发送密钥分 发请求,接收到第三方设备 402转发的密钥材料后,利用该密钥材料,
采用和验证服务器 403相同的方法计算 Kab。 第三方设备 402, 用于接收到客户节点 401发送的第一消息后, 通过第二消息向验证服务器 403发送密钥分发请求,接收到验证服务 器 403发送的密钥分发应答后, 获取该密钥分发应答中包含的 Kab, 将该密钥分发应答中包含的密钥材料转发给客户节点 401。
验证服务器 403 ,用于接收到第三方设备 402发送的第二消息后, 利用包含可变参数的密钥材料计算客户节点 401和第三方设备 402之 间的共享密钥 Kab,向第三方设备 402发送包含 Kab和密钥材料的密 钥分发应答。
另外, 客户节点 401 , 还可以用于利用自身和验证服务器 403之 间的共享密钥 Kas对第一消息进行安全保护。
第三方设备 402, 还可以用于利用自身和验证服务器 403之间的 共享密钥 Kbs对第二消息进行安全保护。 验证服务器 403,还可以用于利用 Kbs对第二消息进行安全性验 证, 利用 Kas对第二消息中包含的第一消息进行安全性验证。 验证服务器 403, 还可以用于利用自身和客户节点 401之间的共 享密钥 Kas对密钥分发应答中包含密钥材料的部分进行安全保护,利 用自身和第三方设备 402之间的共享密钥 Kbs对密钥分发应答中包含 Kab的部分进行安全保护。
第三方设备 402,还可以用于利用 Kbs对接收到的密钥分发应答 中包含 Kba的部分进行安全性验证。 客户节点 401 , 还可以用于利用 Kas对接收到的密钥材料进行安 全性验证。 另外, 第三方设备 402, 还用于利用获取的 Kab对所述包含密钥 材料的部分生成完整性校验码, 记为 MIC 5。
客户节点 401 , 还用于在计算出 Kab后, 利用该 Kab对该 MIC 5
进行完整性校验,如果校验失败,则向第三方设备 402发送失败消息, 如果校验通过, 则确认该计算出的 Kab安全。 图 5为本发明实施例提供的第一种验证服务器的结构图, 如图 5 所示, 该验证服务器包括: 接收单元 501、 计算单元 502和发送单元 503。 接收单元 501 , 用于接收密钥分发请求。
计算单元 502, 用于在接收单元 501接收到密钥分发请求后, 利 用包含可变参数的密钥材料计算客户节点和第三方设备之间的共享 密钥 Kab。 发送单元 503 , 用于发送包含 Kab和密钥材料的密钥分发请求。 验证服务器还可以包括: 安全性验证单元 504, 用于对接收单元 501接收到的密钥分发请求进行安全性验证, 如果验证通过, 则触发 计算单元 502执行计算 Kab的操作。 密钥生成单元还可以包括: 比较单元 505和存储单元 506。 比较单元 505 , 用于将接收单元 501接收到的密钥分发请求中包 含的临时值与存储单元 506存储的临时值进行比较,如果满足验证条 件, 则触发计算单元 502执行计算 Kab的操作。 存储单元 506, 用于在比较单元 505比较的结果为满足验证条件 时, 存储密钥分发请求中包含的临时值。
更优地, 密钥生成单元还可以包括: 安全保护单元 507, 用于利 用客户节点和验证服务器之间的共享密钥 Kas 对密钥分发应答中包 含密钥材料的部分进行安全保护,利用第三方设备和验证服务器之间 的共享密钥 Kbs对密钥分发应答中包含 Kab的部分进行安全保护。
其中, 计算单元 502可以包括: 可变参数获取单元 5021和密钥 计算单元 5022。 可变参数获取单元 5021 , 用于获取包括客户节点生成的临时值
Na、第三方设备生成的临时值 Nb和自身所在验证服务器生成的临时 值 Ns中的一个或任意组合的可变参数。
密钥计算单元 5022 , 用于利用包含可变参数的密钥材料计算
图 6为本发明实施例提供的第一种客户节点的结构图,如图 6所 示, 该客户节点可以包括: 发送单元 601、 密钥材料接收单元 602和 计算单元 603。 发送单元 601 , 用于向第三方设备发送密钥分发请求。
密钥材料接收单元 602, 用于接收第三方设备转发的密钥材料。 计算单元 603, 用于利用密钥材料接收单元 602接收到的密钥材 料,采用和验证服务器相同的方法计算客户节点和第三方设备之间的 共享密钥 Kab。
另外, 该客户节点还可以包括: 临时值生成单元 604, 用于生成 临时值, 并将该临时值携带在发送单元 601发送的密钥分发请求中。
更优地, 该客户节点还可以包括: 安全性验证单元 605, 用于利 用自身所在客户节点与验证服务器之间的共享密钥 Kas 对密钥材料 接收单元 602接收到的密钥材料进行安全性验证, 验证通过, 则触发 计算单元 603执行计算 Kab的操作。 另外, 该客户节点还可以包括: Kab确认单元 606, 用于利用计 算单元 603计算出的 Kab验证密钥材料的完整性验证码,记为 MIC 5, 如果一险证通过, 则确认该 Kab安全。 发送单元 601 , 还用于在所述 Kab确认单元 606验证失败后, 向 第三方设备发送失败消息。
图 7为本发明实施例提供的第二种方法流程图, 如图 7所示, 该 方法主要包括以下步骤: 步骤 701: 客户节点向第三方设备发送包含密码学参数(p, g )、
根据该密码学参数和自身私钥 X生成的客户节点公钥 PKa的第一消 息,并利用客户节点和验证服务器之间的共享密钥 Kas对该第一消息 进行安全保护。
本步骤中, 第一消息中包括客户标识 IDa、 第三方设备标识 IDb; 并且, 在以下步骤中传输的消息中均包含 IDa和 IDb。 在以下的描述 中不再赘述。
本步骤中, 客户节点可以基于离散对数的 Diffie-Hellman密钥交 换密码学参数(p, g ), 其中, p是素数, g是有限域 Fp的生成元, 且 g<p。 客户节点可以根据该密码学参数(p, g )和自身的私钥 X生成 自身的公钥 PKa, 即 PKa = gx mod p 。
本步骤中,该第一消息中还可以包括客户节点生成的临时值 Na。 对第一消息的安全保护可以是利用客户节点和验证服务器之间 的共享密钥 Kas生成该第一消息的 MIC 1 ,还可以是利用该 Kas对该 第一消息进行加密。
步骤 702: 第三方设备接收到该第一消息后, 向验证服务器发送 包含第一消息、以及自身利用密码学参数和自身私钥生成的第三方设 备公钥 PKb 的第二消息, 并利用第三方设备和验证服务器之间的共 享密钥 Kbs对该第二消息进行安全保护。
本步骤中, 第三方设备从所述第一消息中获取密码学参数, 并利 用该密码学参数 ( p, g )和自身的私钥 y生成自身的公钥 PKb, 即 PKb = gy mod p。
另外, 第三设备在接收到该第一消息后, 还可以保存该第一消息 中包含的 Na值。 在第二消息中也可以包含第三方设备生成的临时值 Nb。 本步骤中,对该第二消息进行安全保护可以是利用第三方设备和 验证服务器之间的共享密钥 Kbs 生成该第二消息的完整性验证码 MIC 2, 或者, 对该第二消息中不包含第一消息的部分生成 MIC 2,
还可以是利用该 Kbs对该第二消息进行加密,或者,对该第二消息中 不包含第一消息的部分进行加密。
步骤 703: 验证服务器接收到第二消息后, 对接收到的第二消息 和其中包含的第一消息进行安全性验证, 如果验证通过, 则向第三方 设备发送包含 PKa和 PKb的响应消息, 并通过客户节点和验证服务 器之间的共享密钥 Kas对包含 PKa的部分进行安全保护, 通过第三 方设备和验证服务器之间的共享密钥 Kbs对包含 PKb的部分进行安 全保护。
进行安全保护的方式同样可以是利用 Kas对包含 PKa的部分生 成 MIC 3, 或者进行加密; 利用 Kbs对包含 PKb的部分生成 MIC 4, 或者进行加密。 该包含 PKa的部分还可以包含: Na、 Nb、 IDa、 IDb 等, 包含 PKb的部分还可以包含 Na、 Nb、 IDa、 IDb等。
另夕卜,验证服务器在回复响应消息之前还可以根据第二消息中包 含的 Na值与自身存储的 Na值进行比较, 如果满足验证条件, 则存 储该接收到的 Na值, 并继续执行回复响应消息的步骤。
另外, 响应消息中包含 PKa的部分还可以包含 Na, 或经过特殊 处理后的 Na。
步骤 704:第三方设备接收到该响应消息后,使用 Kbs对包含 PKb 的部分进行安全性验证, 如果验证通过, 则按照预设的方式, 利用该 PKb和自身私钥 y计算客户节点和第三方设备的共享密钥 Kab;将包 含 PKa的部分转发给客户节点。
本步骤中, 第三方设备对包含 PKb 的部分进行安全性验证可以 是: 利用 Kbs对包含 PKb的部分的 MIC 4进行完整性验证或者进行 解密。
其中, 按照预设的方式计算 Kab可以是:
Kab = PKby mod p = gxy mod p。 ( 1 )
另外, 第三方设备在计算 Kab之前还可以根据包含 PKb部分中 包含的 Na值与自身存储的 Na值进行比较, 如果满足验证条件, 则 验证成功, 继续执行计算 Kab的步骤; 或者, 将包含 PKb部分中包 含的对 Na进行特殊处理的值进行逆处理, 并将逆处理后的值与自身 存储的 Na值进行比较, 如果满足验证条件, 则验证成功, 继续执行 计算 Kab的步骤。
步骤 705:客户节点对接收到的包含 PKa的部分进行安全性验证, 如果验证通过, 则利用该 PKa和自身的私钥 X计算 Kab。 本步骤中, 同样客户节点对包含 PKb 的部分进行安全性验证可 以是利用 Kas对包含 PKa的部分的 MIC 3进行完整性验证或者进行 解密。
其中, 按照预设的方式计算 Kab可以是:
Kab = PKax mod p = gxy mod p 0 (2) 由 (1 )式和(2 )式可以看出, 采用这种方式, 第三方设备和客 户节点分别计算出的 Kab值相同。
另外, 客户节点在计算 Kab之前还可以根据包含 PKa部分中包 含的 Na值与自身存储的 Na值进行比较, 如果满足验证条件, 则验 证成功, 继续执行计算 Kab的步骤; 或者, 将包含 PKa部分中包含 的对 Na进行特殊处理的值进行逆处理, 并将逆处理后的值与自身存 储的 Na值进行比较, 如果满足验证条件, 则验证成功, 继续执行计 算 Kab的步骤。
另外, 在上述流程中, 步骤 703 回复的响应消息中包含 PKa的 部分和包含 PKb的部分还可以同时包含 Na、Nb和验证服务器生成的 临时值 Ns中的一种或任意组合。 在步骤 704和步骤 705中, 可以将 式(1 )和式(2 )计算出的值作为密钥材料 Master Key, 即在步骤 704中计算出的 Master Key为: Master Key = PKby mod p = gxy mod p, 在 步 骤 705 中 计 算 出 的 Master Key 为 :
Master Key = PKax mod p = gxy mod p。并在步骤 704和步骤 705中, 继续将 Na、 Nb和 Ns中的一种或任意组合、以及计算出的 Master Key 作为密钥材料生成 Kab。 该 Kab的计算公式可以为:
Kab = KDF (Master Key, Label IDa IDb Na), 或者,
Kab = KDF (Master Key, Label IDa IDb Nb), 或者,
Kab = KDF (Master Key, Label IDa IDb Ns), 或者,
Kab = KDF (Master Key, Label IDa IDb Na 1 Nb), 或者,
Kab = KDF (Master Key, Label IDa IDb Na 1 Ns), 或者,
Kab = KDF (Master Key, Label IDa IDb Nb 1 Ns), 或者,
Kab = KDF (Master Key, Label IDa IDb Na 1 Nb 1 Ns)。 其 中, KDF为生成密钥的函数, Label为一个预先设定的与 Kab用途相 关的字符串, I 为分隔符。
另外, 还可以将密钥生存期 K_Lifetime、 密钥长度 K_Length等 也作为密钥材料生成 Kab, 例如: Kab = KDF ( Master Key, Label | IDa I IDb | K_Lifetime | K_Length | Na )等。
另外, 除了上述基于离散对数的 Diffie-Hellman密钥交换密码学 参数(p, g )外还可以采用其它的密码学参数, 例如, 还可以采用椭 圓曲线密码系统参数(p, d, f, G, n ), 其中, p为正整数, d和 f 是有限域 Fp上的正整数, G是椭圓曲线 E(Fp)上的基点, n是素数, 点 G的阶, 其中, 椭圓曲线的方程为 y2= x3+dx+f。
采用该椭圓曲线密码系统参数时,在步骤 701中生成的公钥 PKa 可以为: PKa = x x G, 其中, X小于 n。 并且, 客户节点将生成的公 钥 PKa和密码学参数(p, d, f, G, n ) 包含在第一消息中发送给第 三方设备。 在步骤 702 中第三方设备生成的公钥 PKb 可以为: PKb = y x G, 同样, y小于 n。 步骤 704中, 计算 Kab的方法是第三 方 设 备 利 用 PKa 和 自 身 私 钥 y 计 算 , 即 :
Master Key = y x PKa = y x x x G, 可以将该 Master Key作为 Kab; 也 可以进一步利用该 Master Key作为密钥材料生成 Kab。 步骤 705中, 计算 Kab 的方法是客户节点利用 PKb 和自身私钥 X 计算, 即: Master Key = x x PKb = x x y x G, 可以寻该 Master Key作为 Kab; 也 可以进一步利用该 Master Key作为密钥材料生成 Kab。可以看出,无 论采用什么方式的密码学参数,必需保证在步骤 704和步骤 705第三 方设备和客户节点结合自身私钥计算的 Master Key相同。
图 8为本发明实施例提供的第二种系统结构图, 如图 8所示, 该 系统包括: 客户节点 801、 第三方设备 802和验证服务器 803。
客户节点 801 , 用于向第三方设备 802发送包含密码学参数、 根 据密码学参数和自身私钥 X生成的客户节点 801公钥 PKa的第一消 息, 并对第一消息进行安全保护; 对第三方设备 802发送的包含 PKa 或 PKb 的响应消息进行安全性验证, 验证通过后, 按照预设的第二 方式, 利用 PKa或 PKb以及自身私钥 X计算 Kab。
第三方设备 802, 用于接收到第一消息后, 向验证服务器 803发 送包含第一消息、以及利用密码学参数和自身私钥 y生成的第三方设 备 802公钥 PKb的第二消息, 并对该第二消息进行安全保护; 对验 证服务器 803发送的响应消息进行安全性验证, 验证通过后, 按照预 设的第一方式, 利用 PKa或 PKb以及自身私钥 y计算客户节点 801 和第三方设备 802的共享密钥 Kab, 将包含 PKa或 PKb的响应消息 发送给客户节点 801。
验证服务器 803 , 用于对接收到的第二消息和第二消息中包含的 第一消息进行安全性验证, 验证通过后, 向第三方设备 802发送包含 PKa和 PKb的响应消息, 并对该响应消息的内容进行安全性保护。
图 9为本发明实施例提供的第二种验证服务器的结构图, 如图 9 所示, 该验证服务器包括: 接收单元 901、 安全性验证单元 902、 发 送单元 903和安全保护单元 904。
接收单元 901 , 用于接收第三方设备发送的包含客户节点公钥
PKa和第三方设备公钥 PKb的第二消息。
安全性验证单元 902, 用于对接收单元 901接收到的第二消息和 第二消息中包含的第一消息进行安全性验证。
发送单元 903, 用于在安全性验证单元 902验证通过后, 向第三 方设备发送包含客户节点公钥 PKa和第三方设备公钥 PKb的响应消 '¾·。
安全保护单元 904, 用于对发送单元 903发送的响应消息进行安 全保护。
该验证服务器还可以包括: 比较单元 905和 Na存储单元 906。 比较单元 905 , 用于将接收单元 901接收到的第二消息中包含的 临时值 Na与 Na存储单元 906存储的 Na值进行比较,如果满足验证 条件, 则触发发送单元 903执行发送响应消息的操作, 如果不满足验 证条件, 则禁止发送单元 903执行发送响应消息的操作。
Na存储单元 906,用于在比较单元 905的比较结果为满足验证条 件时, 存储第二消息中包含的 Na。
图 10为本发明实施例提供的第三方设备的结构图,如图 10所示, 该第三方设备可以包括: 接收单元 1001、 发送单元 1002、 安全保护 单元 1003、 安全性验证单元 1004和计算单元 1005。
接收单元 1001 ,用于接收客户节点发送的第一消息,接收验证服 务器发送的响应消息。
发送单元 1002, 用于在接收单元 1001接收到第一消息后, 向验 证服务器发送包含第一消息、以及利用密码学参数和自身私钥 y生成 的第三方设备公钥 PKb的第二消息, 在安全性验证单元 1004验证通 过后,将包含客户节点公钥 PKa和 PKb的响应消息发送给客户节点。
安全保护单元 1003, 用于对发送单元 1002发送的第二消息进行 安全保护。
安全性验证单元 1004, 对接收单元 1001接收的响应消息进行安 全性验证。
计算单元 1005 , 用于在安全性验证单元 1004验证通过后, 按照
预设的第一方式, 利用 PKa或 PKb以及自身私钥 y计算客户节点和 第三方设备的共享密钥 Kab。
第三方设备还可以包括: Na存储单元 1006和比较单元 1007;
Na存储单元 1006, 用于存储第一消息中包含的 Na值。
比较单元 1007, 用于比较响应消息中包含的 Na值与自身存储的 Na值, 如果满足验证条件, 则触发计算单元 1005执行计算的步骤, 如果不满足验证条件, 则禁止计算单元 1005执行计算的步骤。
该第三方设备还可以包括:公钥生成单元 1008,用于利用第一消 息中包含的密码学参数、 以及自身私钥 y生成第三方设备公钥 PKb。
图 11为本发明实施例提供的第二种客户节点结构图, 如图 11所 示, 该客户节点包括: 发送单元 1101、 安全保护单元 1102、 接收单 元 1103、 安全性验证单元 1104和计算单元 1105。
发送单元 1101 ,用于向第三方设备发送包含密码学参数、以及根 据该密码学参数和自身私钥 X生成的客户节点公钥 PKa的第一消息。
安全保护单元 1102, 用于对发送单元 1101发送的第一消息进行 安全保护。
接收单元 1103 , 用于接收第三方设备发送的包含 PKa或 PKb的 响应消息。
安全性验证单元 1104, 用于对接收单元 1103接收到的响应消息 进行安全性验证。
计算单元 1105, 用于在安全性验证单元 1104验证通过后, 按照 预设的第二方式, 利用 PKa或 PKb以及自身私钥 X计算客户节点和 第三方设备的共享密钥 Kab。
该客户节点还可以包括: 密码学参数生成单元 1106和公钥生成 单元 1107。
密码学参数生成单元 1106, 用于生成密码学参数。
公钥生成单元 1107, 用于根据密码学参数生成单元 1106生成的 密码学参数计算和自身私钥 x生成客户节点公钥 PKa。
该客户节点还可以包括: Na存储单元 1108和比较单元 1109。
Na存储单元 1108, 用于存储自身所在客户节点生成的 Na值。 比较单元 1109, 用于将响应消息中包含的临时值 Na与 Na存储 单元 1108存储的 Na值进行比较,如果满足验证条件, 则触发计算单 元 1105执行计算 Kab的操作, 否则, 禁止计算单元 1105执行计算 Kab的操作。
由以上描述可以看出, 在本发明实施例提供的第一种方法、 系统 和设备中, 客户节点向第三方设备发送第一密钥分发请求; 第三方设 备接收到所述第一密钥分发请求后,向验证服务器发送第二密钥分发 请求; 验证服务器接收到第二密钥分发请求后, 利用包含可变参数的 密钥材料计算客户节点和第三方设备之间的共享密钥 Kab, 向第三方 设备发送包含 Kab和密钥材料的密钥分发应答;第三方设备接收到该 密钥分发应答后, 获取该 Kab, 并将密钥材料转发给客户节点; 客户 节点接收到该密钥材料后, 利用该密钥材料, 采用和验证服务器相同 的方法计算 Kab。 通过这种方式, 验证服务器将可变参数引入密钥材 料来计算 Kab,而不是全部采用固定不变的参数,使得一旦 Kab泄漏, 也能够利用该可变参数及时对 Kab进行更新,从而提高了消息传输的 安全性; 并且, 验证服务器将密钥材料提供给客户节点, 使得客户节 点能够通过相同的密钥计算方法, 采用该密钥材料计算 Kab, 这更进 一步提高了消息传输的安全性。 另外, 第三方设备在将密钥材料转发 给客户节点时, 可以同时使用该 Kab生成密钥材料的 MIC, 客户节 点在利用该密钥材料计算出 Kab后, 可以利用该 Kab验证 MIC, 从 而确认第三方设备接收到 Kab, 增强了密钥分发的安全性。
在本发明实施例提供的第二种方法、 系统和设备中, 客户节点和 第三方设备根据相同的密码学参数和自身的私钥生成各自的公钥,并 将该公钥发送给验证服务器进行安全性验证, 验证通过后, 客户节点 和第三方设备按照预先设定的方式,利用验证服务器回复的响应中包 含的客户节点的公钥或第三方节点的公钥,以及自身的私钥生成相同 的共享密钥 Kab。 该方法通过在计算 Kab的过程中引入可变的私钥, 而不是全部采用固定不变的参数,使得一旦 Kab泄漏, 能够利用该可
变的私钥及时对 Kab进行更新,从而提高了消息传输的安全性。并且, 更进一步地, 可以将各设备生成的临时值作为可变的密钥材料计算 Kab, 更加方便地对 Kab进行更新, 提高了消息传输的安全性。
并且,本发明实施例结合多种防止密钥泄漏和防止重放攻击的安 全性措施, 例如, 采用对发送的密钥分发请求和密钥分发响应进行加 密和生成完整性校验码的方式,利用将接收到的临时值与自身存储的 临时值进行比较的方式等, 提高了消息传输的安全性。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解 到本发明可以通过硬件实现,也可以可借助软件加必要的通用硬件平 台的方式来实现。基于这样的理解, 本发明的技术方案可以以软件产 品的形式体现出来, 该软件产品可以存储在一个非易失性存储介质 (可以是 CD-ROM, U盘, 移动硬盘等) 中, 包括若干指令用以使 得一台计算机设备(可以是个人计算机, 服务器, 或者网络设备等) 执行本发明各个实施例所述的方法。
总之, 以上所述仅为本发明的较佳实施例而已, 并非用于限定本 发明的保护范围。 凡在本发明的精神和原则之内, 所做的任何修改、 等同替换、 改进等, 均应包含在本发明保护的范围之内。
Claims
1、 一种密钥分发的方法, 其特征在于, 该方法包括:
客户节点通过第一消息向第三方设备发送密钥分发请求,所述第 一消息中包含可变参数,所述第一消息受客户节点与验证服务器间共 享密钥的保护;
所述第三方设备接收到所述第一消息后,通过第二消息向验证服 务器发送密钥分发请求;
所述验证服务器接收到所述第二消息后,利用包含所述可变参数 的密钥材料计算客户节点和第三方设备之间的共享密钥,通过包含所 述客户节点和第三方设备之间的共享密钥和密钥材料的第三消息向 第三方设备发送密钥分发应答;
所述第三方设备接收到所述第三消息后,获取所述客户节点和第 三方设备之间的共享密钥, 并将所述密钥材料转发给客户节点; 所述 客户节点接收到所述密钥材料后, 利用该密钥材料, 采用和验证服务 器相同的方法计算客户节点和第三方设备之间的共享密钥。
2、 根据权利要求 1所述的方法, 其特征在于, 所述第一消息和 第二消息中包含所述客户节点标识和第三方设备标识;所述第二消息 还包含所述第一消息。
3、 根据权利要求 2所述的方法, 其特征在于, 所述第二消息是 利用所述第三方设备和验证服务器之间的共享密钥进行安全保护的; 在所述计算客户节点和第三方设备之间的共享密钥之前还包括: 所述验证服务器利用所述客户节点与验证服务器间共享密钥对所述 第一消息进行安全性验证, 和 /或利用所述第三方设备和验证服务器 之间的共享密钥对所述第二消息进行安全性验证, 如果验证成功, 则 继续执行所述计算客户节点和第三方设备之间的共享密钥的步骤。
4、 根据权利要求 1所述的方法, 其特征在于, 所述第三消息包 含两部分,其中第一部分包含所述客户节点和第三方设备之间的共享
密钥、客户节点标识和第三方设备标识,第二部分包含所述密钥材料; 该方法还包括: 所述验证服务器利用第三方设备和验证服务器之 间的共享密钥对所述第三消息中的第一部分进行安全保护;所述第三 方设备在获取所述客户节点和第三方设备之间的共享密钥之前,利用 所述第三方设备和验证服务器之间的共享密钥对所述第一部分进行 安全性险证; 和 /或,
所述验证服务器利用客户节点和验证服务器之间的共享密钥对 所述密钥分发应答中的第二部分进行安全保护;所述客户节点节在计 算客户节点和第三方设备之间的共享密钥之前,利用所述客户节点与 验证服务器间共享密钥对所述第二部分进行安全性验证。
5、 根据权利要求 3或 4所述的方法, 其特征在于, 所述进行安 全保护包括: 生成完整性验证码 MIC; 所述进行安全性验证包括: 对 所述 MIC进行消息完整性验证;
或者
所述进行安全保护包括: 进行加密; 所述进行安全性验证包括: 进行解密。
6、 根据权利要求 2所述的方法, 其特征在于, 所述第一消息和 第二消息包含的可变参数包括所述客户节点生成的临时值;
所述验证服务器在计算客户节点和第三方设备之间的共享密钥 之前还包括: 将所述第二消息中包含的客户节点生成的临时值; 与自 身存储的客户节点生成的临时值; 进行比较, 如果满足验证条件, 则 利用所述第二消息中包含的客户节点生成的临时值;替换自身存储的 客户节点生成的临时值;, 继续执行所述客户节点和第三方设备之间 的共享密钥的步骤, 否则, 丟弃所述第二消息。
7、 根据权利要求 1所述的方法, 其特征在于, 所述第一消息和 第二消息中包含所述客户节点生成的临时值; 和 /或, 所述第二消息 中包含所述第三方设备生成的临时值; 和 /或, 所述验证服务器生成 临时值;
所述可变参数包括所述客户节点生成的临时值、第三方设备生成
的临时值和验证服务器生成临时值中的一种或任意组合。
8、 根据权利要求 6或 7所述的方法, 其特征在于, 所述临时值 为随机数、 序列号或时间戳。
9、 根据权利要求 1所述的方法, 其特征在于, 该方法还包括: 第三方设备获取客户节点和第三方设备之间的共享密钥后,利用所述 客户节点和第三方设备之间的共享密钥生成所述密钥材料的完整性 校验码, 并将该完整性校验码和密钥材料一起转发给客户节点;
所述客户节点计算出客户节点和第三方设备之间的共享密钥后, 利用计算出的客户节点和第三方设备之间的共享密钥对所述密钥材 料的完整性校验码进行校验, 如果验证失败, 则向所述第三方设备回 复失败消息。
10、一种密钥分发的系统, 其特征在于, 该系统包括: 客户节点、 第三方设备和验证服务器;
所述客户节点,用于通过第一消息向第三方设备发送密钥分发请 求, 接收到所述第三方设备转发的密钥材料后, 利用该密钥材料, 采 用和验证服务器相同的方法计算自身与第三方设备间的共享密钥; 所述第三方设备, 用于在接收到所述客户节点发送的第一消息 后, 通过第二消息向验证服务器发送密钥分发请求,接收到所述验证 服务器发送的密钥分发应答后,获取该密钥分发应答中包含的客户节 点和第三方设备之间的共享密钥,将该密钥分发应答中包含的密钥材 料转发给所述客户节点;
所述验证服务器, 用于接收到所述第三方设备发送的第二消息 后,利用包含可变参数的密钥材料计算客户节点和第三方设备之间的 共享密钥,向所述第三方设备发送包含所述客户节点和第三方设备之 间的共享密钥和密钥材料的密钥分发应答。
11、 根据权利要求 10所述的系统, 其特征在于, 所述客户节点, 还用于利用自身和验证服务器之间的共享密钥对所述消息进行安全 保护;
所述第三方设备,还用于利用自身和验证服务器之间的共享密钥
对所述第二消息进行安全保护;
所述验证服务器,还用于利用所述第三方设备和验证服务器之间 的共享密钥对所述第二消息进行安全性验证,利用所述客户节点与验 证服务器间共享密钥对所述第二消息中包含的第一消息进行安全性 验证。
12、 根据权利要求 10所述的系统, 其特征在于, 所述验证服务 器,还用于利用自身和客户节点之间的共享密钥对所述密钥分发应答 中包含密钥材料的部分进行安全保护,利用自身和第三方设备之间的 共享密钥对所述密钥分发应答中包含客户节点和第三方设备之间的 共享密钥的部分进行安全保护;
所述第三方设备,还用于利用所述第三方设备和验证服务器之间 的共享密钥对接收到的所述密钥分发应答中包含客户节点和第三方 设备之间的共享密钥的部分进行安全性验证;
所述客户节点,还用于利用所述客户节点与验证服务器间共享密 钥对接收到的密钥材料进行安全性验证。
13、 一种验证服务器, 其特征在于, 该验证服务器包括: 接收单 元、 计算单元和发送单元;
所述接收单元, 用于接收第三方设备发送的密钥分发请求; 所述计算单元, 用于在所述接收单元接收到密钥分发请求后, 利 用包含可变参数的密钥材料计算客户节点和第三方设备之间的共享 密钥;
所述发送单元,用于向所述第三方设备发送包含所述客户节点和 第三方设备之间的共享密钥和密钥材料的密钥分发请求。
14、 根据权利要求 13所述的验证服务器, 其特征在于, 所述验 证服务器还包括: 安全性验证单元, 用于对所述接收单元接收到的密 钥分发请求进行安全性验证, 如果验证通过, 则触发所述计算单元执 行所述计算客户节点和第三方设备之间的共享密钥的操作。
15、 根据权利要求 13所述的验证服务器, 其特征在于, 所述密 钥生成单元还包括: 安全保护单元, 用于利用客户节点和验证服务器
之间的共享密钥对所述密钥分发应答中包含密钥材料的部分进行安 全保护,利用第三方设备和验证服务器之间的共享密钥对所述密钥分 发应答中包含客户节点和第三方设备之间的共享密钥的部分进行安 全保护。
16、 根据权利要求 13所述的验证服务器, 其特征在于, 所述计 算单元包括: 可变参数获取单元和密钥计算单元;
所述可变参数获取单元, 用于获取包括客户节点生成的临时值、 第三方设备生成的临时值和自身所在验证服务器生成的临时值中的 一个或任意组合的可变参数;
所述密钥计算单元,用于利用包含所述可变参数的密钥材料计算 所述客户节点和第三方设备之间的共享密钥。
17、 一种客户节点, 其特征在于, 该客户节点包括: 临时值生成 单元、 发送单元、 密钥材料接收单元和计算单元;
所述临时值生成单元, 用于生成临时值;
所述发送单元, 用于向第三方设备发送密钥分发请求, 所述密钥 分发请求中携带所述临时值生成单元生成的临时值;
所述密钥材料接收单元, 用于接收第三方设备转发的密钥材料; 所述计算单元,用于利用所述密钥材料接收单元接收到的密钥材 料,采用和验证服务器相同的方法计算客户节点和第三方设备之间的 共享密钥。
18、 根据权利要求 17所述的客户节点, 其特征在于, 该客户节 点还包括: 安全性验证单元, 用于利用自身所在客户节点与验证服务 器之间的共享密钥对所述密钥材料接收单元接收到的密钥材料进行 安全性验证, 验证通过, 则触发所述计算单元执行所述计算客户节点 和第三方设备之间的共享密钥的操作。
19、 一种密钥分发的方法, 其特征在于, 该方法包括: 客户节点向第三方设备发送包含密码学参数、根据所述密码学参 数和自身私钥 X生成的客户节点公钥的第一消息;
第三方设备接收到该第一消息后, 向验证服务器发送包含第一消
息、以及利用密码学参数和自身私钥 y生成的第三方设备公钥的第二 消息;
验证服务器对接收到的第二消息和第二消息中包含的第一消息 进行安全性验证, 验证通过后, 向第三方设备发送包含客户节点公钥 和第三方设备公钥的响应消息;
第三方设备对接收到的响应消息进行安全性验证, 验证通过后, 按照预设的第一方式,利用客户节点公钥或第三方设备公钥以及自身 私钥 y计算客户节点和第三方设备的共享密钥;将包含客户节点公钥 或第三方设备公钥的响应消息发送给客户节点;
客户节点对接收到的包含客户节点公钥或第三方设备公钥的响 应消息进行安全性验证, 验证通过后, 按照预设的第二方式, 利用客 户节点公钥或第三方设备公钥以及自身私钥 X计算客户节点和第三 方设备之间的共享密钥。
20、 根据权利要求 19所述的方法, 其特征在于, 所述方法还包 括:所述客户节点利用客户节点与验证服务器之间的共享密钥对所述 第一消息进行安全保护和安全性校验;
所述第三方设备利用第三方设备与验证服务器之间的共享密钥 对所述第二消息进行安全保护和安全性校验;
所述第三方设备将所述响应消息分成两部分,分别利用所述客户 节点与验证服务器间共享密钥和第三方设备和验证服务器之间的共 享密钥对所述响应消息的两部分进行安全性保护和安全性校验。
21、 根据权利要求 19所述的方法, 其特征在于, 所述第一消息 和第二消息中还包含所述客户节点生成的临时值;
所述验证服务器在发送响应消息之前还包括:将所述第二消息中 包含的客户节点生成的临时值与自身存储的客户节点生成的临时值 进行比较, 如果满足验证条件, 则利用所述第二消息中包含的客户节 点生成的临时值替换自身存储的客户节点生成的临时值,继续执行所 述发送响应消息的步骤, 否则, 丟弃所述第二消息。
22、 根据权利要求 21所述的方法, 其特征在于, 所述临时值为
随机数、 序列号或时间戳。
23、一种密钥分发的系统, 其特征在于, 该系统包括: 客户节点、 第三方设备和验证服务器;
所述客户节点, 用于向所述第三方设备发送包含密码学参数、 根 据所述密码学参数和自身私钥 X生成的客户节点公钥的第一消息;对 所述第三方设备发送的包含客户节点公钥或第三方设备公钥的响应 消息进行安全性验证, 验证通过后, 利用客户节点公钥或第三方设备 公钥以及自身私钥 X计算客户节点和第三方设备之间的共享密钥; 所述第三方设备, 用于接收到所述第一消息后, 向验证服务器发 送包含第一消息、以及利用密码学参数和自身私钥 y生成的第三方设 备公钥的第二消息;对所述验证服务器发送的响应消息进行安全性验 证, 验证通过后, 利用客户节点公钥或第三方设备公钥以及自身私钥 y计算客户节点和第三方设备的共享密钥, 将包含客户节点公钥或第 三方设备公钥的响应消息发送给客户节点;
所述验证服务器,用于对接收到的第二消息和第二消息中包含的 第一消息进行安全性验证, 验证通过后, 向所述第三方设备发送包含 客户节点公钥和第三方设备公钥的响应消息。
24、 一种验证服务器, 其特征在于, 该验证服务器包括: 接收单 元、 安全性验证单元、 发送单元和安全保护单元;
所述接收单元,用于接收第三方设备发送的包含客户节点公钥和 第三方设备公钥的第二消息;
所述安全性验证单元,用于对所述接收单元接收到的第二消息和 第二消息中包含的第一消息进行安全性验证;
所述发送单元, 用于在所述安全性验证单元验证通过后, 向第三 方设备发送包含客户节点公钥和第三方设备公钥的响应消息;
所述安全保护单元,用于对所述发送单元发送的响应消息进行安 全保护。
25、 根据权利要求 24所述的验证服务器, 其特征在于, 该验证 服务器还包括: 比较单元和客户节点生成的临时值存储单元;
所述比较单元,用于将所述接收单元接收到的第二消息中包含的 临时值与所述客户节点生成的临时值存储单元存储的客户节点生成 的临时值进行比较, 如果满足验证条件, 则触发所述发送单元执行所 述发送响应消息的操作, 如果不满足验证条件, 则禁止所述发送单元 执行所述发送响应消息的操作;
所述客户节点生成的临时值存储单元,用于在所述比较单元的比 较结果为满足验证条件时,存储所述第二消息中包含的客户节点生成 的临时值。
26、 一种第三方设备, 其特征在于, 该第三方设备包括: 接收单 元、 发送单元和计算单元;
所述接收单元,用于接收客户节点发送的第一消息以及验证服务 器发送的响应消息;
所述发送单元, 用于在所述接收单元接收到第一消息后, 向验证 服务器发送包含第一消息、以及利用密码学参数和自身私钥 y生成的 第三方设备公钥的第二消息;将接收单元从验证服务器接收的包含客 户节点公钥和第三方设备公钥的响应消息发送给客户节点;
所述计算单元,用于在接收单元接收到包含客户节点公钥和第三 方设备公钥的响应消息后,利用客户节点公钥或第三方设备公钥以及 自身私钥 y计算客户节点和第三方设备的共享密钥。
27、 根据权利要求 26所述的第三方设备, 其特征在于, 该第三 方设备还包括: 公钥生成单元, 用于利用所述第一消息中包含的密码 学参数、 以及自身私钥 y生成第三方设备公钥。
28、 一种客户节点, 其特征在于, 该客户节点包括: 发送单元、 接收单元、 和计算单元;
所述发送单元, 用于向第三方设备发送包含密码学参数、 以及根 据该密码学参数和自身私钥 X生成的客户节点公钥的第一消息; 所述接收单元,用于接收第三方设备发送的包含客户节点公钥或 第三方设备公钥的响应消息;
所述计算单元, 用于接收单元接收到所述响应消息后, 利用所述
客户节点公钥或第三方设备公钥以及自身私钥 X计算客户节点和第 三方设备的共享密钥。
29、 根据权利要求 28所述的客户节点, 其特征在于, 该客户节 点还包括: 密码学参数生成单元和公钥生成单元;
所述密码学参数生成单元, 用于生成密码学参数;
所述公钥生成单元,用于根据所述密码学参数生成单元生成的密 码学参数计算和自身私钥 X生成客户节点公钥。
Priority Applications (4)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2010530263A JP2011501585A (ja) | 2007-11-16 | 2008-11-14 | キー配信用の方法、システムおよび機器 |
| CN200880007872.3A CN101636966B (zh) | 2007-11-16 | 2008-11-14 | 一种密钥分发的方法、系统和设备 |
| EP08849967A EP2182672A4 (en) | 2007-11-16 | 2008-11-14 | METHOD, SYSTEM AND EQUIPMENT FOR KEY DISTRIBUTION |
| US12/728,946 US8484469B2 (en) | 2007-11-16 | 2010-03-22 | Method, system and equipment for key distribution |
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN200710188317.2A CN101436930A (zh) | 2007-11-16 | 2007-11-16 | 一种密钥分发的方法、系统和设备 |
| CN200710188317.2 | 2007-11-16 |
Related Child Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| US12/728,946 Continuation US8484469B2 (en) | 2007-11-16 | 2010-03-22 | Method, system and equipment for key distribution |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2009062451A1 true WO2009062451A1 (en) | 2009-05-22 |
Family
ID=40638347
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/CN2008/073062 Ceased WO2009062451A1 (en) | 2007-11-16 | 2008-11-14 | Method, system and equipment for key distribution |
Country Status (5)
| Country | Link |
|---|---|
| US (1) | US8484469B2 (zh) |
| EP (1) | EP2182672A4 (zh) |
| JP (1) | JP2011501585A (zh) |
| CN (2) | CN101436930A (zh) |
| WO (1) | WO2009062451A1 (zh) |
Families Citing this family (26)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| EP2119186B1 (en) * | 2007-01-08 | 2013-10-16 | S & C Electric Company | Power distribution system secure access communication system and method |
| KR101514840B1 (ko) * | 2008-06-11 | 2015-04-23 | 삼성전자주식회사 | 휴대 방송 시스템에서의 암호화 키 분배 방법 및 이를 위한시스템 |
| CN101841547B (zh) * | 2010-05-20 | 2012-08-08 | 西安西电捷通无线网络通信股份有限公司 | 一种端到端共享密钥的建立方法及系统 |
| CN101895879B (zh) * | 2010-07-09 | 2013-01-09 | 杭州师范大学 | 一种无线传感网络的安全通信方法 |
| CN102170450A (zh) * | 2011-05-16 | 2011-08-31 | 北京和利时系统工程有限公司 | 列车运行控制系统的密钥处理方法、装置及系统 |
| US8750512B2 (en) * | 2011-10-28 | 2014-06-10 | Aruba Networks, Inc. | Authenticating an ephemeral Diffie-Hellman using a trusted third party |
| TWI469613B (zh) * | 2012-03-02 | 2015-01-11 | Univ Nat Cheng Kung | 雲端認證系統及方法 |
| CN103326853A (zh) * | 2012-03-22 | 2013-09-25 | 中兴通讯股份有限公司 | 一种密钥更新的方法及装置 |
| US9124432B2 (en) * | 2012-05-25 | 2015-09-01 | Kabushiki Kaisha Toshiba | Host device and authentication method for host device |
| AU2013282067B2 (en) * | 2012-06-25 | 2017-07-27 | Kubota Corporation | Joint and use of a sealing member |
| CN103684759A (zh) * | 2012-09-11 | 2014-03-26 | 中国银联股份有限公司 | 一种终端数据加密方法和装置 |
| CN103905448B (zh) * | 2014-04-01 | 2017-04-05 | 江苏物联网研究发展中心 | 面向城市安防的摄录设备实体认证方法 |
| US9331989B2 (en) | 2014-10-06 | 2016-05-03 | Micron Technology, Inc. | Secure shared key sharing systems and methods |
| CN104301332B (zh) * | 2014-10-31 | 2017-10-27 | 成都卫士通信息产业股份有限公司 | 一种基于无线级联的密钥分发系统 |
| US9923715B2 (en) * | 2015-06-09 | 2018-03-20 | Intel Corporation | System, apparatus and method for group key distribution for a network |
| CN106470104B (zh) | 2015-08-20 | 2020-02-07 | 阿里巴巴集团控股有限公司 | 用于生成共享密钥的方法、装置、终端设备及系统 |
| US10412098B2 (en) | 2015-12-11 | 2019-09-10 | Amazon Technologies, Inc. | Signed envelope encryption |
| US9705859B2 (en) * | 2015-12-11 | 2017-07-11 | Amazon Technologies, Inc. | Key exchange through partially trusted third party |
| US12047501B2 (en) | 2018-06-01 | 2024-07-23 | Roland Tegeder | System and method for providing an authorised third party with overt ledger secured key escrow access to a secret |
| CN112673591B (zh) * | 2018-06-01 | 2021-12-31 | R·特格德 | 用于向经授权的第三方提供对秘密的公开分类账安全密钥托管访问的系统和方法 |
| US11265301B1 (en) * | 2019-12-09 | 2022-03-01 | Amazon Technologies, Inc. | Distribution of security keys |
| US11184160B2 (en) | 2020-02-26 | 2021-11-23 | International Business Machines Corporation | Channel key loading in a computing environment |
| US11652616B2 (en) * | 2020-02-26 | 2023-05-16 | International Business Machines Corporation | Initializing a local key manager for providing secure data transfer in a computing environment |
| CN113468543B (zh) * | 2020-03-30 | 2025-04-22 | 阿里巴巴集团控股有限公司 | 数据处理方法、装置、系统、存储介质和处理器 |
| CN114765557B (zh) * | 2021-01-14 | 2025-05-13 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置、服务器及存储介质 |
| CN113630386B (zh) * | 2021-07-15 | 2023-05-09 | 金杉 | 一种加解密方法、装置及其通信系统 |
Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN1564514A (zh) * | 2004-03-26 | 2005-01-12 | 中兴通讯股份有限公司 | 无线局域网自组网模式共享密钥认证和会话密钥协商方法 |
| US20060053289A1 (en) * | 2004-09-09 | 2006-03-09 | International Business Machines Corporation | Peer-to-peer communications |
| CN1770681A (zh) * | 2005-10-14 | 2006-05-10 | 西安电子科技大学 | 无线环境下的会话密钥安全分发方法 |
| CN1819515A (zh) * | 2006-03-20 | 2006-08-16 | 胡祥义 | 一种保密型对称密码算法的实现方法 |
| WO2007121587A1 (en) * | 2006-04-25 | 2007-11-01 | Stephen Laurence Boren | Dynamic distributed key system and method for identity management, authentication servers, data security and preventing man-in-the-middle attacks |
Family Cites Families (20)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6766453B1 (en) * | 2000-04-28 | 2004-07-20 | 3Com Corporation | Authenticated diffie-hellman key agreement protocol where the communicating parties share a secret key with a third party |
| US6993652B2 (en) * | 2001-10-05 | 2006-01-31 | General Instrument Corporation | Method and system for providing client privacy when requesting content from a public server |
| US7231663B2 (en) * | 2002-02-04 | 2007-06-12 | General Instrument Corporation | System and method for providing key management protocol with client verification of authorization |
| JP4213664B2 (ja) * | 2002-06-12 | 2009-01-21 | テレフオンアクチーボラゲット エル エム エリクソン(パブル) | サービス合意の否認防止(non−repudiation) |
| GB0216690D0 (en) | 2002-07-18 | 2002-08-28 | Hewlett Packard Co | Method and appatatus for encrypting data |
| US7246231B2 (en) * | 2002-10-31 | 2007-07-17 | Ntt Docomo, Inc. | Location privacy through IP address space scrambling |
| US7350077B2 (en) * | 2002-11-26 | 2008-03-25 | Cisco Technology, Inc. | 802.11 using a compressed reassociation exchange to facilitate fast handoff |
| JP2004208073A (ja) * | 2002-12-25 | 2004-07-22 | Sony Corp | 無線通信システム |
| JP2005218023A (ja) * | 2004-02-02 | 2005-08-11 | Matsushita Electric Ind Co Ltd | 鍵配信システム |
| CN1658547B (zh) * | 2004-02-16 | 2010-08-18 | 华为技术有限公司 | 密钥分发方法 |
| CN100373843C (zh) | 2004-03-23 | 2008-03-05 | 中兴通讯股份有限公司 | 一种无线局域网中密钥协商方法 |
| US7907734B2 (en) * | 2005-03-04 | 2011-03-15 | Panasonic Corporation | Key distribution control apparatus, radio base station apparatus, and communication system |
| US7975140B2 (en) * | 2005-04-08 | 2011-07-05 | Nortel Networks Limited | Key negotiation and management for third party access to a secure communication session |
| JP4502393B2 (ja) * | 2005-06-13 | 2010-07-14 | キヤノン株式会社 | 通信パラメータの共有方法及び通信装置 |
| US7596225B2 (en) * | 2005-06-30 | 2009-09-29 | Alcatl-Lucent Usa Inc. | Method for refreshing a pairwise master key |
| JP2007047846A (ja) | 2005-08-05 | 2007-02-22 | Aisin Aw Co Ltd | 情報提供装置 |
| JP4581955B2 (ja) * | 2005-10-04 | 2010-11-17 | ソニー株式会社 | コンテンツ伝送装置及びコンテンツ伝送方法、並びにコンピュータ・プログラム |
| US20070172041A1 (en) * | 2005-10-18 | 2007-07-26 | Intertrust Technologies Corporation | Digital rights management engine systems and methods |
| CN1964259B (zh) | 2005-11-07 | 2011-02-16 | 华为技术有限公司 | 一种切换过程中的密钥管理方法 |
| US8020197B2 (en) * | 2006-02-15 | 2011-09-13 | Microsoft Corporation | Explicit delegation with strong authentication |
-
2007
- 2007-11-16 CN CN200710188317.2A patent/CN101436930A/zh active Pending
-
2008
- 2008-11-14 EP EP08849967A patent/EP2182672A4/en not_active Withdrawn
- 2008-11-14 WO PCT/CN2008/073062 patent/WO2009062451A1/zh not_active Ceased
- 2008-11-14 JP JP2010530263A patent/JP2011501585A/ja active Pending
- 2008-11-14 CN CN200880007872.3A patent/CN101636966B/zh not_active Expired - Fee Related
-
2010
- 2010-03-22 US US12/728,946 patent/US8484469B2/en not_active Expired - Fee Related
Patent Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN1564514A (zh) * | 2004-03-26 | 2005-01-12 | 中兴通讯股份有限公司 | 无线局域网自组网模式共享密钥认证和会话密钥协商方法 |
| US20060053289A1 (en) * | 2004-09-09 | 2006-03-09 | International Business Machines Corporation | Peer-to-peer communications |
| CN1770681A (zh) * | 2005-10-14 | 2006-05-10 | 西安电子科技大学 | 无线环境下的会话密钥安全分发方法 |
| CN1819515A (zh) * | 2006-03-20 | 2006-08-16 | 胡祥义 | 一种保密型对称密码算法的实现方法 |
| WO2007121587A1 (en) * | 2006-04-25 | 2007-11-01 | Stephen Laurence Boren | Dynamic distributed key system and method for identity management, authentication servers, data security and preventing man-in-the-middle attacks |
Non-Patent Citations (1)
| Title |
|---|
| See also references of EP2182672A4 * |
Also Published As
| Publication number | Publication date |
|---|---|
| CN101636966B (zh) | 2012-04-25 |
| US20100174906A1 (en) | 2010-07-08 |
| EP2182672A4 (en) | 2011-08-31 |
| JP2011501585A (ja) | 2011-01-06 |
| EP2182672A1 (en) | 2010-05-05 |
| CN101636966A (zh) | 2010-01-27 |
| US8484469B2 (en) | 2013-07-09 |
| CN101436930A (zh) | 2009-05-20 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN101636966B (zh) | 一种密钥分发的方法、系统和设备 | |
| US12242621B2 (en) | Protecting data from brute force attack | |
| US9565020B1 (en) | System and method for generating a server-assisted strong password from a weak secret | |
| JP7531817B2 (ja) | アイデンティティ認証方法、認証アクセスコントローラ及び要求機器、記憶媒体、プログラム、並びにプログラム製品 | |
| CN102547688B (zh) | 一种基于虚拟专用信道的高可信手机安全通信信道的建立方法 | |
| JP2017063432A (ja) | 証明書不要公開鍵基盤に基づく安全なクライアント・サーバ通信プロトコルを設計するシステムと方法 | |
| CN101116284B (zh) | 无线电通信网络中的防克隆相互鉴权的方法、身份模块、服务器以及系统 | |
| TW201036394A (en) | Method and apparatus for security protection of an original user identity in an initial signaling message | |
| CN102355663B (zh) | 基于分离机制网络的可信域间快速认证方法 | |
| JP2022540653A (ja) | データ保護及び回復システム及び方法 | |
| CN118540164A (zh) | 互联网密钥交换协议的抗量子安全增强方法 | |
| CN119766433A (zh) | 一种支持后量子算法的加密通信方法、装置及系统 | |
| Keleman et al. | Secure firmware update in embedded systems | |
| JP5125682B2 (ja) | 鍵共有システム | |
| KR100842267B1 (ko) | 다중 인증 수단을 가지는 시스템의 통합 사용자 인증 서버,클라이언트 및 방법 | |
| CN101547091A (zh) | 一种信息发送的方法及装置 | |
| CN119995863B (zh) | 一种抗量子计算的通信实现方法、系统和计算机设备 | |
| TWI761243B (zh) | 群組即時通訊的加密系統和加密方法 | |
| Gope | Enhanced secure mutual authentication and key agreement scheme with user anonymity in ubiquitous global mobility networks | |
| Hoeper et al. | Recommendation for EAP Methods Used in Wireless Network Access Authentication | |
| Wan et al. | DoS-resistant access control protocol with identity confidentiality for wireless networks | |
| Tsai et al. | Cloud encryption using distributed environmental keys | |
| CN108429717B (zh) | 一种身份认证方法及装置 | |
| Chang et al. | Security design for three-party encrypted key exchange protocol using smart cards | |
| Islam et al. | Improved remote login scheme based on ECC |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| WWE | Wipo information: entry into national phase |
Ref document number: 200880007872.3 Country of ref document: CN |
|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 08849967 Country of ref document: EP Kind code of ref document: A1 |
|
| WWE | Wipo information: entry into national phase |
Ref document number: 2008849967 Country of ref document: EP |
|
| WWE | Wipo information: entry into national phase |
Ref document number: 2010530263 Country of ref document: JP |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |