Licensing Solutions for .NET Applications

Protecting your work is difficult protecting, especially if you’re a relatively small start-up, trying to generate an income and there is no affordable way to protect your applications from being pirated.

Unfortunately, the preceding sentence is also quite a common excuse for developers not protecting their work.

What are our options when this situation arises?

Not much from a developer perspective, but there are quite a few useful tools that may be worth a look.

First, the Developer Perspective

As mentioned in a “Protecting Visual Basic .NET Source Code and Applications,” a relatively old article of mine, here are some options developers could implement to protect their code and applications.

Obfuscation

Obfuscation is the process of scrambling the symbols, code, and data of a program to prevent reverse engineering. Obfuscation tools mangle symbols and rearrange code blocks to foil decompiling. They also may encrypt strings containing sensitive data. It’s important to understand that obfuscators (as they exist today) can’t completely protect your intellectual property. Because the code is on the client machine, a really determined hacker with lots of time can study the code and data structures enough to understand what’s going on. Obfuscators do provide value in raising the bar, however, defeating most decompile tools and preventing the casual hacker from stealing your intellectual property. They can make your code as difficult to reverse engineer as optimize native code.

Cryptography

Encryption is the process of translating plain text data (known as plaintext) into something that appears to be random and meaningless (known as ciphertext). Decryption is the process of converting ciphertext back to plaintext.

To encode plaintext, an encryption key is used to impose an encryption algorithm onto the data. To decode the cipher, a user must possess the appropriate decryption key. A decryption key consists of a random string of numbers, from 40 through 2,000 bits in length. The key imposes a decryption algorithm onto the data. This decryption algorithm reverses the encryption algorithm, returning the data to plaintext. The longer the encryption key is, the more difficult it is to decode. For a 40-bit encryption key, over one trillion possible decryption keys exist.

There are two primary approaches to encryption: symmetric and public-key. Symmetric encryption is the most common type of encryption and uses the same key for encoding and decoding data. This key is known as a session key. Public-key encryption uses two different keys, a public key and a private key. One key encodes the message and the other decodes it. The public key is widely distributed whereas the private key is secret.

Trial Applications

Trial applications allow only a specified limit in which the application can be used. Once the time limit expires, the application is unusable.

Available Tools

CryptoLicensing For .NET

CryptoLicensing for .NET is a licensing solution for any .NET application, including:

  • Windows Forms
  • WPF applications
  • Console apps
  • Components and controls
  • ASP.NET applications
  • .NET Core and .NET Standard assemblies
  • XNA and Xbox games and libraries
  • Windows Services
  • Mono

LimeLM

LimeLM lets you offer trials for your applications, track conversions of your apps, and sell your apps in many ways, including:

  • Perpetually
  • SaaS
  • Per-site basis

Infralution

Infralution Licensing System is .NET solution for licensing the following:

  • .NET Applications
  • Controls and Components
  • ASP.NET Web Applications
  • ASP.NET Web Components
  • Universal Windows Platform (UWP) Apps
  • Universal Windows Platform (UWP) Components

Other Tools Worth Mentioning

Last, but not least, here are some other tools worthy of your time:

Conclusion

Not all methods are perfect or cheap, but as a developer or a software house, you must put methods in place to protect your work and products.

Hannes DuPreez
Hannes DuPreez
Ockert J. du Preez is a passionate coder and always willing to learn. He has written hundreds of developer articles over the years detailing his programming quests and adventures. He has written the following books: Visual Studio 2019 In-Depth (BpB Publications) JavaScript for Gurus (BpB Publications) He was the Technical Editor for Professional C++, 5th Edition (Wiley) He was a Microsoft Most Valuable Professional for .NET (2008–2017).

More by Author

Get the Free Newsletter!

Subscribe to Developer Insider for top news, trends & analysis

Must Read