WO2020181826A1 - 物联网动态密码的生成及验证方法、系统和计算机设备 - Google Patents

物联网动态密码的生成及验证方法、系统和计算机设备 Download PDF

Info

Publication number
WO2020181826A1
WO2020181826A1 PCT/CN2019/119484 CN2019119484W WO2020181826A1 WO 2020181826 A1 WO2020181826 A1 WO 2020181826A1 CN 2019119484 W CN2019119484 W CN 2019119484W WO 2020181826 A1 WO2020181826 A1 WO 2020181826A1
Authority
WO
WIPO (PCT)
Prior art keywords
natural
timestamp
array
username
internet
Prior art date
Application number
PCT/CN2019/119484
Other languages
English (en)
French (fr)
Inventor
陈记伟
Original Assignee
平安科技(深圳)有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 平安科技(深圳)有限公司 filed Critical 平安科技(深圳)有限公司
Publication of WO2020181826A1 publication Critical patent/WO2020181826A1/zh

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0863Generation of secret information including derivation or calculation of cryptographic keys or passwords involving passwords or one-time passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3297Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving time stamps, e.g. generation of time stamps

Definitions

  • This application relates to the technical field of password generation and verification, and in particular to a method, system and computer equipment for generating and verifying a dynamic password for the Internet of Things.
  • the client and server usually use the MQTT protocol for data communication.
  • the client connects to the server through this protocol and supports two methods: A, address (Host) + user name (Username) + password (Password) + Client Identifier; B. Address (Host) + Client Identifier.
  • method B does not use passwords, there is a security risk of access without authentication.
  • method A is often used for security.
  • method A has the risk of password plaintext being robbed by packet capture, so "dynamic password” is required to avoid This risk.
  • the main purpose of this application is to provide a method, system, and computer device for generating and authenticating a dynamic password for the Internet of Things, which aims to solve the problem of the current Internet of Things communication application that the password plaintext is easy to be robbed by packet capture.
  • this application provides a method for generating a dynamic password for the Internet of Things, which includes the following steps: the client obtains a password generation instruction; generates random characters, and obtains Timestamp, Host and Username, where the Timestamp is the current time Stamp, the Host is the client address, the Username is the user name; the random characters, the Timestamp, the Host and the Username are connected according to a first preset rule to obtain a first character string; The first string is sorted according to a second preset rule to obtain an initialString; the initialString is encrypted by a hash encryption algorithm to obtain a tempString; the first natural array is intercepted in the Timestamp according to a third preset rule, so The first natural array is an array composed of a plurality of first natural numbers, and each of the first natural numbers is less than 10; in the first natural array, the sequence of each first natural number is the same as that in the Timestamp The sequence of the corresponding characters is the same; each
  • the second natural array is composed of multiple first natural numbers.
  • This application also provides a method for verifying a dynamic password for the Internet of Things, which is used to decrypt a password generated according to any one of the above-mentioned methods for generating a dynamic password for the Internet of Things, including the following steps: the server receives the random characters sent by the client , The Timestamp, the Host, the Username and the Password1; through the random characters, the Timestamp, the Host and the Username, according to the preset method of generating the dynamic password for the Internet of Things The method generates Password2; judges whether the Password2 is the same as the Password1; if it is, it is judged that the matching is successful and the access is permitted; if not, it is judged that the matching is unsuccessful and the access is not permitted.
  • This application also provides a dynamic password generation and verification system for the Internet of Things, including a client and a server; the client is used to obtain password generation instructions; generate random characters, and obtain Timestamp, Host, and Username.
  • the Timestamp is the current timestamp, the Host is the client address, and the Username is the user name; the random characters, the Timestamp, the Host, and the Username are connected according to a first preset rule to obtain the first A string; sort the first string according to a second preset rule to obtain an initialString; encrypt the initialString with a hash encryption algorithm to obtain tempString; intercept the first string in the Timestamp according to a third preset rule A natural array, the first natural array is an array composed of a plurality of first natural numbers, each of the first natural numbers is less than 10; in the first natural array, the order of the first natural numbers The sequence of the corresponding characters in the Timestamp is the same; each first natural number in the first natural array is subtracted from a
  • the server is configured to receive the random characters, the Timestamp, the Host, the Username and the Password1 sent by the client; through the random characters, the Timestamp, the Host and the password For the Username, generate Password2 according to the preset method that is the same as the generation method of the dynamic password of the Internet of Things; determine whether the Password2 is the same as the Password1; if it is, it is determined that the matching is successful and the access is permitted; if not, then It is determined that the matching is unsuccessful, and access is not allowed.
  • the present application also provides a computer device, including a memory and a processor, the memory is stored with computer readable instructions, and when the processor executes the computer readable instructions, the method for generating the dynamic password of the Internet of Things and / Or the steps of any one of the methods for verifying the dynamic password of the Internet of Things.
  • This application also provides a computer-readable storage medium on which computer-readable instructions are stored.
  • the computer-readable instructions are executed by a processor, the method for generating the above-mentioned dynamic password for the Internet of Things and/or the Internet of Things Steps of the method described in any one of the dynamic password verification methods.
  • the Internet of Things dynamic password generation and verification method, system, and computer equipment provided in this application generate a random value on the client side and obtain the current timestamp timestamp, and use the random value, timestamp, Host, and Username to connect into the first string, Sort the first string to get the initialString, encrypt the initialString with the hash algorithm to get the tempString, intercept the first natural array in the timestamp, subtract the set natural number from each natural number in the first natural array and calculate the absolute value to get the second Natural array, according to the second natural array to search for the temporary character of the corresponding sequence in tempString to obtain Password1; in this way, a dynamic password is generated to avoid the risk that the fixed password plaintext is easily robbed by packet capture.
  • Figure 1 is a schematic diagram of the steps of a method for generating a dynamic password for the Internet of Things in an embodiment of the present application
  • FIG. 2 is a schematic diagram of the steps of a method for verifying a dynamic password for the Internet of Things in an embodiment of the present application
  • Fig. 3 is a structural block diagram of a system for generating and verifying an Internet of Things dynamic password in an embodiment of the present application
  • FIG. 4 is a schematic block diagram of the structure of a computer device according to an embodiment of the application.
  • an embodiment of the present application provides a method for generating a dynamic password for the Internet of Things, which includes the following steps:
  • Step S1 the client obtains a password generation instruction
  • Step S2 Generate random characters, and obtain Timestamp, Host and Username, where the above Timestamp is the current timestamp, the above Host is the client address, and the above Username is the user name;
  • Step S3 connecting the random character, the Timestamp, the Host, and the Username according to a first preset rule to obtain a first character string;
  • Step S4 sort the above-mentioned first character string according to a second preset rule to obtain an initialString
  • Step S5 encrypt the above-mentioned initialString through a hash encryption algorithm to obtain tempString;
  • Step S6 intercept the first natural array from the Timestamp according to the third preset rule.
  • the first natural array is an array composed of multiple first natural numbers, and each first natural number is less than 10; in the first natural array Where the sequence of the first natural numbers is the same as the sequence of the corresponding characters in the Timestamp;
  • Step S7 subtracting a set natural number from each first natural number in the first natural array, and calculating the absolute value to obtain a second natural array, where the second natural array is an array composed of multiple second natural numbers;
  • the sequence of the second natural number is the same as the sequence of the corresponding first natural number in the first natural array; wherein the natural number is set to be less than or equal to 10;
  • Step S8 searching for all the temporary characters in the tempString corresponding to the sequence of each of the second natural numbers in the second natural array, where the sequence refers to the sort position of each of the temporary characters in the tempString;
  • Step S9 according to the correspondence between the temporary characters and the second natural numbers, sort the temporary characters according to the order relationship with the second natural numbers in the second natural array to obtain Password1.
  • the client password generation process is as follows:
  • the client obtains a password generation instruction.
  • the password generation instruction may be generated when the client automatically sends a connection/access request to the server as required, or may be generated under manual operation.
  • the client After the client obtains the password generation instruction, it generates random characters and obtains Timestamp, Host, and Username, where Timestamp is the current timestamp, Host is the client address, and Username is the username.
  • the random character is the random value generated by the client after receiving the password generation instruction. While obtaining the random character, the client obtains the current timestamp, such as the current timestamp 15414482971; at the same time, obtains the client address Host and user Name Username, client address Host can be obtained directly through the client.
  • the user name Username is the user name preset in the client, for example: a smart client that can automatically connect to the server. When connecting to the server through the Internet of Things, you need Perform user name verification. In this case, the user name is the user name preset in the smart client. If the password generation instruction is generated by the client user by operating the client, the username Username is generally the username entered by the user.
  • step S3 random characters, Timestamp, Host, and Username are connected according to the first preset rule to obtain the first character string.
  • the first preset rule is to connect random characters, Timestamp, Host, and Username according to certain rules.
  • the first preset rule is to connect random characters, Timestamp, Host, and Username in order from front to back, where random characters are aclientiddemostring, Timestamp is 15414829971, Host is mqttdemoserverin, and Username is test, then random The characters, Timestamp, Host, and Username are connected in order to obtain the string aclientiddemostring1541482971mqttdemoserverintest, which is the first string.
  • the first string is sorted according to the second preset rule to obtain the initialString.
  • the second preset rule can be ascending order, and set the number before the letter after the letter or the letter before the number after the number. For example, arrange the first string aclientiddemostring1541482971mqttdemoserverintest in ascending order, and set the number before the letter after the letter. After sorting, get 1112445789acdddeeeeeegiiiilmmmnnnooqrrrsssttttttv; the second preset rule can also be descending order, and set the number before the letter or the letter before the number after the number.
  • the string obtained after sorting by the second preset rule is taken as the initialString (original string).
  • the initialString is encrypted by the hash encryption algorithm to obtain tempString (temporary string).
  • the hash encryption algorithm is the hash function encryption algorithm. Commonly used hash encryption algorithms include MD5, SHA-1, SHA-2, SHA-256, SHA-X (series).
  • the initialString is encrypted by the hash encryption algorithm, and the encrypted string is used as the temporary string tempString.
  • the above initialString (1112445789acdddeeeeeegiiiilmmmnnnooqrrrsssttttttv) is encrypted by the MD5 hash encryption algorithm, and the temporary string tempString is 3aa823ea0f069376a2e3622f70125297.
  • TempString 3aa823ea0f069376a2e3622f70125297.
  • the first natural array is intercepted in Timestamp according to the third preset rule, and the first natural array is an array composed of a plurality of first natural numbers.
  • Each first natural number is less than 10, that is, each natural number intercepted in Timestamp is regarded as a first natural number, and the intercepted multi-digit natural number cannot be used as the first natural number.
  • the first natural array can be ⁇ 1 ,5,4,1,4,8,2,9,7,1 ⁇ , but not ⁇ 15,41,48,29,71 ⁇ or ⁇ 15,414,829,7,1 ⁇ etc.
  • the sequence of each first natural number is the same as the sequence of the corresponding characters in Timestamp.
  • the third preset rule may start from the first character in Timestamp and intercept characters with a preset number of bits backward. Every character in Timestamp is a natural number. For example, Timestamp is 1541482971, and if the third preset rule is to intercept ten characters from the first character in Timestamp, then all the characters contained in Timestamp will be intercepted 1541482971.
  • the third preset rule may also be to intercept characters with a preset number of digits forward starting from the last character in Timestamp; or intercept characters at other specific positions in Timestamp except for the above two cases.
  • the characters intercepted from Timestamp are all natural numbers, which are called the first natural numbers, and the array composed of these first natural numbers is called the first natural array.
  • the sequence of the first natural numbers is the same as the sequence of the characters corresponding to the first natural numbers in Timestamp. For example, in Timestamp, it is 1541482971, and the third preset rule is from the first in Timestamp.
  • the first natural array composed of ten corresponding first natural numbers obtained by interception is ⁇ 1,5,4,1,4,8,2,9,7,1 ⁇ .
  • Array1 ⁇ 1,5,4,1,4,8,2,9,7,1 ⁇ , where Array means "array”.
  • step S7 subtract the set natural number from each first natural number in the first natural array, and calculate the absolute value to obtain the second natural array, and the second natural array is composed of a plurality of second natural numbers Array.
  • the second natural array is composed of a plurality of second natural numbers Array.
  • set the natural number to 10 and the first natural array to ⁇ 1,5,4,1,4,8,2,9,7,1 ⁇ , then subtract each first natural number in the first natural array 10.
  • Get ⁇ -9,-5,-6,-9,-6,-2,-8,-1,-3,-9 ⁇ and after calculating the absolute value, the second natural array obtained is ⁇ 9 ,5,6,9,6,2,8,1,3,9 ⁇ .
  • the sequence relationship between the second natural numbers is the same as the sequence relationship of the corresponding first natural numbers in the first natural array.
  • the natural number is set to be less than or equal to 10, so as to ensure that after subtraction and absolute value, a first natural number less than 10 corresponds to a second natural number less than 10, that is, the second natural number in the second natural array and the first natural number
  • the number of first natural numbers in the array is the same, and both the first natural number and the second natural number are less than 10.
  • step S8 all the temporary characters corresponding to each second natural number in the second natural array are searched in tempString, where the above sequence refers to the sort position of each temporary character in the tempString.
  • the sorting of the above temporary characters in the above tempString generally refers to sorting from left to right, that is, the temporary character in the first order is the first character at the left end in tempString, and the temporary character in the second order is tempString The second character from the left to the right.
  • the temporary characters are sorted according to the order relationship with the second natural number in the second natural array to obtain Password1.
  • the step S3 of connecting the random character, the Timestamp, the Host, and the Username according to a first preset rule to obtain the first character string includes:
  • Step S301 After connecting the above Timestamp to the random character, ClientID is obtained;
  • Step S302 Connect the above ClientID, the Host and the Username in sequence from front to back to obtain a first character string.
  • the ClientID is obtained after connecting the Timestamp to the random character.
  • ClientID is the abbreviation of Client Identifier, meaning "client identifier”.
  • ClientID is aclientiddemostring1541482971
  • Host is mqtt.demo.server.in
  • Username is test
  • aclientiddemostring1541482971mqtt.demo.server.intest is the first string.
  • the method before the step S4 of obtaining the initialString by sorting the above-mentioned first string according to the second preset rule, the method further includes:
  • Step S401 removing the punctuation marks in the first character string.
  • the punctuation is removed from the first character string deal with.
  • the first string is aclientiddemostring1541482971mqtt.demo.server.intest, and the first string is removed from punctuation to obtain aclientiddemostring1541482971mqttdemoserverintest, which facilitates the sorting in step S4 according to the second preset rule.
  • the step S4 of sorting the above-mentioned first string according to a second preset rule to obtain an initialString includes:
  • Step S402 according to the requirements of the ASCII standard, arrange the characters of the first character string in ascending order to obtain the initialString.
  • ASCII American Standard Code for Information Interchange
  • ASCII American Standard Code for Information Interchange
  • the step S6 of intercepting the first natural array in the Timestamp according to the third preset rule includes:
  • step S601 starting from the first character of the aforementioned Timestamp, characters with a preset number of bits are intercepted backward, and the character group obtained by the interception is used as the aforementioned first natural array.
  • the characters of the preset number of digits are intercepted backward, and the intercepted array is used as the first natural array.
  • the preset number of digits is not limited, for example, it can be ten digits, or all characters in Timestamp can be intercepted according to the total number of digits of characters contained in Timestamp.
  • Timestamp 1541482971
  • the tens digit is intercepted backward (to the right)
  • This solution generates a random value on the client and obtains the current timestamp timestamp, uses the random value, timestamp, Host, and Username to connect into the first string, sorts the first string to get the initialString, and encrypts the initialString through the hash algorithm to get the tempString , Intercept the first natural array in timestamp, subtract the set natural number from each natural number in the first natural array and find the absolute value to obtain the second natural array, and find the temporary character corresponding to the sequence in tempString according to the second natural array Get Password1; generate a dynamic password in this way to avoid the risk that the fixed password plaintext is easily robbed by packet capture.
  • an embodiment of the present application also provides a method for verifying an Internet of Things dynamic password, which is used to verify a password generated according to the method for generating an Internet of Things dynamic password in any of the above embodiments, including the following steps:
  • Step S01 The server receives the random characters, the Timestamp, the Host, the Username, and the Password1 sent by the client;
  • Step S02 using the random characters, the Timestamp, the Host, and the Username to generate Password2 according to a preset method that is the same as the method for generating the dynamic password for the Internet of Things;
  • Step S03 judging whether the above Password2 is the same as the above Password1;
  • Step S04 if yes, it is determined that the matching is successful and the access is permitted;
  • Step S05 if not, it is determined that the matching is unsuccessful, and access is not permitted.
  • the server After the server receives the client's connection request, it must first identify and verify the password of the connection request, and only after the identification verification is passed can the access be allowed.
  • the server receives the random characters, the Timestamp, the Host, the Username, and the Password1 sent by the client.
  • the server may be a background server of the system.
  • Password2 Password1
  • the client is a password generated according to the preset method of generating dynamic passwords for the Internet of Things; if they are not the same, that is, Password2 ⁇ Password1, indicating that the client is not based on the preset dynamic passwords of the Internet of Things
  • the password generated by the generation method is likely to be a fabricated password.
  • Password2 it means that the client is a password generated according to the preset method of generating dynamic passwords for the Internet of Things. It is determined that the match is successful and the client is allowed to connect Into. If Password2 and Password1 are not the same, that is, Password2 ⁇ Password1, indicating that the client is not a password generated according to the preset method of generating dynamic passwords for the Internet of Things, it is determined that the matching is unsuccessful and the access is not allowed, thereby ensuring the security of access Sex.
  • the method before the step S03 of determining whether the above Password2 and the above Password1 are the same, the method further includes:
  • Step S031 obtaining Servertime, where the Servertime is the current time obtained by the server;
  • Step S032 Calculate the time difference between the Servertime and the Timestamp
  • Step S033 Determine whether the time difference is greater than a set threshold
  • Step S034 if yes, access is not allowed
  • step S035 if not, a command to execute "judge whether the Password2 and the Password1 are the same" is generated.
  • the current time Servertime obtained by the server can basically be regarded as the time of the client connection verification request and the time of the password sent.
  • the difference V is the time difference.
  • step S034 if the difference V is greater than the preset threshold, for example 30s, it is considered that the time from the generation of the front-end password to the receipt of the connection request at the back-end exceeds the reasonable computer processing time, indicating that the password may be very long. It is generated earlier; it may also be leaked, and the front-end access is directly denied to ensure the security of access.
  • the difference V if the difference V is not greater than the set preset threshold, it means that the password generation time and the time interval of the connection verification request are within a reasonable time and can be accepted, then generate and execute "judge the password2 and "Is the Password1 the same" command to enter the further verification step of S03.
  • the method before the step S03 of determining whether the Password2 and the Password1 are the same, the method further includes:
  • Step S036 Obtain the time stamp records transmitted by the client's previous access requests
  • Step S037 In the time stamp record, search for whether there is a time stamp that is the same as the Timestamp;
  • step S039 if not, a command to execute "judge whether the Password2 and the Password1 are the same" is generated.
  • steps S036 and S037 first obtain/retrieve the time-stamp records transmitted by the client's previous access requests stored on the server, and check whether the time-stamp records transmitted by the client's previous access requests There is the same timestamp as the Timestamp sent in this access request.
  • step S038 if any of the timestamps in the timestamp records from the previous access requests is the same as the current Timestamp, it means that there is a problem with the timestamp for generating the password, which may be fabricated Or a password that has been used before, the front-end access is denied, thereby ensuring the security of access.
  • step S039 if there is no time stamp that is the same as the current Timestamp in the time stamp records of the previous access requests, it means that the Timestamp that generated the password is a new time stamp, and there is no problem. , Then generate and execute the command of "determine whether the Password2 is the same as the Password1", so as to enter the further verification step of S03.
  • step S04 of granting access the method further includes:
  • Step S041 record the aforementioned timestamp.
  • the Timestamp of the current connection request is recorded to provide a reference and basis for judging whether there is a connection request carrying repeated timestamps in the future.
  • an embodiment of the present application also provides a dynamic password generation and authentication system for the Internet of Things, including a client 10 and a server 20;
  • the foregoing client 10 is used to implement the method for generating a dynamic password for the Internet of Things described in any of the foregoing embodiments.
  • the server 20 After the server 20 receives the connection request from the client 10, it is used to implement the method for verifying the dynamic password of the Internet of Things as described in any of the above embodiments.
  • an embodiment of the present application also provides a computer device.
  • the computer device may be a server, and its internal structure may be as shown in FIG. 3.
  • the computer equipment includes a processor, a memory, a network interface and a database connected through a system bus. Among them, the computer designed processor is used to provide calculation and control capabilities.
  • the memory of the computer device includes a non-volatile storage medium and an internal memory.
  • the non-volatile storage medium stores an operating system, computer readable instructions, and a database.
  • the internal memory provides an environment for the operation of the operating system and computer-readable instructions in the non-volatile storage medium.
  • the computer equipment database is used to store data such as random characters, Timestamp, Host, and Username.
  • the network interface of the computer device is used to communicate with an external terminal through a network connection.
  • An embodiment of the present application also provides a computer-readable storage medium.
  • the computer-readable storage medium may be a non-volatile readable storage medium or a volatile readable storage medium on which computer-readable instructions are stored
  • the generation and/or authentication method of the dynamic password of the Internet of Things in any of the foregoing embodiments is implemented.
  • Non-volatile memory may include read only memory (ROM), programmable ROM (PROM), electrically programmable ROM (EPROM), electrically erasable programmable ROM (EEPROM), or flash memory.
  • Volatile memory may include random access memory (RAM) or external cache memory.
  • RAM is available in various forms, such as static RAM (SRAM), dynamic RAM (DRAM), synchronous DRAM (SDRAM), dual-rate SDRAM (SSRSDRAM), enhanced SDRAM (ESDRAM), synchronous Link (Synchlink) DRAM (SLDRAM), memory bus (Rambus) direct RAM (RDRAM), direct memory bus dynamic RAM (DRDRAM), and memory bus dynamic RAM (RDRAM), etc.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)
  • Computer And Data Communications (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Abstract

本申请涉及物联网密码技术领域,提供了一种物联网动态密码的生成及验证方法、系统和计算机设备,通过在客户端产生随机值并获取当前时间戳timestamp,利用随机值、timestamp、Host和Username连接成第一字符串并排序得到initialString,将initialString通过hash算法加密得到tempString,在timestamp中截取第一自然数组,将第一自然数组中每个自然数减去设定自然数并求绝对值,得第二自然数组,根据第二自然数组到tempString中查找对应序位的临时字符而得到Password1;通过这种方式生成动态密码,避免固定的密码明文容易被抓包劫取的风险。

Description

物联网动态密码的生成及验证方法、系统和计算机设备
本申请要求于2019年3月8日提交中国专利局、申请号为2019101758404,申请名称为“物联网动态密码的生成及验证方法、系统和计算机设备”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本申请涉及密码生成和验证技术领域,特别涉及一种物联网动态密码的生成及验证方法、系统和计算机设备。
背景技术
物联网通信应用中,客户端与服务端通常采用MQTT协议进行数据通信,客户端通过该协议接入服务端支持两种方式:A、地址(Host)+用户名(Username)+密码(Password)+客户端标识符(Client Identifier);B、地址(Host)+客户端标识符(Client Identifier)。
因B方式不使用密码,存在接入无验证的安全风险,通常为了安全,多采用方式A,但在实际应用中方式A存在密码明文被抓包劫取的风险,因此需要“动态密码”规避此风险。
技术问题
本申请的主要目的为提供一种物联网动态密码的生成及认证方法、系统和计算机设备,旨在解决目前物联网通信应用中存在密码明文容易被抓包劫取的风险的问题。
技术解决方案
为实现上述目的,本申请提供了一种物联网动态密码的生成方法,包括以下步骤:客户端获取密码生成指令;生成随机字符,并获取Timestamp、Host和Username,其中,所述Timestamp是当前时间戳,所述Host为客户端地址,所述Username是用户名;将所述随机字符、所述Timestamp、所述Host和所述Username按照第一预设规则连接起来,得到第一字符串;将所述第一字符串按照第二预设规则进行排序,得到initialString;将所述initialString通过hash加密算法进行加密,得到tempString;按照第三预设规则在所述Timestamp中截取第一自然数组,所述第一自然数组是由多个第一自然数构成的数组,每个所述第一自然数均小于10;在所述第一自然数组中,各所述第一自然数的前后顺序与所述Timestamp中对应的字符的前后顺序相同;将所述第一自然数组中的每个第一自然数减去设定自然数,并求绝对值,得到第二自然数组,所述第二自然数组是由多个第二自然数构成的数组;在所述第二自然数组中,所述第二自然数的前后顺序与所述第一自然数组中对应的第一自然数的前后顺序相同;其中,设定自然数小于或等于10;在所述tempString中查找所有与所述第二自然数组中每个所述第二自然数对应序位的临时字符,其中,所述序位是指每一个所述临时字符在所述tempString中的排序位置;根据所述临时字符与所述第二自然数的对应关系,将所述临时字符按照与所述第二自然数在所述第二自然数组中的顺序关系进行排序,得到Password1。
本申请还提供了一种物联网动态密码的验证方法,用于解密依据上述任一项物联网动态密码的生成方法所生成的密码,包括以下步骤:服务端接收客户端发送的所述随机字符、所述Timestamp、所述Host、所述Username和所述Password1;通过所述随机字符、所述Timestamp、所述Host和所述Username,按照预设的与所述物联网动态密码的生成方法相同的方法生成Password2;判断所述Password2与所述Password1是否相同;若是,则判定为匹配成功,准许接入;若否,则判定为匹配不成功,不准许接入。
本申请还提供一种物联网动态密码的生成及验证系统,包括客户端和服务端;所述客户端,用于获取密码生成指令;生成随机字符,并获取Timestamp、Host和Username,其中,所述Timestamp是当前时间戳,所述Host为客户端地址,所述Username是用户名;将所述随机字符、所述Timestamp、所述Host和所述Username按照第一预设规则连接起来,得到第一字符串;将所述第一字符串按照第二预设规则进行排序,得到initialString;将所述initialString通过hash加密算法进行加密,得到tempString;按照第三预设规则在所述Timestamp中截取第一自然数组,所述第一自然数组是由多个第一自然数构成的数组,每个所述第一自然数均小于10;在所述第一自然数组中,各所述第一自然数的前后顺序与所述Timestamp中对应的字符的前后顺序相同;将所述第一自然数组中的每个第一自然数减去设定自然数,并求绝对值,得到第二自然数组,所述第二自然数组是由多个第二自然数构成的数组;在所述第二自然数组中,所述第二自然数的前后顺序与所述第一自然数组中对应的第一自然数的前后顺序相同;其中,设定自然数小于或等于10;在所述tempString中查找所有与所述第二自然数组中每个所述第二自然数对应序位的临时字符,其中,所述序位是指每一个所述临时字符在所述tempString中的排序位置;根据所述临时字符与所述第二自然数的对应关系,将所述临时字符按照与所述第二自然数在所述第二自然数组中的顺序关系进行排序,得到Password1;
所述服务端,用于接收所述客户端发送的所述随机字符、所述Timestamp、所述Host、所述Username和所述Password1;通过所述随机字符、所述Timestamp、所述Host和所述Username,按照预设的与所述物联网动态密码的生成方法相同的方法生成Password2;判断所述Password2与所述Password1是否相同;若是,则判定为匹配成功,准许接入;若否,则判定为匹配不成功,不准许接入。
本申请还提供一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机可读指令,所述处理器执行所述计算机可读指令时实现上述所述物联网动态密码的生成方法和/或所述物联网动态密码的验证方法中任一项所述方法的步骤。
本申请还提供一种计算机可读存储介质,其上存储有计算机可读指令,所述计算机可读指令被处理器执行时实现上述所述物联网动态密码的生成方法和/或所述物联网动态密码的验证方法中任一项所述的方法的步骤。
有益效果
本申请中提供的物联网动态密码的生成及验证方法、系统和计算机设备,通过在客户端产生随机值并获取当前时间戳timestamp,利用随机值、timestamp、Host和Username连接成第一字符串,将第一字符串进行排序得到initialString,将initialString通过hash算法加密得到tempString,在timestamp中截取第一自然数组,将第一自然数组中每个自然数减去设定自然数并求绝对值,得第二自然数组,根据第二自然数组到tempString中查找对应序位的临时字符而得到Password1;通过这种方式生成动态密码,避免固定的密码明文容易被抓包劫取的风险。
附图说明
图1 是本申请一实施例中物联网动态密码的生成方法步骤示意图;
图2 是本申请一实施例中物联网动态密码的验证方法步骤示意图;
图3 是本申请一实施例中物联网动态密码的生成及验证系统结构框图;
图4 为本申请一实施例的计算机设备的结构示意框图。
本发明的最佳实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
参照图1,本申请一实施例中提供了一种物联网动态密码的生成方法,包括以下步骤:
步骤S1,客户端获取密码生成指令;
步骤S2,生成随机字符,并获取Timestamp、Host和Username,其中,上述Timestamp是当前时间戳,上述Host为客户端地址,上述Username是用户名;
步骤S3,将上述随机字符、上述Timestamp、上述Host和上述Username按照第一预设规则连接起来,得到第一字符串;
步骤S4,将上述第一字符串按照第二预设规则进行排序,得到initialString;
步骤S5,将上述initialString通过hash加密算法进行加密,得到tempString;
步骤S6,按照第三预设规则在上述Timestamp中截取第一自然数组,上述第一自然数组是由多个第一自然数构成的数组,每个第一自然数均小于10;在上述第一自然数组中,各上述第一自然数的前后顺序与上述Timestamp中对应的字符的前后顺序相同;
步骤S7,将上述第一自然数组中的每个第一自然数减去设定自然数,并求绝对值,得到第二自然数组,上述第二自然数组是由多个第二自然数构成的数组;在上述第二自然数组中,上述第二自然数的前后顺序与上述第一自然数组中对应的第一自然数的前后顺序相同;其中,设定自然数小于或等于10;
步骤S8,在上述tempString中查找所有与上述第二自然数组中每个上述第二自然数对应序位的临时字符,其中,上述序位是指每一个上述临时字符在上述tempString中的排序位置;
步骤S9,根据上述临时字符与上述第二自然数的对应关系,将上述临时字符按照与上述第二自然数在上述第二自然数组中的顺序关系进行排序,得到Password1。
物联网系统的客户端在向服务端发送连接请求时,要生成接入的密码供服务端验证,从而来保证接入的安全性,客户端密码的生成过程具体如下:
如上述步骤S1所述,客户端获取密码生成指令,该密码生成指令可以是在客户端根据需要自动向服务端发出连接/接入请求时所产生,也可以是在人工操作下产生。
如上述步骤S2所述,客户端获取密码生成指令后,生成随机字符,并获取Timestamp、Host和Username,其中,Timestamp是当前时间戳,Host是客户端地址,Username是用户名。其中,随机字符是客户端在接收到密码生成指令后所产生的随机数值,客户端在获取随机字符的同时,获取当前时间戳Timestamp,如当前时间戳1541482971;同时,获取客户端地址Host和用户名Username,客户端地址Host可以通过客户端直接获取。若密码生成指令是客户端根据连接需要自动产生的,则用户名Username是在客户端中预设的用户名,例如:能够自动连接服务端的智能客户端,在通过物联网连接服务端时,需要进行用户名的验证,这种情况下的用户名就是智能客户端中预设的用户名。若密码生成指令是客户端用户通过操作客户端产生的,则用户名Username一般是用户输入的用户名。
如上述步骤S3所述,将随机字符、Timestamp、Host和Username按照第一预设规则连接起来,得到第一字符串。其中,第一预设规则是将随机字符、Timestamp、Host和Username按照一定的规则进行排序后连接。例如,若第一预设规则是将随机字符、Timestamp、Host和Username按从前到后的顺序连接起来,其中,随机字符为aclientiddemostring,Timestamp为1541482971,Host为mqttdemoserverin,Username为test,则,将随机字符、Timestamp、Host和Username按顺序连接起来,得到字符串aclientiddemostring1541482971mqttdemoserverintest,该字符串就是第一字符串。
如上述步骤S4所述,将第一字符串按照第二预设规则进行排序,得到initialString。第二预设规则可以是升序排列,并设定数字在前字母在后或字母在前数字在后,例如,将第一字符串aclientiddemostring1541482971mqttdemoserverintest按升序进行排列,并设定数字在前字母在后,排列后得到1112445789acdddeeeeeegiiiilmmmnnnooqrrrsssttttttv;第二预设规则也可以是降序排列,并设定数字在前字母在后或字母在前数字在后。将经过第二预设规则排序后所得的字符串作为initialString(原始字符串)。
如上述步骤S5所述,将initialString通过hash加密算法进行加密,得到tempString(临时字符串)。hash加密算法即散列函数加密算法,常用的hash加密算法包括MD5,SHA-1,SHA-2,SHA-256,SHA-X(系列)。通过hash加密算法对initialString进行加密,将加密后得到的字符串作为临时字符串tempString,例如,将上述initialString(1112445789acdddeeeeeegiiiilmmmnnnooqrrrsssttttttv),通过MD5方式的hash加密算法进行加密,得到临时字符串tempString为3aa823ea0f069376a2e3622f70125297,记为tempString = 3aa823ea0f069376a2e3622f70125297。
如上述步骤S6所述,按照第三预设规则在Timestamp中截取第一自然数组,第一自然数组是由多个第一自然数构成的数组。每个第一自然数均小于10,也即,在Timestamp中截取的每一位自然数作为一个第一自然数,而不能将截取的多位自然数作为第一自然数,例如:第一自然数组可以是{1,5,4,1,4,8,2,9,7,1},而不能是{15,41,48,29,71}或{15,414,829,7,1}等情况。在第一自然数组中,各第一自然数的前后顺序与Timestamp中对应的字符的前后顺序相同。其中,第三预设规则可以是从Timestamp中的第一个字符开始,向后截取预设位数的字符。Timestamp中的每位字符都是一个自然数。例如,Timestamp为1541482971,若第三预设规则是从Timestamp中的第一个字符开始向后截取十位字符,则恰好将Timestamp包含的所有字符1541482971截取下来。第三预设规则也可以是从Timestamp中的最后一个字符开始,向前截取预设位数的字符;或者截取Timestamp中除上述两种情况之外的其他特定位置的字符。从Timestamp中截取的字符都是自然数,均称为第一自然数,把由这些第一自然数构成的数组称为第一自然数组。在第一自然数组中,各第一自然数的前后顺序与这些第一自然数在Timestamp中对应的字符的前后顺序相同,例如,在Timestamp为1541482971,而第三预设规则是从Timestamp中的第一个字符开始向后截取十位字符,则截取所获得的由十个相应第一自然数构成的第一自然数组为{1,5,4,1,4,8,2,9,7,1}。将第一自然数组记为Array1,则Array1={1,5,4,1,4,8,2,9,7,1},其中,Array为“数组”的意思。
如上述步骤S7所述,将第一自然数组中的每个第一自然数减去设定自然数,并求绝对值,得到第二自然数组,上述第二自然数组是由多个第二自然数构成的数组。例如:设定自然数为10,第一自然数组为{1,5,4,1,4,8,2,9,7,1},则将第一自然数组中的每个第一自然数减去10,得到{-9,-5,-6,-9,-6,-2,-8,-1,-3,-9},并求绝对值后,得到的第二自然数组为{9,5,6,9,6,2,8,1,3,9}。将第二自然数组记为Array2,则Array2={9,5,6,9,6,2,8,1,3,9}。
在第二自然数组中,各第二自然数之间的前后顺序关系与第一自然数组中对应的第一自然数的前后顺序关系相同。其中,设定自然数小于或等于10,从而保证经过减法和求绝对值之后,一个小于10的第一自然数对应一个小于10的第二自然数,即第二自然数组中的第二自然数与第一自然数组中的第一自然数的个数相同,第一自然数和第二自然数均小于10。
如上述步骤S8所述,在tempString中查找所有与第二自然数组中每个第二自然数对应序位的临时字符,其中,上述序位是指每一个上述临时字符在上述tempString中的排序位置。上述临时字符在上述tempString中的排序,一般是指从左向右的排序,也即,第一个序位的临时字符是tempString中左端第一个字符,第二个序位的临时字符是tempString中左端起向右的第二个字符。但在计算机语言中,是从第0位(即序位)开始计算的,也即在计算机处理的过程中,tempString中左端起向右第一个字符对应第0序位,左端起向右第二个字符对应第1序位,左端起向右第三个字符对应第2序位,以此类推;例如:第二自然数组为{0,5,6,9,6,2,8,1,3,9},则在tempString中查找对应的第0,第5, 第6, 第9, 第6, 第2, 第8, 第1, 第3,和第9位对应的临时字符,如临时字符串tempString=3aa823ea0f069376a2e3622f70125297,则对应的第0,第5, 第6, 第9, 第6, 第2, 第8, 第1, 第3,和第9位字符分别为3,3,e,f,e,a,0,a,8,f。
如上述步骤S9所述,根据临时字符与第二自然数的对应关系,将临时字符按照与第二自然数在第二自然数组中的顺序关系进行排序,得到Password1。例如:第二自然数组为{9,5,6,9,6,2,8,1,3,9},则在tempString中查找对应的第9,第5, 第6, 第9, 第6, 第2, 第8, 第1, 第3,和第9位对应的临时字符,如临时字符串tempString=3aa823ea0f069376a2e3622f70125297,则对应的第9,第5, 第6, 第9, 第6, 第2, 第8, 第1, 第3,和第9位字符分别为f,3,e,f,e,a,0,a,8,f,即按将tempString中第9位字符排在第一个位置,将tempString中第5位字符排在第二个位置……以此类推,得到结果字符串resultString=f3efea0a8f,将该结果字符串作为密码,即Password1=f3efea0a8f。客户端生成该密码后,就可以在请求接入服务端时,向服务端传输该密码Password1,供服务端对密码验证后方可容许接入。
在一个实施例中,将上述随机字符、上述Timestamp、上述Host和上述Username按照第一预设规则连接起来,得到第一字符串的步骤S3,包括:
步骤S301,将上述Timestamp连接到所述随机字符后,得到ClientID;
步骤S302,将上述ClientID、所述Host和所述Username从前到后依次连接,得到第一字符串。
如上述步骤S301所述,将上述Timestamp连接到所述随机字符后,得到ClientID。其中,ClientID是Client Identifier的简写,意为“客户端标识符”。将Timestamp连接到所述随机字符后,得到ClientID作为客户端标识符。例如:随机字符为aclientiddemostring,Timestamp为1541482971,则将Timestamp添加到所述随机字符后,得到ClientID为aclientiddemostring1541482971,记为ClientID= aclientiddemostring1541482971。
如上述步骤S302所述,将上述ClientID、上述Host和上述Username从前到后依次连接,得到上述第一字符串。例如:ClientID为aclientiddemostring1541482971,Host为mqtt.demo.server.in,Username为test,则将ClientID、Host和Username从前到后依次连接,得到aclientiddemostring1541482971mqtt.demo.server.intest,记为ClientID+Host+Username=aclientiddemostring1541482971mqtt.demo.server.intest,aclientiddemostring1541482971mqtt.demo.server.intest就是第一字符串。
在一个实施例中,将上述第一字符串按照第二预设规则进行排序,得到initialString的步骤S4之前,还包括:
步骤S401,去除上述第一字符串中的标点符号。
在第一字符串包含标点符号的情况下,在将上述第一字符串按照第二预设规则进行排序,得到initialString的步骤S4之前,如上述步骤S401所述,将上述第一字符串去除标点处理。例如:第一字符串为aclientiddemostring1541482971mqtt.demo.server.intest,将该第一字符串去除标点得到aclientiddemostring1541482971mqttdemoserverintest,从而便于步骤S4按照第二预设规则进行排序。
在一个实施例中,将上述第一字符串按照第二预设规则进行排序,得到initialString的步骤S4,包括:
步骤S402,按照ASCII标准的要求,将上述第一字符串的字符按照升序排列,获得上述initialString。
将上述步骤S302所述,按照ASCII(码)标准的要求,将所述第一字符串的字符按照升序排列,获得所述initialString。其中,ASCII(American Standard Code for Information Interchange,美国信息交换标准代码)是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言。它是现今最通用的单字节编码系统,并等同于国际标准ISO/IEC 646。例如:上述第一字符串为aclientiddemostring1541482971mqttdemoserverintest,将第一字符串按照ASCII标准的要求,并进行升序排列后得到1112445789acdddeeeeeegiiiilmmmnnnooqrrrsssttttttv ,记为initialString=1112445789acdddeeeeeegiiiilmmmnnnooqrrrsssttttttv。
在一个实施例中,上述按照第三预设规则在上述Timestamp中截取第一自然数组的步骤S6,包括:
步骤S601,从上述Timestamp的第一个字符开始,向后截取预设位数的字符,将截取所获得的字符组作为上述第一自然数组。
如上述步骤S601所述,从Timestamp的第一个字符开始,向后截取预设位数的字符,将所截取的数组作为第一自然数组。该预设位数不限,例如,可以是十位,也可以根据Timestamp所包含字符的总共位数,将Timestamp中的所有字符截取。例如:若预设位数是十位,Timestamp=1541482971,则从Timestamp的第一个字符“1”(即左起“1”),向后(向右)截取十位,得到数组{1,5,4,1,4,8,2,9,7,1}作为第一自然数组,记为Array1={1,5,4,1,4,8,2,9,7,1}。
本方案通过在客户端产生随机值并获取当前时间戳timestamp,利用随机值、timestamp、Host和Username连接成第一字符串,将第一字符串进行排序得到initialString,将initialString通过hash算法加密得到tempString,在timestamp中截取第一自然数组,将第一自然数组中每个自然数减去设定自然数并求绝对值,得第二自然数组,根据第二自然数组到tempString中查找对应序位的临时字符而得到Password1;通过这种方式生成动态密码,避免固定的密码明文容易被抓包劫取的风险。
参照图2,本申请一实施例中还提供了一种物联网动态密码的验证方法,用于验证依据如上述任一实施例中物联网动态密码的生成方法所生成的密码,包括以下步骤:
步骤S01,服务端接收客户端发送的上述随机字符、上述Timestamp、上述Host、上述Username和上述Password1;
步骤S02,通过上述随机字符、上述Timestamp、上述Host和上述Username,按照预设的与上述物联网动态密码的生成方法相同的方法生成Password2;
步骤S03,判断上述Password2与上述Password1是否相同;
步骤S04,若是,则判定为匹配成功,准许接入;
步骤S05,若否,则判定为匹配不成功,不准许接入。
服务端在接收到客户端的连接请求后,首先要对其连接请求的密码进行识别验证,识别验证通过才允许接入。
如上述步骤S01所述,服务端接收客户端发送的上述随机字符、上述Timestamp、上述Host、上述Username和上述Password1,其中,服务端可以是系统的后台服务器。
如上述步骤S02和S03所述,通过上述随机字符、上述Timestamp、上述Host和上述Username,按照预设的与上述物联网动态密码的生成方法相同的方法生成Password2。例如:获取从客户端传来的随机字符为aclientiddemostring,Timestamp为1541482971,Host为mqtt.demo.server.in,Username为test,则通过预设的与所述生成方法相同的方法生成Password2应该满足,Password2= Password1= f3efea0a8f。在上述步骤S03中,判断Password2是否与Password1相同。若相同,即Password2=Password1,说明客户端是按照预设的物联网动态密码的生成方法所生成的密码;若不相同,即Password2≠Password1,说明客户端不是按照预设的物联网动态密码的生成方法所生成的密码,则很有可能是编造出来的密码。
如上述步骤S04和S05所述,若Password2与Password1相同,即Password2=Password1,说明客户端是按照预设的物联网动态密码的生成方法所生成的密码,则判定为匹配成功,准许客户端的接入。若Password2与Password1不相同,即Password2≠Password1,说明客户端不是按照预设的物联网动态密码的生成方法所生成的密码,则判定为匹配不成功,不准许接入,从而保证接入的安全性。
在一个实施例中,判断上述Password2与上述Password1是否相同的步骤S03之前,还包括:
步骤S031,获取Servertime,其中,所述Servertime是服务端获取的当前时间;
步骤S032,计算所述Servertime与所述Timestamp的时间差值;
步骤S033,判断所述时间差值是否大于设定阈值;
步骤S034,若是,则不不准许接入;
步骤S035,若否,则生成执行“判断所述Password2与所述Password1是否相同”的命令。
在实际中,为进一步增加认证的安全性,不仅要检查前端传来的密码是否为由预设的生成方法所生成,还要检查密码的生成时间与连接验证请求的时间间隔是否在合理的时间内,如果时间间隔不合理,就说明存在问题。
在判断上述Password2与上述Password1是否相同的步骤S03之前,服务端获取的当前时间Servertime,基本可以认为后端的当前时间Servertime就是客户端连接验证请求的时间和传来密码的时间。如上述步骤S031和S032所述,服务端获取当前时间Servertime,然后,计算上述Servertime与Timestamp的差值V,V=Servertime-Timestamp。其中,差值V即时间差值。如上述步骤S033所述,判断差值V是否大于预设阈值,其中,预设阈值是根据前端加密所需时间、密码传输时间等计算机处理所需要的合理时间而定。如上述步骤S034所述,如果差值V大于设定预设阈值,例如30s,则认为从前端密码生成到后端接到连接请求的时间超过了合理的计算机处理时间,说明密码有可能是很早之前产生的;也有可能是泄露了,则直接拒绝前端接入,从而保证接入的安全性。如上述步骤S035所述,如果差值V不大于设定预设阈值,说明密码的生成时间与连接验证请求的时间间隔是在合理的时间内,可以接受,则生成执行“判断所述Password2与所述Password1是否相同”的命令,从而进入S03的进一步验证步骤。
在一个实施例中,上述判断所述Password2与所述Password1是否相同的步骤S03之前,还包括:
步骤S036,获取所述客户端历次接入请求所传来的时间戳记录;
步骤S037,在所述时间戳记录中,查找是否存在与所述Timestamp相同的时间戳;
步骤S038,若是,则不不准许接入;
步骤S039,若否,则生成执行“判断所述Password2与所述Password1是否相同”的命令。
为进一步增加接入验证的安全性,还可以通过判断以往历次请求接入所传来的时间戳中是否有与当前请求接入所传来的Timestamp相同的时间戳,如果有就可以断定是有问题的,因为不可能在不同的时间内产生相同的时间戳,极有可能是使用了以前客户端生成的密码或者编造的密码来骗取接入。具体步骤如下:
如步骤S036和S037所述,先获取/调取服务端所储存的客户端历次接入请求所传来的时间戳记录,在客户端历次接入请求所传来的时间戳记录中,查找是否存在与本次接入请求所传来的Timestamp相同的时间戳。如上述步骤S038所述,如果在历次接入请求所传来的时间戳记录中有任一个时间戳与当前来接传来的Timestamp相同,则说明生成该密码的时间戳有问题,可能是编造或以前已经使用过的密码,则拒绝前端接入,从而从而保证接入的安全性。如上述步骤S039所述,如果在历次接入请求所传来的时间戳记录中没有与当前来接传来的Timestamp相同的时间戳,则说明生成该密码的Timestamp是新的时间戳,没有问题,则生成执行“判断所述Password2与所述Password1是否相同”的命令,从而进入S03的进一步验证步骤。
在一个实施例中,上述若是,则判定为匹配成功,准许接入的步骤步骤S04之后,还包括:
步骤S041,记录上述timestamp。
如上述步骤S041所述,记录当前连接请求的Timestamp,为以后判断是否有携带重复的时间戳的连接请求提供参考和判断依据。
参照图3,本申请一实施例中还提供了一种物联网动态密码的生成及认证系统,包括客户端10和服务端20;
上述客户端10,用于实现上述任一实施例中所述的物联网动态密码的生成方法。服务端20在接收到客户端10的连接请求后,用于实现如上述任一实施例中所述的物联网动态密码的验证方法。
参照图4,本申请实施例中还提供一种计算机设备,该计算机设备可以是服务器,其内部结构可以如图3所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设计的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机可读指令和数据库。该内存储器为非易失性存储介质中的操作系统和计算机可读指令的运行提供环境。该计算机设备的数据库用于存储随机字符、Timestamp、Host和Username等数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机可读指令被处理器执行时以实现上述任一实施例中的物联网动态密码的生成和/或认证方法。
本申请一实施例还提供一种计算机可读存储介质,该计算机可读存储介质可以是非易失性可读存储介质,也可以是易失性可读存储介质,其上存储有计算机可读指令,计算机可读指令被处理器执行时实现上述任一实施例中的物联网动态密码的生成和/或认证方法。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机可读指令来指令相关的硬件来完成,上述的计算机可读指令可存储与一非易失性计算机可读取存储介质中,该计算机可读指令在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的和实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可以包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM通过多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双速据率SDRAM(SSRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上所述仅为本申请的优选实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其它相关的技术领域,均同理包括在本申请的专利保护范围内。

Claims (20)

  1. 一种物联网动态密码的生成方法,其特征在于,包括以下步骤:
    客户端获取密码生成指令;
    生成随机字符,并获取Timestamp、Host和Username,其中,所述Timestamp是当前时间戳,所述Host是客户端地址,所述Username是用户名;
    将所述随机字符、所述Timestamp、所述Host和所述Username按照第一预设规则连接起来,得到第一字符串;
    将所述第一字符串按照第二预设规则进行排序,得到initialString;
    将所述initialString通过hash加密算法进行加密,得到tempString;
    按照第三预设规则在所述Timestamp中截取第一自然数组,所述第一自然数组是由多个第一自然数构成的数组,每个所述第一自然数均小于10;在所述第一自然数组中,各所述第一自然数的前后顺序与所述Timestamp中对应的字符的前后顺序相同;
    将所述第一自然数组中的每个第一自然数减去设定自然数,并求绝对值,得到第二自然数组,所述第二自然数组是由多个第二自然数构成的数组;在所述第二自然数组中,所述第二自然数的前后顺序与所述第一自然数组中对应的第一自然数的前后顺序相同;其中,设定自然数小于或等于10;
    在所述tempString中查找所有与所述第二自然数组中每个所述第二自然数对应序位的临时字符,其中,所述序位是指每一个所述临时字符在所述tempString中的排序位置;
    根据所述临时字符与所述第二自然数的对应关系,将所述临时字符按照与所述第二自然数在所述第二自然数组中的顺序关系进行排序,得到Password1。
  2. 根据权利要求1所述的物联网动态密码的生成方法,其特征在于,所述将所述随机字符、所述Timestamp、所述Host和所述Username按照第一预设规则连接起来,得到第一字符串的步骤,包括:
    将所述Timestamp连接到所述随机字符后,得到ClientID;
    将所述ClientID、所述Host和所述Username从前到后依次连接,得到所述第一字符串。
  3. 根据权利要求1所述的物联网动态密码的生成方法,其特征在于,所述将所述第一字符串按照第二预设规则进行排序,得到initialString的步骤之前,还包括:
    去除所述第一字符串中的标点符号。
  4. 根据权利要求1所述的物联网动态密码的生成方法,其特征在于,所述按照第三预设规则在所述Timestamp中截取第一自然数组的步骤,包括:
    从所述Timestamp的第一个字符开始,向后截取预设位数的字符,将截取所获得的字符组作为所述第一自然数组。
  5. 一种物联网动态密码的验证方法,用于验证依据如权利要求1~4任一项所述的物联网动态密码的生成方法所生成的密码,其特征在于,包括以下步骤:
    服务端接收客户端发送的所述随机字符、所述Timestamp、所述Host、所述Username和所述Password1;
    通过所述随机字符、所述Timestamp、所述Host和所述Username,按照预设的与所述物联网动态密码的生成方法相同的方法生成Password2;
    判断所述Password2与所述Password1是否相同;
    若是,则判定为匹配成功,准许接入;
    若否,则判定为匹配不成功,不准许接入。
  6. 根据权利要求5所述的物联网动态密码的验证方法,其特征在于,所述判断所述Password2与所述Password1是否相同的步骤之前,还包括:
    获取Servertime,其中,所述Servertime是服务端获取的当前时间;
    计算所述Servertime与所述Timestamp的时间差值;
    判断所述时间差值是否大于设定阈值;
    若是,则不不准许接入;
    若否,则生成执行“判断所述Password2与所述Password1是否相同”的命令。
  7. 根据权利要求5所述的物联网动态密码的验证方法,其特征在于,所述判断所述Password2与所述Password1是否相同的步骤之前,还包括:
    获取所述客户端历次接入请求所传来的时间戳记录;
    在所述时间戳记录中,查找是否存在与所述Timestamp相同的时间戳;
    若是,则不不准许接入;
    若否,则生成执行“判断所述Password2与所述Password1是否相同”的命令。
  8. 一种物联网动态密码的生成及验证系统,其特征在于,包括客户端和服务端;
    所述客户端,用于获取密码生成指令;
    生成随机字符,并获取Timestamp、Host和Username,其中,所述Timestamp是当前时间戳,所述Host是客户端地址,所述Username是用户名;
    将所述随机字符、所述Timestamp、所述Host和所述Username按照第一预设规则连接起来,得到第一字符串;
    将所述第一字符串按照第二预设规则进行排序,得到initialString;
    将所述initialString通过hash加密算法进行加密,得到tempString;
    按照第三预设规则在所述Timestamp中截取第一自然数组,所述第一自然数组是由多个第一自然数构成的数组,每个所述第一自然数均小于10;在所述第一自然数组中,各所述第一自然数的前后顺序与所述Timestamp中对应的字符的前后顺序相同;
    将所述第一自然数组中的每个第一自然数减去设定自然数,并求绝对值,得到第二自然数组,所述第二自然数组是由多个第二自然数构成的数组;在所述第二自然数组中,所述第二自然数的前后顺序与所述第一自然数组中对应的第一自然数的前后顺序相同;其中,所述设定自然数小于或等于10;
    在所述tempString中查找所有与所述第二自然数组中每个所述第二自然数对应序位的临时字符,其中,所述序位是指每一个所述临时字符在所述tempString中的排序位置;
    根据所述临时字符与所述第二自然数的对应关系,将所述临时字符按照与所述第二自然数在所述第二自然数组中的顺序关系进行排序,得到Password1;
    所述服务端,用于接收所述客户端发送的所述随机字符、所述Timestamp、所述Host、所述Username和所述Password1;
    通过所述随机字符、所述Timestamp、所述Host和所述Username,按照预设的与所述物联网动态密码的生成方法相同的方法生成Password2;
    判断所述Password2与所述Password1是否相同;
    若是,则判定为匹配成功,准许接入;
    若否,则判定为匹配不成功,不准许接入。
  9. 根据权利要求8所述的物联网动态密码的生成及验证系统,其特征在于,所述将所述随机字符、所述Timestamp、所述Host和所述Username按照第一预设规则连接起来,得到第一字符串的步骤,包括:
    将所述Timestamp连接到所述随机字符后,得到ClientID;
    将所述ClientID、所述Host和所述Username从前到后依次连接,得到所述第一字符串。
  10. 根据权利要求8所述的物联网动态密码的生成及验证系统,其特征在于,所述将所述第一字符串按照第二预设规则进行排序,得到initialString的步骤之前,还包括:
    去除所述第一字符串中的标点符号。
  11. 根据权利要求8所述的物联网动态密码的生成及验证系统,其特征在于,所述按照第三预设规则在所述Timestamp中截取第一自然数组的步骤,包括:
    从所述Timestamp的第一个字符开始,向后截取预设位数的字符,将截取所获得的字符组作为所述第一自然数组。
  12. 根据权利要求8所述的物联网动态密码的生成及验证系统,其特征在于,一种物联网动态密码的验证方法,用于验证依据如权利要求1~4任一项所述的物联网动态密码的生成方法所生成的密码,其特征在于,包括以下步骤:
    服务端接收客户端发送的所述随机字符、所述Timestamp、所述Host、所述Username和所述Password1;
    通过所述随机字符、所述Timestamp、所述Host和所述Username,按照预设的与所述物联网动态密码的生成方法相同的方法生成Password2;
    判断所述Password2与所述Password1是否相同;
    若是,则判定为匹配成功,准许接入;
    若否,则判定为匹配不成功,不准许接入。
  13. 根据权利要求8所述的物联网动态密码的生成及验证系统,其特征在于,所述判断所述Password2与所述Password1是否相同的步骤之前,还包括:
    获取Servertime,其中,所述Servertime是服务端获取的当前时间;
    计算所述Servertime与所述Timestamp的时间差值;
    判断所述时间差值是否大于设定阈值;
    若是,则不不准许接入;
    若否,则生成执行“判断所述Password2与所述Password1是否相同”的命令。
  14. 根据权利要求8所述的物联网动态密码的生成及验证系统,其特征在于,所述判断所述Password2与所述Password1是否相同的步骤之前,还包括:
    获取所述客户端历次接入请求所传来的时间戳记录;
    在所述时间戳记录中,查找是否存在与所述Timestamp相同的时间戳;
    若是,则不不准许接入;
    若否,则生成执行“判断所述Password2与所述Password1是否相同”的命令。
  15. 一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机可读指令,其特征在于,所述处理器执行所述计算机可读指令时实现一种物联网动态密码的生成方法,步骤:
    客户端获取密码生成指令;
    生成随机字符,并获取Timestamp、Host和Username,其中,所述Timestamp是当前时间戳,所述Host是客户端地址,所述Username是用户名;
    将所述随机字符、所述Timestamp、所述Host和所述Username按照第一预设规则连接起来,得到第一字符串;
    将所述第一字符串按照第二预设规则进行排序,得到initialString;
    将所述initialString通过hash加密算法进行加密,得到tempString;
    按照第三预设规则在所述Timestamp中截取第一自然数组,所述第一自然数组是由多个第一自然数构成的数组,每个所述第一自然数均小于10;在所述第一自然数组中,各所述第一自然数的前后顺序与所述Timestamp中对应的字符的前后顺序相同;
    将所述第一自然数组中的每个第一自然数减去设定自然数,并求绝对值,得到第二自然数组,所述第二自然数组是由多个第二自然数构成的数组;在所述第二自然数组中,所述第二自然数的前后顺序与所述第一自然数组中对应的第一自然数的前后顺序相同;其中,设定自然数小于或等于10;
    在所述tempString中查找所有与所述第二自然数组中每个所述第二自然数对应序位的临时字符,其中,所述序位是指每一个所述临时字符在所述tempString中的排序位置;
    根据所述临时字符与所述第二自然数的对应关系,将所述临时字符按照与所述第二自然数在所述第二自然数组中的顺序关系进行排序,得到Password1。
  16. 根据权利要求15所述的计算机设备,其特征在于,所述将所述随机字符、所述Timestamp、所述Host和所述Username按照第一预设规则连接起来,得到第一字符串的步骤,包括:
    将所述Timestamp连接到所述随机字符后,得到ClientID;
    将所述ClientID、所述Host和所述Username从前到后依次连接,得到所述第一字符串。
  17. 一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机可读指令,其特征在于,所述处理器执行所述计算机可读指令时实现一种物联网动态密码的验证方法,用于验证依据如权利要求1所述的物联网动态密码的生成方法所生成的密码,包括以下步骤:
    服务端接收客户端发送的所述随机字符、所述Timestamp、所述Host、所述Username和所述Password1;
    通过所述随机字符、所述Timestamp、所述Host和所述Username,按照预设的与所述物联网动态密码的生成方法相同的方法生成Password2;
    判断所述Password2与所述Password1是否相同;
    若是,则判定为匹配成功,准许接入;
    若否,则判定为匹配不成功,不准许接入。
  18. 根据权利要求17所述的计算机设备,其特征在于,所述判断所述Password2与所述Password1是否相同的步骤之前,还包括:
    获取Servertime,其中,所述Servertime是服务端获取的当前时间;
    计算所述Servertime与所述Timestamp的时间差值;
    判断所述时间差值是否大于设定阈值;
    若是,则不不准许接入;
    若否,则生成执行“判断所述Password2与所述Password1是否相同”的命令。
  19. 一种计算机可读存储介质,其上存储有计算机可读指令,其特征在于,所述计算机可读指令被处理器执行时实现一种物联网动态密码的生成方法,步骤:
    客户端获取密码生成指令;
    生成随机字符,并获取Timestamp、Host和Username,其中,所述Timestamp是当前时间戳,所述Host是客户端地址,所述Username是用户名;
    将所述随机字符、所述Timestamp、所述Host和所述Username按照第一预设规则连接起来,得到第一字符串;
    将所述第一字符串按照第二预设规则进行排序,得到initialString;
    将所述initialString通过hash加密算法进行加密,得到tempString;
    按照第三预设规则在所述Timestamp中截取第一自然数组,所述第一自然数组是由多个第一自然数构成的数组,每个所述第一自然数均小于10;在所述第一自然数组中,各所述第一自然数的前后顺序与所述Timestamp中对应的字符的前后顺序相同;
    将所述第一自然数组中的每个第一自然数减去设定自然数,并求绝对值,得到第二自然数组,所述第二自然数组是由多个第二自然数构成的数组;在所述第二自然数组中,所述第二自然数的前后顺序与所述第一自然数组中对应的第一自然数的前后顺序相同;其中,设定自然数小于或等于10;
    在所述tempString中查找所有与所述第二自然数组中每个所述第二自然数对应序位的临时字符,其中,所述序位是指每一个所述临时字符在所述tempString中的排序位置;
    根据所述临时字符与所述第二自然数的对应关系,将所述临时字符按照与所述第二自然数在所述第二自然数组中的顺序关系进行排序,得到Password1。
  20. 一种计算机可读存储介质,其上存储有计算机可读指令,其特征在于,所述计算机可读指令被处理器执行时实现一种物联网动态密码的验证方法,用于验证依据如权利要求1所述的物联网动态密码的生成方法所生成的密码,包括以下步骤:
    服务端接收客户端发送的所述随机字符、所述Timestamp、所述Host、所述Username和所述Password1;
    通过所述随机字符、所述Timestamp、所述Host和所述Username,按照预设的与所述物联网动态密码的生成方法相同的方法生成Password2;
    判断所述Password2与所述Password1是否相同;
    若是,则判定为匹配成功,准许接入;
    若否,则判定为匹配不成功,不准许接入。
PCT/CN2019/119484 2019-03-08 2019-11-19 物联网动态密码的生成及验证方法、系统和计算机设备 WO2020181826A1 (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201910175840.4 2019-03-08
CN201910175840.4A CN110034926B (zh) 2019-03-08 2019-03-08 物联网动态密码的生成及验证方法、系统和计算机设备

Publications (1)

Publication Number Publication Date
WO2020181826A1 true WO2020181826A1 (zh) 2020-09-17

Family

ID=67235213

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2019/119484 WO2020181826A1 (zh) 2019-03-08 2019-11-19 物联网动态密码的生成及验证方法、系统和计算机设备

Country Status (2)

Country Link
CN (1) CN110034926B (zh)
WO (1) WO2020181826A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112636911A (zh) * 2021-01-05 2021-04-09 杜瑞峰 一种非联网设备接龙取值变函数序列密码生成方式
CN112671841A (zh) * 2020-12-10 2021-04-16 清研灵智信息咨询(北京)有限公司 基于微服务技术架构的数据安全管理方法及系统

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110034926B (zh) * 2019-03-08 2021-11-05 平安科技(深圳)有限公司 物联网动态密码的生成及验证方法、系统和计算机设备
CN110489942B (zh) * 2019-08-06 2021-03-02 南开大学 一种WebAssembly文件的处理方法及系统
CN110881029B (zh) * 2019-10-24 2023-04-25 上海百事通信息技术股份有限公司 数据传输控制方法、装置、存储介质和终端
CN112769569B (zh) * 2021-03-04 2023-02-07 北京德风新征程科技有限公司 一种物联网设备安全通信方法及设备

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101340282A (zh) * 2008-05-28 2009-01-07 北京易恒信认证科技有限公司 复合公钥的生成方法
CN104348614A (zh) * 2013-07-24 2015-02-11 腾讯科技(深圳)有限公司 身份合法性验证的方法、装置及服务器
US20150281224A1 (en) * 2010-03-29 2015-10-01 Verifone, Inc. Password-protected physical transfer of password-protected devices
CN106330829A (zh) * 2015-06-26 2017-01-11 东方电气集团东方电机有限公司 一种采用中间件实现单点登录的方法和系统
CN110034926A (zh) * 2019-03-08 2019-07-19 平安科技(深圳)有限公司 物联网动态密码的生成及验证方法、系统和计算机设备

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102843236B (zh) * 2012-09-12 2014-12-10 飞天诚信科技股份有限公司 一种动态口令的生成及认证方法与系统
CN104125064B (zh) * 2013-04-28 2018-04-03 阿里巴巴集团控股有限公司 一种动态密码认证方法、客户端及认证系统
CN104579694B (zh) * 2015-02-09 2018-09-14 浙江大学 一种身份认证方法及系统
CN107241185A (zh) * 2016-03-29 2017-10-10 百度在线网络技术(北京)有限公司 数据传输与接收方法及传输与接收装置
CN106656482A (zh) * 2016-11-14 2017-05-10 北京航天自动控制研究所 一种基于自然时间序列的动态密码组合生成方法
CN108075888B (zh) * 2016-11-15 2021-01-26 北京京东尚科信息技术有限公司 动态url生成方法及装置、存储介质、电子设备
CN109286488B (zh) * 2017-07-21 2021-09-21 展讯通信(上海)有限公司 Hdcp关键密钥保护方法
CN107682321B (zh) * 2017-09-14 2019-03-29 广州西麦科技股份有限公司 一种sdn控制器集群单点登录的方法及装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101340282A (zh) * 2008-05-28 2009-01-07 北京易恒信认证科技有限公司 复合公钥的生成方法
US20150281224A1 (en) * 2010-03-29 2015-10-01 Verifone, Inc. Password-protected physical transfer of password-protected devices
CN104348614A (zh) * 2013-07-24 2015-02-11 腾讯科技(深圳)有限公司 身份合法性验证的方法、装置及服务器
CN106330829A (zh) * 2015-06-26 2017-01-11 东方电气集团东方电机有限公司 一种采用中间件实现单点登录的方法和系统
CN110034926A (zh) * 2019-03-08 2019-07-19 平安科技(深圳)有限公司 物联网动态密码的生成及验证方法、系统和计算机设备

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112671841A (zh) * 2020-12-10 2021-04-16 清研灵智信息咨询(北京)有限公司 基于微服务技术架构的数据安全管理方法及系统
CN112671841B (zh) * 2020-12-10 2022-02-15 清研灵智信息咨询(北京)有限公司 基于微服务技术架构的数据安全管理方法及系统
CN112636911A (zh) * 2021-01-05 2021-04-09 杜瑞峰 一种非联网设备接龙取值变函数序列密码生成方式
CN112636911B (zh) * 2021-01-05 2022-10-04 杜瑞峰 一种非联网设备接龙取值变函数序列密码生成方式

Also Published As

Publication number Publication date
CN110034926A (zh) 2019-07-19
CN110034926B (zh) 2021-11-05

Similar Documents

Publication Publication Date Title
WO2020181826A1 (zh) 物联网动态密码的生成及验证方法、系统和计算机设备
CN110493197B (zh) 一种登录处理方法及相关设备
CN109756343B (zh) 数字签名的认证方法、装置、计算机设备和存储介质
CN112637131B (zh) 用户身份认证方法、装置、设备和存储介质
US9253162B2 (en) Intelligent card secure communication method
US10505723B1 (en) Secret sharing information management and security system
CN113221128B (zh) 账号和密码的存储方法及注册管理系统
US11949785B1 (en) Biometric authenticated biometric enrollment
US20160219045A1 (en) Method and System for Authenticating a User of a Device
EP3313020B1 (en) Method of digital identity generation and authentication
CN110310392B (zh) 车辆解锁方法、装置、计算机设备及存储介质
WO2022042198A1 (zh) 身份验证方法、装置、计算机设备和存储介质
CN112039857B (zh) 一种公用基础模块的调用方法和装置
CN116680673B (zh) 显示器的身份校验方法、装置以及计算机设备
CN115865540A (zh) 一种信息安全传输方法及装置
CN112149068A (zh) 基于访问的授权校验方法、信息的生成方法及装置、服务器
KR100986980B1 (ko) 생체 인증 방법, 클라이언트 및 서버
CN116155483A (zh) 区块链签名机安全设计方法及签名机
CN110855714B (zh) 一种多租户设备的安全连接方法和系统
CN115829186B (zh) 基于人工智能的erp管理方法及数据处理ai系统
CN117574408B (zh) 基于区块链的生产资料管理方法、装置及电子设备
CN114338052B (zh) 一种身份认证的实现方法及装置
US20240187223A1 (en) Biometric authenticated biometric enrollment
EP4012970A1 (en) System and methods for registering or authenticating a user with a relying party
CN111432408B (zh) 一种基于Wi-Fi流量分析的双因子认证方法及电子装置

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: 19918958

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: 19918958

Country of ref document: EP

Kind code of ref document: A1