WO2021088593A1 - 验证方法、装置、设备及计算机可读存储介质 - Google Patents
验证方法、装置、设备及计算机可读存储介质 Download PDFInfo
- Publication number
- WO2021088593A1 WO2021088593A1 PCT/CN2020/120327 CN2020120327W WO2021088593A1 WO 2021088593 A1 WO2021088593 A1 WO 2021088593A1 CN 2020120327 W CN2020120327 W CN 2020120327W WO 2021088593 A1 WO2021088593 A1 WO 2021088593A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- integrity
- key
- verification
- network element
- terminal
- Prior art date
Links
Images
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
-
- 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/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0869—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W12/00—Security arrangements; Authentication; Protecting privacy or anonymity
- H04W12/04—Key management, e.g. using generic bootstrapping architecture [GBA]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W12/00—Security arrangements; Authentication; Protecting privacy or anonymity
- H04W12/04—Key management, e.g. using generic bootstrapping architecture [GBA]
- H04W12/041—Key generation or derivation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W12/00—Security arrangements; Authentication; Protecting privacy or anonymity
- H04W12/10—Integrity
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W12/00—Security arrangements; Authentication; Protecting privacy or anonymity
- H04W12/12—Detection or prevention of fraud
- H04W12/121—Wireless intrusion detection systems [WIDS]; Wireless intrusion prevention systems [WIPS]
- H04W12/122—Counter-measures against attacks; Protection against rogue devices
Definitions
- the present disclosure relates to the field of communication technologies, and in particular, to a verification method, device, device, and computer-readable storage medium.
- the 5G security standard adopts an integrated encryption scheme (elliptic curve integrate encrypt scheme, ECIES) to protect the user's long-term identity (Subscription Permanent Identifier, SUPI) to protect user privacy.
- elliptic curve integrate encrypt scheme ECIES
- SUPI Subscribe Permanent Identifier
- ECIES encrypts SUPI so that the attacker cannot obtain the SUPI of User Equipment (UE) on the wireless air interface. However, the attacker can confirm whether the guessed SUPI is correct by guessing the value of SUPI and observing the feedback message of the Unified Data Management (UDM) entity.
- UDM Unified Data Management
- the above is called a SUPI guessing attack.
- the attacker can find out the entire SUPI database of a particular network by repeating the above attack several times. How to solve the SUPI guessing attack is the main research direction of related technical personnel.
- the embodiments of the present disclosure provide a verification method, device, equipment, and computer-readable storage medium to solve the SUPI guessing attack.
- embodiments of the present disclosure provide a verification method applied to a terminal, including:
- the shared key is a key used between the first network element and the terminal.
- the shared key is an operator specific code (OPC) key or root key K that is commonly known to the first network element and the terminal;
- OPC operator specific code
- root key K that is commonly known to the first network element and the terminal;
- integrity verification value is the first complete Sexual protection label;
- the use of the shared key to perform an integrity operation on the target information to obtain an integrity verification value includes:
- a global subscriber identity module uses an integrity calculation function to perform calculations on the OPC key or root key K, first information, and second information to obtain the first integrity protection label;
- the first information is an integrity key
- the second information is a result of encrypting SUPI with an encryption key.
- the shared key is the session root key KAUSF between the first network element and the terminal;
- the integrity verification value is a first integrity protection label;
- the use of the shared key to perform an integrity operation on the target information to obtain an integrity verification value includes:
- the mobile end uses an integrity calculation function to perform calculations on the first information, the second information, and the session root key KAUSF key to obtain the first integrity protection label;
- the first information is an integrity key
- the second information is a result of encrypting the user's permanent identity SUPI with an encryption key.
- the sending the integrity verification value to the first network element includes:
- SUCI Subscriber hidden identifier
- the shared key is an OPC key or a root key K commonly known by the first network element and the terminal;
- the integrity verification value is a second integrity protection label;
- the use of the shared key to perform an integrity operation on the target information to obtain an integrity verification value includes:
- the USIM uses an integrity calculation function to perform calculations on the OPC key or root key K in the SUCI and the existing integrity protection label to obtain the second integrity protection label.
- the shared key is the session root key KAUSF between the first network element and the terminal;
- the integrity verification value is a second integrity protection label;
- the use of the shared key to perform an integrity operation on the target information to obtain an integrity verification value includes:
- the ME uses the integrity operation function to perform operations on the existing integrity protection label in the SUCI and the session root key KAUSF between the two to obtain the second integrity protection label.
- the sending the integrity verification value to the first network element includes:
- the shared key is an OPC key or a root key K commonly known by the first network element and the terminal;
- the integrity verification value is a random number and a third integrity protection label;
- the use of the shared key to perform an integrity operation on the target information to obtain an integrity verification value includes:
- the USIM uses an integrity operation function to perform operations on the OPC key or root key K and the random number to obtain the third integrity protection label; or, use a predefined function to perform operations on the OPC secret
- the key and/or the root key K and the random number are operated to obtain the third integrity protection label.
- the sending the integrity verification value to the first network element includes:
- the SUCI, the random number and the third integrity protection label are obtained by the ME by the USIM; or, the random number and the third integrity protection label are obtained by the ME Obtained by the USIM, and the SUCI is generated by the ME.
- embodiments of the present disclosure provide a verification method applied to a first network element, including:
- the integrity verification value is obtained by performing an integrity operation on the target information using a shared key, and the shared key is a key used between the first network element and the terminal.
- the integrity verification value is a first integrity protection label
- the integrity verification value sent by the receiving terminal includes:
- the shared key is an OPC key or a root key K that is commonly known to the first network element and the terminal;
- the verification of the integrity verification value includes:
- the OPC key or root key K, the third information, and the fourth information are calculated using the integrity calculation function to obtain the first calculation value; wherein, the third information is the integrity key, and the fourth The information is an encryption result of using an encryption key to encrypt the SUPI;
- the verification result is that the verification is passed; otherwise, the verification result is that the verification is not passed.
- the shared key is the session root key KAUSF between the first network element and the terminal;
- the integrity verification value is a first integrity protection label;
- the verifying the integrity verification value includes:
- the verification result is that the verification fails.
- the method further includes:
- the fifth information, the sixth information, and the session root key KAUSF are calculated using the integrity calculation function to obtain the second calculation value; wherein, the fifth information is the integrity key, and the sixth information is the use An encryption result obtained by encrypting the SUPI by an encryption key;
- the verification result is that the verification is passed; otherwise, the verification result is that the verification is not passed.
- the integrity verification value is a second integrity protection label
- the integrity verification value sent by the receiving terminal includes:
- the shared key is an OPC key or a root key K commonly known by the first network element and the terminal;
- the verifying the integrity verification value includes:
- the verification result is that the verification is passed; otherwise, the verification result is that the verification is not passed.
- the shared key is the session root key KAUSF between the first network element and the terminal;
- the verifying the integrity verification value includes:
- the verification result is that the verification fails.
- the method further includes:
- the verification result is that the verification is passed; otherwise, the verification result is that the verification is not passed.
- the obtaining the session root key KAUSF corresponding to the SUPI includes:
- the integrity verification value is a random number and a third integrity protection label
- the method also includes:
- the shared key is an OPC key or a root key K commonly known by the first network element and the terminal;
- the verifying the integrity verification value includes:
- the verification result is that the verification fails.
- the method further includes:
- the verification result is that the verification is passed; otherwise, the verification result is that the verification is not passed.
- the method further includes:
- the random number is stored.
- embodiments of the present disclosure provide a verification device, which is applied to a terminal, and includes:
- the acquisition module is used to perform integrity operations on the target information by using the shared key to obtain the integrity verification value
- a sending module configured to send the integrity verification value to the first network element
- a receiving module configured to receive a verification result of the integrity verification value of the first network element
- the shared key is a key used between the first network element and the terminal.
- the shared key is an OPC key or a root key K commonly known by the first network element and the terminal;
- the integrity verification value is a first integrity protection label;
- the obtaining module is specifically configured to perform operations on the OPC key or root key K, the first information, and the second information by using an integrity operation function through the USIM to obtain the first integrity protection label;
- the first information is an integrity key
- the second information is a result of encrypting the user's permanent identity SUPI with an encryption key.
- the shared key is the session root key KAUSF between the first network element and the terminal;
- the integrity verification value is a first integrity protection label;
- the obtaining module is specifically configured to perform operations on the first information, the second information, and the session root key KAUSF key by using an integrity operation function through the ME to obtain the first integrity protection label;
- the first information is an integrity key
- the second information is a result of encrypting the user's permanent identity SUPI with an encryption key.
- the sending module is specifically configured to send SUCI to the first network element, and carry the first integrity protection label in the SUCI.
- the shared key is an OPC key or a root key K commonly known by the first network element and the terminal;
- the integrity verification value is a second integrity protection label;
- the acquisition module is specifically configured to perform operations on the OPC key or root key K and the existing integrity protection label in the SUCI by using the integrity operation function through the USIM to obtain the second integrity protection label.
- the shared key is the session root key KAUSF between the first network element and the terminal;
- the integrity verification value is a second integrity protection label;
- the acquisition module is specifically configured to perform operations on the existing integrity protection label in the SUCI and the session root key KAUSF between the ME using an integrity operation function to obtain the second integrity protection label.
- the sending module is specifically configured to send SUCI and the second integrity protection label to the first network element.
- the shared key is an OPC key or a root key K commonly known by the first network element and the terminal;
- the integrity verification value is a random number and a third integrity protection label;
- the acquisition module includes:
- the obtaining sub-module is used to perform operations on the OPC key or root key K and the random number by the USIM using an integrity operation function to obtain the third integrity protection label; or, using a predefined
- the function performs an operation on the OPC key and/or the root key K and the random number to obtain the third integrity protection label.
- the sending module is configured to send SUCI, the random number, and the third integrity protection label to the first network element through the ME;
- the SUCI, the random number and the third integrity protection label are obtained by the ME by the USIM; or, the random number and the third integrity protection label are obtained by the ME Obtained by the USIM, and the SUCI is generated by the ME.
- embodiments of the present disclosure provide a verification device, which is applied to a first network element, and includes:
- the receiving module is used to receive the integrity verification value sent by the terminal
- a verification module for verifying the integrity verification value
- a sending module configured to send a verification result of the integrity verification value to the terminal
- the integrity verification value is obtained by performing an integrity operation on the target information using a shared key, and the shared key is a key used between the first network element and the terminal.
- the integrity verification value is a first integrity protection label
- the receiving module is configured to receive the SUCI sent by the terminal, and carry the first integrity protection label in the SUCI.
- the shared key is an OPC key or a root key K commonly known by the first network element and the terminal;
- the verification module includes:
- the decryption sub-module is used to decrypt the SUCI to obtain SUPI;
- An obtaining sub-module for obtaining the OPC key or root key K according to the SUPI An obtaining sub-module for obtaining the OPC key or root key K according to the SUPI;
- the processing sub-module is used to perform operations on the OPC key or root key K, the third information, and the fourth information by using the integrity operation function to obtain the first operation value; wherein, the third information is the integrity secret Key, the fourth information is an encryption result obtained by encrypting the SUPI using an encryption key;
- the verification sub-module is configured to, when the first operation value is consistent with the first integrity protection label, the verification result is that the verification is passed; otherwise, the verification result is that the verification is not passed.
- the shared key is the session root key KAUSF between the first network element and the terminal;
- the verification module includes:
- the decryption sub-module is used to decrypt the SUCI to obtain SUPI;
- the search sub-module is used to search the SUPI in the database
- the verification sub-module is used to verify that the verification result is that the verification fails if the SUPI is not found.
- the verification module further includes:
- the obtaining sub-module is used to obtain the session root key KAUSF corresponding to the SUPI when the SUPI is found;
- the processing sub-module is used to perform operations on the fifth information, the sixth information and the session root key KAUSF by using the integrity operation function to obtain the second operation value; wherein, the fifth information is the integrity key, so
- the sixth information is an encryption result of using an encryption key to encrypt the SUPI;
- the verification sub-module is further configured to: in the case that the second operation value is consistent with the first integrity protection label, the verification result is that the verification is passed; otherwise, the verification result is that the verification is not passed.
- the integrity verification value is a second integrity protection label; the receiving module is further configured to receive the SUCI sent by the terminal.
- the shared key is an OPC key or a root key K commonly known by the first network element and the terminal;
- the verification module includes:
- An obtaining sub-module for obtaining the OPC key or root key K according to the SUPI An obtaining sub-module for obtaining the OPC key or root key K according to the SUPI;
- a processing sub-module configured to use an integrity calculation function to perform calculations on the OPC key or root key K and the integrity protection label carried in the SUCI to obtain a second calculation value
- the verification sub-module is configured to verify that the verification result is passed when the verification of the integrity protection label carried in the SUCI and the second operation value is passed; otherwise, the verification result is that the verification fails.
- the shared key is the session root key KAUSF between the first network element and the terminal;
- the verification module includes:
- the decryption sub-module is used to decrypt the SUCI to obtain SUPI;
- the search sub-module is used to search the SUPI in the database
- the verification sub-module is used to verify that the verification result is that the verification fails if the SUPI is not found.
- the verification module further includes:
- the obtaining sub-module is used to obtain the session root key KAUSF corresponding to the SUPI when the SUPI is found;
- a processing sub-module configured to use an integrity operation function to perform operations on the integrity protection label carried in the SUCI and the session root key KAUSF to obtain a fourth operation value;
- the verification submodule is further configured to: in the case where the verification of the integrity protection label carried in the SUCI and the fourth operation value is passed, the verification result is that the verification is passed; otherwise, the verification result is that the verification is not passed.
- the obtaining submodule is configured to obtain the session root key KAUSF stored by the first network element itself; or obtain the session root key KAUSF from the second network element.
- the integrity verification value is a random number and a third integrity protection label
- the receiving module is further configured to receive SUCI sent by the terminal.
- the shared key is an OPC key or a root key K commonly known by the first network element and the terminal;
- the verification module includes:
- the first obtaining submodule is used to obtain the random number
- the search sub-module is used to search the random number in the database
- the verification sub-module is used to verify that the verification fails when the random number is found.
- the verification module further includes:
- the decryption sub-module is used to decrypt the SUCI to obtain SUPI if the random number is not found;
- the second obtaining submodule is used to obtain the OPC key or root key K corresponding to the SUPI;
- the processing sub-module is used to perform operations on the OPC key or root key K and the random number using an integrity operation function to obtain a fifth operation value; or use a predefined function to perform operations on the OPC key and/ Or the root key K and the random number are operated to obtain the fifth operation value;
- the verification sub-module is further configured to: in the case that the third integrity protection label is consistent with the fifth operation value, the verification result is that the verification is passed; otherwise, the verification result is that the verification is not passed.
- the device further includes:
- the storage module is configured to store the random number when the random number is not found.
- embodiments of the present disclosure provide a verification device, which is applied to a terminal and includes a processor and a transceiver;
- the processor is configured to perform an integrity operation on the target information by using a shared key to obtain an integrity verification value
- the transceiver is configured to send the integrity verification value to a first network element; receive a verification result of the integrity verification value by the first network element;
- the shared key is a key used between the first network element and the terminal.
- the shared key is an OPC key or a root key K that is commonly known to the first network element and the terminal;
- the integrity verification value is a first integrity protection label;
- the processor is further configured to perform operations on the OPC key or root key K, the first information, and the second information by using an integrity operation function through the USIM to obtain the first integrity protection label;
- the first information is an integrity key
- the second information is a result of encrypting the user's permanent identity SUPI with an encryption key.
- the shared key is the session root key KAUSF between the first network element and the terminal;
- the integrity verification value is a first integrity protection label;
- the processor is further configured to perform operations on the first information, the second information, and the session root key KAUSF key by using an integrity operation function through the ME to obtain the first integrity protection label;
- the first information is an integrity key
- the second information is a result of encrypting the user's permanent identity SUPI with an encryption key.
- the transceiver is further configured to send a user hidden identifier SUCI to the first network element, and carry the first integrity protection label in the SUCI.
- the shared key is an OPC key or a root key K commonly known by the first network element and the terminal;
- the integrity verification value is a second integrity protection label;
- the processor is further configured to: use an integrity calculation function to perform calculations on the OPC key or root key K and the existing integrity protection label in the SUCI through the USIM to obtain the second integrity protection label .
- the shared key is the session root key KAUSF between the first network element and the terminal;
- the integrity verification value is a second integrity protection label;
- the processor is further configured to: use the ME to use an integrity operation function to perform operations on the existing integrity protection label in the SUCI and the session root key KAUSF between them to obtain the second integrity protection label.
- the processor is further configured to send SUCI and the second integrity protection label to the first network element.
- the shared key is an OPC key or a root key K commonly known by the first network element and the terminal;
- the integrity verification value is a random number and a third integrity protection label;
- the processor is further configured to: generate a random number through the USIM; the USIM uses an integrity operation function to perform operations on the OPC key or root key K and the random number to obtain the third integrity protection Label; or, using a predefined function to perform operations on the OPC key and/or root key K and the random number to obtain the third integrity protection label.
- the transceiver is further configured to send the SUCI, the random number, and the third integrity protection label to the first network element through the ME.
- the SUCI, the random number and the third integrity protection label are obtained by the ME by the USIM; or, the random number and the third integrity protection label are obtained by the ME Obtained by the USIM, and the SUCI is generated by the ME.
- embodiments of the present disclosure provide a verification device, which is applied to a first network element, and includes: a processor and a transceiver;
- the transceiver is used to receive the integrity verification value sent by the terminal;
- the processor is configured to verify the integrity verification value
- the transceiver is further configured to send a verification result of the integrity verification value to the terminal;
- the integrity verification value is obtained by performing an integrity operation on the target information using a shared key, and the shared key is a key used between the first network element and the terminal.
- the integrity verification value is a first integrity protection label
- the transceiver is further configured to receive the SUCI sent by the terminal, and carry the first integrity protection label in the SUCI.
- the shared key is an OPC key or a root key K commonly known by the first network element and the terminal; the processor is further configured to:
- the OPC key or root key K, the third information, and the fourth information are calculated using the integrity calculation function to obtain the first calculation value; wherein, the third information is the integrity key, and the fourth The information is an encryption result of using an encryption key to encrypt the SUPI;
- the verification result is that the verification is passed; otherwise, the verification result is that the verification is not passed.
- the shared key is the session root key KAUSF between the first network element and the terminal;
- the integrity verification value is a first integrity protection label;
- the processor is further configured to:
- the verification result is that the verification fails.
- processor is also used for:
- the fifth information, the sixth information, and the session root key KAUSF are calculated using the integrity calculation function to obtain the second calculation value; wherein, the fifth information is the integrity key, and the sixth information is the use An encryption result obtained by encrypting the SUPI by an encryption key;
- the verification result is that the verification is passed; otherwise, the verification result is that the verification is not passed.
- the integrity verification value is a second integrity protection label
- the transceiver is also used to receive SUCI sent by the terminal.
- the shared key is an OPC key or a root key K known to the first network element and the terminal; the processor is also used to: decrypt the SUCI to obtain SUPI and the second Integrity protection label;
- the verification result is that the verification is passed; otherwise, the verification result is that the verification is not passed.
- the shared key is the session root key KAUSF between the first network element and the terminal;
- the processor is also used for:
- the verification result is that the verification fails.
- processor is also used for:
- the verification result is that the verification is passed; otherwise, the verification result is that the verification is not passed.
- the processor is further configured to: obtain the session root key KAUSF stored by the first network element itself; or obtain the session root key KAUSF from the second network element.
- the integrity verification value is a random number and a third integrity protection label
- the transceiver is also used to receive SUCI sent by the terminal.
- the shared key is an OPC key or a root key K commonly known by the first network element and the terminal;
- the processor is also used for:
- the verification result is that the verification fails.
- processor is also used for:
- the verification result is that the verification is passed; otherwise, the verification result is that the verification is not passed.
- the processor is further configured to store the random number when the random number is not found.
- the shared key of the terminal and the first network element is used to perform an integrity operation on the target information, thereby generating an integrity verification value. Because the attacker does not know the shared key between the terminal and the first network element, even if the SUPI guess is correct, the first network element will detect the error of the integrity verification value and return a registration rejection message, thereby solving the SUPI guessing attack problem.
- FIG. 1 is one of the flowcharts of the verification method provided by an embodiment of the present disclosure
- FIG. 2 is the second flow chart of the verification method provided by an embodiment of the present disclosure
- FIG. 3 is the third flowchart of the verification method provided by an embodiment of the present disclosure.
- FIG. 4 is the fourth flow chart of the verification method provided by the embodiment of the present disclosure.
- FIG. 5 is the fifth flowchart of the verification method provided by an embodiment of the present disclosure.
- FIG. 6 is one of the structural diagrams of the verification device provided by the embodiment of the present disclosure.
- FIG. 7 is the second structural diagram of the verification device provided by the embodiment of the present disclosure.
- FIG. 8 is the third structural diagram of the verification device provided by the embodiment of the present disclosure.
- FIG. 9 is the fourth structural diagram of the verification device provided by an embodiment of the present disclosure.
- FIG. 10 is one of the structural diagrams of a communication device provided by an embodiment of the present disclosure.
- Fig. 11 is a second structural diagram of a communication device provided by an embodiment of the present disclosure.
- FIG. 1 is a flowchart of a verification method provided by an embodiment of the present disclosure, which is applied to a terminal. As shown in Figure 1, it includes the following steps:
- Step 101 Perform an integrity operation on the target information by using a shared key to obtain an integrity verification value.
- the shared key is a key used between the first network element and the terminal.
- the process of terminal encryption for SUPI is as follows: First, an elliptic curve Diffie-Hellman key exchange (Elliptic Curve Diffie-Hellman key exchange, ECDH) private key A PRI is randomly generated, and an ECDH public key A PUB is derived . Then, the terminal uses its own private key A PRI and the network's ECDH public key B PUB to generate a shared key K ECDH . The terminal derives the encryption key K E from K ECDH , the initial value of AES count encryption, and the integrity key K M , which is called key data K D , namely:
- KDF is the key deduction function
- It is the decimal number of the terminal's ECDH public key A PUB.
- the far left of KD is the encryption key K E
- the middle is the initial value of AES count encryption
- the far right is the integrity key K M.
- Counting Advanced Encryption Standard (Advanced Encryption Standard, AES) for encryption using K E SUPI encrypt the encrypted message using the K M SUPI is complete security, generate an integrity protection tag Tag.
- AES Advanced Encryption Standard
- Tag HMAC-SHA-256(K M ,K E ⁇ SUPI ⁇ )
- SUCI includes the following:
- SUCI Type of SUPI+Home network ID+Route ID+Protection scheme ID+B PUB +A PUB +K E ⁇ SUPI ⁇ +Tag.
- the home network identifier is used to find the corresponding home network
- the routing identifier is used to find the corresponding UDM in the same home network.
- the shared key of the terminal and the network is used to generate an integrity verification value for the related message. Because the attacker does not know the shared key between the terminal and the network, even if the SUPI guess is correct, the network will detect the error of the integrity protection label generated according to the embodiment of the present disclosure, and will return a registration rejection message with reason #3. Thus the problem of SUPI guessing attack is solved.
- the first solution is to add a key that only the terminal and the network know to the function input for generating the integrity protection tag Tag to obtain the first integrity protection tag. In this way, even if the SUPI guess is correct, because there is no key known to the terminal and the network, the tag generated by the attacker will be detected by the network as an error. Then, the network will also return a registration rejection message with reason #3, thus solving the SUPI guessing attack problem.
- the SUPI encryption can be performed in a universal integrated circuit card (also called a universal integrated circuit card, UICC, USIM), or it can be performed on the terminal ME.
- a universal integrated circuit card also called a universal integrated circuit card, UICC, USIM
- the shared key is an OPC key or a root key K commonly known by the first network element and the terminal
- the integrity verification value is a first integrity protection label
- the OPC key preset in the USIM is obtained after a series of calculations between the OP and the root key K, which ensures that different cards are preset with different OPCs.
- the terminal and the network shared key OPC or the root key K known to the terminal and the network is used to generate the first integrity protection label.
- the USIM uses an integrity calculation function to perform calculations on the first information, the second information, the OPC key or the root key to obtain the first integrity protection label.
- the specific method is as follows:
- Tag is the first integrity protection tag
- K M represents the integrity key
- K E represents the encryption key
- K represents the root key.
- the integrity calculation function here is HMAC-SHA-256, and it can also be other integrity calculation functions, such as HMAC-SHA3.
- UDM verifies the correctness of the first integrity protection label. Even if the attacker guesses a correct SUPI, because he does not know the OPC or the root key K, the attacker cannot generate the correct first integrity protection label, and the network will return a registration rejection message with reason #3. In other words, whether the attacker guessed a correct SUPI or did not guess a correct SUPI, the network will return a registration rejection message with reason #3.
- the shared key is the session root key K AUSF between the first network element and the terminal; the integrity verification value is a first integrity protection label.
- the terminal and the network After using 5G Authentication and Key Agreement (AKA) or Extensible Authentication Protocol-Authentication and Key Agreement (EAP-AKA') in the terminal and network to complete mutual authentication , The terminal and the network will calculate and store the session root key K AUSF .
- AKA 5G Authentication and Key Agreement
- EAP-AKA' Extensible Authentication Protocol-Authentication and Key Agreement
- the terminal and the network will calculate and store the session root key K AUSF .
- the embodiment of the present disclosure uses the shared key K AUSF of the terminal and the network to generate the first integrity protection label.
- the ME uses an integrity calculation function to perform calculations on the first information, the second information, and the session root key K AUSF to obtain the first integrity protection label.
- the specific method is as follows:
- Tag is the first integrity protection tag
- K M represents the integrity key
- K E represents the encryption key
- K represents the root key.
- the integrity calculation function here is HMAC-SHA-256, and it can also be other integrity calculation functions, such as HMAC-SHA3.
- UDM verifies the correctness of the first integrity protection label. Even if the attacker guesses a correct SUPI, because he does not know K AUSF , the attacker cannot generate the correct first integrity protection label, and the network will return a registration rejection message with reason #3.
- K AUSF The initial value of K AUSF is zero.
- AUSF Authentication Server Function
- UDM User Data Management Function
- UDM decrypts SUCI to obtain SUPI, and directly uses the stored K AUSF to perform operations in the above-mentioned manner and verify.
- UDM first decrypts SUCI to get SUPI, and then searches for SUPI in the database. If there is no corresponding SUPI in the database, UDM returns a "404 Not Found” message, and the network returns a registration rejection message with reason #3 accordingly. If there is a corresponding SUPI in the database, UDM obtains the K AUSF corresponding to SUPI from AUSF , and then verifies the first integrity protection label. If the verification is passed, UDM returns a "200 OK" message containing the authentication vector; if the verification fails, UDM returns a "404 Not Found” message.
- the terminal sends SUCI to the first network element, and the first integrity protection label is carried in the SUCI.
- the second scheme is to use the shared key of the terminal and the network to perform a complete protection operation on the tag of the SUCI on the basis of the SUCI to generate a second integrity protection tag, that is, the STag. Because the attacker does not know the shared key between the terminal and the network, even if the SUPI guess is correct, the network will detect the STag error and return a registration rejection message with reason #3, so that the SUPI guess attack problem is solved.
- the second integrity protection tag STag can be generated by the USIM, and the second integrity protection tag STag can also be generated by the ME.
- the shared key is an OPC key or a root key K commonly known to the first network element and the terminal;
- the integrity verification value is a second integrity protection label.
- the terminal and the network shared key OPC or the root key K are used to calculate the third integrity protection tag Tag in the SUCI to generate the Stag.
- the USIM uses an integrity calculation function to perform calculations on the OPC key or root key K and the existing integrity protection label in the SUCI to obtain the second integrity protection label. The calculation is as follows:
- STag HMAC-SHA-256 (OPC or K, Tag).
- STag is the second integrity protection tag
- Tag is the third integrity protection tag.
- the integrity calculation function here is HMAC-SHA-256, and it can also be other integrity calculation functions, such as HMAC-SHA3.
- the UDM will verify the correctness of the Tag and STag in the SUCI. Only when both of them pass the verification, the network side will send a verification request message to the terminal.
- the shared key is the session root key K AUSF between the first network element and the terminal;
- the integrity verification value is a second integrity protection label.
- the session root key K AUSF between the terminal and the network is used to calculate the third integrity protection tag Tag to generate the second integrity protection tag Stag.
- the ME uses an integrity calculation function to calculate the existing integrity protection label in the SUCI and the session root key K AUSF between the two to obtain the second integrity protection label.
- the calculation method is as follows:
- STag HMAC-SHA-256( KAUSF , Tag).
- STag is the second integrity protection tag
- Tag is the third integrity protection tag.
- the integrity calculation function here is HMAC-SHA-256, and it can also be other integrity calculation functions, such as HMAC-SHA3.
- the UDM will verify the correctness of the Tag and STag in the SUCI. Only when both of them pass the verification, the network side will send a verification request message to the terminal.
- the terminal in addition to sending the second integrity protection label to the first network element, the terminal also needs to send SUCI to the first network element.
- the third scheme is to generate a one-time random number on the USIM of the terminal, and use the shared key of the terminal and the network to perform an integrity calculation on it to generate an integrity verification value NTag. Because the attacker does not know the shared key between the terminal and the network, even if the SUPI guess is correct, the network will detect the NTag error and return a registration rejection message with reason #3, so that the SUPI guess attack problem is solved.
- the shared key is an OPC key or a root key K that is commonly known to the first network element and the terminal.
- a random number is generated by the USIM, and the USIM uses an integrity operation function or a function defined in 3GPP TS 35.206 to operate the OPC key and/or root key K and the random number to obtain the third Integrity protection label.
- the USIM generates a one-time random number Nonce, and uses the OPC key or root key K shared by the terminal and the network to generate a third integrity protection tag NTag for Nonce, which is calculated as follows:
- NTag HMAC-SHA-256 (OPC or K, Nonce)
- NTag is the third integrity protection tag
- Nonce is a random number.
- the integrity calculation function here is HMAC-SHA-256, and it can also be other integrity calculation functions, such as HMAC-SHA3.
- the USIM uses a predefined function to perform operations on the OPC key and/or root key K and the random number to obtain the fifth operation value.
- the calculation is as follows:
- NTag f2 (OPC and/or K, Nonce)
- NTag is the third integrity protection tag
- Nonce is a random number.
- the predefined function f2 function where the encryption function is AES or other encryption functions.
- the predefined f3 or f4 or f5 function can also be used.
- the ME When sending the random number and the third integrity protection label, the ME sends the SUCI, the random number and the third integrity protection label to the first network element.
- the SUCI, the random number and the third integrity protection label are obtained by the ME by the USIM; or, the random number and the third integrity protection label are obtained by the ME Obtained by the USIM, and the SUCI is generated by the ME.
- the USIM transmits SUCI, Nonce, and NTag to the ME, and the ME sends it to the network. If the encryption of SUPI is performed on the ME, the USIM transmits the Nonce and NTag to the ME. After the ME completes the encryption of SUCI, it sends SUCI, Nonce and NTag to the network.
- the network After receiving SUCI, Nonce and NTag, the network first checks whether there is Nonce in the database. If it exists, it responds with a rejection message to resist replay attacks. If Nonce does not exist in the database, decrypt SUCI to get SUPI, and get OPC or root key K according to SUPI. Use OPC or root key K to verify NTag. If the verification is successful, store Nonce and generate a verification vector. If the verification fails, reply with a rejection message.
- the above three schemes are all based on the key shared by the terminal and the network to generate an integrity protection tag Tag or an integrity secondary tag STag or a one-time random number integrity protection tag NTag. Since the attacker does not know the secret key shared by the terminal and the network, it cannot forge a correct integrity protection tag or integrity secondary tag STag or NTag. In this way, even if an attacker can guess a correct SUPI, he cannot generate a correct integrity protection tag or integrity secondary tag STag or NTag. In other words, the proposed scheme can resist SUPI guessing attacks.
- the first scheme only adds the shared key of the terminal and the network to the integrity function, so it basically does not increase the amount of calculation.
- Scheme 2 and Scheme 3 only increase the calculation amount of an integrity function, and this calculation requires less calculation resources and has less impact on the system.
- Scheme 2 and Scheme 3 are well compatible with systems in related technologies. Because the integrity secondary tag STag or the one-time random number integrity protection tag NTag is superimposed on the ECIES scheme, there is no need Make adjustments to the elliptic curve integrate encrypt scheme (ECIES) scheme.
- ECIES elliptic curve integrate encrypt scheme
- Step 102 Send the integrity verification value to the first network element.
- the SUCI is sent to the first network element, and the SUCI includes the first integrity verification label.
- the SUCI and the second integrity verification label are respectively sent to the first network element.
- the SUCI, the random number and the third integrity verification label are respectively sent to the first network element.
- Step 103 Receive a verification result of the integrity verification value by the first network element.
- the shared key of the terminal and the first network element is used to perform an integrity operation on the target information, thereby generating an integrity verification value. Because the attacker does not know the shared key between the terminal and the first network element, even if the SUPI guess is correct, the first network element will detect the error of the integrity verification value and return a registration rejection message, thereby solving the SUPI guessing attack problem.
- FIG. 2 is a flowchart of a verification method provided by an embodiment of the present disclosure, which is applied to the first network element.
- the first network element may be UDM, for example. As shown in Figure 2, it includes the following steps:
- Step 201 Receive the integrity verification value sent by the terminal.
- the integrity verification value is obtained by performing an integrity operation on the target information using a shared key, and the shared key is a key used between the first network element and the terminal.
- the first network element receives the SUCI sent by the terminal, and carries the first integrity protection label in the SUCI.
- the first network element receives the SUCI and the second integrity protection label
- the first network element receives the SUCI, the random number, and the third integrity protection label.
- Step 202 Verify the integrity verification value.
- this step may include:
- Step 2021 Decrypt the SUCI to obtain SUPI.
- Step 2022 Obtain the OPC key or root key according to the SUPI.
- the corresponding relationship between the SUPI and the key can be stored in the first network element. Then, here, the OPC key or the root key can be obtained according to the SUPI obtained in step 2021.
- Step 2023 Use the integrity calculation function to perform calculations on the OPC key or root key of the third information and the fourth information to obtain a first calculation value; wherein, the third information is the integrity key, so The fourth information is the result of encryption performed by the SUPI using the encryption key.
- Tag is the first operation value
- K M represents the integrity key
- K E represents the encryption key
- K represents the root key.
- the integrity calculation function here is HMAC-SHA-256, and it can also be other integrity calculation functions, such as HMAC-SHA3.
- Step 2024 When the first operation value is consistent with the first integrity protection label, the verification result is that the verification is passed; otherwise, the verification result is that the verification is not passed.
- this step may include:
- Step 2025 Decrypt the SUCI to obtain SUPI.
- Step 2026 Search the SUPI in the database.
- Step 2027 If the SUPI is not found, the verification result is that the verification fails.
- the method may further include:
- Step 2028 If the SUPI is found, obtain the session root key K AUSF corresponding to the SUPI.
- the first network element may obtain the session itself stored root key K AUSF; or obtaining the root key K AUSF session from the second network element.
- the second network element may be AUSF, for example.
- Step 2029 Use an integrity calculation function to perform calculations on the fifth information, the sixth information, and the session root key KAUSF to obtain a second calculation value; wherein, the fifth information is the integrity key, and the The sixth information is the encryption result of using the encryption key to encrypt the SUPI.
- Step 2030 In a case where the second operation value is consistent with the first integrity protection label, the verification result is that the verification is passed; otherwise, the verification result is that the verification is not passed.
- K AUSF The initial value of K AUSF is zero.
- K AUSF On the network side, there are two possibilities for storing K AUSF : (1) It is stored on both AUSF and UDM at the same time; (2) It is only stored on AUSF.
- UDM decrypts SUCI to obtain SUPI, and directly uses the stored K AUSF to perform operations in the above manner and verify.
- UDM first decrypts SUCI to get SUPI, and then searches for SUPI in the database. If there is no corresponding SUPI in the database, UDM returns a "404 Not Found” message, and the network returns a registration rejection message with reason #3 accordingly. If there is a corresponding SUPI in the database, UDM obtains the K AUSF corresponding to SUPI from AUSF , and then verifies the first integrity protection label. If the verification is passed, UDM returns a "200 OK" message containing the authentication vector; if the verification fails, UDM returns a "404 Not Found” message.
- the first network element also needs to receive the SUCI sent by the terminal.
- this step may include:
- Step 2031 Decrypt the SUCI to obtain the SUPI and the second integrity protection label
- Step 2032 obtain the OPC key or root key K according to the SUPI
- Step 2033 Use an integrity calculation function to perform calculations on the OPC key or root key K and the integrity protection label carried in the SUCI to obtain a second calculation value;
- Step 2034 In the case where the verification of the integrity protection label carried in the SUCI and the second operation value is passed, the verification result is that the verification is passed; otherwise, the verification result is that the verification is not passed.
- this step may include:
- Step 2035 Decrypt the SUCI to obtain SUPI
- Step 2036 Search the SUPI in the database
- Step 2037 If the SUPI is not found, the verification result is that the verification fails.
- the method may further include:
- Step 2038 If the SUPI is found, obtain the session root key K AUSF corresponding to the SUPI;
- Step 2039 Use an integrity calculation function to perform calculations on the integrity protection label carried in the SUCI and the session root key K AUSF to obtain a fourth calculation value.
- Step 2040 In the case where the verification of the integrity protection label carried in the SUCI and the fourth operation value is passed, the verification result is that the verification is passed; otherwise, the verification result is that the verification is not passed.
- the process of obtaining the session root key K AUSF corresponding to the SUPI may include obtaining the session root key K AUSF stored by the first network element itself; or obtaining the session from a second network element Root key K AUSF .
- the second network element may be AUSF.
- the shared key is an OPC key or a root key K commonly known by the first network element and the terminal; this step may include:
- Step 2041 Obtain the random number.
- Step 2042 search the random number in the database.
- Step 2043 If the random number is found, the verification result is that the verification fails.
- the method may further include:
- Step 2043 If the random number is not found, decrypt the SUCI to obtain SUPI;
- Step 2044 Obtain the OPC key or root key K corresponding to the SUPI;
- Step 2045 Use an integrity operation function to perform operations on the OPC key or root key K and the random number to obtain a fifth operation value; or use a predefined function to perform operations on the OPC key and/or root secret. Perform operations on the key K and the random number to obtain a fifth operation value;
- Step 2046 When the third integrity protection label is consistent with the fifth operation value, the verification result is that the verification is passed; otherwise, the verification result is that the verification is not passed.
- the first network element After receiving SUCI, Nonce and NTag, the first network element first checks whether there is Nonce in the database. If it exists, it responds with a rejection message to resist replay attacks. If Nonce does not exist in the database, decrypt SUCI to get SUPI, and get OPC or root key K according to SUPI. Use OPC or root key K to verify NTag. If the verification is successful, store Nonce and generate a verification vector. If the verification fails, reply with a rejection message.
- Step 203 Send a verification result of the integrity verification value to the terminal.
- the shared key of the terminal and the first network element is used to perform an integrity operation on the target information, thereby generating an integrity verification value. Because the attacker does not know the shared key between the terminal and the first network element, even if the SUPI guess is correct, the first network element will detect the error of the integrity verification value and return a registration rejection message, thereby solving the SUPI guessing attack problem.
- FIG. 3 is a flowchart of a verification method provided by an embodiment of the present disclosure, which includes the following steps:
- Step 301 The terminal converts the SUPI into SUCI, where the Tag in the SUCI is generated according to the method of the embodiment of the present disclosure, that is, the aforementioned first integrity protection tag.
- the terminal sends the SUCI to the Access and Mobility Management Function (AMF)/Security Anchor Function (SEAF).
- AMF Access and Mobility Management Function
- SEAF Security Anchor Function
- Step 302 AMF/SEAF sends SUCI to AUSF.
- Step 303 AUSF sends SUCI to UDM.
- Step 304 The UDM verifies the first integrity protection label in the SUCI.
- the specific verification method can refer to the description of the foregoing embodiment.
- Step 305 If the verification is passed, UDM sends "200 OK” to AUSF. If the verification fails, it will return "404 Not Found” with the content of "USER_NOT_FOUND".
- Step 306 After receiving "200 OK", AUSF sends "201 Created” to AMF/SEAF. After AUSF receives "404 Not Found”, it will send the "404 Not Found” message to AMF/SEAF.
- Step 307 In the case of "201 Created", the AMF/SEAF sends RAND and AUTN to the terminal in the verification request message. In the case of "404 Not Found", AMF/SEAF sends a registration rejection message with reason #3 to the terminal.
- Fig. 4 is a flowchart of a verification method provided by an embodiment of the present disclosure, which includes the following steps:
- Step 401 The terminal converts SUPI to SUCI, and obtains a second integrity protection label according to the method of the foregoing embodiment.
- the terminal sends the SUCI and the second integrity protection label to AMF/SEAF.
- Step 402 AMF/SEAF sends SUCI and the second integrity protection label to AUSF.
- Step 403 AUSF sends the SUCI and the second integrity protection label to UDM.
- Step 404 Verify the Tag in the SUCI and the second integrity protection tag.
- the specific verification method can refer to the description of the foregoing embodiment.
- Step 405 If the verification is passed, UDM sends "200 OK” to AUSF. If the verification fails, UDM returns "404 Not Found” with the content of "USER_NOT_FOUND".
- Step 406 After receiving "200 OK", AUSF sends "201 Created” to AMF/SEAF. After AUSF receives "404 Not Found”, it will send the "404 Not Found” message to AMF/SEAF.
- Step 407 In the case of "201 Created", AMF/SEAF sends RAND and AUTN to the terminal in the identity verification request message. In the case of "404 Not Found", AMF/SEAF sends a registration rejection message with reason #3 to the terminal.
- FIG. 5 is a flowchart of a verification method provided by an embodiment of the present disclosure, which includes the following steps:
- Step 501 The terminal sends the SUCI, the random number and the third integrity protection label to the AMF/SEAF.
- the terminal can obtain the third integrity protection label according to the method of the foregoing embodiment.
- Step 502 AMF/SEAF sends SUCI, random number and third integrity protection label to AUSF.
- Step 503 AUSF sends SUCI, random number and third integrity protection label to UDM.
- Step 504 The UDM verifies the random number and the third integrity protection label.
- UDM first checks whether there is a random number Nonce in the database, and if it does, it responds with a rejection message to resist replay attacks; if the Nonce database does not exist, it decrypts SUCI to SUPI, and obtains OPC or root key K according to SUPI. . Use OPC or root key K to verify NTag. If the verification is successful, store Nonce and generate an authentication vector. If the verification fails, reply with a rejection message.
- Step 505 If the verification fails or there is a random number Nonce, return "504 Not Found” with the content of "USER_NOT_FOUND". If the verification is passed, "200 OK" is sent to AUSF.
- Step 506 After receiving "200 OK", AUSF sends "201 Created” to AMF/SEAF. After the AUSF receives the "504 Not Found”, it will send the "504 Not Found” message to the AMF/SEAF.
- Step 507 In the case of "201 Created", AMF/SEAF sends RAND and AUTN to the terminal in the identity verification request message. In the case of "504 Not Found", AMF/SEAF sends a registration rejection message with reason #3 to the terminal.
- the embodiment of the present disclosure also provides a verification device, which is applied to a terminal.
- a verification device which is applied to a terminal.
- FIG. 6 which is a structural diagram of a verification device provided by an embodiment of the present disclosure. Since the principle of the verification device to solve the problem is similar to the verification method in the embodiment of the present disclosure, the implementation of the verification device can refer to the implementation of the method, and the repetition will not be repeated.
- the verification device includes: an acquisition module 601, configured to perform integrity operations on target information using a shared key to obtain an integrity verification value; and a sending module 602, configured to send the integrity to the first network element Verification value; a receiving module 603, configured to receive the verification result of the integrity verification value of the first network element;
- the shared key is a key used between the first network element and the terminal.
- the shared key is an OPC key or a root key K commonly known by the first network element and the terminal;
- the integrity verification value is a first integrity protection label;
- the obtaining module 601 is specifically configured to perform operations on the OPC key or root key K, first information, and second information by using an integrity operation function through USIM to obtain the first integrity protection label;
- the first information is an integrity key
- the second information is a result of encrypting the user's permanent identity SUPI with an encryption key.
- the shared key is the session root key K AUSF between the first network element and the terminal;
- the integrity verification value is a first integrity protection label;
- the obtaining module 601 is specifically configured to perform operations on the first information, the second information, and the session root key K AUSF key by using an integrity operation function through the ME to obtain the first integrity protection label;
- the first information is an integrity key
- the second information is a result of encrypting the user's permanent identity SUPI with an encryption key.
- the sending module 602 is specifically configured to send SUCI to the first network element, and the first integrity protection label is carried in the SUCI.
- the shared key is an OPC key or a root key K commonly known by the first network element and the terminal;
- the integrity verification value is a second integrity protection label;
- the obtaining module 601 is specifically configured to perform operations on the OPC key or root key K and the existing integrity protection label in the SUCI by using an integrity operation function through the USIM to obtain the second integrity protection label.
- the shared key is the session root key K AUSF between the first network element and the terminal;
- the integrity verification value is a second integrity protection label;
- the acquisition module 601 is specifically configured to perform operations on the existing integrity protection label in the SUCI and the session root key K AUSF between the ME using an integrity operation function to obtain the second integrity protection label .
- the sending module 602 is further configured to send SUCI and the second integrity protection label to the first network element.
- the shared key is an OPC key or a root key K commonly known by the first network element and the terminal;
- the integrity verification value is a random number and a third integrity protection label;
- the obtaining module 601 includes:
- the obtaining sub-module is used to perform operations on the OPC key or root key K and the random number by the USIM using an integrity operation function to obtain the third integrity protection label; or, using a predefined
- the function performs an operation on the OPC key and/or the root key K and the random number to obtain the third integrity protection label.
- the sending module 602 is configured to send SUCI, the random number, and the third integrity protection label to the first network element through the ME;
- the SUCI, the random number and the third integrity protection label are obtained by the ME by the USIM; or, the random number and the third integrity protection label are obtained by the ME Obtained by the USIM, and the SUCI is generated by the ME.
- the device provided in the embodiment of the present disclosure can execute the foregoing method embodiment, and its implementation principles and technical effects are similar, and details are not described in this embodiment here.
- the embodiment of the present disclosure also provides a verification device, which is applied to the first network element.
- FIG. 7 is a structural diagram of a verification device provided by an embodiment of the present disclosure. Since the principle of the verification device to solve the problem is similar to the verification method in the embodiment of the present disclosure, the implementation of the verification device can refer to the implementation of the method, and the repetition will not be repeated.
- the verification device includes: a receiving module 701, used to receive the integrity verification value sent by the terminal; a verification module 702, used to verify the integrity verification value; a sending module 703, used to send the The terminal sends a verification result of the integrity verification value; wherein, the integrity verification value is obtained by performing an integrity operation on the target information using a shared key, and the shared key is the first network element and the The key used between the terminals.
- the integrity verification value is a first integrity protection label
- the receiving module is configured to receive the SUCI sent by the terminal, and carry the first integrity protection label in the SUCI.
- the shared key is an OPC key or a root key K commonly known by the first network element and the terminal;
- the verification module includes:
- the decryption sub-module is used to decrypt the SUCI to obtain SUPI;
- An obtaining sub-module for obtaining the OPC key or root key K according to the SUPI An obtaining sub-module for obtaining the OPC key or root key K according to the SUPI;
- the processing sub-module is used to perform operations on the OPC key or root key K, the third information, and the fourth information by using the integrity operation function to obtain the first operation value; wherein, the third information is the integrity secret Key, the fourth information is an encryption result obtained by encrypting the SUPI using an encryption key;
- the verification sub-module is configured to, when the first operation value is consistent with the first integrity protection label, the verification result is that the verification is passed; otherwise, the verification result is that the verification is not passed.
- the shared key is the session root key K AUSF between the first network element and the terminal;
- the verification module includes:
- the decryption sub-module is used to decrypt the SUCI to obtain SUPI;
- the search sub-module is used to search the SUPI in the database
- the verification sub-module is used to verify that the verification result is that the verification fails if the SUPI is not found.
- the verification module further includes:
- the obtaining sub-module is used to obtain the session root key K AUSF corresponding to the SUPI when the SUPI is found;
- the processing sub-module is used to perform operations on the fifth information, the sixth information and the session root key K AUSF by using an integrity operation function to obtain a second operation value; wherein, the fifth information is an integrity key, The sixth information is an encryption result of using an encryption key to encrypt the SUPI;
- the verification sub-module is further configured to: in the case that the second operation value is consistent with the first integrity protection label, the verification result is that the verification is passed; otherwise, the verification result is that the verification is not passed.
- the integrity verification value is a second integrity protection label; the receiving module is further configured to receive the SUCI sent by the terminal.
- the shared key is an OPC key or a root key K commonly known by the first network element and the terminal;
- the verification module includes:
- An obtaining sub-module for obtaining the OPC key or root key K according to the SUPI An obtaining sub-module for obtaining the OPC key or root key K according to the SUPI;
- a processing sub-module configured to use an integrity calculation function to perform calculations on the OPC key or root key K and the integrity protection label carried in the SUCI to obtain a second calculation value
- the verification sub-module is configured to verify that the verification result is passed when the verification of the integrity protection label carried in the SUCI and the second operation value is passed; otherwise, the verification result is that the verification fails.
- the shared key is the session root key K AUSF between the first network element and the terminal;
- the verification module includes:
- the decryption sub-module is used to decrypt the SUCI to obtain SUPI;
- the search sub-module is used to search the SUPI in the database
- the verification sub-module is used to verify that the verification result is that the verification fails if the SUPI is not found.
- the verification module further includes:
- the obtaining sub-module is used to obtain the session root key K AUSF corresponding to the SUPI when the SUPI is found;
- a processing submodule configured to use an integrity operation function to perform operations on the integrity protection label carried in the SUCI and the session root key K AUSF to obtain a fourth operation value;
- the verification submodule is further configured to: in the case where the verification of the integrity protection label carried in the SUCI and the fourth operation value is passed, the verification result is that the verification is passed; otherwise, the verification result is that the verification is not passed.
- the obtaining submodule is configured to obtain the session root key K AUSF stored by the first network element itself; or obtain the session root key K AUSF from the second network element.
- the integrity verification value is a random number and a third integrity protection label
- the receiving module is further configured to receive SUCI sent by the terminal.
- the shared key is an OPC key or a root key K commonly known by the first network element and the terminal;
- the verification module includes:
- the first obtaining submodule is used to obtain the random number
- the search sub-module is used to search the random number in the database
- the verification sub-module is used to verify that the verification fails when the random number is found.
- the verification module further includes:
- the decryption sub-module is used to decrypt the SUCI to obtain SUPI if the random number is not found;
- the second obtaining submodule is used to obtain the OPC key or root key K corresponding to the SUPI;
- the processing sub-module is used to perform operations on the OPC key or root key K and the random number using an integrity operation function to obtain a fifth operation value; or use a predefined function to perform operations on the OPC key and/ Or the root key K and the random number are operated to obtain the fifth operation value;
- the verification sub-module is further configured to: in the case that the third integrity protection label is consistent with the fifth operation value, the verification result is that the verification is passed; otherwise, the verification result is that the verification is not passed.
- the device further includes:
- the storage module is configured to store the random number when the random number is not found.
- the device provided in the embodiment of the present disclosure can execute the foregoing method embodiment, and its implementation principles and technical effects are similar, and details are not described herein again in this embodiment.
- the embodiment of the present disclosure also provides a verification device, which is applied to a terminal.
- a verification device which is applied to a terminal.
- FIG. 8 which is a structural diagram of a verification device provided by an embodiment of the present disclosure. Since the principle of the verification device to solve the problem is similar to the verification method in the embodiment of the present disclosure, the implementation of the verification device can refer to the implementation of the method, and the repetition will not be repeated.
- the verification device includes: a processor 801 and a transceiver 802.
- the processor 801 is configured to perform an integrity operation on the target information by using a shared key to obtain an integrity verification value
- the transceiver 802 is configured to send the integrity verification value to a first network element; receive a verification result of the integrity verification value by the first network element;
- the shared key is a key used between the first network element and the terminal.
- the shared key is an OPC key or a root key K commonly known by the first network element and the terminal;
- the integrity verification value is a first integrity protection label;
- the processor is further configured to perform operations on the OPC key or root key K, the first information, and the second information by using an integrity operation function through the USIM to obtain the first integrity protection label;
- the first information is an integrity key
- the second information is a result of encrypting the user's permanent identity SUPI with an encryption key.
- the shared key is the session root key K AUSF between the first network element and the terminal;
- the integrity verification value is a first integrity protection label;
- the processor is further configured to perform operations on the first information, the second information, and the session root key K AUSF key by using an integrity operation function through the ME to obtain the first integrity protection label;
- the first information is an integrity key
- the second information is a result of encrypting the user's permanent identity SUPI with an encryption key.
- the transceiver is further configured to send a user hidden identifier SUCI to the first network element, and carry the first integrity protection label in the SUCI.
- the shared key is an OPC key or a root key K commonly known by the first network element and the terminal;
- the integrity verification value is a second integrity protection label;
- the processor is further configured to: use an integrity calculation function to perform calculations on the OPC key or root key K and the existing integrity protection label in the SUCI through the USIM to obtain the second integrity protection label .
- the shared key is the session root key K AUSF between the first network element and the terminal;
- the integrity verification value is a second integrity protection label;
- the processor is further configured to: calculate the existing integrity protection label in the SUCI and the session root key K AUSF between the ME using an integrity operation function to obtain the second integrity protection label.
- the processor is further configured to send SUCI and the second integrity protection label to the first network element.
- the shared key is an OPC key or a root key K commonly known by the first network element and the terminal;
- the integrity verification value is a random number and a third integrity protection label;
- the processor is further configured to: generate a random number through the USIM; the USIM uses an integrity operation function to perform operations on the OPC key or root key K and the random number to obtain the third integrity protection Label; or, using a predefined function to perform operations on the OPC key and/or root key K and the random number to obtain the third integrity protection label.
- the transceiver is further configured to send SUCI, the random number, and the third integrity protection label to the first network element through the ME;
- the SUCI, the random number and the third integrity protection label are obtained by the ME by the USIM; or, the random number and the third integrity protection label are obtained by the ME Obtained by the USIM, and the SUCI is generated by the ME.
- the device provided in the embodiment of the present disclosure can execute the foregoing method embodiment, and its implementation principles and technical effects are similar, and details are not described herein again in this embodiment.
- the embodiment of the present disclosure also provides a verification device, which is applied to the first network element.
- a verification device which is applied to the first network element.
- FIG. 9 is a structural diagram of a verification device provided by an embodiment of the present disclosure. Since the principle of the verification device to solve the problem is similar to the verification method in the embodiment of the present disclosure, the implementation of the verification device can refer to the implementation of the method, and the repetition will not be repeated.
- the verification device includes: a processor 901 and a transceiver 902.
- the transceiver 902 is configured to receive the integrity verification value sent by the terminal;
- the processor 901 is configured to verify the integrity verification value
- the transceiver 902 is further configured to send a verification result of the integrity verification value to the terminal;
- the integrity verification value is obtained by performing an integrity operation on the target information using a shared key, and the shared key is a key used between the first network element and the terminal.
- the integrity verification value is a first integrity protection label
- the transceiver is further configured to receive the SUCI sent by the terminal, and carry the first integrity protection label in the SUCI.
- the shared key is an OPC key or a root key K commonly known by the first network element and the terminal; the processor is further configured to:
- the OPC key or root key K, the third information, and the fourth information are calculated using the integrity calculation function to obtain the first calculation value; wherein, the third information is the integrity key, and the fourth The information is an encryption result of using an encryption key to encrypt the SUPI;
- the verification result is that the verification is passed; otherwise, the verification result is that the verification is not passed.
- the shared key is the session root key K AUSF between the first network element and the terminal;
- the integrity verification value is a first integrity protection label;
- the processor is further configured to:
- the verification result is that the verification fails.
- processor is also used for:
- the fifth information, the sixth information, and the session root key K AUSF are calculated using the integrity calculation function to obtain the second calculation value; wherein, the fifth information is the integrity key, and the sixth information is An encryption result obtained by encrypting the SUPI using an encryption key;
- the verification result is that the verification is passed; otherwise, the verification result is that the verification is not passed.
- the integrity verification value is a second integrity protection label
- the transceiver is also used to receive SUCI sent by the terminal.
- the shared key is an OPC key or a root key K known to the first network element and the terminal; the processor is also used to: decrypt the SUCI to obtain SUPI and the second Integrity protection label;
- the verification result is that the verification is passed; otherwise, the verification result is that the verification is not passed.
- the shared key is the session root key K AUSF between the first network element and the terminal;
- the processor is also used for:
- the verification result is that the verification fails.
- processor is also used for:
- the verification result is that the verification is passed; otherwise, the verification result is that the verification is not passed.
- the processor is further configured to: obtain the session root key K AUSF stored by the first network element itself; or obtain the session root key K AUSF from the second network element.
- the integrity verification value is a random number and a third integrity protection label
- the transceiver is also used to receive SUCI sent by the terminal.
- the shared key is an OPC key or a root key K commonly known by the first network element and the terminal;
- the processor is also used for:
- the verification result is that the verification fails.
- processor is also used for:
- the verification result is that the verification is passed; otherwise, the verification result is that the verification is not passed.
- the processor is further configured to store the random number when the random number is not found.
- the device provided in the embodiment of the present disclosure can execute the foregoing method embodiment, and its implementation principles and technical effects are similar, and details are not described herein again in this embodiment.
- the communication device of the embodiment of the present disclosure applied to a terminal, includes: a processor 1000, configured to read a program in a memory 1020, and execute the following process:
- the shared key is a key used between the first network element and the terminal.
- the transceiver 1010 is used to receive and send data under the control of the processor 1000.
- the bus architecture may include any number of interconnected buses and bridges. Specifically, one or more processors represented by the processor 1000 and various circuits of the memory represented by the memory 1020 are linked together.
- the bus architecture can also link various other circuits such as peripheral devices, voltage regulators, power management circuits, etc., which are all known in the art, and therefore, will not be further described herein.
- the bus interface provides the interface.
- the transceiver 1010 may be a plurality of elements, including a transmitter and a transceiver, and provide a unit for communicating with various other devices on a transmission medium.
- the processor 1000 is responsible for managing the bus architecture and general processing, and the memory 1020 can store data used by the processor 1000 when performing operations.
- the processor 1000 is responsible for managing the bus architecture and general processing, and the memory 1020 can store data used by the processor 1000 when performing operations.
- the shared key is an OPC key or a root key K commonly known by the first network element and the terminal;
- the integrity verification value is a first integrity protection label;
- the processor 1000 is further configured to read the program and execute the following steps:
- USIM uses an integrity calculation function to perform calculations on the OPC key or root key K, first information, and second information to obtain the first integrity protection label;
- the first information is an integrity key
- the second information is a result of encrypting SUPI with an encryption key.
- the shared key is the session root key K AUSF between the first network element and the terminal;
- the integrity verification value is a first integrity protection label;
- the processor 1000 is also used to read The procedure described below performs the following steps:
- the ME uses an integrity calculation function to perform calculations on the first information, the second information, and the session root key K AUSF key to obtain the first integrity protection label;
- the first information is an integrity key
- the second information is a result of encrypting the user's permanent identity SUPI with an encryption key.
- the processor 1000 is further configured to read the program and execute the following steps:
- the shared key is an OPC key or a root key K known to the first network element and the terminal; the integrity verification value is a second integrity protection label; the processor 1000 is also used to read
- the procedure described below performs the following steps:
- the USIM uses an integrity calculation function to perform calculations on the OPC key or root key K and the existing integrity protection label in the SUCI to obtain the second integrity protection label.
- the shared key is the session root key K AUSF between the first network element and the terminal;
- the integrity verification value is a second integrity protection label;
- the processor 1000 is also used to read The procedure described below performs the following steps:
- the ME uses an integrity operation function to perform operations on the existing integrity protection label in the SUCI and the session root key K AUSF between the two to obtain the second integrity protection label.
- the processor 1000 is further configured to read the program and execute the following steps:
- the shared key is an OPC key or a root key K commonly known to the first network element and the terminal;
- the integrity verification value is a random number and a third integrity protection label;
- the processor 1000 It is also used to read the program and perform the following steps:
- the USIM uses an integrity operation function to perform operations on the OPC key or root key K and the random number to obtain the third integrity protection label; or, use a predefined function to perform operations on the OPC secret
- the key and/or the root key K and the random number are operated to obtain the third integrity protection label.
- the processor 1000 is further configured to read the program and execute the following steps:
- the SUCI, the random number and the third integrity protection label are obtained by the ME by the USIM; or, the random number and the third integrity protection label are obtained by the ME Obtained by the USIM, and the SUCI is generated by the ME.
- the communication device of the embodiment of the present disclosure applied to the first network element, includes: a processor 1100, configured to read a program in a memory 1111, and execute the following process:
- the integrity verification value is obtained by performing an integrity operation on the target information using a shared key, and the shared key is a key used between the first network element and the terminal.
- the transceiver 1110 is configured to receive and send data under the control of the processor 1100.
- the bus architecture may include any number of interconnected buses and bridges. Specifically, one or more processors represented by the processor 1100 and various circuits of the memory represented by the memory 1111 are linked together.
- the bus architecture can also link various other circuits such as peripheral devices, voltage regulators, power management circuits, etc., which are all known in the art, and therefore, will not be further described herein.
- the bus interface provides the interface.
- the transceiver 1110 may be a plurality of elements, including a transmitter and a transceiver, and provide a unit for communicating with various other devices on a transmission medium.
- the processor 1100 is responsible for managing the bus architecture and general processing, and the memory 1111 may store data used by the processor 1100 when performing operations.
- the processor 1100 is responsible for managing the bus architecture and general processing, and the memory 1111 may store data used by the processor 1100 when performing operations.
- the integrity verification value is the first integrity protection label
- the processor 1100 is further configured to read the program and perform the following steps: receive the SUCI sent by the terminal, and carry the first SUCI in the SUCI Integrity protection label.
- the shared key is an OPC key or root key K that is commonly known to the first network element and the terminal; the processor 1100 is further configured to read the program and execute the following steps:
- the OPC key or root key K, the third information, and the fourth information are calculated using the integrity calculation function to obtain the first calculation value; wherein, the third information is the integrity key, and the fourth The information is an encryption result of using an encryption key to encrypt the SUPI;
- the verification result is that the verification is passed; otherwise, the verification result is that the verification is not passed.
- the shared key is the session root key K AUSF between the first network element and the terminal;
- the integrity verification value is a first integrity protection label;
- the processor 1100 is also used to read The procedure described below performs the following steps:
- the verification result is that the verification fails.
- the processor 1100 is further configured to read the program and execute the following steps:
- the fifth information, the sixth information, and the session root key K AUSF are calculated using the integrity calculation function to obtain the second calculation value; wherein, the fifth information is the integrity key, and the sixth information is An encryption result obtained by encrypting the SUPI using an encryption key;
- the verification result is that the verification is passed; otherwise, the verification result is that the verification is not passed.
- the integrity verification value is a second integrity protection label
- the processor 1100 is further configured to read the program and execute the following steps: receiving the SUCI and the second integrity protection label sent by the terminal.
- the shared key is an OPC key or root key K that is commonly known to the first network element and the terminal; the processor 1100 is further configured to read the program and execute the following steps:
- the verification result is that the verification is passed; otherwise, the verification result is that the verification is not passed.
- the shared key is the session root key K AUSF between the first network element and the terminal; the processor 1100 is further configured to read the program and perform the following steps:
- the verification result is that the verification fails.
- the processor 1100 is further configured to read the program and execute the following steps:
- the verification result is that the verification is passed; otherwise, the verification result is that the verification is not passed.
- the processor 1100 is further configured to read the program and execute the following steps:
- the integrity verification value is a random number and a third integrity protection label; the processor 1100 is further configured to read the program and execute the following steps:
- the shared key is an OPC key or root key K that is commonly known to the first network element and the terminal; the processor 1100 is further configured to read the program and execute the following steps:
- the verification result is that the verification fails.
- the processor 1100 is further configured to read the program and execute the following steps:
- the verification result is that the verification is passed; otherwise, the verification result is that the verification is not passed.
- the processor 1100 is further configured to read the program and execute the following steps:
- the random number is stored.
- the embodiments of the present disclosure also provide a computer-readable storage medium, and a computer program is stored on the computer-readable storage medium.
- a computer program is stored on the computer-readable storage medium.
- the computer program is executed by a processor, each process of the above-mentioned verification method embodiment is realized, and the same technical effect can be achieved. To avoid repetition, I won’t repeat it here.
- the computer-readable storage medium such as read-only memory (Read-Only Memory, ROM), random access memory (Random Access Memory, RAM), magnetic disk, or optical disk, etc.
- the method of the above embodiments can be implemented by means of software plus the necessary general hardware platform. Of course, it can also be implemented by hardware, but in many cases the former is better.
- Implementation mode According to this understanding, the technical solution of the present disclosure can be embodied in the form of a software product in essence or the part that contributes to the related technology.
- the computer software product is stored in a storage medium (such as ROM/RAM, magnetic disk, optical disk). ) Includes several instructions to make a terminal (which can be a mobile phone, a computer, a server, an air conditioner, or a network device, etc.) execute the methods described in the various embodiments of the present disclosure.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Mobile Radio Communication Systems (AREA)
- Storage Device Security (AREA)
Abstract
本公开公开了一种验证方法、装置、设备及计算机可读存储介质,涉及通信技术领域,以解决SUPI猜测攻击的问题。该方法包括:利用共享密钥对目标信息进行完整性运算,得到完整性验证值;向第一网元发送完整性验证值;接收第一网元对完整性验证值的验证结果;其中,共享密钥是第一网元和终端之间使用的密钥。
Description
相关申请的交叉引用
本申请主张在2019年11月6日在中国提交的中国专利申请号No.201911104767.8的优先权,其全部内容通过引用包含于此。
本公开涉及通信技术领域,尤其涉及一种验证方法、装置、设备及计算机可读存储介质。
5G安全标准采用集成加密方案(elliptic curve integrate encrypt scheme,ECIES)保护用户长期标识(Subscription Permanent Identifier,SUPI),以保护用户的隐私。
ECIES通过对SUPI的加密,使攻击者无法在无线空口获得用户设备(User Equipment,UE)的SUPI。但攻击者通过猜测SUPI的值,并观察统一数据管理实体(Unified Data Management,UDM)的反馈消息,即可确认猜测的SUPI是否正确。上述称为SUPI猜测攻击。攻击者可以通过多次重复上述攻击找出某个特定网络的整个SUPI数据库。如何解决SUPI猜测攻击是相关技术人员研究的主要方向。
发明内容
本公开实施例提供一种验证方法、装置、设备及计算机可读存储介质,以解决SUPI猜测攻击。
第一方面,本公开实施例提供了一种验证方法,应用于终端,包括:
利用共享密钥对目标信息进行完整性运算,得到完整性验证值;
向第一网元发送所述完整性验证值;
接收所述第一网元对所述完整性验证值的验证结果;
其中,所述共享密钥是所述第一网元和所述终端之间使用的密钥。
其中,所述共享密钥为所述第一网元和所述终端共知的操作员特定代码(Operator Specific Code,OPC)密钥或根密钥K;所述完整性验证值为第一完整性保护标签;
所述利用共享密钥对目标信息进行完整性运算,得到完整性验证值,包括:
由全球用户识别模块(Universal Subscriber Identity Module,USIM)利用完整性运算函数对所述OPC密钥或根密钥K、第一信息和第二信息进行运算,得到所述第一完整性保护标签;
所述第一信息为完整性密钥,所述第二信息为利用加密密钥对SUPI进行加密的结果。
其中,所述共享密钥为所述第一网元和所述终端之间的会话根密钥KAUSF;所述完整性验证值为第一完整性保护标签;
所述利用共享密钥对目标信息进行完整性运算,得到完整性验证值,包括:
由移动端(Mobile End,ME)利用完整性运算函数对第一信息、第二信息、所述会话根密钥KAUSF钥进行运算,得到所述第一完整性保护标签;
所述第一信息为完整性密钥,所述第二信息为利用加密密钥对用户永久标识SUPI进行加密的结果。
其中,所述向第一网元发送所述完整性验证值,包括:
向所述第一网元发送用户隐藏标识(Subscription Concealed Identifier,SUCI),在所述SUCI中携带所述第一完整性保护标签。
其中,所述共享密钥为所述第一网元和所述终端共知的OPC密钥或根密钥K;所述完整性验证值为第二完整性保护标签;
其中,所述利用共享密钥对目标信息进行完整性运算,得到完整性验证值,包括:
由USIM利用完整性运算函数对SUCI中所述OPC密钥或根密钥K以及已有的完整性保护标签进行运算,得到所述第二完整性保护标签。
其中,所述共享密钥为所述第一网元和所述终端之间的会话根密钥KAUSF;所述完整性验证值为第二完整性保护标签;
所述利用共享密钥对目标信息进行完整性运算,得到完整性验证值,包括:
由ME利用完整性运算函数对SUCI中已有的完整性保护标签、所述之间的会话根密钥KAUSF进行运算,得到所述第二完整性保护标签。
其中,所述向第一网元发送所述完整性验证值,包括:
向所述第一网元发送SUCI以及所述第二完整性保护标签。
其中,所述共享密钥为所述第一网元和所述终端共知的OPC密钥或根密钥K;所述完整性验证值为随机数和第三完整性保护标签;
所述利用共享密钥对目标信息进行完整性运算,得到完整性验证值,包括:
由USIM生成随机数;
由所述USIM利用完整性运算函数对所述OPC密钥或根密钥K以及所述随机数进行运算,得到所述第三完整性保护标签;或者,利用预定义的函数对所述OPC密钥和/或根密钥K以及所述随机数进行运算,得到所述第三完整性保护标签。
其中,所述向第一网元发送所述完整性验证值,包括:
由ME向所述第一网元发送SUCI、所述随机数和所述第三完整性保护标签;
其中,所述SUCI、所述随机数和所述第三完整性保护标签是所述ME由所述USIM获取的;或者,所述随机数和所述第三完整性保护标签是所述ME由所述USIM获取的,所述SUCI是所述ME生成的。
第二方面,本公开实施例提供了一种验证方法,应用于第一网元,包括:
接收终端发送的完整性验证值;
对所述完整性验证值进行验证;
向所述终端发送对所述完整性验证值的验证结果;
其中,所述完整性验证值是利用共享密钥对目标信息进行完整性运算得到的,所述共享密钥是所述第一网元和所述终端之间使用的密钥。
其中,所述完整性验证值为第一完整性保护标签;
所述接收终端发送的完整性验证值,包括:
接收所述终端发送的SUCI,在所述SUCI中携带所述第一完整性保护标签。
其中,所述共享密钥为所述第一网元和所述终端共知的OPC密钥或根密钥K;所述对所述完整性验证值进行验证,包括:
解密所述SUCI,得到SUPI;
根据所述SUPI得到所述OPC密钥或根密钥K;
利用完整性运算函数对所述OPC密钥或根密钥K、第三信息和第四信息进行运算,得到第一运算值;其中,所述第三信息为完整性密钥,所述第四信息为利用加密密钥对所述SUPI进行加密的加密结果;
在所述第一运算值和所述第一完整性保护标签一致的情况下,验证结果为验证通过;否则,验证结果为验证不通过。
其中,所述共享密钥为所述第一网元和所述终端之间的会话根密钥KAUSF;所述完整性验证值为第一完整性保护标签;
所述对所述完整性验证值进行验证,包括:
解密所述SUCI,得到SUPI;
在数据库中查找所述SUPI;
在未查找到所述SUPI的情况下,验证结果为验证不通过。
其中,所述方法还包括:
在查找到所述SUPI的情况下,获取所述SUPI对应的会话根密钥KAUSF;
利用完整性运算函数对第五信息、第六信息以及所述会话根密钥KAUSF进行运算,得到第二运算值;其中,所述第五信息为完整性密钥,所述第六信息为利用加密密钥对所述SUPI进行加密的加密结果;
在所述第二运算值和所述第一完整性保护标签一致的情况下,验证结果为验证通过;否则,验证结果为验证不通过。
其中,所述完整性验证值为第二完整性保护标签;
所述接收终端发送的完整性验证值,包括:
接收所述终端发送的SUCI和所述第二完整性保护标签。
其中,所述共享密钥为所述第一网元和所述终端共知的OPC密钥或根密钥K;
所述对所述完整性验证值进行验证,包括:
解密所述SUCI,得到SUPI和所述第二完整性保护标签;
根据所述SUPI得到所述OPC密钥或根密钥K;
利用完整性运算函数对所述OPC密钥或根密钥K以及所述SUCI中携带的完整性保护标签进行运算,得到第二运算值;
在对所述SUCI中携带的完整性保护标签和所述第二运算值的验证通过的情况下,验证结果为验证通过;否则,验证结果为验证不通过。
其中,所述共享密钥为所述第一网元和所述终端之间的会话根密钥KAUSF;
所述对所述完整性验证值进行验证,包括:
解密所述SUCI,得到SUPI;
在数据库中查找所述SUPI;
在未查找到所述SUPI的情况下,验证结果为验证不通过。
其中,所述方法还包括:
在查找到所述SUPI的情况下,获取所述SUPI对应的会话根密钥KAUSF;
利用完整性运算函数对所述SUCI中携带的完整性保护标签以及所述会话根密钥KAUSF进行运算,得到第四运算值;
在对所述SUCI中携带的完整性保护标签和所述第四运算值的验证通过的情况下,验证结果为验证通过;否则,验证结果为验证不通过。
其中,所述获取所述SUPI对应的会话根密钥KAUSF,包括:
获取所述第一网元自身存储的所述会话根密钥KAUSF;或者
从第二网元获取所述会话根密钥KAUSF。
其中,所述完整性验证值为随机数和第三完整性保护标签;
所述方法还包括:
接收所述终端发送的SUCI。
其中,所述共享密钥为所述第一网元和所述终端共知的OPC密钥或根密钥K;
所述对所述完整性验证值进行验证,包括:
获得所述随机数;
在数据库中查找所述随机数;
在查找到所述随机数的情况下,验证结果为验证不通过。
其中,所述方法还包括:
在未查找到所述随机数的情况下,解密所述SUCI,得到SUPI;
获取所述SUPI对应的OPC密钥或根密钥K;
利用完整性运算函数对所述OPC密钥或根密钥K以及所述随机数进行运算,得到第五运算值;或者利用预定义的函数对所述OPC密钥和/或根密钥K以及所述随机数进行运算,得到第五运算值;
在所述第三完整性保护标签和所述第五运算值一致的情况下,验证结果为验证通过;否则,验证结果为验证不通过。
其中,所述方法还包括:
在未查找到所述随机数的情况下,存储所述随机数。
第三方面,本公开实施例提供了一种验证装置,应用于终端,包括:
获取模块,用于利用共享密钥对目标信息进行完整性运算,得到完整性验证值;
发送模块,用于向第一网元发送所述完整性验证值;
接收模块,用于接收所述第一网元对所述完整性验证值的验证结果;
其中,所述共享密钥是所述第一网元和所述终端之间使用的密钥。
其中,所述共享密钥为所述第一网元和所述终端共知的OPC密钥或根密钥K;所述完整性验证值为第一完整性保护标签;
所述获取模块具体用于,通过USIM利用完整性运算函数对所述OPC密钥或根密钥K、第一信息和第二信息进行运算,得到所述第一完整性保护标签;
所述第一信息为完整性密钥,所述第二信息为利用加密密钥对用户永久标识SUPI进行加密的结果。
其中,所述共享密钥为所述第一网元和所述终端之间的会话根密钥KAUSF;所述完整性验证值为第一完整性保护标签;
获取模块具体用于,通过ME利用完整性运算函数对第一信息、第二信息、所述会话根密钥KAUSF钥进行运算,得到所述第一完整性保护标签;
所述第一信息为完整性密钥,所述第二信息为利用加密密钥对用户永久标识SUPI进行加密的结果。
其中,所述发送模块具体用于,向所述第一网元发送SUCI,在所述SUCI中携带所述第一完整性保护标签。
其中,所述共享密钥为所述第一网元和所述终端共知的OPC密钥或根密钥K;所述完整性验证值为第二完整性保护标签;
所述获取模块具体用于,通过USIM利用完整性运算函数对SUCI中所述OPC密钥或根密钥K以及已有的完整性保护标签进行运算,得到所述第二完整性保护标签。
其中,所述共享密钥为所述第一网元和所述终端之间的会话根密钥KAUSF;所述完整性验证值为第二完整性保护标签;
所述获取模块具体用于,通过ME利用完整性运算函数对SUCI中已有的完整性保护标签、所述之间的会话根密钥KAUSF进行运算,得到所述第二完整性保护标签。
其中,所述发送模块具体用于向所述第一网元发送SUCI以及所述第二完整性保护标签。
其中,所述共享密钥为所述第一网元和所述终端共知的OPC密钥或根密钥K;所述完整性验证值为随机数和第三完整性保护标签;
所述获取模块包括:
生成子模块,用于通过USIM生成随机数;
获取子模块,用于由所述USIM利用完整性运算函数对所述OPC密钥或根密钥K以及所述随机数进行运算,得到所述第三完整性保护标签;或者,利用预定义的函数对所述OPC密钥和/或根密钥K以及所述随机数进行运算,得到所述第三完整性保护标签。
其中,所述发送模块用于,通过ME向所述第一网元发送SUCI、所述随机数和所述第三完整性保护标签;
其中,所述SUCI、所述随机数和所述第三完整性保护标签是所述ME由所述USIM获取的;或者,所述随机数和所述第三完整性保护标签是所述ME由所述USIM获取的,所述SUCI是所述ME生成的。
第四方面,本公开实施例提供了一种验证装置,应用于第一网元,包括:
接收模块,用于接收终端发送的完整性验证值;
验证模块,用于对所述完整性验证值进行验证;
发送模块,用于向所述终端发送对所述完整性验证值的验证结果;
其中,所述完整性验证值是利用共享密钥对目标信息进行完整性运算得到的,所述共享密钥是所述第一网元和所述终端之间使用的密钥。
其中,所述完整性验证值为第一完整性保护标签;
所述接收模块,用于接收所述终端发送的SUCI,在所述SUCI中携带所述第一完整性保护标签。
其中,所述共享密钥为所述第一网元和所述终端共知的OPC密钥或根密钥K;所述验证模块包括:
解密子模块,用于解密所述SUCI,得到SUPI;
获取子模块,用于根据所述SUPI得到所述OPC密钥或根密钥K;
处理子模块,用于利用完整性运算函数对所述OPC密钥或根密钥K、第三信息和第四信息进行运算,得到第一运算值;其中,所述第三信息为完整性密钥,所述第四信息为利用加密密钥对所述SUPI进行加密的加密结果;
验证子模块,用于在所述第一运算值和所述第一完整性保护标签一致的情况下,验证结果为验证通过;否则,验证结果为验证不通过。
其中,所述共享密钥为所述第一网元和所述终端之间的会话根密钥KAUSF;所述验证模块包括:
解密子模块,用于解密所述SUCI,得到SUPI;
查找子模块,用于在数据库中查找所述SUPI;
验证子模块,用于在未查找到所述SUPI的情况下,验证结果为验证不通过。
其中,所述验证模块还包括:
获取子模块,用于在查找到所述SUPI的情况下,获取所述SUPI对应的会话根密钥KAUSF;
处理子模块,用于利用完整性运算函数对第五信息、第六信息以及所述会话根密钥KAUSF进行运算,得到第二运算值;其中,所述第五信息为完 整性密钥,所述第六信息为利用加密密钥对所述SUPI进行加密的加密结果;
所述验证子模块还用于,在所述第二运算值和所述第一完整性保护标签一致的情况下,验证结果为验证通过;否则,验证结果为验证不通过。
其中,所述完整性验证值为第二完整性保护标签;所述接收模块还用于,接收所述终端发送的SUCI。
其中,所述共享密钥为所述第一网元和所述终端共知的OPC密钥或根密钥K;所述验证模块包括:
解密子模块,用于解密所述SUCI,得到SUPI和所述第二完整性保护标签;
获取子模块,用于根据所述SUPI得到所述OPC密钥或根密钥K;
处理子模块,用于利用完整性运算函数对所述OPC密钥或根密钥K以及所述SUCI中携带的完整性保护标签进行运算,得到第二运算值;
验证子模块,用于在对所述SUCI中携带的完整性保护标签和所述第二运算值的验证通过的情况下,验证结果为验证通过;否则,验证结果为验证不通过。
其中,所述共享密钥为所述第一网元和所述终端之间的会话根密钥KAUSF;所述验证模块包括:
解密子模块,用于解密所述SUCI,得到SUPI;
查找子模块,用于在数据库中查找所述SUPI;
验证子模块,用于在未查找到所述SUPI的情况下,验证结果为验证不通过。
其中,所述验证模块还包括:
获取子模块,用于在查找到所述SUPI的情况下,获取所述SUPI对应的会话根密钥KAUSF;
处理子模块,用于利用完整性运算函数对所述SUCI中携带的完整性保护标签以及所述会话根密钥KAUSF进行运算,得到第四运算值;
所述验证子模块还用于,在对所述SUCI中携带的完整性保护标签和所述第四运算值的验证通过的情况下,验证结果为验证通过;否则,验证结果为验证不通过。
其中,所述获取子模块,用于获取所述第一网元自身存储的所述会话根密钥KAUSF;或者从第二网元获取所述会话根密钥KAUSF。
其中,所述完整性验证值为随机数和第三完整性保护标签;
所述接收模块还用于,接收所述终端发送的SUCI。
其中,所述共享密钥为所述第一网元和所述终端共知的OPC密钥或根密钥K;所述验证模块包括:
第一获取子模块,用于获得所述随机数;
查找子模块,用于在数据库中查找所述随机数;
验证子模块,用于在查找到所述随机数的情况下,验证结果为验证不通过。
其中,所述验证模块还包括:
解密子模块,用于在未查找到所述随机数的情况下,解密所述SUCI,得到SUPI;
第二获取子模块,用于获取所述SUPI对应的OPC密钥或根密钥K;
处理子模块,用于利用完整性运算函数对所述OPC密钥或根密钥K以及所述随机数进行运算,得到第五运算值;或者利用预定义的函数对所述OPC密钥和/或根密钥K以及所述随机数进行运算,得到第五运算值;
所述验证子模块还用于,在所述第三完整性保护标签和所述第五运算值一致的情况下,验证结果为验证通过;否则,验证结果为验证不通过。
其中,所述装置还包括:
存储模块,用于在未查找到所述随机数的情况下,存储所述随机数。
第五方面,本公开实施例提供了一种验证装置,应用于终端,包括:处理器和收发器;
所述处理器,用于利用共享密钥对目标信息进行完整性运算,得到完整性验证值;
所述收发器,用于向第一网元发送所述完整性验证值;接收所述第一网元对所述完整性验证值的验证结果;
其中,所述共享密钥是所述第一网元和所述终端之间使用的密钥。
其中,所述共享密钥为所述第一网元和所述终端共知的OPC密钥或根密 钥K;所述完整性验证值为第一完整性保护标签;
所述处理器还用于:通过USIM利用完整性运算函数对所述OPC密钥或根密钥K、第一信息和第二信息进行运算,得到所述第一完整性保护标签;
所述第一信息为完整性密钥,所述第二信息为利用加密密钥对用户永久标识SUPI进行加密的结果。
其中,所述共享密钥为所述第一网元和所述终端之间的会话根密钥KAUSF;所述完整性验证值为第一完整性保护标签;
所述处理器还用于:通过ME利用完整性运算函数对第一信息、第二信息、所述会话根密钥KAUSF钥进行运算,得到所述第一完整性保护标签;
所述第一信息为完整性密钥,所述第二信息为利用加密密钥对用户永久标识SUPI进行加密的结果。
所述收发器器还用于:向所述第一网元发送用户隐藏标识SUCI,在所述SUCI中携带所述第一完整性保护标签。
其中,所述共享密钥为所述第一网元和所述终端共知的OPC密钥或根密钥K;所述完整性验证值为第二完整性保护标签;
所述处理器还用于:通过USIM利用完整性运算函数对所述OPC密钥或根密钥K以及所述SUCI中已有的完整性保护标签进行运算,得到所述第二完整性保护标签。
其中,所述共享密钥为所述第一网元和所述终端之间的会话根密钥KAUSF;所述完整性验证值为第二完整性保护标签;
所述处理器还用于:通过ME利用完整性运算函数对SUCI中已有的完整性保护标签、所述之间的会话根密钥KAUSF进行运算,得到所述第二完整性保护标签。
其中,所述处理器还用于,向所述第一网元发送SUCI和所述第二完整性保护标签。
其中,所述共享密钥为所述第一网元和所述终端共知的OPC密钥或根密钥K;所述完整性验证值为随机数和第三完整性保护标签;
所述处理器还用于:通过USIM生成随机数;由所述USIM利用完整性运算函数对所述OPC密钥或根密钥K以及所述随机数进行运算,得到所述 第三完整性保护标签;或者,利用预定义的函数对所述OPC密钥和/或根密钥K以及所述随机数进行运算,得到所述第三完整性保护标签。
其中,所述收发器还用于,通过由ME向所述第一网元发送SUCI、所述随机数和所述第三完整性保护标签。
其中,所述SUCI、所述随机数和所述第三完整性保护标签是所述ME由所述USIM获取的;或者,所述随机数和所述第三完整性保护标签是所述ME由所述USIM获取的,所述SUCI是所述ME生成的。
第六方面,本公开实施例提供了一种验证装置,应用于第一网元,包括:处理器和收发器;
所述收发器,用于接收终端发送的完整性验证值;
所述处理器,用于对所述完整性验证值进行验证;
所述收发器,还用于向所述终端发送对所述完整性验证值的验证结果;
其中,所述完整性验证值是利用共享密钥对目标信息进行完整性运算得到的,所述共享密钥是所述第一网元和所述终端之间使用的密钥。
其中,所述完整性验证值为第一完整性保护标签;
所述收发器还用于,接收所述终端发送的SUCI,在所述SUCI中携带所述第一完整性保护标签。
其中,所述共享密钥为所述第一网元和所述终端共知的OPC密钥或根密钥K;所述处理器还用于:
解密所述SUCI,得到SUPI;
根据所述SUPI得到所述OPC密钥或根密钥K;
利用完整性运算函数对所述OPC密钥或根密钥K、第三信息和第四信息进行运算,得到第一运算值;其中,所述第三信息为完整性密钥,所述第四信息为利用加密密钥对所述SUPI进行加密的加密结果;
在所述第一运算值和所述第一完整性保护标签一致的情况下,验证结果为验证通过;否则,验证结果为验证不通过。
其中,所述共享密钥为所述第一网元和所述终端之间的会话根密钥KAUSF;所述完整性验证值为第一完整性保护标签;所述处理器还用于:
解密所述SUCI,得到SUPI;
在数据库中查找所述SUPI;
在未查找到所述SUPI的情况下,验证结果为验证不通过。
其中,所述处理器还用于:
在查找到所述SUPI的情况下,获取所述SUPI对应的会话根密钥KAUSF;
利用完整性运算函数对第五信息、第六信息以及所述会话根密钥KAUSF进行运算,得到第二运算值;其中,所述第五信息为完整性密钥,所述第六信息为利用加密密钥对所述SUPI进行加密的加密结果;
在所述第二运算值和所述第一完整性保护标签一致的情况下,验证结果为验证通过;否则,验证结果为验证不通过。
其中,所述完整性验证值为第二完整性保护标签;
所述收发器,还用于接收所述终端发送的SUCI。
其中,所述共享密钥为所述第一网元和所述终端共知的OPC密钥或根密钥K;所述处理器还用于:解密所述SUCI,得到SUPI和所述第二完整性保护标签;
根据所述SUPI得到所述OPC密钥或根密钥K;
利用完整性运算函数对所述OPC密钥或根密钥K以及所述SUCI中携带的完整性保护标签进行运算,得到第二运算值;
在对所述SUCI中携带的完整性保护标签和所述第二运算值的验证通过的情况下,验证结果为验证通过;否则,验证结果为验证不通过。
其中,所述共享密钥为所述第一网元和所述终端之间的会话根密钥KAUSF;
所述处理器还用于:
解密所述SUCI,得到SUPI;
在数据库中查找所述SUPI;
在未查找到所述SUPI的情况下,验证结果为验证不通过。
其中,所述处理器还用于:
在查找到所述SUPI的情况下,获取所述SUPI对应的会话根密钥KAUSF;
利用完整性运算函数对所述SUCI中携带的完整性保护标签以及所述会话根密钥KAUSF进行运算,得到第四运算值;
在对所述SUCI中携带的完整性保护标签和所述第四运算值的验证通过的情况下,验证结果为验证通过;否则,验证结果为验证不通过。
其中,所述处理器还用于:获取所述第一网元自身存储的所述会话根密钥KAUSF;或者从第二网元获取所述会话根密钥KAUSF。
其中,所述完整性验证值为随机数和第三完整性保护标签;
所述收发器还用于,接收所述终端发送的SUCI。
其中,所述共享密钥为所述第一网元和所述终端共知的OPC密钥或根密钥K;
所述处理器还用于:
获得所述随机数;
在数据库中查找所述随机数;
在查找到所述随机数的情况下,验证结果为验证不通过。
其中,所述处理器还用于:
在未查找到所述随机数的情况下,解密所述SUCI,得到SUPI;
获取所述SUPI对应的OPC密钥或根密钥K;
利用完整性运算函数对所述OPC密钥或根密钥K以及所述随机数进行运算,得到第五运算值;或者利用预定义的函数对所述OPC密钥和/或根密钥K以及所述随机数进行运算,得到第五运算值;
在所述第三完整性保护标签和所述第五运算值一致的情况下,验证结果为验证通过;否则,验证结果为验证不通过。
其中,所述处理器还用于:在未查找到所述随机数的情况下,存储所述随机数。
在本公开实施例中,利用终端和第一网元的共享密钥对目标信息进行完整性运算,从而生成完整性验证值。因攻击者不知道终端和第一网元的共享密钥,因此,即使SUPI猜测正确,第一网元也会检测出完整性验证值的错误,并会返回注册拒绝消息,从而解决SUPI猜测攻击问题。
为了更清楚地说明本公开实施例的技术方案,下面将对本公开实施例描 述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本公开实施例提供的验证方法的流程图之一;
图2是本公开实施例提供的验证方法的流程图之二;
图3是本公开实施例提供的验证方法的流程图之三;
图4是本公开实施例提供的验证方法的流程图之四;
图5是本公开实施例提供的验证方法的流程图之五;
图6是本公开实施例提供的验证装置的结构图之一;
图7是本公开实施例提供的验证装置的结构图之二;
图8是本公开实施例提供的验证装置的结构图之三;
图9是本公开实施例提供的验证装置的结构图之四;
图10是本公开实施例提供的通信设备的结构图之一;
图11是本公开实施例提供的通信设备的结构图之二。
下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
参见图1,图1是本公开实施例提供的验证方法的流程图,应用于终端。如图1所示,包括以下步骤:
步骤101、利用共享密钥对目标信息进行完整性运算,得到完整性验证值。
其中,所述共享密钥是所述第一网元和所述终端之间使用的密钥。
相关技术中,终端加密SUPI的过程如下:首先随机生成椭圆曲线迪菲-赫尔曼秘钥交换(Elliptic Curve Diffie-Hellman key Exchange,ECDH)私钥A
PRI,并推演出ECDH公钥A
PUB。然后,终端使用自己的私钥A
PRI和网络的ECDH公钥B
PUB生成共享密钥K
ECDH。终端从K
ECDH推演出加密密钥K
E,AES计数 加密的初始值,完整性密钥K
M,称为密钥数据K
D,即:
基于高级加密标准(Advanced Encryption Standard,AES)计数加密方式使用K
E对SUPI进行加密,使用K
M对SUPI的加密消息进行完保,产生完整性保护标签Tag。
其中,Tag=HMAC-SHA-256(K
M,K
E{SUPI})
其中,SUCI包括的内容如下:
SUCI=SUPI的类型+归属网络标识+路由标识+保护方案标识+B
PUB+A
PUB+K
E{SUPI}+Tag。
其中,归属网络标识用于寻找到相应的归属网络,路由标识用于在同一归属网络中寻找到相应的UDM。
在本公开实施例中,使用终端和网络的共享密钥对相关消息生成完整性验证值。因攻击者不知道终端和网络的共享密钥,即使SUPI猜测正确,网络也会检测出按照本公开实施例生成的完整性保护标签的错误,并会返回带有原因#3的注册拒绝消息,从而SUPI猜测攻击的问题被解决。
根据生成完整性验证值的消息不同,本公开实施例中有三种实现方案。
第一种方案是在生成完整性保护标签Tag的函数输入里加入只有终端和网络知道的密钥,得到第一完整性保护标签。这样即使SUPI猜测正确,因没有终端和网络知道的密钥,攻击者生成的Tag也会被网络检测出错误。那么,网络也就会返回带有原因#3的注册拒绝消息,从而解决SUPI猜测攻击问题。
具体的,在此方案中,SUPI加密可以在通用集成电路卡(或者称为Universal integrated circuit card,UICC,USIM)里执行,也可以在终端ME上执行。
(1)SUPI在USIM上加密:
具体的,所述共享密钥为所述第一网元和所述终端共知的OPC密钥或根密钥K,所述完整性验证值为第一完整性保护标签。
目前很多运营商均采用在USIM中预置OPC密钥,OPC是由OP和根密钥K经过一系列运算后得到的,这样就确保了不同卡片预置不同的OPC。当SUPI在USIM上加密时,在本公开实施中使用终端和网络共享密钥OPC或终端和网络共知的根密钥K生成第一完整性保护标签。
在此步骤中,由USIM利用完整性运算函数对所述第一信息、所述第二信息、所述OPC密钥或根密钥进行运算,得到所述第一完整性保护标签。具体方式如下:
Tag=HMAC-SHA-256(K
M,K
E{SUPI},OPC或K)。
其中,Tag为第一完整性保护标签,K
M表示完整性密钥,K
E表示加密密钥,K表示根密钥。这里完整性运算函数为HMAC-SHA-256,也可以是其他完整性运算函数,如HMAC-SHA3。
在网络侧,UDM验证第一完整性保护标签的正确性。即使攻击者猜到一个正确的SUPI,因其不知道OPC或根密钥K,那么攻击者也不能生成正确的第一完整性保护标签,从而网络会返回带有原因#3的注册拒绝消息。也就是说,无论攻击者猜到一个正确的SUPI或是没有猜到一个正确的SUPI,网络都会返回带有原因#3的注册拒绝消息。
(2)SUPI在终端ME上加密:
所述共享密钥为所述第一网元和所述终端之间的会话根密钥K
AUSF;所述完整性验证值为第一完整性保护标签。
在终端和网络使用5G认证与密钥协商(Authentication and Key Agreement,AKA)或扩展的认证协议-认证和密钥协商协议(Extensible Authentication Protocol-Authentication and Key Agreement,EAP-AKA’)完成双向认证后,终端和网络会计算并存储会话根密钥K
AUSF。当SUPI在终端ME上加密时,本公开实施例使用终端和网络的共享密钥K
AUSF生成第一完整性保护标签。
在此步骤中,由ME利用完整性运算函数对所述第一信息、所述第二信息和所述会话根密钥K
AUSF进行运算,得到所述第一完整性保护标签。具体方式如下:
Tag=HMAC-SHA-256(K
M,K
E{SUPI},K
AUSF)。
其中,Tag为第一完整性保护标签,K
M表示完整性密钥,K
E表示加密密钥,K表示根密钥。这里完整性运算函数为HMAC-SHA-256,也可以是其他完整性运算函数,如HMAC-SHA3。
在网络侧,UDM验证第一完整性保护标签的正确性。即使攻击者猜到一个正确的SUPI,但因其不知道K
AUSF,因此,攻击者不能生成正确的第一完整性保护标签,从而网络会返回带有原因#3的注册拒绝消息。
K
AUSF的初始值为0。在网络侧,K
AUSF的存储有两种可能性:(1)同时存储在鉴权服务功能(Authentication Server Function,AUSF)和UDM上;(2)只存储在AUSF上。
对于第(1)情况,UDM解密SUCI得到SUPI,直接使用存储的K
AUSF按照上述方式进行运算,并验证。
对于第(2)情况,UDM首先解密SUCI得到SUPI,然后在数据库中搜索SUPI。如果数据库中没有对应的SUPI,UDM返回“404 Not Found”消息,网络相应地返回带有原因#3的注册拒绝消息。如果数据库中有对应的SUPI,UDM从AUSF得到与SUPI对应的K
AUSF,然后验证第一完整性保护标签。如果验证通过,UDM返回包含身份验证矢量的“200 OK”消息;如果验证失败UDM返回“404 Not Found”消息。
在第一种方案中,终端向第一网元发送SUCI,在SUCI中携带所述第一完整性保护标签。
第二种方案是在SUCI的基础上再使用终端和网络的共享密钥对SUCI的Tag进行完整保护运算生成第二个完整性保护标签,即STag。因攻击者不知道终端和网络的共享密钥,这样即使SUPI猜测正确,网络也会检测出STag的错误,并会返回带有原因#3的注册拒绝消息,从而SUPI猜测攻击问题被解决。
在本公开实施例中,可由USIM生成第二完整性保护标签STag,也可由ME生成第二完整性保护标签STag。
(1)STag在USIM上生成:
具体的,所述共享密钥为所述第一网元和所述终端共知的OPC密钥或根密钥K;所述完整性验证值为第二完整性保护标签。
当STag在USIM上实现时,在本公开实施例中使用终端和网络共享密钥OPC或根密钥K对SUCI中的第三完整性保护标签Tag进行运算生成Stag。具体的,由USIM利用完整性运算函数对所述OPC密钥或根密钥K以及所述SUCI中已有的完整性保护标签进行运算,得到所述第二完整性保护标签。计算如下:
STag=HMAC-SHA-256(OPC或K,Tag)。
其中,STag为第二完整性保护标签,Tag为第三完整性保护标签。这里完整性运算函数为HMAC-SHA-256,也可以是其他完整性运算函数,如HMAC-SHA3。
在网络侧,UDM会验证SUCI中的Tag以及STag的正确性,只有两者都通过验证,网络侧才会向终端发送验证请求消息。
(2)STag在ME上生成:
具体的,所述共享密钥为所述第一网元和所述终端之间的会话根密钥K
AUSF;所述完整性验证值为第二完整性保护标签。
当STag在ME上实现时,在此,使用终端和网络之间的会话根密钥K
AUSF对第三完整性保护标签Tag进行运算生成第二完整性保护标签Stag。具体的,由ME利用完整性运算函数对SUCI中已有的完整性保护标签、所述之间的会话根密钥K
AUSF进行运算,得到所述第二完整性保护标签。计算方式如下:
STag=HMAC-SHA-256(K
AUSF,Tag)。
其中,STag为第二完整性保护标签,Tag为第三完整性保护标签。这里完整性运算函数为HMAC-SHA-256,也可以是其他完整性运算函数,如HMAC-SHA3。
在网络侧,UDM会验证SUCI中的Tag以及STag的正确性,只有两者都通过验证,网络侧才会向终端发送验证请求消息。
在第二种方案中,除了向第一网元发送第二完整性保护标签,终端还需要向第一网元发送SUCI。
第三种方案是在终端的USIM上生成一个一次性随机数,并使用终端和网络的共享密钥对其进行完整性运算,生成完整性验证值NTag。因攻击者不知道终端和网络的共享密钥,即使SUPI猜测正确,网络会检测出NTag的错 误,并会返回带有原因#3的注册拒绝消息,从而SUPI猜测攻击问题被解决。
具体的,在本公开实施例中,共享密钥为所述第一网元和所述终端共知的OPC密钥或根密钥K。由USIM生成随机数,并由所述USIM利用完整性运算函数或3GPP TS 35.206中定义的函数对所述OPC密钥和/或根密钥K以及所述随机数进行运算,得到所述第三完整性保护标签。
具体的,USIM生成一次性随机数Nonce,使用终端和网络共享的OPC密钥或根密钥K,对Nonce生成第三完整性保护标签NTag,其计算如下:
NTag=HMAC-SHA-256(OPC或K,Nonce)
其中,NTag为第三完整性保护标签,Nonce为随机数。这里完整性运算函数为HMAC-SHA-256,也可以是其他完整性运算函数,如HMAC-SHA3。
或者,USIM利用预定义的函数对所述OPC密钥和/或根密钥K以及所述随机数进行运算,得到第五运算值。计算如下:
NTag=f2(OPC和/或K,Nonce)
其中,NTag为第三完整性保护标签,Nonce为随机数。这里预定义的函数f2函数,其中加密函数为AES,也可以是其他加密函数。当然,也可以使用预定义的f3或f4或f5函数。
在发送随机数和第三完整性保护标签时,是由ME向所述第一网元发送SUCI、所述随机数和所述第三完整性保护标签。其中,所述SUCI、所述随机数和所述第三完整性保护标签是所述ME由所述USIM获取的;或者,所述随机数和所述第三完整性保护标签是所述ME由所述USIM获取的,所述SUCI是所述ME生成的。
具体的,如果SUPI的加密在USIM上进行,则USIM把SUCI、Nonce和NTag传给ME,并由ME发送给网络。如果SUPI的加密在ME上进行,则USIM把Nonce和NTag传给ME。ME完成对SUCI的加密后,把SUCI、Nonce和NTag发送给网络。
网络在收到SUCI、Nonce和NTag后,首先在数据库检查是否存在Nonce。如果存在则回复拒绝消息,从而抵抗重放攻击。如果数据库中不存在Nonce,则解密SUCI得到SUPI,并根据SUPI得到OPC或根密钥K。使用OPC或根密钥K对NTag进行验证,如果验证成功,存储Nonce并生成验证矢量。如果验 证失败回复拒绝消息。
以上三种方案都是基于终端和网络共享的密钥生成完整性保护标签Tag或完整性二次标签STag或者一次性随机数的完整性保护标签NTag。由于攻击者不知道终端和网络共享的密钥,它也就不能伪造一个正确的完整性保护标签Tag或完整性二次标签STag或者NTag。这样,即使攻击者能猜测到一个正确的SUPI,也不能生成一个正确的完整性保护标签Tag或完整性二次标签STag或者NTag。也就是说,所提方案能够抵御SUPI猜测攻击。
其中,方案一因其只是把终端和网络的共享密钥加到完整性函数里,所以基本上不增加运算量。方案二和方案三只增加了一个完整性函数的运算量,此运算需要的运算资源较小,对***影响较小。此外,方案二和方案三能很好的兼容相关技术中的***,由于是在ECIES的方案上在叠加生成完整性二次标签STag或者一次性随机数的完整性保护标签NTag,因此,不需要对集成加密方案(elliptic curve integrate encrypt scheme,ECIES)方案做调整。
步骤102、向第一网元发送所述完整性验证值。
当按照上述第一种方案时,向第一网元发送SUCI,在所述SUCI中包括第一完整性验证标签。
当按照上述第二种方案时,向第一网元分别发送SUCI和第二完整性验证标签。
当按照上述第案种方案时,向第一网元分别发送SUCI、随机数和第三完整性验证标签。
步骤103、接收所述第一网元对所述完整性验证值的验证结果。
在本公开实施例中,利用终端和第一网元的共享密钥对目标信息进行完整性运算,从而生成完整性验证值。因攻击者不知道终端和第一网元的共享密钥,因此,即使SUPI猜测正确,第一网元也会检测出完整性验证值的错误,并会返回注册拒绝消息,从而解决SUPI猜测攻击问题。
参见图2,图2是本公开实施例提供的验证方法的流程图,应用于第一网元。所述第一网元例如可以是UDM。如图2所示,包括以下步骤:
步骤201、接收终端发送的完整性验证值。
其中,所述完整性验证值是利用共享密钥对目标信息进行完整性运算得到的,所述共享密钥是所述第一网元和所述终端之间使用的密钥。
根据完整性验证值的不同,在此可有不同的接收方式。
例如,第一网元接收所述终端发送的SUCI,在所述SUCI中携带所述第一完整性保护标签。
或者,第一网元接收SUCI、第二完整性保护标签;
或者,第一网元接收SUCI、随机数和第三完整性保护标签。
步骤202、对所述完整性验证值进行验证。
根据共享密钥的不同,在本公开实施例中,可有不同的验证方法。
在所述共享密钥为所述第一网元和所述终端共知的OPC密钥或根密钥的情况下,如果第一完整性保护标签携带在SUCI中,此步骤可包括:
步骤2021、解密所述SUCI,得到SUPI。
步骤2022、根据所述SUPI得到所述OPC密钥或根密钥。
在第一网元可存储SUPI和密钥的对应关系,那么,在此,可根据步骤2021中得到的SUPI得到所述OPC密钥或根密钥。
步骤2023、利用完整性运算函数对第三信息、第四信息所述OPC密钥或根密钥进行运算,得到第一运算值;其中,所述第三信息为所述完整性密钥,所述第四信息为利用所述加密密钥所述SUPI进行加密的加密结果。
Tag=HMAC-SHA-256(K
M,K
E{SUPI},OPC或K)。
其中,Tag为第一运算值,K
M表示完整性密钥,K
E表示加密密钥,K表示根密钥。这里完整性运算函数为HMAC-SHA-256,也可以是其他完整性运算函数,如HMAC-SHA3。
步骤2024、在所述第一运算值和所述第一完整性保护标签一致的情况下,所述验证结果为验证通过;否则,所述验证结果为验证不通过。
在所述共享密钥为所述第一网元和所述终端之间的会话根密钥K
AUSF的情况下,如果第一完整性保护标签携带在SUCI中,此步骤可包括:
步骤2025、解密所述SUCI,得到SUPI。
步骤2026、在数据库中查找所述SUPI。
步骤2027、在未查找到所述SUPI的情况下,所述验证结果为验证不通 过。
进一步的,为提高安全性,所述方法还可包括:
步骤2028、在查找到所述SUPI的情况下,获取所述SUPI对应的会话根密钥K
AUSF。具体的,可获取所述第一网元自身存储的所述会话根密钥K
AUSF;或者,从第二网元获取所述会话根密钥K
AUSF。第二网元例如可以是AUSF。
步骤2029、利用完整性运算函数对第五信息、第六信息以及所述会话根密钥KAUSF进行运算,得到第二运算值;其中,所述第五信息为所述完整性密钥,所述第六信息为利用所述加密密钥对所述SUPI进行加密的加密结果。
步骤2030、在所述第二运算值和所述第一完整性保护标签一致的情况下,所述验证结果为验证通过;否则,所述验证结果为验证不通过。
K
AUSF的初始值为0。在网络侧,K
AUSF的存储有两种可能性:(1)同时存储在AUSF和UDM上;(2)只存储在AUSF上。对于第一种情况,UDM解密SUCI得到SUPI,直接使用存储的K
AUSF按照上述方式进行运算,并验证。
对于第二种情况,UDM首先解密SUCI得到SUPI,然后在数据库中搜索SUPI。如果数据库中没有对应的SUPI,UDM返回“404 Not Found”消息,网络相应地返回带有原因#3的注册拒绝消息。如果数据库中有对应的SUPI,UDM从AUSF得到与SUPI对应的K
AUSF,然后验证第一完整性保护标签。如果验证通过,UDM返回包含身份验证矢量的“200 OK”消息;如果验证失败UDM返回“404 Not Found”消息。
如果完整性验证值是第二完整性保护标签,第一网元还需接收终端发送的SUCI。
在这种情况下,如果所述共享密钥为所述第一网元和所述终端共知的OPC密钥或根密钥K,此步骤可包括:
步骤2031、解密所述SUCI,得到SUPI和所述第二完整性保护标签;
步骤2032、根据所述SUPI得到所述OPC密钥或根密钥K;
步骤2033、利用完整性运算函数对所述OPC密钥或根密钥K以及所述SUCI中携带的完整性保护标签进行运算,得到第二运算值;
步骤2034、在对所述SUCI中携带的完整性保护标签和所述第二运算值的验证通过的情况下,验证结果为验证通过;否则,验证结果为验证不通过。
在这种情况下,如果所述共享密钥为所述第一网元和所述终端之间的会话根密钥K
AUSF,此步骤可包括:
步骤2035、解密所述SUCI,得到SUPI;
步骤2036、在数据库中查找所述SUPI;
步骤2037、在未查找到所述SUPI的情况下,验证结果为验证不通过。
为进一步提高安全性,所述方法还可包括:
步骤2038、在查找到所述SUPI的情况下,获取所述SUPI对应的会话根密钥K
AUSF;
步骤2039、利用完整性运算函数对所述SUCI中携带的完整性保护标签以及所述会话根密钥K
AUSF进行运算,得到第四运算值。
步骤2040、在对所述SUCI中携带的完整性保护标签和所述第四运算值的验证通过的情况下,验证结果为验证通过;否则,验证结果为验证不通过。
其中,所述获取所述SUPI对应的会话根密钥K
AUSF的过程可包括,获取所述第一网元自身存储的所述会话根密钥K
AUSF;或者从第二网元获取所述会话根密钥K
AUSF。所述第二网元可以是AUSF。
如果完整性验证值是随机数和第三完整性保护标签,第一网元还需接收终端发送的SUCI。所述共享密钥为所述第一网元和所述终端共知的OPC密钥或根密钥K;此步骤可包括:
步骤2041、获得所述随机数。
步骤2042、在数据库中查找所述随机数。
步骤2043、在查找到所述随机数的情况下,验证结果为验证不通过。
为进一步提高安全性,所述方法还可包括:
步骤2043、在未查找到所述随机数的情况下,解密所述SUCI,得到SUPI;
步骤2044、获取所述SUPI对应的OPC密钥或根密钥K;
步骤2045、利用完整性运算函数对所述OPC密钥或根密钥K以及所述随机数进行运算,得到第五运算值;或者利用预定义的函数对所述OPC密钥和/或根密钥K以及所述随机数进行运算,得到第五运算值;
步骤2046、在所述第三完整性保护标签和所述第五运算值一致的情况下,验证结果为验证通过;否则,验证结果为验证不通过。
第一网元在收到SUCI、Nonce和NTag后,首先在数据库检查是否存在Nonce。如果存在则回复拒绝消息,从而抵抗重放攻击。如果数据库中不存在Nonce,则解密SUCI得到SUPI,并根据SUPI得到OPC或根密钥K。使用OPC或根密钥K对NTag进行验证,如果验证成功,存储Nonce并生成验证矢量。如果验证失败回复拒绝消息。
步骤203、向所述终端发送对所述完整性验证值的验证结果。
在本公开实施例中,利用终端和第一网元的共享密钥对目标信息进行完整性运算,从而生成完整性验证值。因攻击者不知道终端和第一网元的共享密钥,因此,即使SUPI猜测正确,第一网元也会检测出完整性验证值的错误,并会返回注册拒绝消息,从而解决SUPI猜测攻击问题。
参见图3,图3是本公开实施例提供的验证方法的流程图,包括如下步骤:
步骤301、终端将SUPI将其转换为SUCI,其中,SUCI中的Tag是按照本公开实施例的方法生成的,即前述的第一完整性保护标签。
然后,终端将SUCI发送到接入和移动管理功能(Access and Mobility Management Function,AMF)/安全锚功能(Security Anchor Function,SEAF)。
步骤302、AMF/SEAF将SUCI发送到AUSF。
步骤303、AUSF将SUCI发送到UDM。
步骤304、UDM对SUCI中的第一完整性保护标签进行验证。
其中,具体的验证方法可参照前述实施例的描述。
步骤305、如果验证通过,则UDM向AUSF发送“200 OK”。如果验证未通过,则返回“404 Not Found”并带有“USER_NOT_FOUND”的内容。
步骤306、在接收到“200 OK”后,AUSF将“201 Created”发送到AMF/SEAF。AUSF收到“404 Not Found”后,会把“404 Not Found”消息发送到AMF/SEAF。
步骤307、在“201 Created”的情况下,AMF/SEAF在验证请求消息中将RAND和AUTN发送到终端。在“404 Not Found”的情况下,AMF/SEAF将带有原因#3的注册拒绝消息发送给终端。
参见图4,图4是本公开实施例提供的验证方法的流程图,包括如下步 骤:
步骤401、终端将SUPI转换为SUCI,并按照前述实施例的方法获得第二完整性保护标签。
然后,终端将SUCI和第二完整性保护标签发送到AMF/SEAF。
步骤402、AMF/SEAF将SUCI和第二完整性保护标签发送到AUSF。
步骤403、AUSF将SUCI和第二完整性保护标签发送到UDM。
步骤404、对SUCI中的Tag和第二完整性保护标签进行验证。
其中,具体的验证方法可参照前述实施例的描述。
步骤405、如果验证通过,则UDM向AUSF发送“200 OK”。如果验证未通过,则UDM返回“404 Not Found”并带有“USER_NOT_FOUND”的内容。
步骤406、在接收到“200 OK”后,AUSF将“201 Created”发送到AMF/SEAF。AUSF收到“404 Not Found”后,会把“404 Not Found”消息发送到AMF/SEAF。
步骤407、在“201 Created”的情况下,AMF/SEAF在身份验证请求消息中将RAND和AUTN发送到终端。在“404 Not Found”的情况下,AMF/SEAF将带有原因#3的注册拒绝消息发送给终端。
参见图5,图5是本公开实施例提供的验证方法的流程图,包括如下步骤:
步骤501、终端将SUCI、随机数和第三完整性保护标签发送到AMF/SEAF。
终端可按照前述实施例的方法获得第三完整性保护标签。
步骤502、AMF/SEAF将SUCI、随机数和第三完整性保护标签发送到AUSF。
步骤503、AUSF将SUCI、随机数和第三完整性保护标签发送到UDM。
步骤504、UDM对随机数和第三完整性保护标签进行验证。
其中,UDM首先在数据库检查是否存在随机数Nonce,如果存在则回复拒绝消息,从而抵抗重放攻击;如果Nonce数据库中不存在,则解密SUCI的到SUPI,并根据SUPI得到OPC或根密钥K。使用OPC或根密钥K对NTag进行验证,如果验证成功,存储Nonce并生成认证矢量。如果验证失败回复拒绝消息。
步骤505、如果验证未通过或者存在随机数Nonce,则返回“504 Not Found”并带有“USER_NOT_FOUND”的内容。如果验证通过,则向AUSF发送“200 OK”。
步骤506、在接收到“200 OK”后,AUSF将“201 Created”发送到AMF/SEAF。AUSF收到“504 Not Found”后,会把“504 Not Found”消息发送到AMF/SEAF。
步骤507、在“201 Created”的情况下,AMF/SEAF在身份验证请求消息中将RAND和AUTN发送到终端。在“504 Not Found”的情况下,AMF/SEAF将带有原因#3的注册拒绝消息发送给终端。
本公开实施例还提供了一种验证装置,应用于终端。参见图6,图6是本公开实施例提供的验证装置的结构图。由于验证装置解决问题的原理与本公开实施例中验证方法相似,因此该验证装置的实施可以参见方法的实施,重复之处不再赘述。
如图6所示,验证装置包括:获取模块601,用于利用共享密钥对目标信息进行完整性运算,得到完整性验证值;发送模块602,用于向第一网元发送所述完整性验证值;接收模块603,用于接收所述第一网元对所述完整性验证值的验证结果;
其中,所述共享密钥是所述第一网元和所述终端之间使用的密钥。
其中,所述共享密钥为所述第一网元和所述终端共知的OPC密钥或根密钥K;所述完整性验证值为第一完整性保护标签;
所述获取模块601具体用于,通过USIM利用完整性运算函数对所述OPC密钥或根密钥K、第一信息和第二信息进行运算,得到所述第一完整性保护标签;
所述第一信息为完整性密钥,所述第二信息为利用加密密钥对用户永久标识SUPI进行加密的结果。
其中,所述共享密钥为所述第一网元和所述终端之间的会话根密钥K
AUSF;所述完整性验证值为第一完整性保护标签;
所述获取模块601具体用于,通过ME利用完整性运算函数对第一信息、第二信息、所述会话根密钥K
AUSF钥进行运算,得到所述第一完整性保护标签;
所述第一信息为完整性密钥,所述第二信息为利用加密密钥对用户永久 标识SUPI进行加密的结果。
其中,所述发送模块602具体用于,向所述第一网元发送SUCI,在所述SUCI中携带所述第一完整性保护标签。
其中,所述共享密钥为所述第一网元和所述终端共知的OPC密钥或根密钥K;所述完整性验证值为第二完整性保护标签;
所述获取模块601具体用于,通过USIM利用完整性运算函数对所述OPC密钥或根密钥K以及所述SUCI中已有的完整性保护标签进行运算,得到所述第二完整性保护标签。
所述共享密钥为所述第一网元和所述终端之间的会话根密钥K
AUSF;所述完整性验证值为第二完整性保护标签;
所述获取模块601具体用于,通过ME利用完整性运算函数对SUCI中已有的完整性保护标签、所述之间的会话根密钥K
AUSF进行运算,得到所述第二完整性保护标签。
其中,所述发送模块602还用于向所述第一网元发送SUCI以及所述第二完整性保护标签。
其中,所述共享密钥为所述第一网元和所述终端共知的OPC密钥或根密钥K;所述完整性验证值为随机数和第三完整性保护标签;
所述获取模块601包括:
生成子模块,用于通过USIM生成随机数;
获取子模块,用于由所述USIM利用完整性运算函数对所述OPC密钥或根密钥K以及所述随机数进行运算,得到所述第三完整性保护标签;或者,利用预定义的函数对所述OPC密钥和/或根密钥K以及所述随机数进行运算,得到所述第三完整性保护标签。
其中,所述发送模块602用于,通过ME向所述第一网元发送SUCI、所述随机数和所述第三完整性保护标签;
其中,所述SUCI、所述随机数和所述第三完整性保护标签是所述ME由所述USIM获取的;或者,所述随机数和所述第三完整性保护标签是所述ME由所述USIM获取的,所述SUCI是所述ME生成的。
本公开实施例提供的装置,可以执行上述方法实施例,其实现原理和技 术效果类似,本实施例此处不再赘述。
本公开实施例还提供了一种验证装置,应用于第一网元。参见图7,图7是本公开实施例提供的验证装置的结构图。由于验证装置解决问题的原理与本公开实施例中验证方法相似,因此该验证装置的实施可以参见方法的实施,重复之处不再赘述。
如图7所示,验证装置包括:接收模块701,用于接收终端发送的完整性验证值;验证模块702,用于对所述完整性验证值进行验证;发送模块703,用于向所述终端发送对所述完整性验证值的验证结果;其中,所述完整性验证值是利用共享密钥对目标信息进行完整性运算得到的,所述共享密钥是所述第一网元和所述终端之间使用的密钥。
其中,所述完整性验证值为第一完整性保护标签;
所述接收模块,用于接收所述终端发送的SUCI,在所述SUCI中携带所述第一完整性保护标签。
其中,所述共享密钥为所述第一网元和所述终端共知的OPC密钥或根密钥K;所述验证模块包括:
解密子模块,用于解密所述SUCI,得到SUPI;
获取子模块,用于根据所述SUPI得到所述OPC密钥或根密钥K;
处理子模块,用于利用完整性运算函数对所述OPC密钥或根密钥K、第三信息和第四信息进行运算,得到第一运算值;其中,所述第三信息为完整性密钥,所述第四信息为利用加密密钥对所述SUPI进行加密的加密结果;
验证子模块,用于在所述第一运算值和所述第一完整性保护标签一致的情况下,验证结果为验证通过;否则,验证结果为验证不通过。
其中,所述共享密钥为所述第一网元和所述终端之间的会话根密钥K
AUSF;所述验证模块包括:
解密子模块,用于解密所述SUCI,得到SUPI;
查找子模块,用于在数据库中查找所述SUPI;
验证子模块,用于在未查找到所述SUPI的情况下,验证结果为验证不通过。
其中,所述验证模块还包括:
获取子模块,用于在查找到所述SUPI的情况下,获取所述SUPI对应的会话根密钥K
AUSF;
处理子模块,用于利用完整性运算函数对第五信息、第六信息以及所述会话根密钥K
AUSF进行运算,得到第二运算值;其中,所述第五信息为完整性密钥,所述第六信息为利用加密密钥对所述SUPI进行加密的加密结果;
所述验证子模块还用于,在所述第二运算值和所述第一完整性保护标签一致的情况下,验证结果为验证通过;否则,验证结果为验证不通过。
其中,所述完整性验证值为第二完整性保护标签;所述接收模块还用于,接收所述终端发送的SUCI。
其中,所述共享密钥为所述第一网元和所述终端共知的OPC密钥或根密钥K;所述验证模块包括:
解密子模块,用于解密所述SUCI,得到SUPI和所述第二完整性保护标签;
获取子模块,用于根据所述SUPI得到所述OPC密钥或根密钥K;
处理子模块,用于利用完整性运算函数对所述OPC密钥或根密钥K以及所述SUCI中携带的完整性保护标签进行运算,得到第二运算值;
验证子模块,用于在对所述SUCI中携带的完整性保护标签和所述第二运算值的验证通过的情况下,验证结果为验证通过;否则,验证结果为验证不通过。
其中,所述共享密钥为所述第一网元和所述终端之间的会话根密钥K
AUSF;所述验证模块包括:
解密子模块,用于解密所述SUCI,得到SUPI;
查找子模块,用于在数据库中查找所述SUPI;
验证子模块,用于在未查找到所述SUPI的情况下,验证结果为验证不通过。
其中,所述验证模块还包括:
获取子模块,用于在查找到所述SUPI的情况下,获取所述SUPI对应的会话根密钥K
AUSF;
处理子模块,用于利用完整性运算函数对所述SUCI中携带的完整性保护 标签以及所述会话根密钥K
AUSF进行运算,得到第四运算值;
所述验证子模块还用于,在对所述SUCI中携带的完整性保护标签和所述第四运算值的验证通过的情况下,验证结果为验证通过;否则,验证结果为验证不通过。
其中,所述获取子模块,用于获取所述第一网元自身存储的所述会话根密钥K
AUSF;或者从第二网元获取所述会话根密钥K
AUSF。
其中,所述完整性验证值为随机数和第三完整性保护标签;
所述接收模块还用于,接收所述终端发送的SUCI。
其中,所述共享密钥为所述第一网元和所述终端共知的OPC密钥或根密钥K;所述验证模块包括:
第一获取子模块,用于获得所述随机数;
查找子模块,用于在数据库中查找所述随机数;
验证子模块,用于在查找到所述随机数的情况下,验证结果为验证不通过。
其中,所述验证模块还包括:
解密子模块,用于在未查找到所述随机数的情况下,解密所述SUCI,得到SUPI;
第二获取子模块,用于获取所述SUPI对应的OPC密钥或根密钥K;
处理子模块,用于利用完整性运算函数对所述OPC密钥或根密钥K以及所述随机数进行运算,得到第五运算值;或者利用预定义的函数对所述OPC密钥和/或根密钥K以及所述随机数进行运算,得到第五运算值;
所述验证子模块还用于,在所述第三完整性保护标签和所述第五运算值一致的情况下,验证结果为验证通过;否则,验证结果为验证不通过。
其中,所述装置还包括:
存储模块,用于在未查找到所述随机数的情况下,存储所述随机数。
本公开实施例提供的装置,可以执行上述方法实施例,其实现原理和技术效果类似,本实施例此处不再赘述。
本公开实施例还提供了一种验证装置,应用于终端。参见图8,图8是本公开实施例提供的验证装置的结构图。由于验证装置解决问题的原理与本 公开实施例中验证方法相似,因此该验证装置的实施可以参见方法的实施,重复之处不再赘述。
如图8所示,验证装置包括:处理器801和收发器802。
所述处理器801,用于利用共享密钥对目标信息进行完整性运算,得到完整性验证值;
所述收发器802,用于向第一网元发送所述完整性验证值;接收所述第一网元对所述完整性验证值的验证结果;
其中,所述共享密钥是所述第一网元和所述终端之间使用的密钥。
其中,所述共享密钥为所述第一网元和所述终端共知的OPC密钥或根密钥K;所述完整性验证值为第一完整性保护标签;
所述处理器还用于:通过USIM利用完整性运算函数对所述OPC密钥或根密钥K、第一信息和第二信息进行运算,得到所述第一完整性保护标签;
所述第一信息为完整性密钥,所述第二信息为利用加密密钥对用户永久标识SUPI进行加密的结果。
其中,所述共享密钥为所述第一网元和所述终端之间的会话根密钥K
AUSF;所述完整性验证值为第一完整性保护标签;
所述处理器还用于:通过ME利用完整性运算函数对第一信息、第二信息、所述会话根密钥K
AUSF钥进行运算,得到所述第一完整性保护标签;
所述第一信息为完整性密钥,所述第二信息为利用加密密钥对用户永久标识SUPI进行加密的结果。
所述收发器器还用于:向所述第一网元发送用户隐藏标识SUCI,在所述SUCI中携带所述第一完整性保护标签。
其中,所述共享密钥为所述第一网元和所述终端共知的OPC密钥或根密钥K;所述完整性验证值为第二完整性保护标签;
所述处理器还用于:通过USIM利用完整性运算函数对所述OPC密钥或根密钥K以及所述SUCI中已有的完整性保护标签进行运算,得到所述第二完整性保护标签。
其中,所述共享密钥为所述第一网元和所述终端之间的会话根密钥K
AUSF;所述完整性验证值为第二完整性保护标签;
所述处理器还用于:通过ME利用完整性运算函数对SUCI中已有的完整性保护标签、所述之间的会话根密钥K
AUSF进行运算,得到所述第二完整性保护标签。
其中,所述处理器还用于,向所述第一网元发送SUCI和所述第二完整性保护标签。
其中,所述共享密钥为所述第一网元和所述终端共知的OPC密钥或根密钥K;所述完整性验证值为随机数和第三完整性保护标签;
所述处理器还用于:通过USIM生成随机数;由所述USIM利用完整性运算函数对所述OPC密钥或根密钥K以及所述随机数进行运算,得到所述第三完整性保护标签;或者,利用预定义的函数对所述OPC密钥和/或根密钥K以及所述随机数进行运算,得到所述第三完整性保护标签。
其中,所述收发器还用于,通过由ME向所述第一网元发送SUCI、所述随机数和所述第三完整性保护标签;
其中,所述SUCI、所述随机数和所述第三完整性保护标签是所述ME由所述USIM获取的;或者,所述随机数和所述第三完整性保护标签是所述ME由所述USIM获取的,所述SUCI是所述ME生成的。
本公开实施例提供的装置,可以执行上述方法实施例,其实现原理和技术效果类似,本实施例此处不再赘述。
本公开实施例还提供了一种验证装置,应用于第一网元。参见图9,图9是本公开实施例提供的验证装置的结构图。由于验证装置解决问题的原理与本公开实施例中验证方法相似,因此该验证装置的实施可以参见方法的实施,重复之处不再赘述。
如图9所示,验证装置包括:处理器901和收发器902。
所述收发器902,用于接收终端发送的完整性验证值;
所述处理器901,用于对所述完整性验证值进行验证;
所述收发器902,还用于向所述终端发送对所述完整性验证值的验证结果;
其中,所述完整性验证值是利用共享密钥对目标信息进行完整性运算得到的,所述共享密钥是所述第一网元和所述终端之间使用的密钥。
其中,所述完整性验证值为第一完整性保护标签;
所述收发器还用于,接收所述终端发送的SUCI,在所述SUCI中携带所述第一完整性保护标签。
其中,所述共享密钥为所述第一网元和所述终端共知的OPC密钥或根密钥K;所述处理器还用于:
解密所述SUCI,得到SUPI;
根据所述SUPI得到所述OPC密钥或根密钥K;
利用完整性运算函数对所述OPC密钥或根密钥K、第三信息和第四信息进行运算,得到第一运算值;其中,所述第三信息为完整性密钥,所述第四信息为利用加密密钥对所述SUPI进行加密的加密结果;
在所述第一运算值和所述第一完整性保护标签一致的情况下,验证结果为验证通过;否则,验证结果为验证不通过。
其中,所述共享密钥为所述第一网元和所述终端之间的会话根密钥K
AUSF;所述完整性验证值为第一完整性保护标签;所述处理器还用于:
解密所述SUCI,得到SUPI;
在数据库中查找所述SUPI;
在未查找到所述SUPI的情况下,验证结果为验证不通过。
其中,所述处理器还用于:
在查找到所述SUPI的情况下,获取所述SUPI对应的会话根密钥K
AUSF;
利用完整性运算函数对第五信息、第六信息以及所述会话根密钥K
AUSF进行运算,得到第二运算值;其中,所述第五信息为完整性密钥,所述第六信息为利用加密密钥对所述SUPI进行加密的加密结果;
在所述第二运算值和所述第一完整性保护标签一致的情况下,验证结果为验证通过;否则,验证结果为验证不通过。
其中,所述完整性验证值为第二完整性保护标签;
所述收发器,还用于接收所述终端发送的SUCI。
其中,所述共享密钥为所述第一网元和所述终端共知的OPC密钥或根密钥K;所述处理器还用于:解密所述SUCI,得到SUPI和所述第二完整性保护标签;
根据所述SUPI得到所述OPC密钥或根密钥K;
利用完整性运算函数对所述OPC密钥或根密钥K以及所述SUCI中携带的完整性保护标签进行运算,得到第二运算值;
在对所述SUCI中携带的完整性保护标签和所述第二运算值的验证通过的情况下,验证结果为验证通过;否则,验证结果为验证不通过。
其中,所述共享密钥为所述第一网元和所述终端之间的会话根密钥K
AUSF;
所述处理器还用于:
解密所述SUCI,得到SUPI;
在数据库中查找所述SUPI;
在未查找到所述SUPI的情况下,验证结果为验证不通过。
其中,所述处理器还用于:
在查找到所述SUPI的情况下,获取所述SUPI对应的会话根密钥K
AUSF;
利用完整性运算函数对所述SUCI中携带的完整性保护标签以及所述会话根密钥K
AUSF进行运算,得到第四运算值;
在对所述SUCI中携带的完整性保护标签和所述第四运算值的验证通过的情况下,验证结果为验证通过;否则,验证结果为验证不通过。
其中,所述处理器还用于:获取所述第一网元自身存储的所述会话根密钥K
AUSF;或者从第二网元获取所述会话根密钥K
AUSF。
其中,所述完整性验证值为随机数和第三完整性保护标签;
所述收发器还用于,接收所述终端发送的SUCI。
其中,所述共享密钥为所述第一网元和所述终端共知的OPC密钥或根密钥K;
所述处理器还用于:
获得所述随机数;
在数据库中查找所述随机数;
在查找到所述随机数的情况下,验证结果为验证不通过。
其中,所述处理器还用于:
在未查找到所述随机数的情况下,解密所述SUCI,得到SUPI;
获取所述SUPI对应的OPC密钥或根密钥K;
利用完整性运算函数对所述OPC密钥或根密钥K以及所述随机数进行运算,得到第五运算值;或者利用预定义的函数对所述OPC密钥和/或根密钥K以及所述随机数进行运算,得到第五运算值;
在所述第三完整性保护标签和所述第五运算值一致的情况下,验证结果为验证通过;否则,验证结果为验证不通过。
其中,所述处理器还用于:在未查找到所述随机数的情况下,存储所述随机数。
本公开实施例提供的装置,可以执行上述方法实施例,其实现原理和技术效果类似,本实施例此处不再赘述。
如图10所示,本公开实施例的通信设备,应用于终端,包括:处理器1000,用于读取存储器1020中的程序,执行下列过程:
利用共享密钥对目标信息进行完整性运算,得到完整性验证值;
向第一网元发送所述完整性验证值;
接收所述第一网元对所述完整性验证值的验证结果;
其中,所述共享密钥是所述第一网元和所述终端之间使用的密钥。
收发机1010,用于在处理器1000的控制下接收和发送数据。
其中,在图10中,总线架构可以包括任意数量的互联的总线和桥,具体由处理器1000代表的一个或多个处理器和存储器1020代表的存储器的各种电路链接在一起。总线架构还可以将诸如***设备、稳压器和功率管理电路等之类的各种其他电路链接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口提供接口。收发机1010可以是多个元件,即包括发送机和收发机,提供用于在传输介质上与各种其他装置通信的单元。处理器1000负责管理总线架构和通常的处理,存储器1020可以存储处理器1000在执行操作时所使用的数据。
处理器1000负责管理总线架构和通常的处理,存储器1020可以存储处理器1000在执行操作时所使用的数据。
其中,所述共享密钥为所述第一网元和所述终端共知的OPC密钥或根密钥K;所述完整性验证值为第一完整性保护标签;
处理器1000还用于读取所述程序,执行如下步骤:
由USIM利用完整性运算函数对所述OPC密钥或根密钥K、第一信息和第二信息进行运算,得到所述第一完整性保护标签;
所述第一信息为完整性密钥,所述第二信息为利用加密密钥对SUPI进行加密的结果。
其中,所述共享密钥为所述第一网元和所述终端之间的会话根密钥K
AUSF;所述完整性验证值为第一完整性保护标签;处理器1000还用于读取所述程序,执行如下步骤:
由ME利用完整性运算函数对第一信息、第二信息、所述会话根密钥K
AUSF钥进行运算,得到所述第一完整性保护标签;
所述第一信息为完整性密钥,所述第二信息为利用加密密钥对用户永久标识SUPI进行加密的结果。
处理器1000还用于读取所述程序,执行如下步骤:
向所述第一网元发送SUCI(Subscription Concealed Identifier,用户隐藏标识),在所述SUCI中携带所述第一完整性保护标签。
所述共享密钥为所述第一网元和所述终端共知的OPC密钥或根密钥K;所述完整性验证值为第二完整性保护标签;处理器1000还用于读取所述程序,执行如下步骤:
由USIM利用完整性运算函数对所述OPC密钥或根密钥K以及所述SUCI中已有的完整性保护标签进行运算,得到所述第二完整性保护标签。
其中,所述共享密钥为所述第一网元和所述终端之间的会话根密钥K
AUSF;所述完整性验证值为第二完整性保护标签;处理器1000还用于读取所述程序,执行如下步骤:
由ME利用完整性运算函数对SUCI中已有的完整性保护标签、所述之间的会话根密钥K
AUSF进行运算,得到所述第二完整性保护标签。
处理器1000还用于读取所述程序,执行如下步骤:
向所述第一网元发送SUCI和所述第二完整性保护标签。
其中,所述共享密钥为所述第一网元和所述终端共知的OPC密钥或根密钥K;所述完整性验证值为随机数和第三完整性保护标签;处理器1000还用于读取所述程序,执行如下步骤:
由USIM生成随机数;
由所述USIM利用完整性运算函数对所述OPC密钥或根密钥K以及所述随机数进行运算,得到所述第三完整性保护标签;或者,利用预定义的函数对所述OPC密钥和/或根密钥K以及所述随机数进行运算,得到所述第三完整性保护标签。
处理器1000还用于读取所述程序,执行如下步骤:
由ME向所述第一网元发送SUCI、所述随机数和所述第三完整性保护标签;
其中,所述SUCI、所述随机数和所述第三完整性保护标签是所述ME由所述USIM获取的;或者,所述随机数和所述第三完整性保护标签是所述ME由所述USIM获取的,所述SUCI是所述ME生成的。
如图11所示,本公开实施例的通信设备,应用于第一网元,包括:处理器1100,用于读取存储器1111中的程序,执行下列过程:
接收终端发送的完整性验证值;
对所述完整性验证值进行验证;
向所述终端发送对所述完整性验证值的验证结果;
其中,所述完整性验证值是利用共享密钥对目标信息进行完整性运算得到的,所述共享密钥是所述第一网元和所述终端之间使用的密钥。
收发机1110,用于在处理器1100的控制下接收和发送数据。
其中,在图11中,总线架构可以包括任意数量的互联的总线和桥,具体由处理器1100代表的一个或多个处理器和存储器1111代表的存储器的各种电路链接在一起。总线架构还可以将诸如***设备、稳压器和功率管理电路等之类的各种其他电路链接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口提供接口。收发机1110可以是多个元件,即包括发送机和收发机,提供用于在传输介质上与各种其他装置通信的单元。处理器1100负责管理总线架构和通常的处理,存储器1111可以存储处理器1100在执行操作时所使用的数据。
处理器1100负责管理总线架构和通常的处理,存储器1111可以存储处理器1100在执行操作时所使用的数据。
其中,所述完整性验证值为第一完整性保护标签;处理器1100还用于读取所述程序,执行如下步骤:接收所述终端发送的SUCI,在所述SUCI中携带所述第一完整性保护标签。
其中,所述共享密钥为所述第一网元和所述终端共知的OPC密钥或根密钥K;处理器1100还用于读取所述程序,执行如下步骤:
解密所述SUCI,得到SUPI;
根据所述SUPI得到所述OPC密钥或根密钥K;
利用完整性运算函数对所述OPC密钥或根密钥K、第三信息和第四信息进行运算,得到第一运算值;其中,所述第三信息为完整性密钥,所述第四信息为利用加密密钥对所述SUPI进行加密的加密结果;
在所述第一运算值和所述第一完整性保护标签一致的情况下,验证结果为验证通过;否则,验证结果为验证不通过。
其中,所述共享密钥为所述第一网元和所述终端之间的会话根密钥K
AUSF;所述完整性验证值为第一完整性保护标签;处理器1100还用于读取所述程序,执行如下步骤:
解密所述SUCI,得到SUPI;
在数据库中查找所述SUPI;
在未查找到所述SUPI的情况下,验证结果为验证不通过。
处理器1100还用于读取所述程序,执行如下步骤:
在查找到所述SUPI的情况下,获取所述SUPI对应的会话根密钥K
AUSF;
利用完整性运算函数对第五信息、第六信息以及所述会话根密钥K
AUSF进行运算,得到第二运算值;其中,所述第五信息为完整性密钥,所述第六信息为利用加密密钥对所述SUPI进行加密的加密结果;
在所述第二运算值和所述第一完整性保护标签一致的情况下,验证结果为验证通过;否则,验证结果为验证不通过。
其中,所述完整性验证值为第二完整性保护标签;处理器1100还用于读取所述程序,执行如下步骤:接收所述终端发送的SUCI和所述第二完整性保护标签。
其中,所述共享密钥为所述第一网元和所述终端共知的OPC密钥或根密 钥K;处理器1100还用于读取所述程序,执行如下步骤:
解密所述SUCI,得到SUPI和所述第二完整性保护标签;
根据所述SUPI得到所述OPC密钥或根密钥K;
利用完整性运算函数对所述OPC密钥或根密钥K以及所述SUCI中携带的完整性保护标签进行运算,得到第二运算值;
在对所述SUCI中携带的完整性保护标签和所述第二运算值的验证通过的情况下,验证结果为验证通过;否则,验证结果为验证不通过。
其中,所述共享密钥为所述第一网元和所述终端之间的会话根密钥K
AUSF;处理器1100还用于读取所述程序,执行如下步骤:
解密所述SUCI,得到SUPI;
在数据库中查找所述SUPI;
在未查找到所述SUPI的情况下,验证结果为验证不通过。
处理器1100还用于读取所述程序,执行如下步骤:
在查找到所述SUPI的情况下,获取所述SUPI对应的会话根密钥K
AUSF;
利用完整性运算函数对所述SUCI中携带的完整性保护标签以及所述会话根密钥K
AUSF进行运算,得到第四运算值;
在对所述SUCI中携带的完整性保护标签和所述第四运算值的验证通过的情况下,验证结果为验证通过;否则,验证结果为验证不通过。
处理器1100还用于读取所述程序,执行如下步骤:
获取所述第一网元自身存储的所述会话根密钥K
AUSF;或者
从第二网元获取所述会话根密钥K
AUSF。
其中,所述完整性验证值为随机数和第三完整性保护标签;处理器1100还用于读取所述程序,执行如下步骤:
接收所述终端发送的SUCI。
其中,所述共享密钥为所述第一网元和所述终端共知的OPC密钥或根密钥K;处理器1100还用于读取所述程序,执行如下步骤:
获得所述随机数;
在数据库中查找所述随机数;
在查找到所述随机数的情况下,验证结果为验证不通过。
处理器1100还用于读取所述程序,执行如下步骤:
在未查找到所述随机数的情况下,解密所述SUCI,得到SUPI;
获取所述SUPI对应的OPC密钥或根密钥K;
利用完整性运算函数对所述OPC密钥或根密钥K以及所述随机数进行运算,得到第五运算值;或者利用预定义的函数对所述OPC密钥和/或根密钥K以及所述随机数进行运算,得到第五运算值;
在所述第三完整性保护标签和所述第五运算值一致的情况下,验证结果为验证通过;否则,验证结果为验证不通过。
处理器1100还用于读取所述程序,执行如下步骤:
在未查找到所述随机数的情况下,存储所述随机数。
本公开实施例还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述验证方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。其中,所述的计算机可读存储介质,如只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。根据这样的理解,本公开的技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本公开各个实施例所述的方法。
上面结合附图对本公开的实施例进行了描述,但是本公开并不局限于上 述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本公开的启示下,在不脱离本公开宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本公开的保护之内。
Claims (29)
- 一种验证方法,应用于终端,包括:利用共享密钥对目标信息进行完整性运算,得到完整性验证值;向第一网元发送所述完整性验证值;接收所述第一网元对所述完整性验证值的验证结果;其中,所述共享密钥是所述第一网元和所述终端之间使用的密钥。
- 根据权利要求1所述的方法,其中,所述共享密钥为所述第一网元和所述终端共知的OPC密钥或根密钥K;所述完整性验证值为第一完整性保护标签;所述利用共享密钥对目标信息进行完整性运算,得到完整性验证值,包括:由全球用户识别模块USIM利用完整性运算函数对所述OPC密钥或根密钥K、第一信息和第二信息进行运算,得到所述第一完整性保护标签;所述第一信息为完整性密钥,所述第二信息为利用加密密钥对用户永久标识SUPI进行加密的结果。
- 根据权利要求1所述的方法,其中,所述共享密钥为所述第一网元和所述终端之间的会话根密钥K AUSF;所述完整性验证值为第一完整性保护标签;所述利用共享密钥对目标信息进行完整性运算,得到完整性验证值,包括:由移动端ME利用完整性运算函数对第一信息、第二信息、所述会话根密钥K AUSF钥进行运算,得到所述第一完整性保护标签;所述第一信息为完整性密钥,所述第二信息为利用加密密钥对用户永久标识SUPI进行加密的结果。
- 根据权利要求2或3所述的方法,其中,所述向第一网元发送所述完整性验证值,包括:向所述第一网元发送用户隐藏标识SUCI,在所述SUCI中携带所述第一完整性保护标签。
- 根据权利要求1所述的方法,其中,所述共享密钥为所述第一网元和 所述终端共知的OPC密钥或根密钥K;所述完整性验证值为第二完整性保护标签;所述利用共享密钥对目标信息进行完整性运算,得到完整性验证值,包括:由USIM利用完整性运算函数对SUCI中所述OPC密钥或根密钥K以及已有的完整性保护标签进行运算,得到所述第二完整性保护标签。
- 根据权利要求1所述的方法,其中,所述共享密钥为所述第一网元和所述终端之间的会话根密钥K AUSF;所述完整性验证值为第二完整性保护标签;所述利用共享密钥对目标信息进行完整性运算,得到完整性验证值,包括:由ME利用完整性运算函数对SUCI中已有的完整性保护标签、所述之间的会话根密钥K AUSF进行运算,得到所述第二完整性保护标签。
- 根据权利要求5或6所述的方法,其中,所述向第一网元发送所述完整性验证值,包括:向所述第一网元发送SUCI以及所述第二完整性保护标签。
- 根据权利要求1所述的方法,其中,所述共享密钥为所述第一网元和所述终端共知的OPC密钥或根密钥K;所述完整性验证值为随机数和第三完整性保护标签;所述利用共享密钥对目标信息进行完整性运算,得到完整性验证值,包括:由USIM生成随机数;由所述USIM利用完整性运算函数对所述OPC密钥或根密钥K以及所述随机数进行运算,得到所述第三完整性保护标签;或者,利用预定义的函数对所述OPC密钥和/或根密钥K以及所述随机数进行运算,得到所述第三完整性保护标签。
- 根据权利要求8所述的方法,其中,所述向第一网元发送所述完整性验证值,包括:由ME向所述第一网元发送SUCI、所述随机数和所述第三完整性保护标签;其中,所述SUCI、所述随机数和所述第三完整性保护标签是所述ME由所述USIM获取的;或者,所述随机数和所述第三完整性保护标签是所述ME由所述USIM获取的,所述SUCI是所述ME生成的。
- 一种验证方法,应用于第一网元,包括:接收终端发送的完整性验证值;对所述完整性验证值进行验证;向所述终端发送对所述完整性验证值的验证结果;其中,所述完整性验证值是利用共享密钥对目标信息进行完整性运算得到的,所述共享密钥是所述第一网元和所述终端之间使用的密钥。
- 根据权利要求10所述的方法,其中,所述完整性验证值为第一完整性保护标签;所述接收终端发送的完整性验证值,包括:接收所述终端发送的SUCI,在所述SUCI中携带所述第一完整性保护标签。
- 根据权利要求11所述的方法,其中,所述共享密钥为所述第一网元和所述终端共知的OPC密钥或根密钥K;所述对所述完整性验证值进行验证,包括:解密所述SUCI,得到SUPI;根据所述SUPI得到所述OPC密钥或根密钥K;利用完整性运算函数对所述OPC密钥或根密钥K、第三信息和第四信息进行运算,得到第一运算值;其中,所述第三信息为完整性密钥,所述第四信息为利用加密密钥对所述SUPI进行加密的加密结果;在所述第一运算值和所述第一完整性保护标签一致的情况下,验证结果为验证通过;否则,验证结果为验证不通过。
- 根据权利要求11所述的方法,其中,所述共享密钥为所述第一网元和所述终端之间的会话根密钥K AUSF;所述完整性验证值为第一完整性保护标签;所述对所述完整性验证值进行验证,包括:解密所述SUCI,得到SUPI;在数据库中查找所述SUPI;在未查找到所述SUPI的情况下,验证结果为验证不通过。
- 根据权利要求13所述的方法,还包括:在查找到所述SUPI的情况下,获取所述SUPI对应的会话根密钥K AUSF;利用完整性运算函数对第五信息、第六信息以及所述会话根密钥K AUSF进行运算,得到第二运算值;其中,所述第五信息为完整性密钥,所述第六信息为利用加密密钥对所述SUPI进行加密的加密结果;在所述第二运算值和所述第一完整性保护标签一致的情况下,验证结果为验证通过;否则,验证结果为验证不通过。
- 根据权利要求10所述的方法,其中,所述完整性验证值为第二完整性保护标签;所述方法还包括:接收所述终端发送的SUCI。
- 根据权利要求15所述的方法,其中,所述共享密钥为所述第一网元和所述终端共知的OPC密钥或根密钥K;所述对所述完整性验证值进行验证,包括:解密所述SUCI,得到SUPI和所述第二完整性保护标签;根据所述SUPI得到所述OPC密钥或根密钥K;利用完整性运算函数对所述OPC密钥或根密钥K以及所述SUCI中携带的完整性保护标签进行运算,得到第二运算值;在对所述SUCI中携带的完整性保护标签和所述第二运算值的验证通过的情况下,验证结果为验证通过;否则,验证结果为验证不通过。
- 根据权利要求15所述的方法,其中,所述共享密钥为所述第一网元和所述终端之间的会话根密钥K AUSF;所述对所述完整性验证值进行验证,包括:解密所述SUCI,得到SUPI;在数据库中查找所述SUPI;在未查找到所述SUPI的情况下,验证结果为验证不通过。
- 根据权利要求17所述的方法,还包括:在查找到所述SUPI的情况下,获取所述SUPI对应的会话根密钥K AUSF;利用完整性运算函数对所述SUCI中携带的完整性保护标签以及所述会话根密钥K AUSF进行运算,得到第四运算值;在对所述SUCI中携带的完整性保护标签和所述第四运算值的验证通过的情况下,验证结果为验证通过;否则,验证结果为验证不通过。
- 根据权利要求14或18所述的方法,其中,所述获取所述SUPI对应的会话根密钥K AUSF,包括:获取所述第一网元自身存储的所述会话根密钥K AUSF;或者从第二网元获取所述会话根密钥K AUSF。
- 根据权利要求10所述的方法,其中,所述完整性验证值为随机数和第三完整性保护标签;所述方法还包括:接收所述终端发送的SUCI。
- 根据权利要求20所述的方法,其中,所述共享密钥为所述第一网元和所述终端共知的OPC密钥或根密钥K;所述对所述完整性验证值进行验证,包括:获得所述随机数;在数据库中查找所述随机数;在查找到所述随机数的情况下,验证结果为验证不通过。
- 根据权利要求21所述的方法,还包括:在未查找到所述随机数的情况下,解密所述SUCI,得到SUPI;获取所述SUPI对应的OPC密钥或根密钥K;利用完整性运算函数对所述OPC密钥或根密钥K以及所述随机数进行运算,得到第五运算值;或者利用预定义的函数对所述OPC密钥和/或根密钥K以及所述随机数进行运算,得到第五运算值;在所述第三完整性保护标签和所述第五运算值一致的情况下,验证结果为验证通过;否则,验证结果为验证不通过。
- 根据权利要求22所述的方法,还包括:在未查找到所述随机数的情况下,存储所述随机数。
- 一种验证装置,应用于终端,包括:获取模块,用于利用共享密钥对目标信息进行完整性运算,得到完整性验证值;发送模块,用于向第一网元发送所述完整性验证值;接收模块,用于接收所述第一网元对所述完整性验证值的验证结果;其中,所述共享密钥是所述第一网元和所述终端之间使用的密钥。
- 一种验证装置,应用于第一网元,包括:接收模块,用于接收终端发送的完整性验证值;验证模块,用于对所述完整性验证值进行验证;发送模块,用于向所述终端发送对所述完整性验证值的验证结果;其中,所述完整性验证值是利用共享密钥对目标信息进行完整性运算得到的,所述共享密钥是所述第一网元和所述终端之间使用的密钥。
- 一种验证装置,应用于终端,包括:处理器和收发器;所述处理器,用于利用共享密钥对目标信息进行完整性运算,得到完整性验证值;所述收发器,用于向第一网元发送所述完整性验证值;接收所述第一网元对所述完整性验证值的验证结果;其中,所述共享密钥是所述第一网元和所述终端之间使用的密钥。
- 一种验证装置,应用于第一网元,包括:处理器和收发器;所述收发器,用于接收终端发送的完整性验证值;所述处理器,用于对所述完整性验证值进行验证;所述收发器,还用于向所述终端发送对所述完整性验证值的验证结果;其中,所述完整性验证值是利用共享密钥对目标信息进行完整性运算得到的,所述共享密钥是所述第一网元和所述终端之间使用的密钥。
- 一种通信设备,包括:收发机、存储器、处理器及存储在所述存储器上并可在所述处理器上运行的程序;其中,所述处理器,用于读取存储器中的程序实现如权利要求1至9中任一项所述的方法中的步骤;或者实现如权利要求10至23中任一项所述的方法中的步骤。
- 一种计算机可读存储介质,用于存储计算机程序,其中,所述计算机程序被处理器执行时实现如权利要求1至9中任一项所述的方法中的步骤;或者实现如权利要求10至23中任一项所述的方法中的步骤。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911104767.8A CN112839329B (zh) | 2019-11-06 | 2019-11-06 | 一种验证方法、装置、设备及计算机可读存储介质 |
CN201911104767.8 | 2019-11-06 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2021088593A1 true WO2021088593A1 (zh) | 2021-05-14 |
Family
ID=75848774
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/CN2020/120327 WO2021088593A1 (zh) | 2019-11-06 | 2020-10-12 | 验证方法、装置、设备及计算机可读存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN112839329B (zh) |
WO (1) | WO2021088593A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115379445A (zh) * | 2022-08-23 | 2022-11-22 | 中国联合网络通信集团有限公司 | 一种密钥派生方法及装置、网络设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101562558A (zh) * | 2008-04-15 | 2009-10-21 | 华为技术有限公司 | 一种终端等级划分的方法、***和设备 |
CN102026165A (zh) * | 2009-09-14 | 2011-04-20 | 中兴通讯股份有限公司 | 一种用于识别终端的方法及*** |
CN104202168A (zh) * | 2014-09-19 | 2014-12-10 | 浪潮电子信息产业股份有限公司 | 一种基于可信第三方的云数据完整性验证方法 |
CN107666491A (zh) * | 2017-11-15 | 2018-02-06 | 北京交通大学 | 基于对称加密的空地一体化网络的数据传输方法 |
WO2019084575A1 (en) * | 2017-10-25 | 2019-05-02 | Alibaba Group Holding Limited | METHOD FOR STARTING BIOS AND METHOD FOR PROCESSING DATA |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019105695A1 (en) * | 2017-11-30 | 2019-06-06 | Telefonaktiebolaget Lm Ericsson (Publ) | Secure deactivation of subscriber identifier protection in 5g |
CN109699031B (zh) * | 2018-01-11 | 2020-03-20 | 华为技术有限公司 | 采用共享密钥、公钥和私钥的验证方法及装置 |
CN110035433B (zh) * | 2018-01-11 | 2024-03-19 | 华为技术有限公司 | 采用共享密钥、公钥和私钥的验证方法及装置 |
CN113891353A (zh) * | 2018-03-01 | 2022-01-04 | 华为技术有限公司 | 通信方法及装置 |
CN108848495B (zh) * | 2018-05-18 | 2021-03-23 | 兴唐通信科技有限公司 | 一种使用预置密钥的用户身份更新方法 |
CN108683510B (zh) * | 2018-05-18 | 2021-03-23 | 兴唐通信科技有限公司 | 一种加密传输的用户身份更新方法 |
-
2019
- 2019-11-06 CN CN201911104767.8A patent/CN112839329B/zh active Active
-
2020
- 2020-10-12 WO PCT/CN2020/120327 patent/WO2021088593A1/zh active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101562558A (zh) * | 2008-04-15 | 2009-10-21 | 华为技术有限公司 | 一种终端等级划分的方法、***和设备 |
CN102026165A (zh) * | 2009-09-14 | 2011-04-20 | 中兴通讯股份有限公司 | 一种用于识别终端的方法及*** |
CN104202168A (zh) * | 2014-09-19 | 2014-12-10 | 浪潮电子信息产业股份有限公司 | 一种基于可信第三方的云数据完整性验证方法 |
WO2019084575A1 (en) * | 2017-10-25 | 2019-05-02 | Alibaba Group Holding Limited | METHOD FOR STARTING BIOS AND METHOD FOR PROCESSING DATA |
CN107666491A (zh) * | 2017-11-15 | 2018-02-06 | 北京交通大学 | 基于对称加密的空地一体化网络的数据传输方法 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115379445A (zh) * | 2022-08-23 | 2022-11-22 | 中国联合网络通信集团有限公司 | 一种密钥派生方法及装置、网络设备 |
CN115379445B (zh) * | 2022-08-23 | 2024-05-14 | 中国联合网络通信集团有限公司 | 一种密钥派生方法及装置、网络设备 |
Also Published As
Publication number | Publication date |
---|---|
CN112839329A (zh) | 2021-05-25 |
CN112839329B (zh) | 2022-07-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Aman et al. | Mutual authentication in IoT systems using physical unclonable functions | |
CN110971415B (zh) | 一种天地一体化空间信息网络匿名接入认证方法及*** | |
Das et al. | An efficient multi‐gateway‐based three‐factor user authentication and key agreement scheme in hierarchical wireless sensor networks | |
US10638321B2 (en) | Wireless network connection method and apparatus, and storage medium | |
KR101485230B1 (ko) | 안전한 멀티 uim 인증 및 키 교환 | |
Das | A secure and effective user authentication and privacy preserving protocol with smart cards for wireless communications | |
Doss et al. | Secure RFID tag ownership transfer based on quadratic residues | |
Saxena et al. | Authentication protocol for an IoT-enabled LTE network | |
Qian et al. | A Lightweight RFID Security Protocol Based on Elliptic Curve Crytography. | |
Mehmood et al. | Authentication and secure key management in E-health services: a robust and efficient protocol using biometrics | |
US20200195446A1 (en) | System and method for ensuring forward & backward secrecy using physically unclonable functions | |
Xu et al. | An anonymous handover authentication scheme based on LTE‐A for vehicular networks | |
Choudhury | HashXor: A lightweight scheme for identity privacy of IoT devices in 5G mobile network | |
Odelu et al. | A secure anonymity preserving authentication scheme for roaming service in global mobility networks | |
Noh et al. | Secure authentication and four-way handshake scheme for protected individual communication in public wi-fi networks | |
De Smet et al. | Lightweight PUF based authentication scheme for fog architecture | |
Liu et al. | A new authentication and key agreement protocol for 5G wireless networks | |
TWI568234B (zh) | 全球移動通訊網路的匿名認證方法 | |
Niu et al. | A novel user authentication scheme with anonymity for wireless communications | |
CN114143117A (zh) | 数据处理方法及设备 | |
Yu et al. | Puf-based robust and anonymous authentication and key establishment scheme for v2g networks | |
Coruh et al. | Hybrid secure authentication and key exchange scheme for M2M home networks | |
Ouaissa et al. | New security level of authentication and key agreement protocol for the IoT on LTE mobile networks | |
Lee et al. | Secure and anonymous authentication scheme for mobile edge computing environments | |
Dharminder et al. | Construction of a chaotic map-based authentication protocol for tmis |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 20885552 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 20885552 Country of ref document: EP Kind code of ref document: A1 |