System and method for software protection and secure software distribution
First Claim
1. A secure software distribution and execution method comprising:
- receiving a software application from a service provider for storing in a server for downloading to a client;
coding the received software application in the server;
identifying sections of code for encryption by the server;
inserting Application Programming Interface (API) calls in the received software application at identified sections of the code for encryption before being downloaded to the client by the server, the API calls a driver in the client once the software application is downloaded to the client;
building an application and placing one or more binaries in the server;
reading an identity data of the client by the server;
generating an algorithm for encryption, a decryption algorithm and a decryption key based on received identity data of the client in the server;
encrypting the identified sections of the received software application using the generated encryption algorithm in the server; and
downloading the encrypted sections of the received software application along with the generated decryption key and the decryption algorithm to a driver of the client.
2 Assignments
0 Petitions
Accused Products
Abstract
The various embodiments of the present invention provide a secure software distribution and execution method. According to the method, a server receives software from service provider for downloading to a client and identifies the sections for encoding. APIs are inserted in the identified sections. A unique ID is created based on the identity of the each client to generate an encryption algorithm, decryption key and decryption algorithm. The identified sections are encrypted with the generated encryption algorithm. The encrypted application along with encryption algorithm, decryption key and decryption algorithm are downloaded to the driver of the client machine. The API makes call to the driver by sending the encrypted segment when the encrypted portion is reached during the execution of software in the client machine so that the driver decrypts the encoded portion using the received key and the decryption algorithm to enable the continuous execution of the downloaded software.
-
Citations
13 Claims
-
1. A secure software distribution and execution method comprising:
-
receiving a software application from a service provider for storing in a server for downloading to a client; coding the received software application in the server; identifying sections of code for encryption by the server; inserting Application Programming Interface (API) calls in the received software application at identified sections of the code for encryption before being downloaded to the client by the server, the API calls a driver in the client once the software application is downloaded to the client; building an application and placing one or more binaries in the server; reading an identity data of the client by the server; generating an algorithm for encryption, a decryption algorithm and a decryption key based on received identity data of the client in the server; encrypting the identified sections of the received software application using the generated encryption algorithm in the server; and downloading the encrypted sections of the received software application along with the generated decryption key and the decryption algorithm to a driver of the client. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. A secure software distribution and execution system, comprising:
-
a server into which a received software application from a service provider is stored; a client machine connectible to the server; the server having an application generator interface that codes the received software application, identifies sections of code for encryption, inserts Application Programming Interface (API) calls in the received software application at appropriate places before being downloaded to the client by the server, builds an application and placing one or more binaries in the server; the server having an ID reader that reads an identity data of the client; the server having an algorithm generator that generates an algorithm for encryption, decryption key and decryption based on received identity data of the client in the server; the server having an encryptor that encrypts the identified sections of the received software application using the generated encryption algorithm in the server; and the server having an application downloader that downloads the encrypted sections of the received software application along with the generated decryption key and the decryption algorithm to a driver of the client.
-
Specification