Information processing method and recording medium

By dividing the application into a main program and a license processing section, and obfuscating the license processing section, the problem of easy forgery of the license activation function is solved, achieving effective prevention of unauthorized use and enhanced security.

CN114402318BActive Publication Date: 2026-08-04SONY GROUP CORP
View PDF 2 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
SONY GROUP CORP
Filing Date
2020-09-04
Publication Date
2026-08-04

AI Technical Summary

Technical Problem

In existing technologies, paid functions activated by licenses are easily forged or tampered with, leading to unauthorized use and making it difficult to effectively prevent unauthorized access.

Method used

The application is divided into a main program and a license processing section. Only the license processing section is obfuscated, and the execution of the license authentication control function is used to ensure that paid features are only allowed when the license is valid.

Benefits of technology

It effectively prevents unauthorized use of paid features, reduces the decrease in development efficiency and execution speed, and improves security, making it difficult to forge authentication results to bypass license verification.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN114402318B_ABST
    Figure CN114402318B_ABST
Patent Text Reader

Abstract

This technology relates to information processing methods and recording media, each of which allows the prohibition of unauthorized use of license-activated functions. A first program causes a computer to execute a license-activated function; a second program, in response to instructions from the first program, performs license authentication, at least a portion of the second program is obfuscated, executes a portion of the function if the license is valid, and causes the computer to perform processing in which the execution result of the portion of the function is output to the first program. This technology can be applied, for example, to license-activated applications.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This technology relates to information processing methods and recording media, and more particularly to information processing methods and recording media in which unauthorized use of functions activated by a license is prohibited. Background Technology

[0002] Traditionally, techniques have been proposed in which a shared key is provided to the user for decrypting an application that provides functionality activated by a license (hereinafter referred to as the application), and this shared key is obfuscated by using various pieces of information related to the username and validity period (e.g., see Patent Document 1).

[0003] Reference List

[0004] Patent documents

[0005] Patent Document 1: Japanese Patent Application Publication No. 2018-180854 Summary of the Invention

[0006] The problem to be solved by the present invention

[0007] However, in the invention disclosed in Patent Document 1, the aforementioned functions may be used in an unauthorized manner through methods such as forging decrypted applications.

[0008] In view of the above, this technology was designed, and this technology allows the unauthorized use of functions activated by the license to be prohibited.

[0009] Problem Solution

[0010] The first aspect of this technology, an information processing method, includes: a first program causing a computer to perform a function activated by a license; and a second program performing license authentication in response to an instruction from the first program, wherein at least a portion of the second program is obfuscated, the second program performing a portion of the function if the license is valid, and the second program causing the computer to perform processing in which the execution result of the portion of the function is output to the first program.

[0011] The second aspect of this technology involves a recording medium storing a program comprising: a first program that causes a computer to perform a function activated by a license; and a second program that performs license authentication in response to instructions from the first program, wherein at least a portion of the second program is obfuscated, performs a portion of the function if the license is valid, and causes the computer to perform processing in which the execution result of the portion of the function is output to the first program.

[0012] In either the first or second aspect of this technology, a computer executes a function activated by a license through a first program; and a license authentication is performed by instructions from the first program through a second program that is at least partially obfuscated, a portion of the function is executed if the license is valid, and a process in which the computer outputs the execution result of a portion of the function to the first program. Attached Figure Description

[0013] Figure 1 This is a diagram showing an example of application configuration.

[0014] Figure 2 This is a block diagram illustrating an information processing system applying the present technology according to the first embodiment.

[0015] Figure 3 This is a diagram showing an example of PC configuration.

[0016] Figure 4 This is a diagram illustrating a configuration example of an application using this technology.

[0017] Figure 5 It is a flowchart used to illustrate the execution of a specific process.

[0018] Figure 6 This is a block diagram illustrating an information processing system applying the present technology according to a second embodiment.

[0019] Figure 7 This is a diagram illustrating an example of the infringement detection method of this technology. Detailed Implementation

[0020] In the following text, embodiments for implementing this technology will be described. The descriptions will be given in the following order.

[0021] 1. Issues regarding countermeasures for unauthorized use of paid features

[0022] 2. First Embodiment

[0023] 3. Second Embodiment

[0024] 4. Example of this technology infringement detection method

[0025] 5. Variations

[0026] 6. Other

[0027] <<1. Issues Regarding Countermeasures for Unauthorized Use of Paid Features>>

[0028] First, we will describe the issues related to countermeasures against unauthorized use of paid features activated by a license.

[0029] First, a brief example of the activation process for paid features will be described.

[0030] For example, the server includes an installation key for installing licenses that activate paid features, and transmits a signature generated using a private key to a personal computer (PC).

[0031] The PC verifies the signature using the public key paired with the private key. If verification is successful, it installs the license using the installation key. Then, with the license valid, it enables the execution of the application that implements the paid features. The PC executes the application, thereby allowing the user to use the paid features.

[0032] Note that a valid license is defined as, for example, a legal and valid license installed on the PC. Conversely, an invalid license is defined as, for example, a legal and valid license not installed on the PC. More specifically, invalid licenses include, for example, a license not being installed, an invalid license being installed, or a license expiring.

[0033] Here, for example, the public key is forged into an attacker's key, and the application is made executable with a forged license, which could then allow paid features to be used in an unauthorized manner.

[0034] Additionally, for example, the application may be tampered with, rendering the license authentication function invalid, and the application may still be executable even when the license is invalid, thereby potentially allowing the use of paid features in an unauthorized manner.

[0035] For example, to address this issue, consider obfuscating and protecting the application. Application obfuscation involves manipulating the application's code to make it difficult for humans to understand.

[0036] Here, programming languages ​​used for application development include machine language type languages, intermediate language type languages, scripting languages, etc.

[0037] Machine-typed languages ​​are programming languages ​​that are distributed in a state where the application is translated into machine language. Typical examples of machine-typed languages ​​include C, C++, Objective-C, and Delphi.

[0038] When developing applications using machine language type languages, advanced obfuscation is possible because the distributed applications are described in machine language.

[0039] Intermediate language type languages ​​are programming languages ​​that are distributed in an intermediate language state and then converted into machine language at execution time. Typical examples of intermediate language type languages ​​include Java (registered trademark) and C#.

[0040] When developing applications using intermediate language types, the applications are typically distributed in a format that is easy to translate into machine language. Therefore, advanced obfuscation is difficult.

[0041] Scripting languages ​​are a general term for simplified programming languages, most of which are interpreted languages. Typical examples of scripting languages ​​include JavaScript (registered trademark) and Python.

[0042] When developing applications using scripting languages, advanced obfuscation is difficult due to the standards and conventions of those languages.

[0043] As mentioned above, depending on the programming language used to develop the application, there will be differences in the level of obfuscation that the programming language can handle.

[0044] Furthermore, when attempting to obfuscate the entire application, the programming languages ​​available are limited, or all developers need to learn obfuscation techniques and rules and perform the obfuscation work themselves. Therefore, the burden on developers increases, and development efficiency decreases. In addition, the execution speed may be drastically reduced due to the additional code added throughout the application.

[0045] To solve this problem, for example, such as Figure 1 As shown, consider dividing application 11 into main program 21 and license processing part 22, and only obfuscate license processing part 22.

[0046] In response to the instructions issued by the main program 21, the license processing section 22 performs license authentication and outputs the authentication result indicating whether the license is valid to the main program 21.

[0047] When the license is valid, the main program 21 allows the PC to perform payment functions. On the other hand, when the license is invalid, the main program 21 prohibits the PC from performing payment functions.

[0048] In this case, since the license processing section 22 is a small-scale program, the aforementioned reduction in development efficiency and execution speed is suppressed.

[0049] However, in such cases, for example, when a forgery is performed in the interface section with the license processing section 22 of the main program 21 to rewrite the authentication result of the license so that its authentication result is always valid, the paid function may be used in an unauthorized manner, regardless of whether the license is invalid.

[0050] <<2. First Embodiment>>

[0051] Next, refer to Figures 2 to 4 The first embodiment of this technology will be described below.

[0052] <Configuration Example of Information Processing System 101>

[0053] Figure 2 An example of the configuration of an information processing system 101 to which this technology is applied is described.

[0054] The information processing system 101 includes a server 111, a PC 112, a camera 113, and a network 121. The server 111 and the PC 112 are connected to each other via the network 121 and communicate with each other.

[0055] The server 111 issues a license for a paid function to be executed on the PC 112 and sends license information for installing the issued license to the PC 112 via the network 121.

[0056] Note that the method for providing the license from the server 111 to the PC 112 is not particularly important as long as the method can provide the license securely.

[0057] The PC 112 installs the license provided from the server 111 and then executes a predetermined application, thereby executing a predetermined paid function. For example, the PC 112 converts high-definition (HD) image data supplied from the camera 113 into 4K image data and executes functions such as editing.

[0058] The camera 113 supplies the HD image data obtained as an imaging result to the PC 112.

[0059] <Configuration Example of PC 112>

[0060] Figure 3 It is a block diagram illustrating an example of the configuration of the PC 112.

[0061] In the PC 112, a central processing unit (CPU) 201, a read-only memory (ROM) 202, and a random access memory (RAM) 203 are interconnected via a bus 204.

[0062] An input / output interface 205 is further connected to the bus 204. An input section 206, an output section 207, a recording section 208, a communication section 209, and a drive 210 are connected to the input / output interface 205.

[0063] The input section 206 includes input switches, buttons, image sensors, etc.

[0064] The output section 207 includes a display, a speaker, etc.

[0065] The recording section 208 includes a hard disk, a non-volatile memory, etc.

[0066] The communication section 209 includes a network interface, etc.

[0067] Drive 210 to drive disks, optical discs, magneto-optical discs, or removable media such as semiconductor memory. 211.

[0068] In the PC 112 configured as described above, the CPU 201 loads a program (e.g., an application that implements payment functions) recorded in the recording section 208 into the RAM 203 via the input / output interface 205 and the bus 204 and executes the program to perform a series of processes.

[0069] For example, a program that can be executed by the PC 112 (CPU 201) can be provided by recording the program in a removable medium 211, such as a packaging medium. Alternatively, the program can be provided via a wired or wireless transmission medium (such as a local area network, the Internet, or digital satellite broadcasting).

[0070] In PC 112, by installing removable media 211 onto driver 210, a program can be installed in recording section 208 via input / output interface 205. Alternatively, the program can be received by communication section 209 and installed in recording section 208 via wired or wireless transmission media. Furthermore, the program can be pre-installed in ROM 202 or recording section 208.

[0071] <Application Configuration Example>

[0072] Figure 4 This diagram illustrates a configuration example of an application 301 (hereinafter referred to as application 301) that implements paid functions when application 301 is executed by the CPU 201 of PC 112. Paid functions include, for example, the ability to convert HD image data to 4K image data and perform editing.

[0073] Application 301 includes the main program 311 and the license processing library 312.

[0074] The main program 311 is a program that implements the payment function and includes a payment function execution section 321. The payment function execution section 321 is a program that causes the CPU 201 to execute the payment function, and is, for example, a pre-defined function.

[0075] The license processing library 312 is a library that includes a license authentication function that implements the paid function and a part of the paid function (hereinafter referred to as specific processing). Specific processing is, for example, the process of converting image data in HD to 4K image data. The license processing library 312 includes a license processing section 331 and a specific processing execution section 332.

[0076] The license processing section 331 is a program that enables the CPU 201 to perform license authentication for paid functions, and is, for example, a pre-defined function. The license processing section 331 executes according to the instructions of the paid function execution section 321 and outputs the license authentication result to the paid function execution section 321. Additionally, the license processing section 331 instructs the specific processing execution section 332 to perform a specific process as needed, obtains the execution result of the specific process from the specific processing execution section 332, and outputs the execution result of the specific process to the paid function execution section 321.

[0077] The specific processing execution unit 332 is a program that causes the CPU 201 to execute a specific process and is, for example, a predetermined function. The specific processing execution unit 332 is executed according to the instructions of the paid function execution unit 321 and outputs the execution result of the specific process to the license processing unit 331.

[0078] The license processing section 331 and the specific processing execution section 332 are confused to prevent unauthorized use of paid functions. Therefore, preferably, the license processing section 331 and the specific processing execution section 332 are developed in a machine language type language and described in machine language.

[0079] Note that if the license processing section 331 and the specific processing execution section 332 are obfuscated at the machine language stage, the license processing section 331 and the specific processing execution section 332 can be obfuscated before or after being converted to machine language. Alternatively, for example, obfuscation can be performed manually by the developer, or it can be performed automatically using obfuscating software.

[0080] On the other hand, the main program 311 is not obfuscated. Therefore, compared with the license processing section 331 and the specific processing execution section 332, there are almost no restrictions on the types of programming languages ​​used to develop the main program 311 and the languages ​​used to describe the main program 311.

[0081] <Specific processing execution>

[0082] Next, refer to Figure 5 The flowchart in the document will describe the specific processing implemented when PC 12 executes application 301.

[0083] Note that in the description given below, although CPU 201, which actually executes application 301, performs various processes, for ease of description, it is described that various parts of application 301 (e.g., the paid function execution part 321) execute various processes.

[0084] In step S1, the payment function execution section 321 issues an instruction to perform a specific process. For example, by invoking the license processing section 331, the payment function execution section 321 instructs the license processing section 331 to perform a specific process.

[0085] In step S2, the license processing unit 331 performs license authentication. In other words, the license processing unit 331 confirms whether the license for the paid function is valid.

[0086] In step S3, based on the processing result in step S2, the license processing section 331 determines whether the license is valid. If the license is determined to be valid, the process proceeds to step S4.

[0087] In step S4, the specific processing execution section 332 performs the specific processing. For example, by invoking the specific processing execution section 332, the license processing section 331 instructs the specific processing execution section 332 to perform the specific processing. The specific processing execution section 332 performs the specific processing.

[0088] In step S5, the license processing unit 331 outputs the execution result of the specific process. Specifically, the specific process execution unit 332 returns the execution result of the specific process to the license processing unit 331 (outputting its execution result to the license processing unit 331).

[0089] The license processing section 331 returns the execution result of the specific process obtained from the specific processing execution section 332 to the paid function execution section 321 (outputting its execution result to the paid function execution section 321). Note that at this time, the license processing section 331 may also return the license authentication result together with it to the paid function execution section 321.

[0090] After this, the specific processing execution ends.

[0091] On the other hand, in step S3, if it is determined that the license is invalid, the process proceeds to step S6.

[0092] In step S6, the license processing unit 331 notifies the license that it is invalid. Specifically, the license processing unit 331 returns an authentication result indicating that the license is invalid to the payment function execution unit 321, thereby notifying the license that it is invalid.

[0093] Note that, for example, the license processing section 331 can notify of execution errors for specific processes, rather than notifying that the license is invalid.

[0094] After this, the specific processing execution ends.

[0095] As stated above, unauthorized use of paid features is prohibited regardless of whether the license is invalid.

[0096] In other words, because the license processing section 331 and the paid function execution section 321 are confused, it is difficult to forge in a way that allows specific processing to be performed while the license is invalid.

[0097] Additionally, for example, as referenced above. Figure 1 As stated above, even if the authentication result of the license output from the license processing section 331 is forged, the execution result of the specific processing cannot be obtained. As a result, the payment function cannot function properly.

[0098] For example, in the example above, it is impossible to obtain image data that converts HD image data to 4K image data, and it is impossible to edit 4K image data, etc.

[0099] Furthermore, since only a portion of application 11 is obfuscated, the aforementioned reduction in development efficiency and execution speed can be prevented.

[0100] <<3. Second Embodiment>>

[0101] Next, refer to Figure 6 The second embodiment of this technology will be described below.

[0102] <Configuration Example of Information Processing System 401>

[0103] Figure 6 This document illustrates a configuration example of an information processing system 401 applying this technology. Note that... Figure 6 In, with Figure 2 The parts corresponding to the information processing system 101 in the figure are indicated by the same reference numerals, and their descriptions will be omitted as appropriate.

[0104] The difference between information processing system 401 and information processing system 101 is that, instead of camera 113, camera 411 is provided and CCU (camera control unit) 412 is added.

[0105] Camera 411 captures images under the control of CCU 412 and supplies the acquired image data to CCU 412.

[0106] The CCU 412 performs functions such as controlling the camera 411, accumulating and transmitting image data.

[0107] For example, by executing a pre-defined application, PC 112 performs a pre-defined paid function. This paid function is, for example, the function of manipulating image data accumulated in CCU 412 using a graphical user interface (GUI).

[0108] This application has the same characteristics as the above. Figure 4The configuration of application 301 is similar to that in the example. For example, the specific processing execution section 332 enables PC 112 to perform communication functions with CCU 412.

[0109] Therefore, communication between PC 112 and CCU 412 cannot be performed when the license is invalid, and as a result, image data accumulated from PC 112 to CCU 412 cannot be manipulated.

[0110] <<4. Examples of Technological Infringement Detection Methods>>

[0111] Figure 7 An example dump table is shown, in which a dynamic link library (DLL) used for license processing of paid functions is dumped. For example, if the dump table includes functions that perform paid functions, this technology is likely to be infringed.

[0112] Therefore, for example, by dumping the library used for license processing of paid functions, there may be instances where infringement of this technology can be detected.

[0113] <<5. Variations>>

[0114] In the following text, variations of the above embodiments of the present technology will be described.

[0115] <Variations related to confusion>

[0116] The obfuscation level and method of the license processing section 331 and the specific processing execution section 332 are set based on, for example, the required security level, processing speed, etc.

[0117] Alternatively, for example, to the extent that security can be sufficiently ensured, only a portion of each of the license processing section 331 and the specific processing execution section 332 may be obfuscated. Alternatively, a portion or all of the license processing section 331 may be obfuscated, while the specific processing execution section 332 may not be obfuscated.

[0118] Furthermore, to the extent that security can be adequately ensured, for example, the license processing section 331 and the specific processing execution section 332 may be developed in an intermediate language type, the license processing section 331 and the specific processing execution section 332 may be described in an intermediate language, and the license processing section 331 and the specific processing execution section 332 may be obfuscated in the intermediate language state.

[0119] Furthermore, for example, a portion of the main program 311 can be obfuscated. For example, the start location of the main program 311 can be obfuscated.

[0120] In addition, for example, security measures other than obfuscation (such as encryption, packaging, forgery detection, debugging prevention, etc.) can be applied to the license processing section 331 and the specific processing execution section 332.

[0121] <Modifications related to the function of protection>

[0122] There are no particular restrictions on the functionality of this technology, as long as the functionality is activated through a license, and it does not matter whether the functionality is paid or free.

[0123] Furthermore, there are essentially no restrictions on the content of the specific processing, as long as it is part of the functionality activated by the license. However, it is preferable that the specific processing is the kind of processing for which the functionality cannot function properly or is severely limited without the result of any processing of the specific processing.

[0124] Furthermore, for example, the license processing section 331 and the specific processing execution section 332 may share specific processing.

[0125] Additionally, for example, the specific processing execution section 332 can perform the processing required for the normal operation of the license processing section 331.

[0126] <Examples of variations related to the structure of the application>

[0127] Although Figure 4 In the example, the license processing section 331 and the specific processing execution section 332 are separate examples (e.g., as separate functions), for example, the license processing section 331 and the specific processing execution section 332 can be integrated.

[0128] <Other variations>

[0129] This technology can also be applied to applications running on information processing devices other than PCs, such as smartphones, mobile phones, tablets, and servers.

[0130] Furthermore, this technology can also be applied to programs outside of applications (such as middleware and operating systems).

[0131] <<6. Others>>

[0132] In this specification, a system refers to a group of multiple components (devices, modules (components), etc.), and it is not important whether all components are housed in the same enclosure. Therefore, a system is any one of multiple devices housed in separate enclosures and connected via a network, and a device in which multiple modules are housed in one enclosure.

[0133] Note that the embodiments of this technology are not limited to the above embodiments, and various modifications can be made without departing from the scope of this technology.

[0134] <Example of configuration combinations>

[0135] This technology can also be configured as follows. (1)

[0137] An information processing method, comprising:

[0138] The first program enables the computer to perform functions activated by the license; and

[0139] The second program responds to instructions from the first program to perform license authentication, at least a portion of the second program is obfuscated, the second program performs a portion of the function if the license is valid, and the second program causes the computer to perform processing in which the execution result of a portion of the function is output to the first program. (2)

[0141] According to the information processing method in (1), where

[0142] If the license is valid, the second program instructs the third program to perform a part of the function, obtains the execution result of the part of the function from the third program, and causes the computer to perform the processing in which the execution result of the part of the function is output to the first program. (3)

[0144] According to the information processing method in (2), where

[0145] At least a portion of the third procedure was obfuscated. (4)

[0147] According to the information processing method in (3), where

[0148] The second and third programs are described in machine language. (5)

[0150] The information processing method according to any one of (2) to (4), wherein

[0151] The third program is required for the normal operation of the second program. (6)

[0153] The information processing method according to any one of (2) to (5), wherein

[0154] The second program causes the computer to execute a process that further outputs the license authentication results to the first program. (7)

[0156] According to the information processing method in (1), where

[0157] The second program is described in machine language. (8)

[0159] The information processing method according to any one of (1) to (7), wherein

[0160] The first program is described using an intermediate language. (9)

[0162] According to the information processing method in (1), where

[0163] The second program causes the computer to execute a process that further outputs the license authentication results to the first program. (10)

[0165] A computer-readable recording medium storing a program, the program comprising:

[0166] The first procedure that enables a computer to perform functions activated by a license; and

[0167] In response to instructions from the first program, a second program that authenticates the license is executed, at least a portion of which is obfuscated, performs a portion of the function if the license is valid, and causes the computer to perform processing in which the execution result of the portion of the function is output to the first program.

[0168] Note that the effects described in this specification are illustrative and not restrictive, and other effects may exist.

[0169] List of reference numerals

[0170] 101 Information Processing System

[0171] 112 PC

[0172] 201 CPU

[0173] 301 Application

[0174] 311 Main Program

[0175] 312 License Processing Library

[0176] 321 Paid Function Implementation Section

[0177] 331 License Processing Section

[0178] 332 Specific Processing Execution Section

Claims

1. An information processing method, comprising: The first procedure enables the computer to perform functions activated by the license; as well as The license processing portion of the second program performs license authentication in response to instructions from the first program. If the license is valid, a specific processing execution portion of the second program performs a part of the function in response to instructions from the license processing portion. The second program causes the computer to perform a process in which the execution result of the specific processing execution portion of the function is output to the first program, wherein at least a portion of the second program is obfuscated.

2. The information processing method as described in claim 1, wherein... If the license is valid, the second program instructs the third program to perform a portion of the function, obtains the execution result of the portion of the function from the third program, and causes the computer to perform a process in which the execution result of the portion of the function is output to the first program.

3. The information processing method as described in claim 2, wherein... At least a portion of the third procedure was obfuscated.

4. The information processing method as described in claim 3, wherein... The second and third programs are described in machine language.

5. The information processing method as described in claim 2, wherein... The third program is required for the second program to function properly.

6. The information processing method as described in claim 2, wherein... The second program causes the computer to perform a process in which the authentication result of the license is further output to the first program.

7. The information processing method as described in claim 1, wherein... The second program is described in machine language.

8. The information processing method as described in claim 1, wherein... The first program is described using an intermediate language.

9. The information processing method as described in claim 1, wherein... The second program causes the computer to perform a process in which the authentication result of the license is further output to the first program.

10. A computer-readable recording medium storing a program, the program comprising: The first procedure enables the computer to perform functions activated by the license; and The second program includes a license processing section and a specific processing execution section. The license processing section performs license authentication in response to instructions from the first program. If the license is valid, the specific processing execution section performs a portion of the function in response to instructions from the license processing section. The second program causes the computer to perform a process in which the execution result of the specific processing execution section on a portion of the function is output to the first program, wherein at least a portion of the second program is obfuscated.