Device fingerprint generation method, apparatus, electronic device and computer-readable medium
By acquiring multi-level factors of the device and using a combined hash function to calculate and match the device fingerprint, the problem of poor uniqueness and stability of device fingerprints is solved, the accuracy and stability of device fingerprint generation are improved, and interference with business risk control strategies is reduced.
Patent Information
- Application Number
- CN202411492014.X
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2024-10-24
- Publication Date
- 2025-10-31
- Estimated Expiration
- 2044-10-24
AI Technical Summary
Existing device fingerprints suffer from poor uniqueness and stability, which interferes with and hinders the implementation of business risk control strategies.
By receiving a device fingerprint generation request, the system obtains the device's multi-level factors, calculates the first device fingerprint using a combined hash function, and matches it with a preset fingerprint list. If the match is successful, the second device fingerprint is generated; otherwise, it is matched with an existing device fingerprint on the server to generate a similarity score, and finally, the output device fingerprint is determined.
This improves the uniqueness and stability of device fingerprints, and reduces interference and obstacles to business risk control strategies.
Smart Images

Figure CN119397517B_ABST
Abstract
Description
Technical Field
[0001] This application relates to the field of computer technology, and in particular to a method, apparatus, electronic device, and computer-readable medium for generating device fingerprints. Background Technology
[0002] Device fingerprints are unique identifiers for devices, primarily used to identify and verify the identity of user devices. With the rapid development of the cybercrime industry chain, device fingerprints have been widely applied in various business risk control scenarios, making their stability and uniqueness increasingly important. Currently, on the one hand, due to vendor restrictions on data collection and missing data during factor collection, different physical devices are easily assigned the same device fingerprint, resulting in fingerprint collisions. On the other hand, because device-related parameters are easily changed and tampered with, the same physical device may correspond to different device fingerprints. The poor uniqueness and stability of device fingerprints cause interference and obstacles to the implementation of business risk control strategies. Summary of the Invention
[0003] In view of this, embodiments of this application provide a device fingerprint generation method, apparatus, electronic device, and computer-readable medium, which can solve the problem that the uniqueness and stability of existing device fingerprints are poor, causing certain interference and obstacles to the implementation of business risk control strategies.
[0004] To achieve the above objectives, according to one aspect of the embodiments of this application, a device fingerprint generation method is provided, comprising:
[0005] Receive a device fingerprint generation request and obtain the first-level factor and second-level factor corresponding to the device.
[0006] A first device fingerprint is generated based on the first-level factor and the first weight score.
[0007] The first device fingerprint is matched with a preset fingerprint list. If the match is successful, a second device fingerprint is generated based on the second level factor and the second weight score, and the second device fingerprint is output. If the match is unsuccessful, the first device fingerprint is matched with an existing device fingerprint on the server to obtain the matching result data.
[0008] A comparison process is performed based on the second-level factor, the second-weight score, and the server-side data corresponding to the existing device fingerprints on the server, thereby generating a similarity score;
[0009] Based on the matching results and similarity scores, the output device fingerprint is determined.
[0010] Optionally, based on the matching result data and similarity score, the output device fingerprint is determined, including:
[0011] If the matching result data corresponds to a successful match, the first device fingerprint is output in response to the similarity score being greater than the preset threshold; if the similarity score is less than the preset threshold, the second device fingerprint is generated based on the second level factor and the second weight score, and the second device fingerprint is output.
[0012] If the matching result data corresponds to an unsuccessful match, in response to the similarity score being greater than a preset threshold, the server executes the process of retrieving the first device fingerprint and outputs the retrieved first device fingerprint; in response to the similarity score being less than a preset threshold, the server outputs the first device fingerprint.
[0013] Optionally, generating a first device fingerprint includes:
[0014] Match the preset list of factors with the first-level factors, and set the first weight score for the first-level factors that do not match.
[0015] A first device fingerprint is generated based on the unmatched first-level factors and their corresponding first weight scores.
[0016] Optionally, a comparison process is performed based on the second-level factor, the second-weight score, and the server-side data corresponding to the existing device fingerprints on the server, thereby generating a similarity score, including:
[0017] The similarity score is calculated by comparing the second-level factor and the second-weight score with the server-side data corresponding to the existing device fingerprints on the server.
[0018] Optionally, a first device fingerprint is generated based on the first-level factor and the first weight score, including:
[0019] Based on each factor in the first-level factors and the first weight score corresponding to each factor, the corresponding first device fingerprint is calculated using a combined hash function.
[0020] Optionally, the method further includes:
[0021] The output device fingerprint is stored on the server and then sent to the client.
[0022] In addition, this application also provides a device fingerprint generation apparatus, comprising:
[0023] The receiving unit is configured to receive a device fingerprint generation request and obtain the first-level factor and the second-level factor corresponding to the device.
[0024] The device fingerprint generation unit is configured to generate a first device fingerprint based on a first-level factor and a first-weight score;
[0025] The matching unit is configured to match the first device fingerprint with a preset fingerprint list. In response to a successful match, it generates a second device fingerprint based on the second level factor and the second weight score, and outputs the second device fingerprint. In response to a failed match, it matches the first device fingerprint with an existing device fingerprint on the server, and then obtains the matching result data.
[0026] The score generation unit is configured to perform a comparison process based on the second-level factor, the second-weight score, and the server-side data corresponding to the existing device fingerprints on the server, thereby generating a similarity score;
[0027] The device fingerprint determination unit is configured to determine the output device fingerprint based on the matching result data and the similarity score.
[0028] Optionally, the device fingerprint determination unit is further configured to:
[0029] If the matching result data corresponds to a successful match, the first device fingerprint is output in response to the similarity score being greater than the preset threshold; if the similarity score is less than the preset threshold, the second device fingerprint is generated based on the second level factor and the second weight score, and the second device fingerprint is output.
[0030] If the matching result data corresponds to an unsuccessful match, in response to the similarity score being greater than a preset threshold, the server executes the process of retrieving the first device fingerprint and outputs the retrieved first device fingerprint; in response to the similarity score being less than a preset threshold, the server outputs the first device fingerprint.
[0031] Optionally, the device fingerprint generation unit is further configured to:
[0032] Match the preset list of factors with the first-level factors, and set the first weight score for the first-level factors that do not match.
[0033] A first device fingerprint is generated based on the unmatched first-level factors and their corresponding first weight scores.
[0034] Optionally, the score generation unit is further configured to:
[0035] The similarity score is calculated by comparing the second-level factor and the second-weight score with the server-side data corresponding to the existing device fingerprints on the server.
[0036] Optionally, the device fingerprint generation unit is further configured to:
[0037] Based on each factor in the first-level factors and the first weight score corresponding to each factor, the corresponding first device fingerprint is calculated using a combined hash function.
[0038] Optionally, the device also includes a distribution unit configured to:
[0039] The output device fingerprint is stored on the server and then sent to the client.
[0040] In addition, this application also provides a device fingerprint generation electronic device, including: one or more processors; and a storage device for storing one or more programs, which, when executed by one or more processors, enable the one or more processors to implement the device fingerprint generation method as described above.
[0041] In addition, this application also provides a computer-readable medium having a computer program stored thereon, which, when executed by a processor, implements the device fingerprint generation method as described above.
[0042] To achieve the above objectives, according to another aspect of the embodiments of this application, a computer program product is provided.
[0043] A computer program product according to an embodiment of this application includes a computer program that, when executed by a processor, implements the device fingerprint generation method provided in an embodiment of this application.
[0044] One embodiment of the above invention has the following advantages or beneficial effects: This application receives a device fingerprint generation request, obtains the first-level factor and the second-level factor corresponding to the device; generates a first device fingerprint based on the first-level factor and the first weight score; matches the first device fingerprint with a preset fingerprint list; in response to a successful match, generates a second device fingerprint based on the second-level factor and the second weight score, and outputs the second device fingerprint; in response to a failed match, matches the first device fingerprint with existing device fingerprints on the server, thereby obtaining matching result data; performs a comparison process based on the second-level factor, the second weight score, and the server-side data corresponding to the existing device fingerprints on the server, thereby generating a similarity score; and determines the output device fingerprint based on the matching result data and the similarity score. This improves the uniqueness and stability of the generated device fingerprint and reduces the interference and obstacles that device fingerprints may cause to the implementation of business risk control strategies.
[0045] The further effects of the aforementioned unconventional alternative methods will be explained below in conjunction with specific implementation methods. Attached Figure Description
[0046] The accompanying drawings are provided to better understand this application and do not constitute an undue limitation thereof. Wherein:
[0047] Figure 1 This is a schematic diagram of the main flow of a device fingerprint generation method according to an embodiment of this application;
[0048] Figure 2This is a schematic diagram of the main flow of a device fingerprint generation method according to an embodiment of this application;
[0049] Figure 3 This is a schematic diagram of the main process of a device fingerprint generation method according to an embodiment of this application;
[0050] Figure 4 This is a schematic diagram of the main units of a device fingerprint generation apparatus according to an embodiment of this application;
[0051] Figure 5 This is an exemplary system architecture diagram to which embodiments of this application can be applied;
[0052] Figure 6 This is a schematic diagram of the structure of a computer system suitable for implementing terminal devices or servers in the embodiments of this application. Detailed Implementation
[0053] The following description, in conjunction with the accompanying drawings, illustrates exemplary embodiments of this application, including various details to aid understanding. These embodiments should be considered merely exemplary. Therefore, those skilled in the art should recognize that various changes and modifications can be made to the embodiments described herein without departing from the scope and spirit of this application. Similarly, for clarity and brevity, descriptions of well-known functions and structures are omitted in the following description. It should be noted that the acquisition, transmission, storage, use, and processing of data in the technical solutions of this application comply with relevant national laws and regulations. It should also be noted that certain software, components, models, and other existing industry solutions may be mentioned in the embodiments of this application. These should be considered exemplary, intended only to illustrate the feasibility of implementing the technical solutions of this application, and do not imply that the applicant has already used or necessarily used such solutions. The collection, analysis, use, transmission, and storage of user personal information involved in the technical solutions of this application all comply with relevant laws and regulations, are used for legal and reasonable purposes, are not shared, disclosed, or sold outside of these legal uses, and are subject to supervision and management by regulatory authorities. Necessary measures should be taken to prevent unauthorized access to user personal information data, ensure that personnel authorized to access such data comply with relevant laws and regulations, and safeguard user personal information security. Once this user personal information data is no longer needed, risks should be minimized by restricting or even prohibiting data collection and / or deleting the data.
[0054] When used, including in certain relevant applications, data is deidentified to protect user privacy, for example by removing specific identifiers, controlling the amount or specificity of stored data, controlling how data is stored, and / or other methods.
[0055] Figure 1 This is a schematic diagram of the main flow of a device fingerprint generation method according to an embodiment of this application, as shown below. Figure 1 As shown, the device fingerprint generation method mainly includes the following steps S101-S105.
[0056] Step S101: Receive device fingerprint generation request and obtain the first-level factor and second-level factor corresponding to the device.
[0057] In this application embodiment, AndroidID is a globally unique hexadecimal string generated by each device upon its first boot in the Android operating system. IDFA is an identifier used on Apple iOS devices. OAID is a device identifier introduced by Chinese manufacturers to address GDPR (General Data Protection Regulation) and increasing concerns about user privacy, helping developers and service providers identify and track different devices without violating user privacy. MAC address: A hardware address used to uniquely identify network devices, such as the network interface of a computer, router, or switch. IMEI is an abbreviation for International Mobile Equipment Identity, a globally unique serial number assigned to all mobile communication devices. Its main purpose is to identify and track mobile phone devices in GSM, UMTS, and LTE networks. IMSI is the International Mobile Subscriber Identity, a number used to uniquely identify mobile network users in GSM, UMTS, and LTE cellular networks. Hash function: Also known as a hash function, it is a function that transforms an input of arbitrary length (also called a pre-mapped or message) into a fixed-length output. The goal of hash function design is that small changes in the input data lead to large changes in the output data, and this change should be irreversible, meaning it is difficult (within a reasonable time) to deduce the original input from the output. Combinatorial hash function: It supports setting different weights for different factors and outputting results.
[0058] In this embodiment, the execution entity of the device fingerprint generation method (e.g., a server) can receive device fingerprint generation requests via wired or wireless connections. The first-level factors of the device corresponding to the device fingerprint generation request may include system-level factors and device-level factors, while the second-level factors of the device may include application-level factors, APP-level factors, and user-level factors.
[0059] For example, system-level factors include AndroidID, IDFA, and OAID, generally used to distinguish different devices and generate device fingerprints. Device-level factors include MAC, IMEI, and IMSI, similar to system-level factors, used to generate device fingerprints. Application-level factors include device model and operating system, used to generate or retrieve device fingerprints. APP-level factors are files generated by the probe SDK for each APP on each device, placed in the APP directory, including APP version number, SDK version number, etc., used to generate or retrieve device fingerprints. User-level factors include phone number and ID card number, used to generate or retrieve device fingerprints.
[0060] Step S102: Generate a first device fingerprint based on the first level factor and the first weight score.
[0061] Specifically, generating the first device fingerprint includes: matching a preset list of factors with first-level factors, setting a first weight score for the first-level factors that are not matched; and generating the first device fingerprint based on the unmatched first-level factors and their corresponding first weight scores.
[0062] For example, a certain priority is set for system-level factors and device-level factors, namely the first weight score, to calculate the device fingerprint.
[0063] First, a different weight score is set for each factor, namely the first weight score. After setting the first weight score, a combined hash function is used to calculate the device fingerprint.
[0064] For example, the priority order is IMEI > IDFA / AndroidID > OAID > MAC > IMSI, and their first weight scores can be set to 40%, 30%, 18%, 12%, and 10% respectively, which means the first weight scores can be set to 0.4, 0.3, 0.18, 0.12, and 0.1 respectively.
[0065] The first device fingerprint can be calculated as follows:
[0066] [(IMEI*0.4)+(IDFA / AndroidID*0.3)+(OAID*0.18)+(MAC*0.12)+(IMSI*0.1)]*100.
[0067] Step S103: Match the first device fingerprint with the preset fingerprint list. If the match is successful, generate the second device fingerprint based on the second level factor and the second weight score, and output the second device fingerprint. If the match is unsuccessful, match the first device fingerprint with the existing device fingerprints on the server to obtain the matching result data.
[0068] A preset fingerprint list, such as a fingerprint blacklist, is created for device fingerprints. Device fingerprints included in the blacklist are typically those that are confirmed or highly probable to be duplicates. This list is updated through routine operations. If the first device fingerprint generated based on first-level factors (e.g., system-level and device-level factors) is in the preset fingerprint list (i.e., the fingerprint blacklist), the device fingerprint generation module is invoked to generate a second device fingerprint based on second-level factors (e.g., application-level, APP-level, and user-level factors) and the second weight score corresponding to the second-level factors. This second device fingerprint is then output as the final device fingerprint. If the first device fingerprint fails to match the preset fingerprint list (i.e., it is not in the fingerprint blacklist), a similarity check is performed, comparing the first device fingerprint with existing device fingerprints on the server to obtain the matching result data.
[0069] Step S104: Based on the second-level factor, the second weight score, and the server data corresponding to the existing device fingerprints on the server, a comparison process is performed to generate a similarity score.
[0070] Specifically, a comparison process is performed based on the second-level factor, the second weight score, and the server-side data corresponding to the existing device fingerprint on the server side to generate a similarity score. This includes: calculating the similarity between the second-level factor and the second weight score and the server-side data corresponding to the existing device fingerprint on the server side to obtain a similarity score.
[0071] The similarity score is obtained by comparing the second-level factor, the second-weight score, and the server-side data.
[0072] Step S105: Determine the output device fingerprint based on the matching result data and similarity score.
[0073] The similarity score is compared with a preset threshold to obtain comparison result data. Based on the comparison result data and the matching result data, the final device fingerprint to be output is accurately determined.
[0074] Specifically, the method also includes storing the output device fingerprint on the server and sending it to the client.
[0075] This embodiment receives a device fingerprint generation request and obtains the first-level factor and second-level factor corresponding to the device. Based on the first-level factor and the first weight score, a first device fingerprint is generated. The first device fingerprint is matched with a preset fingerprint list. If the match is successful, a second device fingerprint is generated based on the second-level factor and the second weight score, and the second device fingerprint is output. If the match is unsuccessful, the first device fingerprint is matched with existing device fingerprints on the server to obtain matching result data. A comparison process is performed based on the second-level factor, the second weight score, and the server-side data corresponding to the existing device fingerprints on the server to generate a similarity score. Based on the matching result data and the similarity score, the output device fingerprint is determined. This improves the uniqueness and stability of the generated device fingerprint and reduces the interference and obstacles that device fingerprints may cause to the implementation of business risk control strategies.
[0076] Figure 2 This is a schematic diagram of the main flow of a device fingerprint generation method according to an embodiment of this application, as shown below. Figure 2 As shown, the device fingerprint generation method mainly includes the following steps S201-S206.
[0077] Step S201: Receive device fingerprint generation request and obtain the first-level factor and second-level factor corresponding to the device.
[0078] The first-level factors of a device can include system-level factors and device-level factors, while the second-level factors of a device can include application-level factors, APP-level factors, and user-level factors.
[0079] Step S202: Generate a first device fingerprint based on the first level factor and the first weight score.
[0080] Specifically, generating a first device fingerprint based on a first-level factor and a first weight score includes: calculating the corresponding first device fingerprint using a combined hash function based on each factor in the first-level factor and the first weight score corresponding to each factor.
[0081] Combinatorial hash function: Supports setting different weights for different factors and outputting results. The execution entity can calculate the product of the first weight score and the corresponding first-level factor, and use the sum of the products and the product of the preset coefficients as the first device fingerprint.
[0082] Step S203: Match the first device fingerprint with a preset fingerprint list. If the match is successful, generate a second device fingerprint based on the second level factor and the second weight score, and output the second device fingerprint. If the match is unsuccessful, match the first device fingerprint with an existing device fingerprint on the server to obtain the matching result data.
[0083] The first device fingerprint is matched against a preset fingerprint list. If a match is successful, it indicates that the first device fingerprint is in the fingerprint blacklist and is unusable. A second device fingerprint is then generated based on the second-level factor and the second weight score, and output. If a match fails, meaning the first device fingerprint is not in the fingerprint blacklist, a similarity check is performed, matching the first device fingerprint against existing device fingerprints on the server to obtain the matching result data.
[0084] Step S204: Based on the second-level factor, the second weight score, and the server-side data corresponding to the existing device fingerprints on the server, a comparison process is performed to generate a similarity score.
[0085] The second weight score varies depending on the different second-level factors. A similarity score is obtained by performing similarity matching on the second-level factors (e.g., application-level factors, APP-level factors, user-level factors), the corresponding second weight scores, and server-side data related to existing device fingerprints.
[0086] Step S205: If the matching result data corresponds to a successful match, in response to the similarity score being greater than a preset threshold, the first device fingerprint is output; in response to the similarity score being less than the preset threshold, the second device fingerprint is generated based on the second level factor and the second weight score, and the second device fingerprint is output.
[0087] If the first device fingerprint is not matched against a preset fingerprint list, the first device fingerprint is then matched against existing device fingerprints on the server to obtain matching result data. If the matching result data corresponds to a successful match, the first device fingerprint is output in response to a similarity score greater than a preset threshold; if the similarity score is less than the preset threshold, a second device fingerprint is generated based on the second-level factor and the second weight score, and the second device fingerprint is output.
[0088] For example, if the device fingerprint does not match the blacklist, a device fingerprint similarity judgment is performed. Device fingerprint similarity judgment: The generated device fingerprint (i.e., the first device fingerprint) is verified against existing device fingerprints on the server. If a match is successful, the second-level factors (i.e., application-level factors, APP-level factors, and user-level factors) are assigned different second weight scores and compared with the server data to generate a similarity score. If the similarity score reaches a certain value (i.e., a preset threshold), it is considered the same device fingerprint, and this first device fingerprint is adopted as the final output device fingerprint. If the similarity score is lower than this value, a new device fingerprint needs to be generated by combining the second-level factors (i.e., combining application-level factors, APP-level factors, and user-level factors), i.e., generating a second device fingerprint, which is then used as the final output device fingerprint.
[0089] Step S206: If the matching result data corresponds to an unsuccessful match, in response to the similarity score being greater than a preset threshold, the server executes the process of retrieving the first device fingerprint and outputs the retrieved first device fingerprint; in response to the similarity score being less than a preset threshold, the server outputs the first device fingerprint.
[0090] If the first device fingerprint is matched against a preset fingerprint list and a match fails, the first device fingerprint is then matched against existing device fingerprints on the server to obtain matching result data. If the matching result data corresponds to a match failure, in response to a similarity score greater than a preset threshold, the server executes a process to retrieve the first device fingerprint and outputs the retrieved first device fingerprint; in response to a similarity score less than the preset threshold, the first device fingerprint is output.
[0091] For example, if the device fingerprint does not match the blacklist, a device fingerprint similarity check is performed. Device fingerprint similarity check: The generated device fingerprint (i.e., the first device fingerprint) is verified against existing device fingerprints on the server. If no match is found, the second-level factors (application-level, APP-level, and user-level factors) are assigned different weights and compared with the server data to generate a similarity score. If the similarity score reaches a certain value (i.e., a preset threshold), it is considered a matching device fingerprint, and the existing first device fingerprint on the server is retrieved and used as the output device fingerprint. If the similarity score is lower than the threshold, the first device fingerprint is directly used as the final output device fingerprint. This improves the accuracy of device fingerprint generation, thereby increasing the uniqueness and stability of the generated device fingerprints and reducing the interference and obstacles that device fingerprints may cause to the implementation of business risk control strategies.
[0092] Figure 3 This is a schematic diagram of the main flow of a device fingerprint generation method according to an embodiment of this application. Figure 3As shown, in the device fingerprint verification module, the executing entity can establish a device fingerprint blacklist. Upon receiving a device fingerprint generation request, it generates a device fingerprint based on system-level factors and device-level factors. It then determines whether the generated device fingerprint is in the device fingerprint blacklist (i.e., the preset fingerprint list). If so, it calls the device fingerprint generation module to generate a new device fingerprint based on application-level factors, APP-level factors, and user-level factors. Otherwise, it continues to match the generated device fingerprint on the server. If a match is found, the application-level factors, APP-level factors, and user-level factors corresponding to the generated device fingerprint are assigned different weights and compared with the server to generate a similarity score. It then determines whether the generated similarity score reaches a preset threshold. If so, the generated device fingerprint is output; otherwise, the device fingerprint module is called to combine application-level factors, APP-level factors, and user-level factors to generate a new device fingerprint. If no match is found, the application-level factors, APP-level factors, and user-level factors corresponding to the generated device fingerprint are assigned different weights and compared with the server to generate a similarity score. It then determines whether the generated similarity score reaches a preset threshold. If so, the existing device fingerprint on the server is retrieved; otherwise, the generated device fingerprint is used directly.
[0093] This application's embodiments enable the generation and verification of device fingerprints. A blacklist mechanism is established during both processes to improve the uniqueness and stability of device fingerprints. Blacklist mechanisms are established for system-level factors, device-level factors, user-level factors, application-level factors, APP-level factors, and device fingerprints. These blacklists are applied during both the fingerprint generation and verification processes (two blacklist checks: factor blacklist check and fingerprint blacklist check). Operational improvements to enhance device fingerprint uniqueness are also supported. Multiple factors—system-level, device-level, user-level, application-level, and APP-level—are incorporated into the device fingerprint generation system and used selectively based on fingerprint verification results. This dynamic and flexible calculation method helps identify instances where malicious actors tamper with device parameters in bulk, leading to fingerprint changes and improving uniqueness and stability. Similarity calculation is integrated into the fingerprint verification system for fingerprint retrieval, further enhancing fingerprint stability.
[0094] In this application embodiment, AndroidID is a globally unique hexadecimal string generated by each device upon its first boot in the Android operating system. IDFA is an identifier used on Apple iOS devices. OAID is a device identifier introduced by Chinese manufacturers to address GDPR (General Data Protection Regulation) and increasing concerns about user privacy, helping developers and service providers identify and track different devices without violating user privacy. MAC address: A hardware address used to uniquely identify network devices, such as the network interface of a computer, router, or switch. IMEI is an abbreviation for International Mobile Equipment Identity, a globally unique serial number assigned to all mobile communication devices. Its main purpose is to identify and track mobile phone devices in GSM, UMTS, and LTE networks. IMSI is the International Mobile Subscriber Identity, a number used to uniquely identify mobile network users in GSM, UMTS, and LTE cellular networks. Hash function: Also known as a hash function, it is a function that transforms an input of arbitrary length (also called a pre-mapped or message) into a fixed-length output. The goal of hash function design is that small changes in the input data lead to large changes in the output data, and this change should be irreversible, meaning it is difficult (within a reasonable time) to deduce the original input from the output. Combinatorial hash function: It supports setting different weights for different factors and outputting results.
[0095] This invention comprises the following modules: a data acquisition module, a device fingerprint generation module, and a device fingerprint verification module. The main process is as follows: Data Acquisition Module: The client application integrates a probe SDK to collect and upload various factor information to the server. Factors include: System-level factors: AndroidID, IDFA, OAID, etc., generally used to distinguish different devices and generate device fingerprints. Device-level factors: MAC, IMEI, IMSI, etc., similar to system-level factors, used to generate device fingerprints. Application-level factors: Device model, device operating system, used to generate or retrieve device fingerprints. APP-level factors: Files generated by the probe SDK for each APP on each device, placed in the APP directory, including APP version number, SDK version number, etc., used to generate or retrieve device fingerprints. User-level factors: Mobile phone number, ID card number, etc., used to generate or retrieve device fingerprints. Device Fingerprint Generation Module: The server stores the factors collected and uploaded by the client and calculates and generates the device fingerprint. This involves two steps: blacklist comparison and device fingerprint calculation. Device fingerprint factor blacklist comparison: Blacklists are established for system-level and device-level factors. Factors included in the blacklist typically refer to duplicate or fixed factors submitted by device manufacturers for different devices. These lists are mostly added through daily operations. Because these factors cannot be distinguished across different devices, they become meaningless as factors for generating device fingerprints. Collected factors are compared against the blacklist; only factors that do not match proceed to the next step for calculation, i.e., factor blacklist verification is performed. Device fingerprint calculation: System-level and device-level factors are assigned certain priorities to calculate device fingerprints. First, different weight scores are assigned to different factors. After setting the priority weights, a combined hash function is used to calculate the device fingerprint. For example, the priority order is IMEI > IDFA / AndroidID > OAID > MAC > IMSI, with weights set to 40%, 30%, 18%, 12%, and 10% respectively.
[0096] The calculation logic is as follows:
[0097] def hash function(IMEI,IDFA / AndroidID,OAID,MAC,IMSI): weighted_sum =(IMEI*0.4)+(IDFA / AndroidID*0.3)+(OAID*0.18)+(MAC*0.12)+(IMSI*0.1)
[0098] return int(weighted_sum*100)
[0099] The result of the above calculation logic is the calculated device fingerprint. The device fingerprint calculation trace, as well as the corresponding system-level factors, device-level factors, user-level factors, application-level factors, APP-level factors, and user-level factors, should all be saved.
[0100] Device fingerprint verification module: After device fingerprints are generated, they need to be verified on the server side. This involves two steps: blacklist comparison and similarity judgment. Device fingerprint blacklist comparison: A blacklist is created for each device fingerprint. Device fingerprints included in the blacklist are typically those that are confirmed or highly probable to be duplicates. This list is mostly added through daily operations. Because such a device fingerprint cannot be distinguished between different devices, it loses its meaning as a device fingerprint. If the device fingerprint matches a fingerprint in the blacklist, the process returns to step two, the device fingerprint calculation module, which combines application-level factors, APP-level factors, and user-level factors to generate a new device fingerprint. If the device fingerprint does not match the blacklist, a device fingerprint similarity judgment is performed. Device fingerprint similarity assessment: The generated device fingerprint is verified against existing device fingerprints on the server. If a match is found, application-level factors, APP-level factors, and user-level factors are assigned different weights and compared with the server data to generate a similarity score. If the similarity score reaches a certain value, the fingerprint is considered the same and is used. If the similarity score is lower than that value, a new device fingerprint needs to be generated by combining application-level factors, APP-level factors, and user-level factors. If no match is found, application-level factors, APP-level factors, and user-level factors are assigned different weights and compared with the server data to generate a similarity score. If the similarity score reaches a certain value, the fingerprint is considered the same and the existing fingerprint on the server is retrieved. If the similarity score is lower than that value, the existing device fingerprint is used directly.
[0101] Device fingerprint storage module: The generated device fingerprint is stored on the server and then sent to the client. Sending it to the client facilitates the application side in recording relevant data.
[0102] The main process of device fingerprint generation can include: data acquisition, device fingerprint generation, device fingerprint verification, and device fingerprint storage. In the data acquisition module, the terminal device collects factors, including system-level factors, device-level factors, application-level factors, and APP-level factors. In the device fingerprint generation module, a factor blacklist database (i.e., a database corresponding to a preset factor list) is established for each type of factor. The factors collected by the data acquisition module are compared with the blacklist database, factors in the blacklist are removed, different factors are prioritized, and corresponding calculation weights are assigned. A combined hash function is used to calculate the device fingerprint. In the device fingerprint verification module, the final device fingerprint to be output is determined. In the device fingerprint storage module, the generated and verified device fingerprint is stored on the server and sent to the client.
[0103] This application establishes a blacklist mechanism for system-level factors, device-level factors, application-level factors, APP-level factors, and device fingerprints. Simultaneously, it incorporates multiple factors—system-level, device-level, application-level, and APP-level—into the device fingerprint generation system, using them differently based on device fingerprint verification. The calculation method is more dynamic and flexible, and similarity calculation is incorporated into the device fingerprint verification system for device fingerprint retrieval. These combined methods enhance the uniqueness and stability of device fingerprints.
[0104] Figure 4 This is a schematic diagram of the main units of a device fingerprint generation apparatus according to an embodiment of this application. Figure 4 As shown, the device fingerprint generation device 400 includes a receiving unit 401, a device fingerprint generation unit 402, a matching unit 403, a score generation unit 404, and a device fingerprint determination unit 405.
[0105] The receiving unit 401 is configured to receive a device fingerprint generation request and obtain the first-level factor and the second-level factor corresponding to the device.
[0106] The device fingerprint generation unit 402 is configured to generate a first device fingerprint based on a first level factor and a first weight score.
[0107] The matching unit 403 is configured to match the first device fingerprint with a preset fingerprint list. In response to a successful match, it generates a second device fingerprint based on the second level factor and the second weight score, and outputs the second device fingerprint. In response to a failed match, it matches the first device fingerprint with an existing device fingerprint on the server to obtain the matching result data.
[0108] The score generation unit 404 is configured to perform a comparison process based on the second-level factor, the second-weight score, and the server-side data corresponding to the existing device fingerprint on the server, thereby generating a similarity score.
[0109] The device fingerprint determination unit 405 is configured to determine the output device fingerprint based on the matching result data and the similarity score.
[0110] In some embodiments, the device fingerprint determination unit 405 is further configured to: if the matching result data corresponds to a successful match, output a first device fingerprint in response to a similarity score greater than a preset threshold; generate a second device fingerprint based on a second level factor and a second weight score in response to a similarity score less than a preset threshold, and output the second device fingerprint; if the matching result data corresponds to an unsuccessful match, execute a retrieval process for the first device fingerprint on the server side in response to a similarity score greater than a preset threshold, and output the retrieved first device fingerprint; output the first device fingerprint in response to a similarity score less than a preset threshold.
[0111] In some embodiments, the device fingerprint generation unit 402 is further configured to: match a preset list of factors with first-level factors, set a first weight score for the first-level factors that are not matched, and generate a first device fingerprint based on the first-level factors that are not matched and the corresponding first weight scores.
[0112] In some embodiments, the score generation unit 404 is further configured to: perform similarity calculation between the second level factor and the second weight score and the server data corresponding to the existing device fingerprint on the server to obtain a similarity score.
[0113] In some embodiments, the device fingerprint generation unit 402 is further configured to: calculate the corresponding first device fingerprint using a combined hash function based on each factor in the first level factors and the first weight score corresponding to each factor.
[0114] In some embodiments, the device fingerprint generation apparatus further includes Figure 4 The sending unit, not shown, is configured to store the output device fingerprint on the server and send it to the client.
[0115] It should be noted that the device fingerprint generation method and device fingerprint generation device in this application are related in terms of specific implementation content, so the repeated content will not be described again.
[0116] Figure 5 An exemplary system architecture 500 is shown that can be applied to the device fingerprint generation method or device fingerprint generation apparatus of the embodiments of this application.
[0117] like Figure 5 As shown, system architecture 500 may include terminal devices 501, 502, and 503, a network 504, and a server 505. Network 504 serves as the medium for providing communication links between terminal devices 501, 502, and 503 and server 505. Network 504 may include various connection types, such as wired or wireless communication links, or fiber optic cables, etc.
[0118] Users can use terminal devices 501, 502, and 503 to interact with server 505 via network 504 to receive or send messages, etc. Various communication client applications can be installed on terminal devices 501, 502, and 503, such as shopping applications, web browser applications, search applications, instant messaging tools, email clients, social media platform software, etc. (for example only).
[0119] Terminal devices 501, 502, and 503 can be various electronic devices with a device fingerprint generation and processing screen that supports web browsing, including but not limited to smartphones, tablets, laptops, and desktop computers.
[0120] Server 505 can be a server providing various services, such as a backend management server supporting device fingerprint generation requests submitted by users using terminal devices 501, 502, and 503 (this is just an example). The backend management server can receive device fingerprint generation requests, obtain the first-level factor and second-level factor corresponding to the device; generate a first device fingerprint based on the first-level factor and first weight score; match the first device fingerprint with a preset fingerprint list; in response to a successful match, generate a second device fingerprint based on the second-level factor and second weight score, and output the second device fingerprint; in response to an unsuccessful match, match the first device fingerprint with existing device fingerprints on the server, thereby obtaining matching result data; perform a comparison process based on the second-level factor, second weight score, and server-side data corresponding to existing device fingerprints on the server, thereby generating a similarity score; and determine the output device fingerprint based on the matching result data and the similarity score. This improves the uniqueness and stability of the generated device fingerprints and reduces the interference and obstacles that device fingerprints may cause to the implementation of business risk control strategies.
[0121] It should be noted that the device fingerprint generation method provided in this application embodiment is generally executed by server 505, and correspondingly, the device fingerprint generation device is generally set in server 505.
[0122] It should be understood that Figure 5 The number of terminal devices, networks, and servers shown is merely illustrative. Depending on implementation needs, any number of terminal devices, networks, and servers can be included.
[0123] The following is for reference. Figure 6 It shows a schematic diagram of the structure of a computer system 600 suitable for implementing a terminal device according to the embodiments of this application. Figure 6 The terminal device shown is merely an example and should not impose any limitations on the functionality and scope of use of the embodiments of this application.
[0124] like Figure 6 As shown, the computer system 600 includes a central processing unit (CPU) 601, which can perform various appropriate actions and processes based on programs stored in read-only memory (ROM) 602 or programs loaded from storage section 608 into random access memory (RAM) 603. The RAM 603 also stores various programs and data required for the operation of the computer system 600. The CPU 601, ROM 602, and RAM 603 are interconnected via a bus 604. An input / output (I / O) interface 605 is also connected to the bus 604.
[0125] The following components are connected to I / O interface 605: an input section 606 including a keyboard, mouse, etc.; an output section 607 including a cathode ray tube (CRT), liquid crystal display (LCD), etc., and speakers, etc.; a storage section 608 including a hard disk, etc.; and a communication section 609 including a network interface card such as a LAN card, modem, etc. The communication section 609 performs communication processing via a network such as the Internet. A drive 610 is also connected to I / O interface 605 as needed. A removable medium 611, such as a disk, optical disk, magneto-optical disk, semiconductor memory, etc., is installed on drive 610 as needed so that computer programs read from it can be installed into storage section 608 as needed.
[0126] Specifically, according to the embodiments disclosed in this application, the processes described above with reference to the flowcharts can be implemented as computer software programs. For example, embodiments disclosed in this application include a computer program product comprising a computer program carried on a computer-readable medium, the computer program containing program code for performing the methods shown in the flowcharts. In such embodiments, the computer program can be downloaded and installed from a network via communication section 609, and / or installed from removable medium 611. When the computer program is executed by central processing unit (CPU) 601, it performs the functions defined above in the system of this application.
[0127] It should be noted that the computer-readable medium shown in this application can be a computer-readable signal medium or a computer-readable storage medium, or any combination of the two. Computer-readable storage media can be, for example, an electrical, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any combination thereof. More specific examples of computer-readable storage media may include, but are not limited to: electrical connections having one or more wires, portable computer disks, hard disks, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), optical fiber, portable compact disk read-only memory (CD-ROM), optical storage devices, magnetic storage devices, or any suitable combination thereof. In this application, a computer-readable storage medium can be any tangible medium containing or storing a program that can be used by or in conjunction with an instruction execution system, apparatus, or device. In this application, a computer-readable signal medium can include a data signal propagated in baseband or as part of a carrier wave, carrying computer-readable program code. Such propagated data signals can take various forms, including but not limited to electromagnetic signals, optical signals, or any suitable combination thereof. Computer-readable signal media can also be any computer-readable medium other than computer-readable storage media, which can send, propagate, or transmit a program for use by or in connection with an instruction execution system, apparatus, or device. The program code contained on the computer-readable medium can be transmitted using any suitable medium, including but not limited to: wireless, wire, optical fiber, RF, etc., or any suitable combination thereof.
[0128] The flowcharts and block diagrams in the accompanying drawings illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of this application. In this regard, each block in a flowchart or block diagram may represent a module, segment, or portion of code containing one or more executable instructions for implementing a specified logical function. It should also be noted that in some alternative implementations, the functions indicated in the blocks may occur in a different order than those indicated in the drawings. For example, two consecutively indicated blocks may actually be executed substantially in parallel, and they may sometimes be executed in reverse order, depending on the functions involved. It should also be noted that each block in a block diagram or flowchart, and combinations of blocks in a block diagram or flowchart, may be implemented using a dedicated hardware-based system that performs the specified function or operation, or using a combination of dedicated hardware and computer instructions.
[0129] The units described in the embodiments of this application can be implemented in software or hardware. The described units can also be housed in a processor; for example, a processor may be described as including a receiving unit, a device fingerprint generation unit, a matching unit, a score generation unit, and a device fingerprint determination unit. The names of these units do not necessarily limit the specific unit itself.
[0130] In another aspect, this application also provides a computer-readable medium, which may be included in the device described in the above embodiments; or it may exist independently and not assembled into the device. The computer-readable medium carries one or more programs, which, when executed by the device, cause the device to receive a device fingerprint generation request, obtain a first-level factor and a second-level factor corresponding to the device; generate a first device fingerprint based on the first-level factor and a first weight score; match the first device fingerprint with a preset fingerprint list; in response to a successful match, generate a second device fingerprint based on the second-level factor and the second weight score, and output the second device fingerprint; in response to an unsuccessful match, match the first device fingerprint with existing device fingerprints on the server, thereby obtaining matching result data; perform a comparison process based on the second-level factor, the second weight score, and server data corresponding to existing device fingerprints on the server, thereby generating a similarity score; and determine the output device fingerprint based on the matching result data and the similarity score.
[0131] The computer program product of this application includes a computer program that, when executed by a processor, implements the device fingerprint generation method in the embodiments of this application.
[0132] According to the technical solution of the embodiments of this application, the uniqueness and stability of the generated device fingerprint can be improved, and the interference and obstacles brought by the device fingerprint to the implementation of business risk control strategies can be reduced.
[0133] The specific embodiments described above do not constitute a limitation on the scope of protection of this application. Those skilled in the art should understand that various modifications, combinations, sub-combinations, and substitutions can occur depending on design requirements and other factors. Any modifications, equivalent substitutions, and improvements made within the spirit and principles of this application should be included within the scope of protection of this application.
Claims
1. A method for generating a device fingerprint, characterized in that, include: Receive a device fingerprint generation request and obtain the first-level factor and second-level factor corresponding to the device. A first device fingerprint is generated based on the first level factor and the first weight score; The first device fingerprint is matched with a preset fingerprint list. In response to a successful match, a second device fingerprint is generated based on the second level factor and the second weight score, and the second device fingerprint is output. In response to a failed match, the first device fingerprint is matched with an existing device fingerprint on the server to obtain the matching result data. A comparison process is performed based on the second-level factor, the second weight score, and the server-side data corresponding to the existing device fingerprints on the server, thereby generating a similarity score; Based on the matching result data and the similarity score, the output device fingerprint is determined.
2. The method according to claim 1, characterized in that, The step of determining the output device fingerprint based on the matching result data and the similarity score includes: If the matching result data corresponds to a successful match, in response to the similarity score being greater than a preset threshold, the first device fingerprint is output; in response to the similarity score being less than a preset threshold, a second device fingerprint is generated based on the second level factor and the second weight score, and the second device fingerprint is output. If the matching result data corresponds to an unsuccessful match, in response to the similarity score being greater than a preset threshold, the server executes a process to retrieve the fingerprint of the first device and outputs the retrieved fingerprint of the first device; in response to the similarity score being less than a preset threshold, the server outputs the fingerprint of the first device.
3. The method according to claim 1, characterized in that, The generation of the first device fingerprint includes: The preset list of factors is matched with the first level factors, and a first weight score is set for the first level factors that do not match. A first device fingerprint is generated based on the unmatched first-level factors and the corresponding first weight score.
4. The method according to claim 1, characterized in that, The process of performing a comparison based on the second-level factor, the second weight score, and the server-side data corresponding to the existing device fingerprint on the server, thereby generating a similarity score, includes: The similarity score is calculated by comparing the second-level factor and the second-weight score with the server data corresponding to the existing device fingerprint on the server.
5. The method according to claim 1, characterized in that, The step of generating a first device fingerprint based on the first level factor and the first weight score includes: Based on each factor in the first level of factors and the first weight score corresponding to each factor, the corresponding first device fingerprint is calculated using a combined hash function.
6. The method according to any one of claims 1 to 5, characterized in that, The method further includes: The output device fingerprint is stored on the server and sent to the client.
7. A device fingerprint generation apparatus, characterized in that, include: The receiving unit is configured to receive a device fingerprint generation request and obtain the first-level factor and the second-level factor corresponding to the device. The device fingerprint generation unit is configured to generate a first device fingerprint based on the first level factor and the first weight score; The matching unit is configured to match the first device fingerprint with a preset fingerprint list, and in response to a successful match, generate a second device fingerprint based on the second level factor and the second weight score, and output the second device fingerprint. In response to a failed match, the first device fingerprint is matched with an existing device fingerprint on the server to obtain the matching result data. The score generation unit is configured to perform a comparison process based on the second-level factor, the second-weight score, and the server data corresponding to the existing device fingerprint on the server, thereby generating a similarity score; The device fingerprint determination unit is configured to determine the output device fingerprint based on the matching result data and the similarity score.
8. The apparatus according to claim 7, characterized in that, The device fingerprint determination unit is further configured to: If the matching result data corresponds to a successful match, in response to the similarity score being greater than a preset threshold, the first device fingerprint is output; in response to the similarity score being less than a preset threshold, a second device fingerprint is generated based on the second level factor and the second weight score, and the second device fingerprint is output. If the matching result data corresponds to an unsuccessful match, in response to the similarity score being greater than a preset threshold, the server executes a process to retrieve the fingerprint of the first device and outputs the retrieved fingerprint of the first device; in response to the similarity score being less than a preset threshold, the server outputs the fingerprint of the first device.
9. The apparatus according to claim 7, characterized in that, The device fingerprint generation unit is further configured to: The preset list of factors is matched with the first level factors, and a first weight score is set for the first level factors that do not match. A first device fingerprint is generated based on the unmatched first-level factors and the corresponding first weight score.
10. The apparatus according to claim 7, characterized in that, The score generation unit is further configured to: The similarity score is calculated by comparing the second-level factor and the second-weight score with the server data corresponding to the existing device fingerprint on the server.
11. The apparatus according to claim 7, characterized in that, The device fingerprint generation unit is further configured to: Based on each factor in the first level of factors and the first weight score corresponding to each factor, the corresponding first device fingerprint is calculated using a combined hash function.
12. The apparatus according to any one of claims 7 to 11, characterized in that, The device also includes a sending unit, configured to: The output device fingerprint is stored on the server and sent to the client.
13. An electronic device for generating device fingerprints, characterized in that, include: One or more processors; Storage device for storing one or more programs. When the one or more programs are executed by the one or more processors, the one or more processors implement the method as described in any one of claims 1-6.
14. A computer-readable medium having a computer program stored thereon, characterized in that, When the program is executed by the processor, it implements the method as described in any one of claims 1-6.
15. A computer program product, comprising a computer program, characterized in that, When the computer program is executed by a processor, it implements the method as described in any one of claims 1-6.
Citation Information
Patent Citations
Equipment fingerprint generation method and device, equipment and storage medium
CN111478986A
Data processing method and device and medium
CN111666596A