Since the emergence of mainstream computing, software copyright and licensing became the main practice for proprietary software publishers to monetize on their intellectual property rights. As such many software license validation methods as well as audit methods have shaped the industry ever since. These methods serve as control measures which aim to ensure that software publishers are fairly compensated for the value their end users get from using their software.
Software license validation methods serve as a proactive practice aimed to prevent or minimize software piracy and protect software copyright. In contrast software license audits are a reactive practice which is mostly aimed to correct non-compliance situations. The purpose of this article is to describe some of the existing software license validation methods used by software publishers and explore the possible benefits of implementing a Blockchain driven license validation and management method.
Software license validation methods
Software license validation is a method of verifying that the software license is valid, to prevent the free use of proprietary software. Usually the license validation is a prerequisite step included in the software installation setup. In the case of trial software, the software license validation basically allows the software to stop blocking its use (i.e. lifts the trial restriction) or unlocks additional functionality available only for paying customers.
Examples of common license validation methods are:
· License key validation
Typically, the full packaged software came in a box, which included the installation media (floppy, CD / DVD) along with a technical manual and a unique hard copy license key used to activate and install the software (e.g. Microsoft Windows, Adobe Photoshop etc.). Later on, the installation media was replaced by a download link which can be accessed via the internet (e.g. Microsoft Office).
· Online license validation
In contrast to the normal hard copy license key validation, the online validation provides an extra verification step to ensure that the same key is not used for multiple installations or that no illegal keys are used. Basically, the license key is validated against a database which keeps a ledger of all the sold licenses. If the license key does not pass the online validation, the software is not activated.
· Hardware license validation
The hardware license validation uses a combination of the license key and the host machine manufacturer hardware serial number which is hashed into a unique record. After the (one-time) verification with the software publisher, ensuring that the same license is not used on multiple computers, the software becomes active.
Over time validation methods have become more intelligent. In comparison to the old hard copy license key validation which can be easily copied and shared between users and as such used for multiple installations, the online validation methods are more secure. Although better, the online license validation can still be fooled, for example by redirecting the DNS to a fake authentication server.
The license validation story has two narratives. If bypassed, the software publisher is not being compensated for the use of its intellectual property. On the other hand, the end user is breaking the contract terms and conditions and as such is legally liable to pay high reconciliation fines. In the business world, improper use of software licenses is more commonly associated with negligence or ignorance rather that a criminal intent. So, finding an efficient mechanism for license validation is beneficial for both the end user and the software publisher as it will strengthen the trust between the two parties.
Blockchain for software license management
Simply put the Blockchain is a decentralized system for maintaining a digital ledger in a distributed network. The ledger contains a set of records called blocks (hence the name) which are linked together within a network using cryptography. Each block contains a unique combination of transaction data, timestamp and a cryptographic hash of the preceding block.
The Blockchain is not a new technology, but a system of already existing technologies applied in a new way. Similarly, looking at the recent practical uses of Blockchain in sectors like supply chain and logistics, insurance or financial services we will explore the potential use of Blockchain in software license management.
Implementing a Blockchain system for software license management can improve the traceability of software licenses throughout their lifecycle. A software license can be monitored from purchase, to allocation, to decommission when the software is shelved for reuse. The ledger (in this case the license entitlement baseline) is constantly updated based on the transactions on the Blockchain, thus achieving a (close to) real time view of available assets and the distribution of used assets.