SOFTWARE HANDLING DEVICE, SERVER SYSTEM AND METHODS THEREOF
20170262644 · 2017-09-14
Inventors
Cpc classification
G06F21/10
PHYSICS
H04L9/0861
ELECTRICITY
G06F21/6209
PHYSICS
G06F21/606
PHYSICS
International classification
G06F21/62
PHYSICS
H04L9/08
ELECTRICITY
Abstract
The present invention relates to a software handling device and a server system. The software handling device comprises a processor and a transceiver, wherein the transceiver is configured to transmit varies requests and to receive varies verifications and encryption keys to and from a server system. The server system comprises an authentication server, a licensing server and a software application server, wherein the server system is configured to receive varies requests and to transmit varies verifications and encryption keys from and to a software handling device. Furthermore, the present invention also relates to corresponding methods, a computer program, and a computer program product.
Claims
1. A software handling device, comprising: a processor, and a transceiver; wherein the transceiver is configured to: transmit an authentication request signal to an authentication server, the authentication request signal comprising a user authentication request, receive an authentication verification signal from the authentication server, the authentication verification signal comprising a user authentication verification in response to the user authentication request, transmit a license request signal to a license server, the license request signal comprising the user authentication verification, receive a license verification signal from the license server, the license verification signal comprising a license verification associated with the user authentication verification, transmit a download request signal to a software application server, the download request signal comprising the license verification, and download an encrypted source code of a software application from the software application server, the software application being associated with the license verification; and wherein the processor is configured to: store the encrypted source code of the software application in a memory.
2. A software handling device, comprising: a processor; and a transceiver; wherein the transceiver is configured to: transmit an authentication request signal to an authentication server, the authentication request signal comprising a user authentication request, receive an authentication verification signal from the authentication server, the authentication verification signal comprising a user authentication verification in response to the user authentication request, transmit a license request signal to a license server, the license request signal comprising the user authentication verification, and receive a license encryption signal from the license server, the license encryption signal comprising a license encryption key associated with the user authentication verification; and wherein the processor is configured to: 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, and run the software application by executing the decrypted source code.
3. The software handling device according to claim 2, wherein the processor is configured to: use a web engine for executing the decrypted source code.
4. The software handling device according to claim wherein the software handling device is part of a communication system.
5. A server system for a communication system, the server system comprising: an authentication server; a licensing server; and a software application server; wherein the authentication server comprises a transceiver configured to: receive an authentication request signal from a software handling device, the authentication request signal comprising a user authentication request, and transmit an authentication verification signal to the software handling device if the user authentication request is valid, the authentication verification signal comprising a user authentication verification; wherein the licensing server comprises a transceiver configured to: receive a license request signal from the software handling device, the license request signal comprising the user authentication verification, and transmit a license verification signal to the software handling device if the user authentication verification is valid, the license verification signal comprising a license verification; and wherein the software application server comprises a transceiver configured to: receive a download request signal from the software handling device, the download request signal comprising the license verification, and transmit an encrypted source code of a software application to the software device if the license verification is valid, the software application being associated with the license verification.
6. A server system for a communication system, the server system comprising: an authentication server; and a licensing server; wherein the authentication server comprises a transceiver configured to: receive an authentication request signal from a software handling device, the authentication request signal comprising a user authentication request, and transmit an authentication verification signal to the software handling device if the user authentication request is valid, the authentication verification signal comprising a user authentication verification; and wherein the licensing server comprises a transceiver configured to: receive a license request signal from the software handling device, the license request signal comprising the user authentication verification, and transmit a license encryption signal to the software handling device if the user authentication verification is valid, the license encryption signal comprising a license encryption key for an encrypted source code of a software application.
7. The server system according to claim 6, wherein the license encryption key is unique for the software application and the associated software handling device.
8. The software handling device according to claim 1, wherein the license request signal further comprises an indication of an identity of the software application.
9. The software handling device according to claim 1, wherein the user authentication verification is a first token or the license verification is a second token.
10. The software handling device according to claim 9, wherein the license request signal further comprises an indication of an identity of a communication device comprising the software handling device.
11. The software handling device according to claim 1, wherein the software application is a HyperText Markup Language software application.
12. A method for handling software comprising: transmitting, by a software handling device, an authentication request signal to an authentication server, the authentication request signal comprising a user authentication request; receiving, by the software handling device, an authentication verification signal from the authentication server, the authentication verification signal comprising a user authentication verification in response to the user authentication request; transmitting, by the software handling device, a license request signal to a license server, the license request signal comprising the user authentication verification; receiving, by the software handling device, a license verification signal from the license server, the license verification signal comprising a license verification associated with the user authentication verification; transmitting, by the software handling device, a download request signal to a software application server, the download request signal comprising the license verification; downloading, by the software handling device, an encrypted source code of a software application from the software application server, the software application being associated with the license verification; and storing, by the software handling device, the encrypted source code of the software application in a memory.
13. A method for handling software, comprising: transmitting, by a software handling device, an authentication request signal to an authentication server, the authentication request signal comprising a user authentication request; receiving, by the software handling device, an authentication verification signal from the authentication server, the authentication verification signal comprising a user authentication verification in response to the user authentication request; transmitting, by the software handling device, a license request signal to a license server, the license request signal comprising the user authentication verification; receiving, by the software handling device, a license encryption signal from the license server, the license encryption signal comprising a license encryption key associated with the user authentication verification; loading, by the software handling device, an encrypted source code of a software application stored in a memory; decrypting, by the software handling device, the encrypted source code of the software application based on the license encryption key; and running, by the software handling device, the software application by executing the decrypted source code.
14. A method for providing software to a software handling device, the method comprising: receiving, by a server system, an authentication request signal from the software handling device, the authentication request signal comprising a user authentication request; transmitting, by the server system, an authentication verification signal to the software handling device if the user authentication request is valid, the authentication verification signal comprising a user authentication verification; receiving, by the server system, a license request signal from the software handling device, the license request signal comprising the user authentication verification; transmitting, by the server system, a license verification signal to the software handling device if the user authentication verification is valid, the license verification signal comprising a license verification; receiving, by the server system, a download request signal from the software handling device, the download request signal comprising the license verification; and transmitting, by the server system, an encrypted source code of a software application to the software device if the license verification is valid, the software application being associated with the license verification.
15. A method for providing a license encryption key to a software handling device, the method comprising: receiving, by a server system, an authentication request signal from the software handling device, the authentication request signal comprising a user authentication request; transmitting, by the server system, an authentication verification signal to the software handling device if the user authentication request is valid, the authentication verification signal comprising a user authentication verification; receiving, by the server system, a license request signal from the software handling device, the license request signal comprising the user authentication verification; and transmitting, by the server system, a license encryption signal to the software handling device if the user authentication verification is valid, the license encryption signal comprising a license encryption key for an encrypted source code of a software application.
16. A non-transitory computer-readable medium having program code stored thereon, the program code, when executed, facilitating performance of the method according to claim 12.
17. A non-transitory computer-readable medium having program code stored thereon, the program code, when executed, facilitating performance of the method according to claim 13.
18. A non-transitory computer-readable medium having program code stored thereon, the program code, when executed, facilitating performance of the method according to claim 14.
19. A non-transitory computer-readable medium having program code stored thereon, the program code, when executed, facilitating performance of the method according to claim 15.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
[0095] The appended drawings are intended to clarify and explain different embodiments of the present invention, in which:
[0096]
[0097]
[0098]
[0099]
[0100]
[0101]
[0102]
[0103]
[0104]
[0105]
[0106]
[0107]
[0108]
DETAILED DESCRIPTION
[0109]
[0110] When the software handling device 100 installs (or downloads) a software application, the software handling device 100 is configured as follows. The transceiver 104 is configured to transmit an authentication request signal to an authentication server. The authentication request signal comprises a user authentication request. The transceiver 104 is further configured to receive an authentication verification signal from the authentication server. The authentication verification signal comprises a user authentication verification in response to the user authentication request. The transceiver 104 is further configured to transmit a license request signal to a license server. The license request signal comprises the user authentication verification. The transceiver 104 is further configured to receive a license verification signal from the license server. The license verification signal comprises a license verification associated with the user authentication verification. The transceiver 104 is further configured to transmit a download request signal to a software application server. The download request signal comprises the license verification. The transceiver 104 is further configured to download an encrypted source code of a software application from the software application server. The software application is associated with the license verification. Finally, the processor 102 is configured to store the encrypted source code of the software application in a memory 106, e.g. a persistent memory of the software handling device 100.
[0111] The software handling device 100 is according to an embodiment a standalone device configured to install and run applications. However, the software handling device 100 may according to another embodiment be integrated in another device, e.g. a communication device with computing capabilities. In this case the processor 102 and the transceiver 104 of the software handling device 100 may be the processor and the transceiver of the communication device.
[0112] Further, the memory 106 may be comprised in the software handling device 100 as shown in the example in
[0113] When the software handling device 100 runs or executes the software application the configurations to receive the user authentication verification above are the same. Thereafter, after receiving the user authentication verification the transceiver 104 is further configured to transmit a license request signal to a license server. The license request signal comprises the user authentication verification. The transceiver 104 is further configured receive a license encryption signal from the license server. The license encryption signal comprises a license encryption key associated with the user authentication verification. The processor 102 is further configured to load the encrypted source code in the memory 106. The processor 102 is further configured to decrypt the encrypted source code based on the license encryption key. The processor 102 is finally configured to run the software application by executing the decrypted source code.
[0114]
[0115]
[0116] According to an embodiment of the present invention, the license encryption key is unique for a software application and an associated software handling device 100. This means that the license encryption key is unique for the software application and the software handling device 100 pair. The license encryption key is created based on the software application and the software handling device, so that a copy of the application package cannot be decrypted on other devices, nor can the key can be used to decrypt other application packages on the same device.
[0117] According to a further embodiment of the present invention the license request signal S2 further comprises an indication of an identity of the software application, e.g. an identification number.
[0118] According to a further embodiment of the present invention the license request signal S2 further comprises an indication of an identity of a communication device 500 comprising the software handling device 100. The identity of a communication device 500 can be a Medium Access Control (MAC) address or any other suitable hardware identification means.
[0119]
[0120] Depending on whether the software handling device 100 is installing or running the software, the transceivers 302a, 302b, 302c of the server system are configured to receive above mentioned signals S1, S2 and S3 from the software handling device 100. Further, the transceivers 302a, 302b, 302c are configured to transmit above mentioned signals S11, S22 and S44 to the software handling device 100.
[0121]
[0122]
[0123] According to an embodiment of the present invention the user authentication verification T1 is a first token and the license verification T2 is a second token. The first and second tokens are valid by the server system during a limited time period and may e.g. be so called magic numbers.
[0124] The software handling device 100 and server system 300 may e.g. be implemented as a Web Runtime and a set of Cloud services, respectively, according to an embodiment of the present invention. The Web Runtime is a program that hosts HTML applications, maintains encrypted source code, after user authentication and license verification, decrypts a HTML application's source code into the memory 106 and runs the code in the underlying Web Engine. The Web Runtime is often run as software in computing devices which can be found in communication devices. After the Web Runtime decrypts the source code (e.g. HTML, JavaScript, and CSS) the Web Runtime starts parsing and executing the source code.
[0125] The mentioned Cloud services are services that provide HTML application management, user authentication, license management, HTML source code encryption, and encrypted source code delivery.
[0126]
[0127]
[0128] When the Web Runtime 110 installs or launches a HTML application, the Web Runtime 100 will first get authenticated by using its authentication module to make a request to the server 300 by transmitting authentication request signal 51. On the server side, the authentication server 300a will handle the request and return authentication verification signal S11. Once the communication device 500 side gets authenticated, the Web Runtime 110 will use its licensing module to make a licensing request by transmitting license request signal S2 to the license server 300b. Then, the license server 300b on the server side will handle the licensing request. Once the licensing is done there are two options depending on if the application should be installed or launched.
[0129] When installing the application, the Web Runtime 110 will make a download request for the encrypted package by transmitting download request signal S3 to the software application server 300c. The software encryption server will be used on the server side to encrypt the source code of the HTML application, and send it to the software handing device 100. The Web Runtime 110 will then save the encrypted package in the memory 106 for future use. The local storage of encrypted applications is shown as encrypted HTML application in the memory 106 in
[0130] When launching the application, the Web Runtime 110 will use the decryption module to decrypt the saved application, and then launch the application.
[0131]
[0132]
[0133] The Web Runtime will send an authentication request to the authentication server in S1, which returns token A in S11 upon success. Then, the Web Runtime 110 sends token A in S2 to the licensing server. The S2 also comprises a device or hardware token (i.e. a hardware identity that uniquely identifies the software handling device or its associated computing device), and the identity (ID) of the application (e.g. a number that uniquely identifies the application).
[0134] After the licensing server 300b verifies that the software handling device 100 or its associated communication device 500 is licensed to use the application on the communication device 500, the licensing server 300b will send back token B in S22. The Web Runtime 110 can then use token B to fetch encrypted source code of the HTML application from the resource server 300c by transmitting S3. The resource server 300c is responsible to perform the encryption with all the required information, such as software application ID, user ID, and communication device ID. It should be noted that relevant server side communications among the authentication server 300a, the licensing server 300b, and the resource server 300c are not shown in
[0135]
[0136] The Web Runtime 110 sends an authentication request in S1 to the authentication server 300a, which returns a token A upon success in S11. Then the Web Runtime 110 sends token A, a device or hardware token (i.e. a hardware identity that uniquely identifies the software handling device or its associated computing device), and an ID of the application (e.g. a number that uniquely identify the application) to the licensing server 300b in S2. After the licensing server 300b verifies that the software handling device 100 or the associated communication device 500 is licensed to use the application, the licensing server 300b will send back an encryption key in S44. The Web Runtime 110 thereafter loads the encrypted source code from the memory 106, and decrypts the source code by using the encryption key along with other information, e.g. device ID, user ID, etc., and then forwards the decrypted source code to the Web Engine which will execute the HTML source code.
[0137]
[0138]
[0139]
[0140] Furthermore, any method according to the present invention may be implemented in a computer program, having code means, which when run by processing means causes the processing means to execute the steps of the method. The computer program is included in a computer readable medium of a computer program product. The computer readable medium may comprises of essentially any memory, such as a ROM (Read-Only Memory), a PROM (Programmable Read-Only Memory), an EPROM (Erasable PROM), a Flash memory, an EEPROM (Electrically Erasable PROM), or a hard disk drive.
[0141] Moreover, it is realized by the skilled person that the present software handling device 100 and server system 300 comprises the necessary communication capabilities in the form of e.g., functions, means, units, elements, etc., for performing the present solution. Examples of other such means, units, elements and functions are: processors, memory, buffers, control logic, encoders, decoders, rate matchers, de-rate matchers, mapping units, multipliers, decision units, selecting units, switches, interleavers, de-interleavers, modulators, demodulators, inputs, outputs, antennas, amplifiers, receiver units, transmitter units, DSPs, MSDs, TCM encoder, TCM decoder, power supply units, power feeders, communication interfaces, communication protocols, etc. which are suitably arranged together for performing the present solution.
[0142] Especially, the processors of the present devices may comprise, e.g., one or more instances of a Central Processing Unit (CPU), a processing unit, a processing circuit, a processor, an Application Specific Integrated Circuit (ASIC), a microprocessor, or other processing logic that may interpret and execute instructions. The expression “processor” may thus represent a processing circuitry comprising a plurality of processing circuits, such as, e.g., any, some or all of the ones mentioned above. The processing circuitry may further perform data processing functions for inputting, outputting, and processing of data comprising data buffering and device control functions, such as call processing control, user interface control, or the like.
[0143] Finally, it should be understood that the present invention is not limited to the embodiments described above, but also relates to and incorporates all embodiments within the scope of the appended independent claims. Additionally, statements made herein characterizing the invention refer to an embodiment of the invention and not necessarily all embodiments.