Software processing equipment, server systems and methods

By employing authentication and licensing server verification mechanisms, and using encrypted source code and licensing encryption keys, the problem of HTML Apps being easily reverse engineered and copied is solved, achieving effective intellectual property protection and cost reduction.

CN113297544BActive Publication Date: 2026-03-13HUAWEI TECH CO LTD
View PDF 1 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2016-01-07
Publication Date
2026-03-13

AI Technical Summary

Technical Problem

The source code of existing HTML apps is easily reverse engineered and copied. Traditional code obfuscation techniques cannot effectively prevent illegal copying, posing a challenge to the intellectual property protection of software vendors.

Method used

By employing verification mechanisms through authentication and licensing servers, and using encrypted source code and license encryption keys, the system ensures that the software application is only valid on authorized devices during installation and operation, preventing unauthorized copying and alteration.

Benefits of technology

It effectively protects HTML Apps, prevents source code from being copied and tampered with, reduces development costs, simplifies the program development process, and enhances the protection of software vendors' intellectual property rights.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN113297544B_ABST
    Figure CN113297544B_ABST
Patent Text Reader

Abstract

This invention relates to a software processing device and a server system. The software processing device (100) includes a processor (102) and a transceiver (104), wherein the transceiver (104) is used to transmit various requests to a server system (300) and to receive various verification and encryption keys from the server system (300). The server system (300) includes an authentication server (300a), a licensing server (300b), and a software application server (300c), wherein the server system (300) is used to receive various requests from the software processing device (100) and to transmit various verification and encryption keys to the software processing device (100). Furthermore, this invention also relates to corresponding methods, computer programs, and computer program products.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This invention relates to a software processing device and a corresponding server system. Furthermore, this invention also relates to corresponding methods, computer programs, and computer program products. Background Technology

[0002] Hyper Text Markup Language (HTML), including JavaScript and Cascading Style Sheets (CSS), has become one of the most popular programming languages, used not only for developing websites but also for developing applications (also known as apps) for smartphones, tablets, and other similar communication devices. While HTML has many advantages as a language, it also has some significant drawbacks that prevent many software vendors from writing large amounts of proprietary code in HTML.

[0003] HTML apps are increasingly being used for mobile device computing (e.g., computing on mobile devices including smartphones and tablets) in mobile websites and packaged apps, and this has become very popular. An HTML app is a software application built with HTML / JavaScript / CSS code that runs on a web engine. A WebRuntime is the software that manages and launches HTML apps.

[0004] However, the source code of an HTML app, including HTML, JavaScript, and CSS, is readily available or extractable. It's simple to view, modify, and debug a website's source code using the debugging tools built into a web browser, and it's also possible to download publicly available tools for extracting the source code of an HTML app from an Android application package such as an "apk" file.

[0005] Because proprietary software vendors need a solution to prevent reverse engineering of their source code and / or to prevent their HTML apps from being illegally copied, this poses an obstacle for software vendors to implement valuable proprietary algorithms in their HTML apps.

[0006] One approach is to obfuscate the HTML app's source code using code obfuscation tools before packaging it. Code obfuscation can significantly increase the difficulty of reverse engineering and tampering with JavaScript code. However, since obfuscation does not affect the ability or difficulty of copying source code and reusing it across different computing devices, it cannot prevent the HTML program from being copied. Therefore, experienced hackers can easily reverse engineer and reassemble the obfuscated source code. Furthermore, when releasing and debugging software becomes extremely difficult due to code obfuscation, developers must resort to obfuscation. Summary of the Invention

[0007] The purpose of this invention is to provide a solution that mitigates or solves the shortcomings and problems of traditional solutions.

[0008] The word "or" in the specification and corresponding claims should be understood as mathematical OR, which includes "and" and "or", and should not be understood as XOR (different OR).

[0009] The proprietary subject matter achieves the aforementioned objectives. Further superior implementations of the invention can be found within the proprietary subject matter.

[0010] According to a first aspect of the invention, the above and other objectives are achieved by a software processing device including a processor and a transceiver, wherein the transceiver is configured to: transmit an authentication request signal to an authentication server, wherein the authentication request signal includes a user authentication request; receive an authentication verification signal from the authentication server, wherein the authentication verification signal includes a user authentication verification in response to the user authentication request; transmit a license request signal to a license server, wherein the license request signal includes the user authentication verification; receive a license verification signal from the license server, wherein the license verification signal includes a license verification associated with the user authentication verification; transmit a download request signal to a software application server, wherein the download request signal includes the license verification; and download encrypted source code of a software application from the software application server, wherein the software application is associated with the license verification; wherein the processor is configured to: store the encrypted source code of the software application in a memory.

[0011] According to a second aspect of the invention, the above and other objectives are achieved by a software processing device including a processor and a transceiver, wherein the transceiver is configured to: transmit an authentication request signal to an authentication server, wherein the authentication request signal includes a user authentication request; receive an authentication verification signal from the authentication server, wherein the authentication verification signal includes a user authentication verification in response to the user authentication request; transmit a license request signal to a license server, wherein the license request signal includes the user authentication verification; receive a license encryption signal from the license server, wherein the license encryption signal includes a license encryption key associated with the user authentication verification; wherein the processor is configured to: load encrypted source code of a software application stored in a memory; decrypt the encrypted source code of the software application based on the license encryption key; and run the software application by executing the decrypted source code.

[0012] According to the software processing device described in the second aspect, in one possible implementation, the processor is configured to: execute the decrypted source code using a Web engine.

[0013] Therefore, this implementation means that the source code executed by the processor is an HTML application.

[0014] According to a third aspect of the present invention, the above and other objectives are achieved through a communication device for a communication system. The communication device includes the software processing device described in the embodiments of the present invention. The communication device has computing capabilities, and for example, can be a computer, smartphone, tablet computer, etc.

[0015] According to a fourth aspect of the invention, the above and other objectives are achieved through a server system for a communication system. The server system includes an authentication server, a licensing server, and a software application server; wherein the authentication server includes a transceiver configured to: receive an authentication request signal from a software processing device, wherein the authentication request signal includes a user authentication request; and if the user authentication request is valid, transmit an authentication verification signal to the software processing device, wherein the authentication verification signal includes user authentication verification; wherein the licensing server includes a transceiver configured to: receive a license request signal from the software processing device, wherein the license request signal includes the user authentication verification; and if the user authentication verification is valid, transmit a license verification signal to the software processing device, wherein the license verification signal includes license verification; wherein the software application server includes a transceiver configured to receive a download request signal from the software processing device, wherein the download request signal includes the license verification; and if the license verification is valid, transmit encrypted source code of the software application to the software device, wherein the software application is associated with the license verification.

[0016] It should be mentioned that the server system can be a centralized system, including the authentication server, the licensing server, and the software application server in a single computer or a distributed system, wherein the components of the server system are distributed across several computers.

[0017] According to a fifth aspect of the invention, the above and other objectives are achieved through a server system for a communication system. The server system includes an authentication server and a licensing server; wherein the authentication server includes a transceiver configured to: receive an authentication request signal from a software processing device, wherein the authentication request signal includes a user authentication request; and if the user authentication request is valid, transmit an authentication verification signal to the software processing device, wherein the authentication verification signal includes user authentication verification; wherein the licensing server includes a transceiver configured to: receive a license request signal from the software processing device, wherein the license request signal includes the user authentication verification; and if the user authentication verification is valid, transmit a license encryption signal to the software processing device, wherein the license encryption signal includes a license encryption key for encrypted source code of a software application.

[0018] It should be mentioned that the server system can be a centralized system, including the authentication server and the licensing server in a single computer or a distributed system, wherein the components of the server system are distributed across several computers.

[0019] According to the server system described in the fifth aspect, in one possible implementation, the permission encryption key is unique to the software application and the associated software processing device.

[0020] This implementation means that because the license encryption key is unique to the software application, it cannot be used by other software applications. Furthermore, because the license encryption key is unique to the associated software processing device, it is only valid for that specific associated software processing device and cannot be used by other software processing devices.

[0021] Based on the software processing device, the server system, and the interaction between the software processing device and the server system for installing and running software, embodiments of the present invention provide a solution for application copy protection and anti-tampering. This solution is achieved through the request and authentication signaling between the software processing device and the server system for installing and running software.

[0022] Furthermore, since traditional protections such as code obfuscation are not required, the solution of this invention makes it easier for application vendors to protect their intellectual property rights.

[0023] Furthermore, the software source code can be prevented from being copied without further adding HTML, JavaScript, or CSS code to the application's source code, which means time is saved and the cost of program development is reduced.

[0024] In a first possible implementation of the software processing device according to the first or second aspect, or the server system according to the fourth or fifth aspect, the license request signal further includes an identification indication of the software application.

[0025] According to this implementation, the server system will know the identifier of the software application, so that the software application can be verified.

[0026] In a second possible implementation of the software processing device or server system according to the first implementation of the first or second aspect or the fourth or fifth aspect, the user authentication verification is a first token, or the permission verification is a second token.

[0027] A major advantage of this implementation is that it can meet high security requirements using tokens. Furthermore, using tokens facilitates the implementation of the present invention.

[0028] According to the software processing device or server system of the first or second implementation of the first or second aspect or the fourth or fifth aspect, or in a third possible implementation of the software processing device or the server system itself, the license request signal further includes an identification indication of a communication device including the software processing device.

[0029] A major advantage of this implementation is that it allows the license to be restricted to communication devices only.

[0030] According to the software processing device or server system described in the first or second aspect or the first or second or third implementation of the fourth or fifth aspect, or with regard to the software processing device or the server system itself, in the fourth possible implementation, the software application is Hypertext Markup Language (HTML), and the software application is...

[0031] A major advantage of this implementation is that it prevents HTML applications from being tampered with and / or copied.

[0032] According to a sixth aspect of the invention, the above and other objectives are achieved by a method comprising the steps of: transmitting an authentication request signal to an authentication server, wherein the authentication request signal includes a user authentication request; receiving an authentication verification signal from the authentication server, wherein the authentication verification signal includes a user authentication verification in response to the user authentication request; transmitting a license request signal to a license server, wherein the license request signal includes the user authentication verification; receiving a license verification signal from the license server, wherein the license verification signal includes a license verification associated with the user authentication verification; transmitting a download request signal to a software application server, wherein the download request signal includes the license verification; and downloading encrypted source code of a software application from the software application server, wherein the software application is associated with the license verification; wherein the processor is configured to: store the encrypted source code of the software application in a memory, for example, a permanent memory.

[0033] According to a seventh aspect of the present invention, the above and other objectives are achieved by a method comprising the steps of: transmitting an authentication request signal to an authentication server, wherein the authentication request signal includes a user authentication request; receiving an authentication verification signal from the authentication server, wherein the authentication verification signal includes a user authentication verification in response to the user authentication request; transmitting a license request signal to a license server, wherein the license request signal includes the user authentication verification; receiving a license encryption signal from the license server, wherein the license encryption signal includes a license encryption key associated with the user authentication verification; wherein the processor is configured to: load encrypted source code of a software application stored in memory; decrypt the encrypted source code of the software application based on the license encryption key; and run the software application by executing the decrypted source code.

[0034] According to the method described in the seventh aspect, in one possible implementation, the method further includes using a Web engine to execute the decrypted source code.

[0035] According to an eighth aspect of the invention, the above and other objectives are achieved by a method comprising the steps of: receiving an authentication request signal from a software processing device, wherein the authentication request signal includes a user authentication request; if the user authentication request is valid, transmitting an authentication verification signal to the software processing device, wherein the authentication verification signal includes user authentication verification; wherein the license server includes a transceiver for: receiving a license request signal from the software processing device, wherein the license request signal includes the user authentication verification; if the user authentication verification is valid, transmitting a license verification signal to the software processing device, wherein the license verification signal includes license verification; wherein the software application server includes a transceiver for: receiving a download request signal from the software processing device, wherein the download request signal includes the license verification; if the license verification is valid, transmitting encrypted source code of a software application to the software device, wherein the software application is associated with the license verification.

[0036] According to a ninth aspect of the present invention, the above and other objectives are achieved by a method comprising the steps of: receiving an authentication request signal from a software processing device, wherein the authentication request signal includes a user authentication request; if the user authentication request is valid, transmitting an authentication verification signal to the software processing device, wherein the authentication verification signal includes user authentication verification; wherein the license server includes a transceiver configured to: receive a license request signal from the software processing device, wherein the license request signal includes the user authentication verification; and if the user authentication verification is valid, transmitting a license encryption signal to the software processing device, wherein the license encryption signal includes a license encryption key for encrypted source code of a software application.

[0037] According to the server system described in the ninth aspect, in one possible implementation, the permission encryption key is unique to the software application and the associated software processing device.

[0038] According to the method described in the sixth, seventh, eighth, or ninth aspect, in a first possible implementation, the license request signal further includes an identification indication of the software application.

[0039] According to the method described in the first implementation of aspects six, seven, eight, or nine, or in the second possible implementation of the method itself, the user authentication verification is a first token, or the permission verification is a second token.

[0040] According to the method described in the second implementation of the sixth, seventh, eighth, or ninth aspect, in a third possible implementation, the license request signal further includes an identification indication of a communication device including the software processing device.

[0041] According to the method described in the first implementation of the sixth, seventh, eighth, or ninth aspects, or in the fourth possible implementation of the method itself, the software application is Hypertext Markup Language (HTML), and the software application is...

[0042] The advantages of the methods described in the sixth, seventh, eighth, or ninth aspects are the same as the advantages of the corresponding equipment.

[0043] This invention also relates to a computer program, including a code-based manner, which, when executed in a processing mode, causes the processing mode to perform any of the methods provided by this invention. Furthermore, this invention relates to a computer program product comprising a computer-readable medium and the computer program, wherein the computer program is contained within the computer-readable medium and comprises one or more of the following groups: ROM (Read-Only Memory), PROM (Programmable Read-Only Memory), EPROM (Erasable Programmable Read-Only Memory), flash memory, EEPROM (Electrically Erasable Programmable Read-Only Memory), and hard disk drive.

[0044] Further applications and advantages of the present invention will be clearly described in the following detailed description. Attached Figure Description

[0045] The accompanying drawings are intended to illustrate and explain various embodiments of the present invention, wherein:

[0046] Figure 1 An embodiment of the present invention is shown.

[0047] Figure 2 An embodiment of the present invention is shown.

[0048] Figure 3 This illustrates another method provided by an embodiment of the present invention.

[0049] Figure 4 An embodiment of the present invention provides a server system.

[0050] Figure 5 This illustrates another method provided by an embodiment of the present invention.

[0051] Figure 6 This illustrates another method provided by an embodiment of the present invention.

[0052] Figure 7An embodiment of the present invention for installing software is shown.

[0053] Figure 8 An embodiment of the present invention running the software is shown.

[0054] Figure 9 The signaling aspect of an embodiment of the present invention for installing software is illustrated.

[0055] Figure 10 The signaling aspect of an embodiment of the present invention for running software is shown.

[0056] Figure 11 The signaling aspect of an embodiment of the present invention is illustrated, including the running software and verification routines.

[0057] Figure 12 A flowchart of the installation software provided in an embodiment of the present invention is shown.

[0058] Figure 13 A flowchart of the running software provided in an embodiment of the present invention is shown. Detailed Implementation

[0059] Figure 1 Different aspects of the software processing device 100 provided in the embodiments of the present invention are shown. Figure 1 The software device 100 includes a processor 102 and a transceiver 104, which are communicatively coupled to each other. This is illustrated by two dashed arrows between the processor 102 and the transceiver 104. The software processing device 100 also includes, in this example, an antenna 105 for wireless communication and / or a wired connector for wired communication.

[0060] When the software processing device 100 installs (or downloads) a software application, the software processing device 100 is configured as follows: A transceiver 104 is configured to transmit an authentication request signal to an authentication server, wherein the authentication request signal includes a user authentication request. The transceiver 104 is also configured to receive an authentication verification signal from the authentication server, wherein the authentication verification signal includes user authentication verification in response to the user authentication request; the transceiver 104 is also configured to transmit a license request signal to a license server, wherein the license request signal includes user authentication verification; the transceiver 104 is also configured to receive a license verification signal from a license server, wherein the license verification signal includes license verification associated with the user authentication verification; the transceiver 104 is also configured to transmit a download request signal to a software application server, wherein the download request signal includes license verification; the transceiver 104 is also configured to download the encrypted source code of the software application from the software application server, wherein the software application is associated with license verification; finally, the processor 102 is configured to store the encrypted source code of the software application in a memory 106 (e.g., permanent memory of the software processing device 100).

[0061] According to one embodiment, the software processing device 100 is a standalone device for installing and running applications. However, according to another embodiment, the software processing device 100 may be integrated into another device (e.g., a communication device with computing capabilities), in which case the processor 102 and transceiver 104 of the software processing device 100 may be the processor and transceiver of the communication device.

[0062] Furthermore, the memory 106 may be included in Figure 1 In the software processing device 100 shown in the example. According to another embodiment, the memory 106 may be part of another device, and therefore it is not part of the software processing device 100. For example, the memory 106 may be part of the aforementioned communication device.

[0063] When the software processing device 100 runs or executes the software application, the configuration for receiving the aforementioned user authentication verification is the same. Subsequently, after receiving the user authentication verification, the transceiver 104 is further configured to transmit a license request signal to the license server, wherein the license request signal includes the user authentication verification; the transceiver 104 is further configured to receive a license encryption signal from the license server, wherein the license encryption signal includes a license encryption key associated with the user authentication verification; the processor 102 is further configured to load encrypted source code from the memory 106; the processor 102 is further configured to decrypt the encrypted source code based on the license encryption key; finally, the processor 102 is configured to run the software application by executing the decrypted source code.

[0064] Figure 2 It shows Figure 1The software device 100 shown in this example executes the corresponding method 200a. Figure 2 Method 200a relates to the installation or download of a software application. The method includes step 202: transmitting an authentication request signal S1 to an authentication server 300a, wherein the authentication request signal S1 includes a user authentication request R1 (which may include a username and password pair). Method 200a further includes step 204: receiving an authentication verification signal S11 from the authentication server 300a, wherein the authentication verification signal S11 includes a user authentication verification T1 in response to the user authentication request R1. Method 200a further includes step 206: transmitting a license request signal S2 to a license server 300b, wherein the license request signal S2 includes the user authentication verification T1. Method 200a further includes step 208: receiving a license verification signal S22 from the license server 300b, wherein the license verification signal S22 includes a license verification T2 associated with the user authentication verification T1. Method 200a further includes step 210: transmitting a download request signal S3 to a software application server 300c, wherein the download request signal S3 includes the license verification T2. The method 200a further includes step 212: downloading the encrypted source code of a software application from the software application server 300c, wherein the software application is associated with license verification T2. ​​The method 200a further includes step 214: storing the encrypted source code of the software application in memory 106, wherein the user authentication verification T1 and license verification T2 can be numbers trusted by the server system 300 for a certain period of time, meaning that T1 and T2 are valid within that period.

[0065] Figure 3 It shows Figure 1 The software device 100 shown in this example executes another corresponding method 200b. Figure 3Method 200b relates to running or executing a software application. Method 200b includes step 222: transmitting an authentication request signal S1 to an authentication server 300a1, wherein the authentication request signal S1 includes a user authentication request R1. Method 200b further includes step 224: receiving an authentication verification signal S11 from the authentication server 300a, wherein the authentication verification signal S11 includes a user authentication verification T1 in response to the user authentication request R1. Method 200b further includes step 226: transmitting a license request signal S2 to a license server 300b, wherein the license request signal S2 includes the user authentication verification T1. Method 200b further includes step 228: receiving a license encryption signal S44 from the license server 300b, wherein the license encryption signal S44 includes a license encryption key associated with the user authentication verification T1. Method 200b further includes step 230: loading the encrypted source code of the software application stored in memory 106. Method 200b further includes step 232: decrypting the encrypted source code of the software application based on the license encryption key. Method 200b further includes step 234: running the software application by executing the decrypted source code. The encrypted source code can be decrypted using the license encryption secret in the form of an encryption key, where the encryption key uses an encryption algorithm. The encryption key is typically a number or a series of numbers, such as “A1 0C E3 5D F9 34 7B6D…”.

[0066] According to one embodiment of the present invention, the license encryption key is unique to the software application and the associated software processing device 100, meaning that the license encryption key is unique to both the software application and the software processing device 100. The license encryption key is created based on the software application and the software processing device, thus preventing the decryption of copies of the application package on other devices, and also preventing the use of this key to decrypt other application packages on the same device.

[0067] According to another embodiment of the invention, the license request signal S2 also includes an identification indication of the software application, such as an identification number.

[0068] According to another embodiment of the present invention, the license request signal S2 further includes an identification indication of the communication device 500, which includes the software processing device 100. The identification of the communication device 500 may be a Medium Access Control (MAC) address or any other suitable hardware identification method.

[0069] Figure 4A server system 300 according to an embodiment of the present invention is shown. The server system 300 may be a system with independent physical servers for authentication server 300a, licensing server 300b, and software application server 300c, or a system with virtual servers corresponding to the aforementioned servers. Figure 4 The embodiments include an authentication server 300a, a licensing server 300b, and a software application server 300c, each including independent transceivers 302a, 302b, and 302c, or, in the case where transceivers 302a, 302b, and 302c are configured in the same transceiver unit, they share a common transceiver. In this particular example, Figure 4 The server system 300 also includes a processor 304, which is communicatively coupled to transceivers 302a, 302b, and 302c.

[0070] Depending on whether software is installed or running on the software processing device 100, transceivers 302a, 302b, and 302c of the server system are used to receive the aforementioned signals S1, S2, and S3 from the software processing device 100. Further, transceivers 302a, 302b, and 302c are used to transmit the aforementioned signals S11, S22, and S44 to the software processing device 100.

[0071] Figure 5 It shows Figure 4 The server system 300 shown in this example executes the corresponding method 400a. Figure 5Method 400b involves installing (or downloading) software, but is understood from the server system 300 side. Method 400b includes step 402: receiving an authentication request signal S1 from the software processing device 100, wherein the authentication request signal S1 includes a user authentication request R1. Method 400a further includes step 404: if the user authentication request R1 is valid, for example, if the username and password in R1 are correct, then transmitting an authentication verification signal S11 to the software processing device 100. The authentication verification signal S11 includes user authentication verification T1. Method 400a further includes step 406: receiving a license request signal S2 from the software processing device 100, wherein the license request signal S2 includes user authentication verification T1. Method 400a further includes step 408: if user authentication verification T1 is valid, then transmitting a license verification signal S22 to the software processing device 100. The validity of the user authentication verification T1 can be transmitted from the authentication server 300a to the license server 300b by a notification, wherein the license verification signal S22 includes license verification T2. ​​The method 400a further includes step 410: receiving a download request signal S3 from the software processing device 100, wherein the download request signal S3 includes license verification T2. ​​The method 400a further includes step 412: if license verification T2 is valid, transmitting the encrypted source code of the software application to the software device 100, wherein the software application is associated with license verification T2, and the validity of license verification T2 can be transmitted from the license server 300b to the software application (or resource) server 300c by a notification.

[0072] Figure 6 It shows Figure 4 The server system 300 shown in this example executes the corresponding method 400b. Figure 6 Method 400b relates to running or executing software in a software processing device, but is understood from the server system 300 side. Method 400b includes step 422: receiving an authentication request signal S1 from the software processing device 100, wherein the authentication request signal S1 includes a user authentication request R1. Method 400b further includes step 424: if the user authentication request R1 is valid, transmitting an authentication verification signal S11 to the software processing device 100, wherein the authentication verification signal S11 includes a user authentication verification T1. Method 400b further includes step 426: receiving a license request signal S2 from the software processing device 100, wherein the license request signal S2 includes a user authentication verification T1. Method 400b further includes step 428: if the user authentication verification T1 is valid, transmitting a license encryption signal S44 to the software processing device 100, wherein the license encryption signal S44 includes a license encryption key for the encrypted source code of the software application.

[0073] According to one embodiment of the present invention, user authentication verification T1 is a first token, and permission verification T2 is a second token. The first and second tokens are valid for the server system for a limited time period; for example, they may be so-called magic numbers.

[0074] For example, according to one embodiment of the present invention, the software processing device 100 and the server system 300 can be implemented as a Web Runtime and a set of cloud services, respectively. The Web Runtime is a program that includes an HTML application, maintains encrypted source code, and, after user authentication and permission verification, decrypts the source code of the HTML application into memory 106 and runs the code in the underlying Web engine. Web Runtimes are frequently used as software in computing devices, which can be found in communication device 500. After decrypting the source code (e.g., HTML, JavaScript, and CSS), the Web Runtime begins parsing and executing the source code.

[0075] The aforementioned cloud services provide HTML application management, user authentication, license management, HTML source code encryption, and the distribution of encrypted source code.

[0076] Figure 7 An example of a communication device 500 including a software processing device 100, according to an embodiment of the present invention, is shown. In this embodiment, the software application is an HTML application. The communication device 500 may be, for example, a smartphone, tablet computer, computer, or any other communication device that can install and run the software application and therefore has appropriate communication, computing, and processing capabilities. The communication device 500 may have wireless communication capabilities and / or wired communication capabilities. Suitable communication protocols and interfaces can be used to transmit and receive communication signals.

[0077] Figure 7 A server system 300 provided in an embodiment of the present invention is also shown. Different servers 300a, 300b, and 300c in the server system 300 may be a group of software components, for example, these software components may be accessible via the Internet and may be included on one or more physical or virtual computer server systems and / or server system units. Web Runtime 110 (shown in square brackets in software processing device 100) is a software component running on communication device 500 for installing and publishing HTML applications.

[0078] When Web Runtime 110 installs or publishes an HTML application, it first obtains authentication through its authentication module by sending an authentication request signal S1 to server 300. On the server side, authentication server 300a processes the request and returns an authentication verification signal S11. Once authentication is obtained on the communication device 500 side, Web Runtime 110 uses its licensing module to send a license request to licensing server 300b by sending a license request signal S2. Licensing server 300b then processes the license request. Once licensing is complete, there are two options depending on whether the application should be installed or published.

[0079] When the application is installed, Web Runtime 110 sends a download request signal S3 to the software application server 300c to request a download of the encrypted package. On the server side, the source code of the HTML application is encrypted using a software encryption server and sent to the software processing device 100. Web Runtime 110 then stores the encrypted package in memory 106 for future use. For local storage of the encrypted application, such as… Figure 7 The encrypted HTML application in memory 106 is shown.

[0080] When the application is released, Web Runtime 110 will use the decryption module to decrypt the saved application before releasing it.

[0081] Figure 8 An example describing the internal processes of Web Runtime 110. Figure 8 This illustrates how Web Runtime 110 operates when an HTML application is deployed. During authentication, the software processing device typically requires input from a user (e.g., a user of software processing device 100 or communication device 500). Web Runtime 110 uses its user authentication module (UAM) to authenticate the user via a signal sent by server system 300, which uses an application verification module (AVM) in conjunction with the UAM. These aspects have been described above. After decrypting the application source code, Web Runtime 110 loads and runs the source code through its associated web engine. When the application is deployed, for example, it can display content, play audio / video, and process user input.

[0082] Figure 9 A more detailed sequence of events is shown for installing the HTML application in the communication device 500 using the Web Runtime 110. For example only, the authentication server 300a, licensing server 300b, and resource server 300c are now full-featured physical servers (e.g., standalone computers) rather than software modules as shown in the previous diagram. Of course, the server could also be implemented as a software module running on the same computer. Memory 106 is a physical storage device, referring to the location where the encrypted HTML application is stored.

[0083] The Web Runtime will send an authentication request to the authentication server in S1. Once successful, it will return token A in S11. Then, Web Runtime 110 will send token A in S2 to the authorization server. S2 also includes a device or hardware token (e.g., a hardware identifier that uniquely identifies the software processing device or its associated computing device) and an identity (ID) for the application (e.g., a number that uniquely identifies the application).

[0084] After the license server 300b verifies that the software processing device 100 or its associated communication device 500 is permitted to use the application on the communication device 500, the license server 300b will return token B in S22. The Web Runtime 110 can then use token B to obtain the encrypted source code of the HTML application from the resource server 300c via transmission S3. The resource server 300c is responsible for encrypting the source code using all necessary information such as the software application ID, user ID, and communication device ID. It should be noted that... Figure 9 The document does not show the relevant server-side communication between the authentication server 300a, the licensing server 300b, and the resource server 300c.

[0085] Figure 10 A more detailed sequence of events for publishing an HTML application using Web Runtime 110 is shown. In this example, authentication server 300a and licensing server 300b are also full-featured physical servers (e.g., separate computers). Of course, the server could also be implemented as a software module running on the same computer. And, in this case, memory 106 is where the encrypted HTML application is stored.

[0086] Web Runtime 110 sends an authentication request (S1) to authentication server 300a. Upon success, it returns token A (S11). Web Runtime 110 then sends token A, a device or hardware token (e.g., a hardware identifier uniquely identifying the software processing device or its associated computing device), and the application ID (e.g., a number uniquely identifying the application) to license server 300b (S2). After license server 300 verifies that the software processing device 100 or its associated communication device 500 is permitted to use the application, license server 300b returns the encryption key (S44). Web Runtime 110 then loads the encrypted source code from storage 106, decrypts it using the encryption key and other information such as the device ID and user ID, and forwards the decrypted source code to the web engine to execute the HTML source code.

[0087] Figure 11 Another embodiment is shown. This embodiment is similar to... Figure 10 Similarly, a Web Runtime authentication server 300d is added to the server system 300, making the present invention more secure. Web Runtime 110 sends the authentication request in S1 to authentication server 300a, and upon success, returns token A in S11. After Web Runtime 110 is authenticated (using signals S1 and S11), Web Runtime 110 needs to download an authentication routine from Web Runtime authentication server 300d using a specific token. Web Runtime authentication server 300d verifies that the Web Runtime software on software processing device 100 has not been tampered with. Therefore, a routine request is transmitted to Web Runtime authentication server 300d, which returns an authentication routine to Web Runtime 110. The authentication routine is then executed, scanning the Web Runtime 110 software and generating a number, for example, token X. The routine obtained by Web Runtime 110 may be different each time, thus the expected authentication token X may also be different each time. If the token X sent in S2 is the token expected by the authorization server 300b, then in S22, the authorization server 300b will return an encryption key. Otherwise, authentication fails. Assume that the authorization server 300b communicates with the Web Runtime authentication server 300d to verify that token X is correct. However, Figure 11The communication on the server system 300 side is not shown. Subsequently, Web Runtime 110 loads the encrypted source code from storage 106, decrypts the source code using the encryption key and other information such as device ID and user ID, and then forwards the decrypted source code to the Web engine that will execute the HTML source code.

[0088] Figure 12 A flowchart illustrating the application installation process of Web Runtime 110 is shown. Web Runtime 110 first performs user authentication. Once successful, Web Runtime 110 proceeds to license authentication, which involves communication with the license server 300b shown in the previous diagram. Once successful, Web Runtime 110 begins downloading the encrypted application to storage 106. If any of the preceding steps fail, Web Runtime 110 terminates the process.

[0089] Figure 13 The flowchart illustrates the process of deploying an application using Web Runtime 110. Web Runtime 110 first performs a user authentication task. Upon success, Web Runtime 110 proceeds to license authentication, which involves communication with the license server 300b shown in the previous diagram. Upon success, Web Runtime 110 decrypts the source code and deploys the same source code. If any of the preceding steps fail, Web Runtime 110 terminates the process.

[0090] Furthermore, any method according to the present invention can be implemented in a computer program having an coded manner, which, when run by a processing measure, can cause the processing measure to perform method steps. The computer program is included in a computer-readable medium of the computer program product. The computer-readable medium can generally include any memory, such as ROM (Read-Only Memory), PROM (Programmable Read-Only Memory), EPROM (Erasable Programmable Read-Only Memory), flash memory, EEPROM (Electrically Erasable Programmable Read-Only Memory), and hard disk drives.

[0091] Furthermore, those skilled in the art will recognize that the software processing device 100 and server system 300 of the present invention include the necessary communication capabilities, such as functions, devices, units, and elements, for executing the scheme of the present invention. Examples of other similar devices, units, elements, and functions include: processors, memories, buffers, control logic, encoders, decoders, rate matchers, derating matchers, mapping units, multipliers, determination units, selection units, switches, interleavers, deinterleavers, modulators, demodulators, inputs, outputs, antennas, amplifiers, receiver units, transmitter units, DSPs, MSDs, TCM encoders, TCM decoders, power supply units, power feeders, communication interfaces, communication protocols, etc., which are configured in a suitable manner to execute the scheme of the present invention.

[0092] In particular, the processor of the device of the present invention may include, for example, one or more instances of a central processing unit (CPU), processing unit, processing circuitry, processor, application-specific integrated circuit (ASIC), microprocessor, or other processing logic capable of interpreting and executing instructions. The term "processor" may therefore refer to a processing circuitry comprising multiple processing circuitry instances, any, some, or all of the items listed above. The processing circuitry may further perform data processing functions, including inputting, outputting, and processing data, such as data buffering and device control functions, for example, call processing control, user interface control, etc.

[0093] Finally, it should be understood that the present invention is not limited to the above embodiments, but also relates to and is incorporated within the scope of the appended independent claims.

Claims

1. A software processing device, characterized by, comprising a processor and a transceiver, wherein the transceiver is configured to: transmit an authentication request signal to an authentication server, wherein the authentication request signal comprises a user authentication request; receive an authentication verification signal from the authentication server, wherein the authentication verification signal comprises a user authentication verification responsive to the user authentication request; transmit a license request signal to a license server, wherein the license request signal comprises the user authentication verification; receive a license verification signal from the license server, wherein the license verification signal comprises a license verification associated with the user authentication verification; transmit a download request signal to a software application server, wherein the download request signal comprises the license verification; download encrypted source code of a software application from the software application server, wherein the software application is associated with the license verification; wherein the processor is configured to: store the encrypted source code of the software application in a memory.

2. A software processing device, characterized by, comprising a processor and a transceiver; wherein the transceiver is configured to: transmit an authentication request signal to an authentication server, wherein the authentication request signal comprises a user authentication request; receive an authentication verification signal from the authentication server, wherein the authentication verification signal comprises a user authentication verification responsive to the user authentication request; transmit a license request signal to a license server, wherein the license request signal comprises the user authentication verification; receive a license encryption signal from the license server, wherein the license encryption signal comprises a license encryption key associated with the user authentication verification; wherein the processor is configured to: load encrypted source code of a software application stored in a memory; decrypt the encrypted source code of the software application based on the license encryption key; execute the software application by executing the decrypted source code.

3. The software processing device of claim 2, wherein, the processor is configured to: execute the decrypted source code using a web engine.

4. A server system for a communication system, characterized by the server system comprises an authentication server, a license server, and a software application server, wherein the authentication server comprises a transceiver configured to: receive an authentication request signal from a software processing device, wherein the authentication request signal comprises a user authentication request; transmit an authentication verification signal to the software processing device if the user authentication request is valid, wherein the authentication verification signal comprises a user authentication verification; wherein the license server comprises a transceiver configured to: receive a license request signal from the software processing device, wherein the license request signal comprises the user authentication verification; transmit a license verification signal to the software processing device if the user authentication verification is valid, wherein the license verification signal comprises a license verification; wherein the software application server comprises a transceiver configured to: receive a download request signal from the software processing device, wherein the download request signal comprises the license verification; transmit encrypted source code of a software application to the software processing device if the license verification is valid, wherein the software application is associated with the license verification.

5. A server system for a communication system, characterized by The server system comprises an authentication server and a license server; wherein the authentication server comprises a transceiver configured to: receive an authentication request signal from a software processing device, wherein the authentication request signal comprises a user authentication request; transmit an authentication verification signal to the software processing device if the user authentication request is valid, wherein the authentication verification signal comprises a user authentication verification; wherein the license server comprises a transceiver configured to: receive a license request signal from the software processing device, wherein the license request signal comprises the user authentication verification; transmit a license encryption signal to the software processing device if the user authentication verification is valid, wherein the license encryption signal comprises a license encryption key for an encrypted source code of a software application.

6. The server system of claim 5, wherein, The license encryption key is unique to the software application and an associated software processing device.

7. The software processing device of any one of claims 1-3, or the server system of any one of claims 4-5, wherein, The license request signal further comprises an identification indication of the software processing device.

8. The software processing device of any one of claims 1-3, or the server system of any one of claims 4-5, wherein, The user authentication verification is a first token, or the license verification is a second token.

9. The software processing device or server system of claim 8, wherein, The license request signal further comprises an identification indication of a communication device of the software processing device.

10. The software processing device of any one of claims 1-3, or the server system of any one of claims 4-5, wherein, The software application is a HyperText Markup Language (HTML) and a software application.

11. A computer program product, characterised in that, The computer program product comprises a computer program which, when executed by a processor, performs the following steps: transmit an authentication request signal to an authentication server, wherein the authentication request signal comprises a user authentication request; receive an authentication verification signal from the authentication server, wherein the authentication verification signal comprises a user authentication verification in response to the user authentication request; transmit a license request signal to a license server, wherein the license request signal comprises the user authentication verification; receive a license verification signal from the license server, wherein the license verification signal comprises a license verification associated with the user authentication verification; transmit a download request signal to a software application server, wherein the download request signal comprises the license verification; download an encrypted source code of a software application from the software application server, wherein the software application is associated with the license verification; store the encrypted source code of the software application in a memory.

12. A computer program product, characterised in that, The computer program product comprises a computer program which, when executed by a processor, performs the following steps: transmit an authentication request signal to an authentication server, wherein the authentication request signal comprises a user authentication request; receive an authentication verification signal from the authentication server, wherein the authentication verification signal comprises a user authentication verification in response to the user authentication request; transmit a license request signal to a license server, wherein the license request signal comprises the user authentication verification; receive a license encryption signal from the license server, wherein the license encryption signal comprises a license encryption key associated with the user authentication verification; load an encrypted source code of a software application stored in a memory; decrypt the encrypted source code of the software application based on the license encryption key; The software application is run by executing the decrypted source code.

13. A computer program product, characterised in that, The computer program product comprises a computer program which, when executed by a processor, performs the steps of: receiving an authentication request signal from a software processing device, wherein the authentication request signal comprises a user authentication request; transmitting an authentication verification signal to the software processing device if the user authentication request is valid, wherein the authentication verification signal comprises a user authentication verification; receiving a license request signal from the software processing device, wherein the license request signal comprises the user authentication verification; transmitting a license verification signal to the software processing device if the user authentication verification is valid, wherein the license verification signal comprises a license verification; receiving a download request signal from the software processing device, wherein the download request signal comprises the license verification; transmitting encrypted source code of a software application to the software device if the license verification is valid, wherein the software application is associated with the license verification.

14. A computer program product, characterised in that, The computer program product comprises a computer program which, when executed by a processor, performs the steps of: receiving an authentication request signal from a software processing device, wherein the authentication request signal comprises a user authentication request; transmitting an authentication verification signal to the software processing device if the user authentication request is valid, wherein the authentication verification signal comprises a user authentication verification; receiving a license request signal from the software processing device, wherein the license request signal comprises the user authentication verification; transmitting a license encryption signal to the software processing device if the user authentication verification is valid, wherein the license encryption signal comprises a license encryption key for encrypted source code of a software application.

Citation Information

Patent Citations

  • Secondary device as key for authorizing access to resources

    US20140282895A1