A method for generating browser fingerprint, a method and device for identifying browser
By executing preset files and animation files in the terminal device, and using binary classification algorithms and SM3 algorithms to generate browser fingerprints, the problems of complex operations and low accuracy in the existing technology are solved, and high accuracy and safe browsing are achieved device recognition.
Patent Information
- Application Number
- CN202111616219.0
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2021-12-27
- Publication Date
- 2024-12-27
- Estimated Expiration
- 2041-12-27
AI Technical Summary
Existing browser fingerprint technology requires continuous increase in browser feature values, which are complex in operation and affect accuracy and security, making it difficult to effectively identify the browser to ensure the security of user information.
By executing preset files and animation files in the terminal device, a browser fingerprint based on interface call information and frame rate is generated using a binary classification algorithm and an SM3 algorithm, simplifying operations and improving accuracy and security.
There is no need to add additional browser recognition information, it is simple to operate, distinguish browsers based on multiple angles, improves the accuracy and security of browser fingerprints, and can identify different browsers from the software and hardware level.
Smart Images

Figure CN114385949B_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to the field of browser technology, and in particular to a method for generating a browser fingerprint, and a method and device for identifying a browser. Background Art
[0002] When authenticating a browser client, token and cookie hijacking and the use of different proxies may occur, which threatens the security of the user account. Therefore, browser fingerprinting technology can be used to identify the browser and ensure the security of user information at the browser level.
[0003] "Browser fingerprinting" is a method of tracking web browsers through the configuration and setting information visible to websites. It has individual identification and can identify browsers through browser fingerprints. In related technologies, the value obtained by obtaining identifiable information of the browser and performing relevant calculations is the browser fingerprint. Identifiable information can be, for example, UA (User-Agent), time zone, geographic location, or language used.
[0004] However, this method requires continuous increase of browser feature values to achieve this, which is complex to operate, and the selected identification information directly affects the accuracy and security of the browser fingerprint. Summary of the invention
[0005] In an exemplary embodiment of the present invention, a method for generating a browser fingerprint, a method and an apparatus for identifying a browser are provided, which do not require browser recognition information, are simple to operate, and have high accuracy and security in determining the fingerprint of the browser.
[0006] According to a first aspect of an exemplary implementation, a method for generating a browser fingerprint is provided, which is applied to a terminal device, wherein at least one browser is configured in the terminal device, and the method comprises:
[0007] Determine the interface call information of each browser according to the execution result of the at least one browser on the preset file from the server; and determine the frame rate set corresponding to each browser according to the execution result of the at least one browser on the animation file with different parameters from the server;
[0008] For each browser, based on the interface call information of the browser, a binary classification algorithm is applied to determine the first fingerprint information of the browser; wherein the first fingerprint information is a set of interface call status indicators of the browser;
[0009] For each browser, determine the second fingerprint information of the browser according to the probability of each frame rate in the frame rate set corresponding to the browser; wherein the second fingerprint information is the target frame rate range set corresponding to the browser;
[0010] For each browser, a browser fingerprint is generated according to the first fingerprint information and the second fingerprint information of the browser.
[0011] In some exemplary embodiments, generating a browser fingerprint according to the first fingerprint information and the second fingerprint information of the browser includes:
[0012] The first fingerprint information and the second fingerprint information are processed using the SM3 algorithm to generate a browser fingerprint.
[0013] In some exemplary implementations, the determining the first fingerprint information of the browser by applying a binary classification algorithm based on the interface call information of the browser includes:
[0014] Based on the interface call information of the browser, applying a binary classification algorithm to determine at least one first-category call status indicator and at least one second-category call status indicator of the interface call status indicators of the browser;
[0015] Determine that the interface call status indicator set of the browser consisting of the at least one first-category call status indicator and the at least one second-category call status indicator is the first fingerprint information.
[0016] In some exemplary embodiments, determining the second fingerprint information of the browser according to the probability of each frame rate in the frame rate set corresponding to the browser includes:
[0017] Determine the probability of each frame rate in the frame rate set corresponding to the browser;
[0018] Determine a first frame rate set consisting of at least one frame rate with the greatest probability;
[0019] Taking the intersection of the preset frame rate set and the first frame rate set to obtain a second frame rate set;
[0020] Applying a mean algorithm to process the second frame rate set to obtain at least one frame rate threshold;
[0021] For each frame rate threshold, determining a target frame rate range corresponding to the frame rate threshold according to the frame rate threshold and a preset frame rate gradient;
[0022] A target frame rate range set consisting of the target frame rate ranges is determined as the second fingerprint information.
[0023] In some exemplary embodiments, before applying the binary classification algorithm to determine the first fingerprint information of the browser, the method further includes:
[0024] A preset encryption algorithm is applied to encrypt the interface call information of the browser.
[0025] In some exemplary embodiments, the interface call information includes the compatibility status of the browser with different performance indicators.
[0026] According to a second aspect of an exemplary implementation, a method for identifying a browser is provided, the method being applied to a server and comprising:
[0027] Determine at least two browser fingerprints stored in the server; wherein each browser fingerprint is determined based on the method described in the first aspect;
[0028] For any two browsers, match the two browser fingerprints and determine the matching result;
[0029] If the match is successful, it is determined that the operating environments of the two browsers are the same and are configured on the same terminal device;
[0030] If the match fails, and the first fingerprint information of the two browser fingerprints is the same and the second fingerprint information is different, it is determined that the operating environments of the two browsers are the same and are configured on different terminal devices;
[0031] If the match fails, and the first fingerprint information of the two browser fingerprints is different and the second fingerprint information is the same, it is determined that the operating environments of the two browsers are different and are configured on the same terminal device.
[0032] In some exemplary embodiments, the operating environment includes a browser type and a browser version.
[0033] According to a third aspect of an exemplary implementation, there is provided a device for generating a browser fingerprint, which is integrated in a terminal device, wherein at least one browser is configured in the terminal device, and the device comprises:
[0034] A file execution module, configured to determine the interface call information of each browser according to the execution result of the at least one browser on the preset file from the server; and to determine the frame rate set corresponding to each browser according to the execution result of the at least one browser on the animation file with different parameters from the server;
[0035] A first information determination module, configured to determine, for each browser, first fingerprint information of the browser based on the interface call information of the browser by applying a binary classification algorithm; wherein the first fingerprint information is a set of interface call status indicators of the browser;
[0036] A second information determination module is used to determine, for each browser, second fingerprint information of the browser according to the probability of each frame rate in the frame rate set corresponding to the browser; wherein the second fingerprint information is a target frame rate range set corresponding to the browser;
[0037] The fingerprint generation module is used to generate a browser fingerprint for each browser according to the first fingerprint information and the second fingerprint information of the browser.
[0038] In some exemplary embodiments, the fingerprint generation module is specifically used to:
[0039] The first fingerprint information and the second fingerprint information are processed using the SM3 algorithm to generate a browser fingerprint.
[0040] In some exemplary embodiments, the first information determination module is specifically configured to:
[0041] Based on the interface call information of the browser, applying a binary classification algorithm to determine at least one first-category call status indicator and at least one second-category call status indicator of the interface call status indicators of the browser;
[0042] Determine that the interface call status indicator set of the browser consisting of the at least one first-category call status indicator and the at least one second-category call status indicator is the first fingerprint information.
[0043] In some exemplary embodiments, the second information determination module is specifically configured to:
[0044] Determine the probability of each frame rate in the frame rate set corresponding to the browser;
[0045] Determine a first frame rate set consisting of at least one frame rate with the greatest probability;
[0046] Taking the intersection of the preset frame rate set and the first frame rate set to obtain a second frame rate set;
[0047] Applying a mean algorithm to process the second frame rate set to obtain at least one frame rate threshold;
[0048] For each frame rate threshold, determining a target frame rate range corresponding to the frame rate threshold according to the frame rate threshold and a preset frame rate gradient;
[0049] A target frame rate range set consisting of the target frame rate ranges is determined as the second fingerprint information.
[0050] In some exemplary embodiments, an encryption module is further included, which is used to apply a preset encryption algorithm to encrypt the interface call information of the browser before applying the binary classification algorithm to determine the first fingerprint information of the browser.
[0051] In some exemplary embodiments, the interface call information includes the compatibility status of the browser with different performance indicators.
[0052] According to a fourth aspect of the exemplary implementation, there is provided a device for identifying a browser, the device being integrated in the server, comprising:
[0053] A fingerprint determination module, used to determine at least two browser fingerprints stored in the server; wherein each browser fingerprint is determined based on the apparatus described in the third aspect;
[0054] The matching module is used to match the two browser fingerprints for any two browsers and determine the matching result; the matching module is specifically used to:
[0055] If the match is successful, it is determined that the operating environments of the two browsers are the same and are configured on the same terminal device;
[0056] If the match fails, and the first fingerprint information of the two browser fingerprints is the same and the second fingerprint information is different, it is determined that the operating environments of the two browsers are the same and are configured on different terminal devices;
[0057] If the match fails, and the first fingerprint information of the two browser fingerprints is different and the second fingerprint information is the same, it is determined that the operating environments of the two browsers are different and are configured on the same terminal device.
[0058] In some exemplary embodiments, the operating environment includes a browser type and a browser version.
[0059] According to a fifth aspect of an exemplary implementation, a terminal device is provided, comprising a memory, a processor, and a computer program stored in the memory and executable on the processor, wherein the processor implements the steps of the method for generating a browser fingerprint as described in the first aspect when executing the computer program.
[0060] According to a sixth aspect of an exemplary implementation, a server is provided, comprising a memory, a processor, and a computer program stored in the memory and executable on the processor, wherein the processor implements the steps of the method for identifying a browser described in the second aspect when executing the computer program.
[0061] According to a seventh aspect of the exemplary implementation, a computer storage medium is provided, wherein the computer storage medium stores computer program instructions, and when the instructions are executed on a computer, the computer executes the method described in the first aspect or the second aspect.
[0062] According to the eighth aspect of the exemplary implementation, a computer program product is provided, which includes a computer program stored in a computer-readable storage medium, and at least one processor of the device reads and executes the computer program from the computer-readable storage medium, so that the device performs the method shown in any one of the embodiments of the first aspect or the second aspect.
[0063] The embodiments of the present application have the following beneficial effects:
[0064] Since the same type and the same version of browsers have the same interface call information after executing the preset file, for each browser, based on the interface call information of the browser, a binary classification algorithm is applied to determine the interface call state indicator set of the browser, and the set is used as the first fingerprint information, so that each browser can be distinguished from the perspective of the browser interface call. In addition, the frame rate obtained after the browser executes the animation file is related to the hardware configuration of the terminal device where the browser is located. Therefore, according to the probability of each frame rate in the frame rate set corresponding to the browser, the target frame rate range set corresponding to the browser is determined, and the set is used as the second fingerprint information, so that each browser can be distinguished from the perspective of the terminal device where the browser is located. Finally, the first fingerprint information and the second fingerprint information of each browser are used to generate the browser fingerprint of the browser. In this way, the browser fingerprint obtained based on the version, model and hardware performance difference of the terminal where the browser is located does not need to add additional browser recognition information, the operation is simple, and from multiple perspectives, the accuracy and security of the browser fingerprint obtained are higher. BRIEF DESCRIPTION OF THE DRAWINGS
[0065] In order to more clearly illustrate the technical solutions in the embodiments of the present invention, the drawings required for use in the description of the embodiments will be briefly introduced below. Obviously, the drawings described below are only some embodiments of the present invention. For ordinary technicians in this field, other drawings can be obtained based on these drawings without paying creative labor.
[0066] Figure 1 An application scenario diagram of a method for generating a browser fingerprint provided by an embodiment of the present invention is exemplarily shown;
[0067] Figure 2 The following is a flowchart of a method for generating a browser fingerprint provided by an embodiment of the present invention;
[0068] Figure 3 The following is a flowchart of a method for generating second fingerprint information provided by an embodiment of the present invention;
[0069] Figure 4 A signaling flow chart for generating a browser fingerprint provided by an embodiment of the present invention is exemplarily shown;
[0070] Figure 5 A flowchart of a method for identifying a browser provided by an embodiment of the present invention is exemplified;
[0071] Figure 6 The following is a schematic diagram showing the structure of a device for generating a browser fingerprint provided by an embodiment of the present invention;
[0072] Figure 7 The following is a schematic diagram showing the structure of a device for identifying a browser provided by an embodiment of the present invention;
[0073] Figure 8 The following is a schematic diagram showing the structure of a terminal device provided by an embodiment of the present invention;
[0074] Fig. 9 A schematic diagram of the structure of a server provided by an embodiment of the present invention is exemplarily shown. DETAILED DESCRIPTION
[0075] The following will be combined with the accompanying drawings to clearly and thoroughly describe the technical solutions in the embodiments of the present application. In the description of the embodiments of the present application, unless otherwise specified, " / " means or, for example, A / B can mean A or B; "and / or" in the text is only a description of the association relationship of the associated objects, indicating that there can be three relationships, for example, A and / or B can mean: A exists alone, A and B exist at the same time, and B exists alone. In addition, in the description of the embodiments of the present application, "multiple" means two or more than two.
[0076] In the following, the terms "first" and "second" are used for descriptive purposes only and are not to be understood as suggesting or implying relative importance or implicitly indicating the number of the indicated technical features. Thus, a feature defined as "first" or "second" may explicitly or implicitly include one or more of the features, and in the description of the embodiments of the present application, unless otherwise specified, "plurality" means two or more.
[0077] (1) API (Application Programming Interface) refers to some predefined interfaces (such as functions, HTTP interfaces), or the agreements that connect different components of a software system. It is used to provide a set of routines that applications and developers can access based on certain software or hardware without having to access the source code or understand the details of the internal working mechanism. For the sake of convenience, "application programming interface" is referred to as "interface" below.
[0078] In practice, when authenticating a browser client, token and cookie hijacking and the use of different proxies may occur, which threatens the security of the user account. To this end, browser fingerprinting technology can be used to identify the browser, thereby ensuring the security of user information at the browser level.
[0079] "Browser fingerprinting" is a method of tracking web browsers through the configuration and setting information visible to websites. It has individual identification and can identify browsers through browser fingerprints. In related technologies, the value obtained by obtaining identifiable information of the browser and performing relevant calculations is the browser fingerprint. Identifiable information can be, for example, UA (User-Agent), time zone, geographic location, or language used.
[0080] However, this method requires continuously increasing the feature value of the browser to be implemented, which is complicated to operate, and the selected identification information directly affects the accuracy of the browser fingerprint.
[0081] To this end, the embodiment of the present application provides a method for generating browser fingerprints that is simple to operate, highly accurate and highly secure. Specifically, considering that a terminal device (such as a computer) can install different types of browsers, such as IE11 and Google 2021, the interfaces of the same type and version of browsers are the same when the user does not change the browser settings. In addition, the CPU (Central Processing Unit), GPU (Graphics Processing Unit) and other hardware of each device determine the overall computing power of the device, and the frame drop of dynamic animation is related to the CPU, GPU and other hardware of the device, which can be used to distinguish different devices. Therefore, from these two perspectives, the browser fingerprint proposed in this application consists of two parts (first fingerprint information and second fingerprint information), wherein the first fingerprint information is determined according to the interface call information obtained after the browser executes the preset file, and the second fingerprint call information is determined according to the probability of obtaining each frame rate after the browser executes the animation file. The browser fingerprint obtained in this way simplifies the operation on the one hand, and also covers the associated information at the software and hardware levels on the other hand, which is more accurate and secure.
[0082] After introducing the design ideas of the embodiments of the present application, the following briefly introduces the application scenarios to which the technical solutions of the embodiments of the present application can be applied. It should be noted that the application scenarios introduced below are only used to illustrate the embodiments of the present application and are not limited. In specific implementation, the technical solutions provided by the embodiments of the present application can be flexibly applied according to actual needs.
[0083] refer to Figure 1 , which is a schematic diagram of an application scenario of a method for generating a browser fingerprint provided in an embodiment of the present application. The application scenario includes multiple terminal devices 101 (including terminal device 101-1, terminal device 101-2, ... terminal device 101-n) and a server 102. Among them, the terminal device 101 and the server 102 are connected via a wireless or wired network, and the terminal device 101 includes but is not limited to electronic devices such as desktop computers, mobile phones, mobile computers, tablet computers, media players, smart wearable devices, smart TVs, etc. The server 102 can be a server, a server cluster composed of several servers, or a cloud computing center. The server 102 can be an independent physical server, or a server cluster or distributed system composed of multiple physical servers, or a cloud server that provides basic cloud computing services such as cloud services, cloud databases, cloud computing, cloud functions, cloud storage, network services, cloud communications, middleware services, domain name services, security services, CDN, and big data and artificial intelligence platforms.
[0084] Taking terminal device 101-1 as an example, server 102 sends preset files and animation files to terminal device 101-1, and each browser in terminal device 101-1 executes the preset files to obtain the interface call information of the browser; each browser in terminal device 101-1 executes the animation files to obtain the frame rate set corresponding to the browser. For each browser, based on the interface call information of the browser, a binary classification algorithm is applied to determine the first fingerprint information of the browser; the first fingerprint information is a set of interface call status indicators of the browser; the second fingerprint information of the browser is determined according to the probability of each frame rate in the frame rate set corresponding to the browser; the second fingerprint information is a set of target frame rate ranges corresponding to the browser; the browser fingerprint is generated according to the first fingerprint information and the second fingerprint information of the browser. Finally, each browser can upload its own browser fingerprint to server 102 through the terminal so that server 102 can identify each browser fingerprint.
[0085] In addition, it should be noted that the terminal device may also send the first fingerprint information and the second fingerprint information to the server, and the server synthesizes the two information to generate a browser fingerprint. This is just an example and does not constitute a limitation.
[0086] Of course, the method provided in the embodiment of the present application is not limited to Figure 1 The application scenarios shown can also be used in other possible application scenarios, and the embodiments of the present application are not limited thereto. Figure 1 The functions that can be implemented by each device in the application scenario shown will be described in the subsequent method embodiments, and will not be described in detail here.
[0087] To further illustrate the technical solution provided by the embodiment of the present application, this is described in detail below in conjunction with the accompanying drawings and specific implementation methods. Although the embodiment of the present application provides the method operation steps shown in the following embodiments or drawings, more or fewer operation steps may be included in the method based on routine or no creative labor. In the steps where there is no necessary causal relationship logically, the execution order of these steps is not limited to the execution order provided in the embodiment of the present application.
[0088] Combine the following Figure 1 The application scenario shown illustrates the technical solution provided by the embodiment of the present application.
[0089] refer to Figure 2 The present application embodiment provides a method for generating a browser fingerprint, comprising the following steps:
[0090] S201. Determine the interface call information of each browser according to the execution result of at least one browser on a preset file from a server; and determine the frame rate set corresponding to each browser according to the execution result of at least one browser on an animation file with different parameters from a server.
[0091] S202: For each browser, based on the interface call information of the browser, a binary classification algorithm is applied to determine the first fingerprint information of the browser; wherein the first fingerprint information is a set of interface call status indicators of the browser.
[0092] S203. For each browser, determine the second fingerprint information of the browser according to the probability of each frame rate in the frame rate set corresponding to the browser; wherein the second fingerprint information is the target frame rate range set corresponding to the browser.
[0093] S204: For each browser, generate a browser fingerprint according to the first fingerprint information and the second fingerprint information of the browser.
[0094] Since the interface call information of browsers of the same type and the same version is the same after executing the preset file, for each browser, based on the interface call information of the browser, a binary classification algorithm is applied to determine the interface call state indicator set of the browser, and the set is used as the first fingerprint information, so that each browser can be distinguished from the perspective of the browser interface call. In addition, the frame rate obtained after the browser executes the animation file is related to the hardware configuration of the terminal device where the browser is located. Therefore, the target frame rate range set corresponding to the browser is determined according to the probability of each frame rate in the frame rate set corresponding to the browser, and the set is used as the second fingerprint information, so that each browser can be distinguished from the perspective of the terminal device where the browser is located. Finally, the first fingerprint information and the second fingerprint information of each browser are used to generate the browser fingerprint of the browser. In this way, the browser fingerprint obtained based on the version, model and hardware performance difference of the browser terminal where the browser is located does not need to add additional browser recognition information, the operation is simple, and from multiple perspectives, the accuracy and security of the browser fingerprint obtained are higher.
[0095] In S201, for example, a terminal device is configured with two browsers, IE11 and Google 2021. The server sends the preset file and the animation file to the terminal device. The sending process can be sent by the server periodically or after receiving the request of the terminal device. Among them, the preset file can be an animation type file or other types of files, as long as it can provide an interface call function for the browser, and the preset file and the animation file can be the same or different.
[0096] In this way, after the terminal device receives the preset file sent by the server, it executes the preset file through the browser, obtains the execution results of each browser, and then determines the interface call information of each browser. Exemplarily, the interface call information includes the browser's compatibility status with different performance indicators, such as the support for 2D animation or games, or the support for 3D animation or games. In addition, after receiving the animation file sent by the server, the terminal device adjusts the parameters of the animation file and executes the animation file under different parameters to obtain multiple frame rates. In this way, a frame rate set will be obtained for each browser. In the actual application process, multiple frame rates can also be obtained by sending multiple different animation files to the server, but the method of changing the parameters of the same animation file to obtain multiple frame rates is simple to operate.
[0097] S202 is involved, which is the process of determining the first fingerprint information. Since the method of determining the first fingerprint information is the same for each browser, it is described below using one browser as an example. Based on the interface call information of the browser, a binary classification algorithm is applied to determine the interface call status indicator set of the browser, and then the interface call status indicator set of the browser is used as the first fingerprint information.
[0098] In addition, in order to improve data security and avoid plain text acquisition being simulated and tampered, before applying the binary classification algorithm to determine the first fingerprint information of the browser, a preset encryption algorithm can be applied to encrypt the browser interface call information. The preset encryption algorithm can be an encryption algorithm in the relevant technology, which will not be described here.
[0099] Specifically, based on the interface call information of the browser, a binary classification algorithm is applied to determine at least one first-category call status indicator and at least one second-category call status indicator among the interface call status indicators of the browser; and a set of interface call status indicators of the browser consisting of at least one first-category call status indicator and at least one second-category call status indicator is determined as the first fingerprint information.
[0100] Among them, the first type of call status indicator, such as support, is represented by 1, and the second type of call status indicator, such as no support, is represented by 0. In the case where the interface call information is the support method for 2D animation or games, such as support, then the interface call status indicator of the browser in this dimension is determined to be the first type of call status indicator of 1; in the case where the interface call information is the support method for 3D animation or games, such as no support, then the interface call status indicator of the browser in this dimension is determined to be the second type of call status indicator. So, in this example, the determined browser interface call status indicator set is {1, 0}, which is used as the first fingerprint information. In the actual application process, there are other support situations, and 2D and 3D are used here just as examples for illustration.
[0101] In the actual application process, the browser's interface call status indicators change iteratively with different browser versions. For browsers of the same type and the same version, a binary classification algorithm is applied to obtain an LR (logistic regression) binary classification model. The implementation process of the binary classification method is illustrated by an example:
[0102] 1 = canvas.fillRect (first classification judgment)
[0103] 1 = CanvasRenderingContext2D.shadowBlur (second classification judgment)
[0104] 0 = canvas.createImageData (third classification judgment)
[0105] In this example, the first fingerprint information obtained is {1, 1, 0}. In actual application, multiple judgment processes may be included. The binary classification process does not need to use the browser information plain text, which can prevent tampering and cracking.
[0106] S203 is involved, which is the process of determining the second fingerprint information. Since each browser determines the first fingerprint information in the same way, one browser is used as an example for explanation. The second fingerprint information of the browser is determined according to the probability of each frame rate in the frame rate set corresponding to the browser; the second fingerprint information is the target frame rate range set corresponding to the browser.
[0107] Specifically, refer to Figure 3 The process of determining the second fingerprint information is described below.
[0108] S301: Determine a first frame rate set consisting of at least one frame rate with the highest probability.
[0109] Since the parameters of the animation file are adjusted, the animation file corresponding to each parameter can obtain a frame rate. In a specific example, the number of objects in the animation file corresponding to the first parameter is 100, the number of objects in the animation file corresponding to the second parameter is 200, the number of objects in the animation file corresponding to the third parameter is 500, and so on.
[0110] Exemplarily, the probability of each frame rate can be determined according to the Bayesian formula. Then, the frame rate with the highest probability is determined. In actual application, the frame rate corresponding to the highest probability may be one or more. Therefore, the set consisting of at least one frame rate with the highest probability is called the first frame rate set. In a specific example, the first frame rate set is represented by A, for example, A = {1, 6, 7, 9, 27, 28, 29, 53, 55, 56, 57, 59}.
[0111] S302: Take the intersection of the preset frame rate set and the first frame rate set to obtain a second frame rate set.
[0112] The preset frame rate set may be, for example, first determining a constant threshold frame rate, such as 60fps, and then determining the preset frame rate set B = {0, 1, 2, 3, ..., 59, 60} from 1fps to 60fps, with the interval between any two frame rates being 1fps. Then, the intersection is determined as the second frame rate set C = {1, 6, 7, 9, 27, 28, 29, 53, 55, 56, 57, 59}.
[0113] S303, apply the mean algorithm to process the second frame rate set to obtain at least one frame rate threshold. In order to improve accuracy, the second frame rate set can be first processed to remove abnormal data. The second frame rate set is still taken as the above set C. In this specific example, the abnormal data is 1fps in set C, so 1 in set C is removed to obtain C1 = {6, 7, 9, 27, 28, 29, 53, 55, 56, 57, 59}.
[0114] Then, a mean algorithm is applied to the processed second frame rate set to obtain at least one frame rate. For example, the mean algorithm is a K-means algorithm. In a specific example, if the number of clusters k is 3, the frame rate thresholds obtained are 56fps, 28fps and 7fps.
[0115] S304 . For each frame rate threshold, determine a target frame rate range corresponding to the frame rate threshold according to the frame rate threshold and a preset frame rate gradient.
[0116] The preset frame rate threshold gradient is 5fps. For example, when the frame rate threshold is 56fps, the target frame rate range of 56fps is determined to be 55fps to 60fps; the target frame rate range of 28fps is determined to be 25fps to 30fps; and the target frame rate range of 7fps is determined to be 5fps to 10fps. In this way, three target frame rate ranges can be obtained.
[0117] S305: Determine a target frame rate range set consisting of various target frame rate ranges as second fingerprint information.
[0118] As in the above example, the second fingerprint information is determined to be a target frame rate range set {55-60, 25-30, 5-10}. In this way, according to the process of executing the animation file under different parameters, the frame drop situation of the browser is obtained (different parameters, different frame rates), and the frame drop situation is related to the hardware and the whole system situation.
[0119] It should be noted that the unit of the numerical value of each element in the above set is fps, but for convenience, not all of them are shown.
[0120] In this way, for each browser, the first fingerprint information and the second fingerprint information are determined.
[0121] In S204, for each browser, a browser fingerprint is generated according to the first fingerprint information and the second fingerprint information of the browser. Specifically, the first fingerprint information and the second fingerprint information are processed using the domestic hash algorithm SM3 to generate the browser fingerprint.
[0122] In order to make the technical solution of the present application easier to understand, a terminal device 101-1 is taken as an example. Figure 4 A signaling flow chart for generating a browser fingerprint is shown. Figure 4 At least the following steps are included:
[0123] S401. The server sends a preset file and an animation file to a terminal device.
[0124] S402. The terminal device determines the interface call information of each browser according to the execution result of the preset file by at least one browser; and determines the frame rate set corresponding to each browser according to the execution result of the animation file with different parameters by at least one browser.
[0125] S403: For each browser, the terminal device applies a binary classification algorithm based on the interface call information of the browser to determine the first fingerprint information of the browser; wherein the first fingerprint information is a set of interface call status indicators of the browser.
[0126] S404. For each browser, the terminal device determines second fingerprint information of the browser according to the probability of each frame rate in the frame rate set corresponding to the browser; wherein the second fingerprint information is a target frame rate range set corresponding to the browser.
[0127] S405: For each browser, the terminal device generates a browser fingerprint according to the first fingerprint information and the second fingerprint information of the browser.
[0128] S406: The terminal device sends the browser fingerprint of each browser to the server.
[0129] As described above, for a terminal device, the process of generating the browser fingerprint of each configured browser reduces the error caused by the modification of the browser proxy text version. If there are other terminal devices, the method of generating the browser fingerprint is the same as the above method. In addition, in the actual application process, each terminal device can upload its own browser fingerprint to the server for identification by the server, so as to determine the type and version of the browser and the hardware status of the configured terminal device through the difference of the browser fingerprint.
[0130] Next, refer to Figure 5 , a flowchart of a method for identifying a browser is proposed:
[0131] S501. Determine at least two browser fingerprints stored in a server; wherein each browser fingerprint is determined based on a method for generating a browser fingerprint.
[0132] S502: For any two browsers, match two browser fingerprints and determine the matching result.
[0133] Since the essence of the matching process of more than two browser fingerprints is also the matching process of two browser fingerprints, in the embodiment of the present application, the fingerprint matching process of two browsers is used for explanation.
[0134] S5031. If the match is successful, it is determined that the operating environments of the two browsers are the same and are configured on the same terminal device.
[0135] In the first case, if the match is successful, it means that the first fingerprint information and the second fingerprint information in the browser fingerprint are matched successfully. Since the first fingerprint information is determined according to the browser interface call information when the browser fingerprint is generated, if the first fingerprint information is matched successfully, it can be determined that the operating environment of the two browsers is the same; the second fingerprint information is determined according to the frame rate during the execution of the animation file, and the frame rate is determined by the hardware of the terminal device, if the second fingerprint information is matched successfully, it can be determined that the two browsers are configured as the same terminal device.
[0136] Exemplarily, the operating environment includes the browser type and the browser version.
[0137] S5032: If the match fails, and the first fingerprint information in the two browser fingerprints is the same and the second fingerprint information is different, it is determined that the operating environments of the two browsers are the same and are configured on different terminal devices.
[0138] In the second case, the match fails, and the first fingerprint information in the two browser fingerprints is the same and the second fingerprint information is different. From the description of the first case, it can be determined that in this case the operating environments of the two browsers are the same and are configured on different terminal devices.
[0139] S5033. If the match fails, and the first fingerprint information in the two browser fingerprints is different and the second fingerprint information is the same, it is determined that the operating environments of the two browsers are different and are configured on the same terminal device.
[0140] In the second case, the match fails, and the first fingerprint information in the two browser fingerprints is different and the second fingerprint information is the same. From the description of the first case, it can be known that in this case, the operating environments of the two browsers are different and are configured on the same terminal device.
[0141] In the embodiment of the present application, the browser fingerprint determined by the aforementioned method is applied to improve the fingerprint matching degree of different browsers when identifying multiple fingerprints. It can not only identify that the versions or models of browsers in the same terminal device are different, but also identify whether multiple browsers belong to the same terminal device.
[0142] In addition, it should be noted that the above matching process is described using the server as an example. In actual application, the terminal device can also implement the matching process. However, the terminal device can only process the recognition result of the first fingerprint information in the browser fingerprint to determine whether the operating environment of the browsers corresponding to any two browser fingerprints is the same. As for whether the two browsers belong to the same terminal device, the server still needs to judge.
[0143] In summary, whether it is different models or different versions of browsers in the same terminal device, or multiple browsers in different terminal devices, the method in the embodiment of the present application can be applied to generate browser fingerprints and identify each browser. Therefore, the method in the embodiment of the present application can achieve cross-browser identification.
[0144] In general, the method for identifying a browser in the embodiment of the present application can be applied to scenarios such as user secure login and login anti-interception, especially for users who require binding to a fixed terminal device for execution; it can also be applied to operations or interception scenarios in other specific scenarios. By dynamically collecting the hardware frame rate, the security of users using the browser and the ability to identify browsers in different terminal devices are guaranteed. The judgment dimension is increased to improve the accuracy and security of cross-browser recognition.
[0145] like Figure 6 As shown, based on the same inventive concept, an embodiment of the present invention provides a device for generating a browser fingerprint, which is integrated in a terminal device. At least one browser is configured in the terminal device. The device includes a file execution module 61, a first information determination module 62, a second information determination module 63 and a fingerprint generation module 64.
[0146] The file execution module 61 is used to determine the interface call information of each browser according to the execution result of at least one browser on the preset file from the server; and determine the frame rate set corresponding to each browser according to the execution result of at least one browser on the animation file with different parameters from the server;
[0147] The first information determination module 62 is used to determine the first fingerprint information of each browser based on the interface call information of the browser by applying a binary classification algorithm; wherein the first fingerprint information is a set of interface call status indicators of the browser;
[0148] The second information determination module 63 is used to determine the second fingerprint information of the browser according to the probability of each frame rate in the frame rate set corresponding to the browser for each browser; wherein the second fingerprint information is the target frame rate range set corresponding to the browser;
[0149] The fingerprint generating module 64 is used to generate a browser fingerprint for each browser according to the first fingerprint information and the second fingerprint information of the browser.
[0150] In some exemplary embodiments, the fingerprint generation module 64 is specifically used to:
[0151] The first fingerprint information and the second fingerprint information are processed using the SM3 algorithm to generate a browser fingerprint.
[0152] In some exemplary implementations, the first information determination module 62 is specifically configured to:
[0153] Based on the interface call information of the browser, a binary classification algorithm is applied to determine at least one first-category call status indicator and at least one second-category call status indicator of the interface call status indicators of the browser;
[0154] A browser interface call status indicator set consisting of at least one first-type call status indicator and at least one second-type call status indicator is determined as first fingerprint information.
[0155] In some exemplary implementations, the second information determination module 63 is specifically configured to:
[0156] Determine the probability of each frame rate in the frame rate set corresponding to the browser;
[0157] Determine a first frame rate set consisting of at least one frame rate with the greatest probability;
[0158] Taking the intersection of the preset frame rate set and the first frame rate set to obtain a second frame rate set;
[0159] Applying a mean algorithm to process the second frame rate set to obtain at least one frame rate threshold;
[0160] For each frame rate threshold, determining a target frame rate range corresponding to the frame rate threshold according to the frame rate threshold and a preset frame rate gradient;
[0161] A target frame rate range set consisting of the target frame rate ranges is determined as the second fingerprint information.
[0162] In some exemplary embodiments, an encryption module is further included, which is used to encrypt the interface call information of the browser by applying a preset encryption algorithm before applying the binary classification algorithm to determine the first fingerprint information of the browser.
[0163] In some exemplary implementations, the interface call information includes the browser's compatibility status with respect to different performance indicators.
[0164] Since the device is the device in the method in the embodiment of the present invention, and the principle of solving the problem by the device is similar to that of the method, the implementation of the device can refer to the implementation of the method, and the repeated parts will not be repeated.
[0165] like Figure 7 As shown, based on the same inventive concept, an embodiment of the present invention provides a device for identifying a browser, which is integrated in a server and includes a fingerprint determination module 71 and a matching module 72 .
[0166] A fingerprint determination module 71, used to determine at least two browser fingerprints stored in the server; wherein each browser fingerprint is determined based on the apparatus of the third aspect;
[0167] The matching module 72 is used to match two browser fingerprints for any two browsers and determine the matching result; the matching module 72 is specifically used to:
[0168] If the match is successful, it is determined that the operating environments of the two browsers are the same and are configured on the same terminal device;
[0169] If the match fails, and the first fingerprint information in the two browser fingerprints is the same and the second fingerprint information is different, it is determined that the operating environments of the two browsers are the same and are configured on different terminal devices;
[0170] If the match fails, and the first fingerprint information in the two browser fingerprints is different and the second fingerprint information is the same, it is determined that the operating environments of the two browsers are different and are configured on the same terminal device.
[0171] In some exemplary embodiments, the operating environment includes a browser type and a browser version.
[0172] Since the device is the device in the method in the embodiment of the present invention, and the principle of solving the problem by the device is similar to that of the method, the implementation of the device can refer to the implementation of the method, and the repeated parts will not be repeated.
[0173] Based on the same inventive concept as the above-mentioned method for generating a browser fingerprint, the embodiment of the present application also provides a terminal device, which can be a control device or control system inside a smart device, or an external device that communicates with the smart device, such as a desktop computer, a portable computer, a smart phone, a tablet computer, a personal digital assistant (PDA), etc. Figure 8 As shown, the terminal device may include a processor 81 and a memory 82 .
[0174] The processor 81 may be a general-purpose processor, such as a central processing unit (CPU), a digital signal processor (DSP), an application-specific integrated circuit (ASIC), a field programmable gate array (FPGA) or other programmable logic devices, discrete gates or transistor logic devices, discrete hardware components, and may implement or execute the methods, steps and logic block diagrams disclosed in the embodiments of the present application. A general-purpose processor may be a microprocessor or any conventional processor, etc. The steps of the method disclosed in the embodiments of the present application may be directly embodied as being executed by a hardware processor, or may be executed by a combination of hardware and software modules in the processor.
[0175] The memory 82 is a non-volatile computer-readable storage medium that can be used to store non-volatile software programs, non-volatile computer executable programs and modules. The memory may include at least one type of storage medium, such as flash memory, hard disk, multimedia card, card-type memory, random access memory (Random Access Memory, RAM), static random access memory (Static Random Access Memory, SRAM), programmable read-only memory (Programmable Read Only Memory, PROM), read-only memory (Read Only Memory, ROM), electrically erasable programmable read-only memory (Electrically Erasable Programmable Read-Only Memory, EEPROM), magnetic memory, disk, optical disk, etc. The memory is any other medium that can be used to carry or store the desired program code in the form of instructions or data structures and can be accessed by a computer, but is not limited thereto. The memory 82 in the embodiment of the present application can also be a circuit or any other device that can realize a storage function, used to store program instructions and / or data.
[0176] Based on the same inventive concept as the above-mentioned method for identifying a browser, the embodiment of the present application further provides a server, which can be a cloud server or a local server. Fig. 9 As shown, the terminal device may include a processor 91 and a memory 92 .
[0177] The processor 91 may be a general-purpose processor, such as a central processing unit (CPU), a digital signal processor (DSP), an application-specific integrated circuit (ASIC), a field programmable gate array (FPGA) or other programmable logic devices, discrete gates or transistor logic devices, discrete hardware components, and may implement or execute the methods, steps and logic block diagrams disclosed in the embodiments of the present application. A general-purpose processor may be a microprocessor or any conventional processor, etc. The steps of the method disclosed in the embodiments of the present application may be directly embodied as being executed by a hardware processor, or may be executed by a combination of hardware and software modules in the processor.
[0178] The memory 92 is a non-volatile computer-readable storage medium that can be used to store non-volatile software programs, non-volatile computer executable programs and modules. The memory may include at least one type of storage medium, such as flash memory, hard disk, multimedia card, card-type memory, random access memory (Random Access Memory, RAM), static random access memory (Static Random Access Memory, SRAM), programmable read-only memory (Programmable Read Only Memory, PROM), read-only memory (Read Only Memory, ROM), electrically erasable programmable read-only memory (Electrically Erasable Programmable Read-Only Memory, EEPROM), magnetic memory, disk, optical disk, etc. The memory is any other medium that can be used to carry or store the desired program code in the form of instructions or data structures and can be accessed by a computer, but is not limited thereto. The memory 92 in the embodiment of the present application can also be a circuit or any other device that can realize a storage function, used to store program instructions and / or data.
[0179] A person of ordinary skill in the art can understand that: all or part of the steps of implementing the above method embodiments can be completed by hardware related to program instructions, and the aforementioned program can be stored in a computer-readable storage medium. When the program is executed, it executes the steps of the above method embodiments; the above computer storage medium can be any available medium or data storage device that can be accessed by a computer, including but not limited to: mobile storage devices, random access memory (RAM, Random Access Memory), magnetic storage (such as floppy disks, hard disks, magnetic tapes, magneto-optical disks (MO)), optical storage (such as CD, DVD, BD, HVD, etc.), and semiconductor storage (such as ROM, EPROM, EEPROM, non-volatile memory (NAND FLASH), solid-state drive (SSD)) and other media that can store program codes.
[0180] Alternatively, if the above-mentioned integrated unit of the present application is implemented in the form of a software function module and sold or used as an independent product, it can also be stored in a computer-readable storage medium. Based on such an understanding, the technical solution of the embodiment of the present application is essentially or the part that contributes to the prior art can be embodied in the form of a software product, which is stored in a storage medium, including several instructions to enable a computer device (which can be a personal computer, a server, or a network device, etc.) to execute all or part of the methods of each embodiment of the present application. The aforementioned storage medium includes: a mobile storage device, a random access memory (RAM, Random Access Memory), a magnetic storage device (such as a floppy disk, a hard disk, a magnetic tape, a magneto-optical disk (MO), etc.), an optical storage device (such as CD, DVD, BD, HVD, etc.), and a semiconductor memory (such as ROM, EPROM, EEPROM, non-volatile memory (NAND FLASH), a solid-state drive (SSD)) and other various media that can store program codes.
[0181] In some possible implementations, various aspects of the method provided by the present disclosure may also be implemented in the form of a program product, which includes a program code. When the program product is run on a computer device, the program code is used to enable the computer device to execute the steps of the method according to various exemplary embodiments of the present disclosure described above in this specification. For example, the computer device may execute the transaction information processing method recorded in the embodiment of the present disclosure. The program product may adopt any combination of one or more readable media.
[0182] The above embodiments are only used to introduce the technical solutions of the present application in detail, but the description of the above embodiments is only used to help understand the methods of the embodiments of the present application and should not be understood as limiting the embodiments of the present application. Any changes or substitutions that can be easily thought of by technicians in this technical field should be included in the protection scope of the embodiments of the present application.
Claims
1. A method for generating a browser fingerprint, characterized in that: Applied to a terminal device, wherein at least one browser is configured in the terminal device, including: Determine the interface call information of each browser according to the execution result of the at least one browser on the preset file from the server; and determine the frame rate set corresponding to each browser according to the execution result of the at least one browser on the animation file with different parameters from the server; For each browser, based on the interface call information of the browser, a binary classification algorithm is applied to determine the first fingerprint information of the browser; wherein the first fingerprint information is a set of interface call status indicators of the browser; For each browser, determine the second fingerprint information of the browser according to the probability of each frame rate in the frame rate set corresponding to the browser; wherein the second fingerprint information is the target frame rate range set corresponding to the browser; For each browser, a browser fingerprint is generated according to the first fingerprint information and the second fingerprint information of the browser.
2. The method according to claim 1, characterized in that The step of generating a browser fingerprint according to the first fingerprint information and the second fingerprint information of the browser includes: The first fingerprint information and the second fingerprint information are processed using the SM3 algorithm to generate a browser fingerprint.
3. The method according to claim 1, characterized in that The step of applying a binary classification algorithm based on the interface call information of the browser to determine the first fingerprint information of the browser includes: Based on the interface call information of the browser, applying a binary classification algorithm to determine at least one first-category call status indicator and at least one second-category call status indicator of the interface call status indicators of the browser; Determine that the interface call status indicator set of the browser consisting of the at least one first-category call status indicator and the at least one second-category call status indicator is the first fingerprint information.
4. The method according to claim 1, characterized in that: The determining the second fingerprint information of the browser according to the probability of each frame rate in the frame rate set corresponding to the browser includes: Determine the probability of each frame rate in the frame rate set corresponding to the browser; Determine a first frame rate set consisting of at least one frame rate with the greatest probability; Taking the intersection of the preset frame rate set and the first frame rate set to obtain a second frame rate set; Applying a mean algorithm to process the second frame rate set to obtain at least one frame rate threshold; For each frame rate threshold, determining a target frame rate range corresponding to the frame rate threshold according to the frame rate threshold and a preset frame rate gradient; A target frame rate range set consisting of the target frame rate ranges is determined as the second fingerprint information.
5. The method according to claim 1, characterized in that: Before applying the binary classification algorithm to determine the first fingerprint information of the browser, the method further includes: A preset encryption algorithm is applied to encrypt the interface call information of the browser.
6. The method according to any one of claims 1 to 5, characterized in that: The interface call information includes the compatibility status of the browser with different performance indicators.
7. A method for identifying a browser, characterized in that: Applicable to servers, including: Determine at least two browser fingerprints stored in the server; wherein each browser fingerprint is determined based on the method according to any one of claims 1 to 6; For any two browsers, match the two browser fingerprints and determine the matching result; If the match is successful, it is determined that the operating environments of the two browsers are the same and are configured on the same terminal device; If the match fails, and the first fingerprint information of the two browser fingerprints is the same and the second fingerprint information is different, it is determined that the operating environments of the two browsers are the same and are configured on different terminal devices; If the match fails, and the first fingerprint information of the two browser fingerprints is different and the second fingerprint information is the same, it is determined that the operating environments of the two browsers are different and are configured on the same terminal device.
8. The method according to claim 7, characterized in that The operating environment includes the browser type and browser version.
9. A device for generating a browser fingerprint, characterized in that: Integrated in a terminal device, wherein at least one browser is configured in the terminal device, the device comprises: A file execution module, configured to determine the interface call information of each browser according to the execution result of the at least one browser on the preset file from the server; and to determine the frame rate set corresponding to each browser according to the execution result of the at least one browser on the animation file with different parameters from the server; A first information determination module, configured to determine, for each browser, first fingerprint information of the browser based on the interface call information of the browser by applying a binary classification algorithm; wherein the first fingerprint information is a set of interface call status indicators of the browser; A second information determination module is used to determine, for each browser, second fingerprint information of the browser according to the probability of each frame rate in the frame rate set corresponding to the browser; wherein the second fingerprint information is a target frame rate range set corresponding to the browser; The fingerprint generation module is used to generate a browser fingerprint for each browser according to the first fingerprint information and the second fingerprint information of the browser.
10. A device for identifying a browser, characterized in that: Integrated in the server, including: A fingerprint determination module, configured to determine at least two browser fingerprints stored in the server; wherein each browser fingerprint is determined based on the apparatus of claim 9; The matching module is used to match the two browser fingerprints for any two browsers and determine the matching result; the matching module is specifically used to: If the match is successful, it is determined that the operating environments of the two browsers are the same and are configured on the same terminal device; If the match fails, and the first fingerprint information of the two browser fingerprints is the same and the second fingerprint information is different, it is determined that the operating environments of the two browsers are the same and are configured on different terminal devices; If the match fails, and the first fingerprint information of the two browser fingerprints is different and the second fingerprint information is the same, it is determined that the operating environments of the two browsers are different and are configured on the same terminal device.
11. A terminal device, comprising a memory, a processor, and a computer program stored in the memory and executable on the processor, characterized in that: When the processor executes the computer program, the steps of the method for generating a browser fingerprint according to any one of claims 1 to 6 are implemented.
12. A server comprising a memory, a processor and a computer program stored in the memory and executable on the processor, characterized in that: When the processor executes the computer program, the steps of the method for identifying a browser according to any one of claims 7 to 8 are implemented.
13. A computer-readable storage medium having computer program instructions stored thereon, characterized in that: When the computer program instructions are executed by a processor, the steps of the method described in any one of claims 1 to 8 are implemented.
14. A computer program product comprising a computer program, characterized in that When the computer program is executed by a processor, the steps of the method according to any one of claims 1 to 8 are implemented.
Citation Information
Patent Citations
Verification method, system and device for validity of multimedia contents
CN101296148A
Networking with media fingerprints
CN102216945A
