• No results found

DISTRIBUTED SOFTWARE AND LICENSE KEY MANAGEMENT AN INITIATIVE TO STOP SOFTWARE PIRACY

N/A
N/A
Protected

Academic year: 2021

Share "DISTRIBUTED SOFTWARE AND LICENSE KEY MANAGEMENT AN INITIATIVE TO STOP SOFTWARE PIRACY"

Copied!
8
0
0

Loading.... (view fulltext now)

Full text

(1)

DISTRIBUTED SOFTWARE AND LICENSE KEY MANAGEMENT

“AN INITIATIVE TO STOP SOFTWARE PIRACY”

Vineet Sharma1, Dr. S.A.M.Rizvi2, Dr. S. Zeeshan Hussain3 1

Krishna Institute of Engineering & Technology, Ghaziabad, India

2,3

Jamia Millia IslamiaCentral University, New Delhi Vineet_sharma@kiet.edu

ABSTRACT

It is really a boon for computer users that they get some software free with the operating system. But what if this software was not given free and would have cost thousand dollars. This would have given rise to the bug called “software piracy” but not to worry the bug is still in the market and is the major concern of software developers. The major reasons of piracy include the high cost of software and it is also the business of some unethical people who have chosen piracy as their jobs. Various software companies are inclined towards the research of techniques to handle this problem of piracy. Many defense mechanisms have been devised till date but the hobbyists or the black market leaders so called “software pirates” have always found a way out of it. This paper identifies flaws in the existing defense mechanisms – the static defense mechanisms and identifies the impossibility to prevent the duplication of digital data. The paper presents a dynamic defense mechanism and makes it difficult to pirate. Furthermore it also enables a fine grained control over distributed software. In this methodology the organization can not use the software on the number of computers, exceeding the number of license purchased but it provides an ethical way for optimal uses of that software in the network of the organization by dynamic software and license management which morally and socially build an environment for the prevention of software piracy.

Keywords- End User License Agreements (EULAs), Electronic software distribution (ESD), Electronic software distribution and Licensing (ESDL), Distributed software and License key management, Byzantine agreement protocol, Election Algorithms

1. INTRODUCTION

Among the various approaches that have been explored recently to counteract the problem of software piracy, some are of legal, ethical and technical means.

Legal means are based on the fear of consequences of violating piracy law. But while most software piracy cases legal means are available, prosecution on a case by case basis is economically unviable. Furthermore, it is conceived as bad publicity and can take a long time.

Ethical measures relate to making software piracy morally unappealing. While the intentions are laudable, it takes even more time to change the moral standards of a larger group of people. [5]

The technical means include the static measures of defense which incorporates in itself the protection mechanism that is built into the distributed database. Once the system is broken then the static protection techniques are not satisfactory at all.

It is a matter of history that with the introduction of IBM PC in the early 1980’s a revolution began. Some famous software applications like “word star”,”lotus123”,”dBase” were used with IBM PC. Hardware was relatively more expensive than software, and often inclusions of the latest version of

these software packages with new system were very common and routinely expected. Upgrades to the software packages were available usually directly from the developers, or as often was the case through resellers, but always incurred additional fees. Tragically, this also led to underground trade on these applications. Ironically, the more popular the application was, the greater its appeal in the so called “black market” and its traders, the “software pirates”. [1, 4]

The concept of “software license was developed by the software industry since its early inspection. Most licenses were limited to operating systems and development tools. Enforcement of licenses was relatively trivial and painless. Any software customer had certain rights and expectations from the software and developer. Some software was licensed only to one user or one machine, while some software may have been licensed to a site specifying the maximum number of machines or concurrent instances of the program in execution (processes). These are also known as “End User License Agreements” (EULAs). The terms of each EULA may vary but the general purpose is the same – establish the terms of contract between software developer and user of software product. [4]

Borland licensed is TURBO PASCAL and other software categories under what was referred as the

(2)

“Borland No Nonsense License” [4] which allowed the user to treat the software as the book. The license allowed an end user to install the software in as many computer machines the user needed, but limited the user to using only one copy in one machine at a time. There was no license cracking built into the software and the license was enforced strictly by “honour system”. [7]

To tackle this problem this paper presents a diverse view of dynamic protection scheme. In such scheme each installed copy of program is unique which actually differs from all other installed copies to guarantee that the attacks cannot be generalized successfully to other installed copies.

An additional advantage of the proposed scheme is a fine grained level of control over the distributed copies. This follows from the fact that a software provider in our scheme can enable the installation of a copy on an arbitrary number of machines or even tolerate an arbitrary level of software piracy.

2 Related work to stop software piracy:

This section provides an overview of the related work that has been done to stop software privacy and identifies their fundamental weaknesses.

2.1 Overview:

The fundamental idea to stop piracy is very simple as in nature the genetic diversity provides protection against an entire species being wiped out by a single virus or disease so is the software diversity.

Piracy prevention has drawn a lot of attention from both the software industry and the academic community. This large interest in piracy prevention is largely due to the huge financial loses attributed to software piracy, and has resulted in a plethora of technical means. These include hardware based and software based approaches.

All hardware based approaches use tokens. In these schemes it is impossible to execute the program without the presence of a hardware component like CD, Dongle, and smartcard. The link between software and token can be weak or strong. [5]

The most common software based approaches are also based on the use of the token such as license key, license file or an activation code likewise token and software can be weakly or strongly connected. While software watermarking [13] and fingerprinting are not the techniques that prevent copying of software itself, they dissuade the pirate by increasing the likelihood of being caught. This is done by adding identification to released copy. One advantage of finger printing is that it is more difficult for attacker to be sure that he has removed a fingerprint, and then it is to be sure that a copy protection mechanism has been cracked. One disadvantage of fingerprinting is its reliance on cumbersome legal measures.

Software aging [12] is another technique that relies heavily on program updates. For this technique to work it is assumed that illegitimate users interact only with the original pirate to obtain these updates. As result pirated software becomes decreasingly usable because it is not kept up to date. This protection mechanism is dynamic form of protection. Techniques like tamper- proofing [9] and obfuscation do not prevent software piracy to a great extent. Temper proofing which makes it hard to modify a program makes it harder to remove embedded protection mechanism. Obfuscation, which makes a program more difficult to analyze, can be used to hide the location of the protection mechanism. A combined hardware software approach is used by trusted computing platform alliance (TCPA), [10] Microsoft also started a comparable initiative called Palladium. [5]

2.2 Fundamental flaws in the existing piracy prevention scheme:

Furthermore, any future software protection scheme will eventually be broken because it must depend on the operation of a finite state machine. Given enough time and effort, this finite state machine can be examined and ultimately modified at will by a malicious host running the software, because the owner of the software cannot impose restrictions on the host means to inspect the program. For example, only a few months were needed to create a key generator for the activation of Windows XP, which was one of the most complete systems, including on –line activation and links to the hardware. [6] The disadvantage of static protection mechanism is that once a copy is available that undoes the static copy protection or no longer carries the identification of the perpetrator, it can be distributed virtually unlimited and the software provider can no longer enforce its copyright. In short it is the static nature of existing defense mechanisms that makes them bound to fail.

Another reason why static protection techniques are so susceptible to attacks is that, while the first copy is very expensive to produce, subsequent copies are inexpensive to reproduce and distribute. This is an important facilitating condition for software privacy; hence its elimination will make software privacy less attractive. [3]

As in the world of physical objects where each object is unique and cost to reproduce it is nonzero , we believe that the only way to achieve useful reproduction at nonzero cost is to make each legitimate copy unique. This is most obvious for the hardware based mechanism as they combine the software with a unique hard to duplicate, physical object. The software approaches also use a part that is unique for each install copy such as license number, license file, activation code, decryption key or fingerprint. Software aging uses a key to identify

(3)

legal owners of a copy and TCPA identifies the host computer and operating system.

A fundamental drawback of these schemes however is that these unique parts are not part of original program instead they were added for the purpose of copyright protection. We believe that this is one of the reasons why they have been proven to be relatively easily removed or circumvented.

2.3 Software distribution model:

This paper presents a software distribution model whose components are:

• Software providers: who want to maximize their profits now and in the future.

• Legitimate users: who are willing to pay for the software and want to use it without being impaired by the piracy prevention mechanism.

• Pirates: who have technical skills and the desire to circumvent the piracy prevention mechanism and want to minimize the risk of being caught.

• Illegitimate users: who have no technical skills and want to enjoy the same privileges as legitimate users without proper compensation. We will assume that number of pirates is limited. [5]

2.4 Electronic software distribution (ESD):

The cost of shipping of some software was very high which was also to be paid by the customer. This inspired the customer towards piracy. In order to solve this problem a technique called ESD came into existence ESD is also known as digital distribution or electronic software delivery. It refers to the practice of allowing users to download software products electronically (and primarily over the internet) as opposed to receiving physical media. Although not all software vendors discount the prices of electronically distributed software from the price of the physically distributed versions, such a discount is common, as electronic distribution can typically be much less costly for the vendors than its conventional counterpart.

ESD as a service can be further broken down based on straight purchase of the software (above) and try – before – you – buy (TBYB), TBYB allows the consumer to try the product for limited time or with limited features and then, through the software interface, purchase the software from the publisher.

• ESD services are broken down into several components including Digital Rights Managements (DRM), Trial Management and the transaction or E-commerce component. Each of the services can be purchased and managed as standalone components or they can be outsourced through third party companies.

• Electronic software distribution and Licensing (ESDL): ESDL is the combination of electronic software distribution and electronic software licensing. [8]

3. Distributed software and License key management:

Distributing files over network has been considered a great achievement in the development of computer technologies. Message distribution has been the core technique behind the success and popularity gained by Distributed Systems.

A distributed system can be defined as the one in which components located at networked computers communicate and coordinate their actions by passing messages. This definition of distributed systems leads to the following characteristics of distributed systems as-concurrency of components, lack of global clock and independent failures of components. The distribution of files or information over the network faces a lot of problems to achieve better efficiency in distributed systems. The message delivery should be fast and number of messages should be less to achieve efficiency in distributed systems. The transfer of message should be fast and for this UDP messages are preferred.

3.1 Methodology:

In this model an organization tries to keep the information about the specified software on a single machine (considered as coordinator) and the complete management of the dynamic distribution of that software and its license is to be done on the same machine. The selection of the coordinator is done arbitrary or by executing the election algorithms. If in any case the coordinator goes down than any other machine is voluntary elected as the coordinator to provide uninterrupted functioning for dynamic or electronic distribution of the software license. Here the software and license key management is done dynamically by the coordinator machine. The coordinator machine is responsible to make an account for all those machines which are executing the software. In this methodology the organization cannot use the software on the number of computers, exceeding the number of license purchased but this methodology provides an ethical way for optimal uses of the software in the network of an organization. Therefore it prevents organizational piracy and supports optimal use of software in the network of an organization, for example if there are 500 users in a network and software is used by at most 300 users at a time then it is better to take 300 licenses and use it with the prevention of piracy.

In this scheme a machine known as coordinator is dedicated for dynamic software and license management. Generally the coordinator machine is that machine which executes the software first of all in the network. When this machine first of

(4)

all executes the software, it broadcast the search message packets in the network because there is no machine in the network which is working as the coordinator at that moment; no response message is transferred back. This gives the knowledge to that machine that no coordinator is there in the network and the machine itself becomes the coordinator. The coordinator machine keeps a port at transport layer reserved for listening the incoming request messages. It also has a counter which keeps a check on number of license keys that are reserved at a particular instant of time to various users. Besides this the coordinator machine maintains a list of active clients which are executing the software and a separate list for the waiting clients.

Subsequently when any other machine requires software to execute, it broadcast same message request packet dedicated for that specific port in the network and waits for its response. The coordinator listens the request messages of these clients and sends them back a response message indicating the presence of coordinator. In this process the coordinator gets the IP address of the client machines and the client machines gets the IP address of the coordinator machine and now here after they can communicate to each other by unicasting the message packets. In this stage the client will get an inactive copy of the software which needs a runtime license key to come in the active and working state. At this time the client sends the message packet to the coordinator demanding a dynamic license key. The coordinator keeps the status of the copy of the currently active software on the various client machines. Here two cases arises:-

Case 1: If the number of machines executing the software are less than the number of license purchased –in this case a message packet containing the 32 bit encrypted license key is transferred back to the client. On receiving the license key electronically the client’s software application turns into active or working state. This information is updated in the list of currently active clients available with the coordinator. It also updates the counter and decreases it by one.

Case 2: If the number of machines executing the software is greater than the number of license purchased—in this case after the client has demanded the license key from the coordinator, a message is sent to the client by the coordinator which ask the client whether to wait or quit. If the client waits for the key then it is put into the waiting list. The concept of waiting list works on the principal of FIFO. As soon as a client quits the execution of software, the key is given to the first waiting client of the waiting list.

On the peaceful termination of the client software, a message packet is transferred to the coordinator indicating about its termination and coordinator eliminates the specific entry from the active client

list. It also updates its counter and increases it by one.

3.2 Fault Tolerance:

A common approach to provide fault tolerance in distributed systems is by replicating data at many sites. If a site is not available the data can still be obtained from copies at other sites. Commit protocols can be employed to update multiple copies of the data. In commit protocols, when a site is unreachable the coordinator sends messages repeatedly and eventually may decide to abort the transaction, thereby deny access to data. However it is desirable that the sites continue to operate even when other sites have crashed. Another well known technique used to manage replicated data is the voting mechanism. With the voting mechanism each replica is assigned some number of votes and the majority of votes must be collected from a process before it can access a replica. The voting mechanism [14] is more fault tolerant than a commit protocol because it allows access to data under network partitions, site failures and message losses without compromising the integrity of data. One of the voting mechanism algorithms is Maekawa’s voting algorithm.

If the coordinator goes down it may create severe problems. We consider a very general model of coordinator failures. A coordinator may fail in three modes: crash fault, omission fault, malicious fault. In crash fault, the coordinator stops functioning and never resumes operation. In an omission fault the coordinator omits to send messages to some sites. For example, a processor is supposed to broadcast the message to all other processors, but it sends the message to only few processors. In malicious fault the coordinator behaves randomly and arbitrarily. In case the client goes down then a problem can arise. To counteract the problem the coordinator periodically sends the ‘isalive’ query message to the clients those who are registered in the active client list. The coordinator also sends the copy of active users to these clients along with the query message in order to recover from a crash of the coordinator. In case of abnormal shutdown or the abnormal termination of the active software the client would not respond back to the coordinator. The coordinator checks this scenario once again for the confirmation. When the coordinator has confirmed the information about abnormal termination of machine or software, it explicitly removes the specific entry from the current active list and decreases the counter value by one. By doing so the coordinator always remains updated about the current active sessions of the software executing on the network. Along with these functioning the coordinator periodically updates its own copy of current active list to the client machines also.

If in case the coordinator crashes, the client will eventually get an idea of it. For this to happen client

(5)

periodically sends ‘isalive’ message packets to the coordinator and the coordinator must have to send its presence information back to the client. In the absence of the coordinator no message packets would be received by the clients, knowing about the coordinator crash down. This event can be dual checked, i.e. when a client does not get response message from the coordinator, after some time the client will again send the request message to the coordinator. If the time again the client is not getting any response message, it will consider that the coordinator is down. In this scenario voting process or election algorithm is executed by the client following the instruction made by the agreement protocol. In case of failure, agreement can be made among different processors in the distributed system with the help of various agreement protocols like Byzantine agreement protocol. [14, 15]

There are various election algorithms that are executed on the basis of agreement protocols, some of them include- Ring based algorithm and Bully algorithm. [15] Election algorithms are the algorithms used for choosing a unique process to play a particular role. It is needed to choose which process will play the role of server. It is essential that all the processes agree on the choice. Afterwards, if the process plays the role of the server wishes to retire, then another election is required to choose the replacement. Each process can either be a ‘participant’ or ‘non-participant’. Participants are engaged in some run of election algorithm while non-participants are not engaged in any election algorithm.

In the bully election algorithm, crash during the election is allowed, although it assumes that the system is synchronous, and uses time-outs to detect the failures. This algorithm assumes that each process knows which processes have higher identifiers, and that it can communicate with all these processes. Three type of messages are used- election message, answer message, coordinator message.

In this way a client machine would be elected and made coordinator machine. It will have the list of all the client machines which was been sent by previous coordinator to this machine. Now a message is been transmitted by the new coordinator to all currently active clients so that they can know the IP address of the new coordinator. In this scheme the software and license management is done dynamically by the new coordinator.

There may be the case when two client machines declare them as the coordinator at the same time. In such cases agreement protocols can be used and according to the consensus only one machine is declared as coordinator.

Figure 1

3.3 Algorithm:

1) When the software is running for the first time on machine A, it broadcasts the search- message packet to all machines in the network.

If there is no response

Then: machine A declares itself as the

coordinator and keeps a port X at the transport layer for listening to the request message.

Else: coordinator already exists in the

network.

2) Now machine B (client B) requires software to execute so it broadcast request message at port X of machine A and waits.

a) Machine A (coordinator) listens and replies. b) Machine A and B communicate through

unicast message as now they know each other’s IP address.

c) Machine B demands for license key.

d) Coordinator (machine A) checks for the number of machines executing the software let it be stored in the variable-‘count’.

If count < number of licenses purchased

(6)

Coordinator updates the count as count--

Else machine B is asked to wait or quit.

3) If machine B wants to terminate so it sends a connection termination request to the coordinator.

a) Coordinator deletes the entry of this machine from the list of the active users.

b) Coordinator updates count as count++. c) First machine which is waiting in the waiting queue is given the license key along with the updating done by the coordinator in the list and the count variable.

3.4 Solutions to Various forms of piracy:

There are multiple forms of piracy which are a cause of concern for software developers. In this section we will come across how this paper stands before all forms of piracy and makes them viable.

a) Cracks and Serials:

Cracks and serials are forms of software piracy that consists of legally obtaining an evaluation version and subsequently entering a copied license code or applying a generic patch that undergoes a copy protection. This is a widespread form of piracy. It is so popular because of small amount of information that needs to be exchanged illegally distribute and obtain a license code or a patch than a complete program. The scheme so proposed gives a dynamic solution to the problem of piracy as the key is provided at the run time.

b) Soft lifting and hard disk loading:

The term soft lifting refers to the act of piracy where one copy is legally obtained and installed on more computers than allowed.

Hard disk loading is the unauthorised installation of copies of software onto the hard disks of personal computers, often as an incentive for the end user to buy the hardware.

Both forms consist of installing the software on more computers than allowed by the license. In these cases, we can expect exchange of updates between the legitimate user of the copy and the illegitimate user of the same copy. We assume that the software provider cannot easily become aware of these forms of piracy because of the limited size of communities sharing the copy.

The scheme prevents piracy by issuing less number of licenses to the computers on the network than the exact number of computers but checks that license keys are given at run time only to that number of machines as the number of license purchased.

c) Internet piracy and software counterfeiting :

Internet piracy is the act of making unauthorised copy of copyrighted software available to others electronically. Software counterfeiting is the illegal duplication and distribution of copyrighted software in a form designed to make it appear legitimate.

Both forms consist of installing a piece of software on more computers than allowed. The scale typically larger than of the forms discussed in the previous paragraph. We assume that there cannot be a continuing interaction between the pirate and illegitimate users, as the exposure of the pirate and thus the risk of legal action against him would be too high.

This scheme provides a way to use the same number of license keys as purchased by an organization.

In practice, the majority of versions printed this way has the same origin. For example, most of the pirated versions of windows XP were tied to a few volume license product keys. Given the large scale , the software provider probably can become aware of piracy, for example by searching the internet for illegally distributed copies alternatively ,as these illegitimate versions need to be kept sound and up to date and there cannot be a continuing interaction with the original pirate ,many requests for the same instance. This would also arise the suspicion of the software provider. If an instance is considered to be corrupted, the software provides updates for these instances, thereby impairing the illegitimate user.

4 Feasibility Study:

This section is devoted to the feasibility check for the scheme. The feasibility study is done under five categories-TELOS: Technical feasibility, Economical feasibility, Legal feasibility, Operational feasibility, Social feasibility.

4.1 Technical Feasibility:

The scheme is completely technically feasible because the technique used is based on distributed systems and electronic distribution of software. The electronic distribution of software and dynamically

(7)

providing the license key at the run time provides a way to stop piracy. Till date only static protection measures against piracy were common which were not of great use so this scheme is the advanced version of technology.

4.2 Economical Feasibility:

The scheme presented in the paper is economically viable also. As indicated previously it optimally uses the software on the network. The clients’ needing the software communicates with the coordinator and asks for the key, if the free key is available then it is issued to the client.

The scheme also prevents the piracy and thus cuts down the cost on both the sides-software developer side and the customer side.

Now there arises a question why will a software developer provide less number of licenses to an organisation which is implementing this concept for optimal use of software. The answer to this question lies in the fact that the piracy is more costly then this act of providing less number of licenses to the organisation.

4.3 Legal Feasibility:

This scheme is legally feasible from the point of view of dynamic allocation of license key.

“Evaluation License Key” means a file that allows using the software for the evaluation purpose for limited period of time.

“Development License Key” means a file that allows the licensee to integrate the software into their own larger work.

“Run Time License Key” means a file that is required for the distribution of the licensee’s work that enclose the software.

“Personal License” means a license is the individual specified in development and runtime license key.

The scheme provides following license restriction.

You may NOT

• Modify, adapt, alter, translate, decompile, reverse engineer, and disassemble the software.

• Remove any proprietary notices or labels on the software.

• Make more copies of the software than the number of obtained license.

• Rent, lease or otherwise transfer rights to the software.

Evaluation License Restriction: in addition to the general restrictions as the holder of evaluation license you may NOT

• Use software for commercial purposes.

• Use the software after expiration of evaluation period.

Development and runtime license restriction: in addition to the general restrictions you may NOT

• Use the software on the number of computers exceeding the number of license purchased.

• Use development license key for redistributing your applications.

• Use run time license key for development purposes.

Personal license restrictions: in addition to the previous restrictions you may NOT

• Use the software on computer not

exclusively used by the licensee.

• Permit other individuals or entities to use the software.

4.4 Operational Feasibility:

The scheme is also operationally feasible as it can be operated on any network with the help of distributed systems.

4.5 Social Feasibility:

The most important aspect that the scheme covers is its social importance. The scheme provides a way to stop piracy in the society and will also be helpful in inculcating moral values in the society. The software piracy starts at the individual level and then moves on to family level, society level and last to all other levels.

According to the Global Report on Software Piracy:” the unauthorized copying of personal computer software for use in office or at home or ”sharing” of software among friends and co-workers is the most pervasive form of piracy encountered and is

(8)

estimated to be the responsible for more than half the total revenue lost by the industry”.

5 Evaluation and Efficiency:

The protection scheme presented in this paper overcomes the fundamental flaws common to almost all existing technical means for software piracy prevention. The protection mechanism migrates from static nature of defence to a dynamic nature. The marginal cost of using the software decreases.

Of the existing technique, software aging is of dynamic nature but the number of forms of software privacy against which it provides protection is too late.

The efficiency of the scheme presented in the paper is of average class as it provides protection against many forms of piracy and the fault tolerance in the scheme is of good class.

The only drawback of the scheme occurs when the failure of the channel occurs, in this case all the messages that are transmitted between the coordinator and the clients is lost and the coordinator is then unable to contact the clients and update its table of active users .

5.1 Future Enhancement:

The scheme has a future perspective also. It can be used as a plug-in style model with a central machine having various ports on which any client can plug-in and use the software by demanding the license key on the basis of Distributed Software and License Key Management.

6 Conclusion:

The paper presented a new scheme for the prevention of software piracy. Its strength is based on dynamic distribution of key to the clients needing to execute the software and then managing these license keys. The chance of piracy is eliminated because no static measures to prevent piracy are used.

We pointed out the importance of the concept and also discussed the improvements over previous approaches and argued that it makes most software prevention schemes difficult and unrealistic under realistic assumptions.

7 REFERENCES

[1] Arand, Kevin, Software Piracy/Copyright Issues http://cerebro.xu.edu/~arand/csci380/papers/piracy.ht m, Xavier University Computer Science. April 2002. [2] Buckman, Becky, Microsoft Malaysia Policy, The Wall Street Journal. May 20, 2004, pp B1, B2. [3] Ealfert, “GNU General Public License”,

http://www.gnu.org/ copyleft/gpl.html Free Software Foundation. June 1991.

[4] Luis E. Cuéllar, Open Source License Alternatives for Software Applications

43rd ACM Southeast Conference, March 18-20, 2005, Kennesaw, GA, USA.

[5] Bertrand Anckaert, Bjorn De Sutter, Koen De Bosschere, Software Piracy Prevention through Diversity

DRM’04, October 25, 2004, Washington, DC, USA. 2004 ACM 1-58113-969-1/04/0010

[6] International Planning & Research Corporation, 1999 Global Software Piracy Report. Made available

by BSA

http://www.bsa.org/usa/press/newsreleases/New-Global-Piracy-Study-

Released.cfm Business Software Alliance. May 24, 2000.

[7] Leugimap, Why “Free Software” is better than “Open Source”, http://www.gnu.org/philosophy/free-software-forfreedom.html Free Software Foundation. October 6, 2004.

[8] K. Altinkemer and J. Guan. Analyzing protection strategies for online software distribution. Journal of Electronic Commerce Research, 4(1):34–48, 2003. [9] H. Chang and M. Atallah. Protecting software code by guards. Security and Privacy in Digital Rights Management,LNC S, 2320:160–175, 2002. [10] E. Felten. Understanding trusted computing: will its benefits outweigh its drawbacks. IEEE Security and Privacy, 1(03):60–62, 2003.

[11] B. Horne, L. Matheson, C. Sheehan, and R. Tarjan. Dynamic self-checking techniques for improved tamper resistance. Security and Privacy in Digital Rights Management,LNC S, 2320:141–159, 2002.

[12] M. Jakobsson and M. Reiter. Discouraging software piracy using software aging. Security and Privacy in Digital Rights Management,LNC S, 2320:1–12, 2002.

[13] C. Collberg and C. Thomborson. Software watermarking: Models and dynamic embeddings. In

Principles of Programming Languages, pages 311– 324, 1999.

[14] Mukesh Singhal & Niranjan G. Shivratri. Voting and Election Algorithms. In Advanced concept in operating Systems pages 209 & 343, 2002 [15] George Coulouris, Jean Dollimore & Tim Kindberg. Election Algorithm, Bully Algo & Ring based algo. In Distributed Systems page 445-448, 2006

Figure

Figure 1  3.3 Algorithm:

References

Related documents

A number of studies have been done on optimal experience or “flow” but few have compared the differences between individual and team sports. The information you provide will

The online classroom environment is clearly a critical component of any effec- tive program for nontraditional learners, but too often higher education institu- tions focus

- By regularly inviting donors to come and see their donations in action, Keith Greer, fundraising and membership coordinator at Popejoy Hall, has changed the way donors view

People who wish to stop using benzodiazepines after using them regularly over a longer term will need to cut back their use gradually over an extended period of time.. This

Vaso linfático.

Other Covariates: time intervals, total number of unemployment spells, number of the current spell, former net labour income, former work hours, size of the former firm, being

In general, most of the environmental issues are intertwined with other policy areas, such as the internal market (Peterson &amp; Bomberg 1999). Today, environmental policy is

A powerful thin and zero client management solution, Dell Wyse Device Manager (WDM) software provides easy, secure, highly scalable, centralized cloud client management for your