try preemptive solutions now! bry preemptive solutions now!

Home arrow Resources arrow Watermarking .NET and Java Software
 

Watermarking .NET and Java Software

Introduction to Software Watermarking

PreEmptive Solutions recently released a software watermarking tool called PreMark that ships with Dotfuscator Professional Edition version 3.0, and DashO version 3.2. While Dotfuscator and DashO are used to protect the trade secrets of your code, PreMark provides a method of tracing unauthorized copies of your software back to the source and establish proof of ownership. If you are unfamiliar with digital watermarking, we have provided a brief overview here, followed by a more in-depth description of PreMark.

What is Watermarking?

The most basic definition of watermarking is the embedding of information within other information. Obviously, you cannot destroy the usability of the original information in the process.

Although you have probably seen images that use visible digital watermarks as shown below, it is the hidden, or steganographic, watermarks that have a greater range of applications.

non-watermarked imagewatermarked image 

Steganography

Steganography refers to techniques to conceal the existence of a message. For example, tattooing a shaved messenger's head, letting his hair grow back, and the shaving it again to reveal the message when he arrives at his destination. Also, subliminal advertising can be considered a steganographic technique since the viewer is unaware of these inserted frames.

For example, you wouldn't want pay-per-view broadcasts to use visible watermarks, nor would you want graphical images that you purchased to be obscured by a visible watermark, however, the owners/providers of this content still want to be able to retrieve proof of ownership.

Digital Watermarking of Data

Digital watermarking hides information by utilizing unused information density. The data can be an image (jpeg, etc.), an audio file (mp3), or a binary executable. The idea is to insert identification information into the data in such a way that the data still maintains its original quality and content.

In the following illustration, a hidden digital message is expressed in terms of green and black dots. This message is embedded in a photograph of a landscape.

before and after digital watermarking of data 

Source: http://www.ece.purdue.edu/~ace/water2/sampleimages.html

The landscape image appears to be the same, before and after the watermarking. However, a digital message is embedded in the second, or watermarked, image.

Digital Watermarking of Software

Lossy data types (e.g., patterned information fit for human consumption) are great for watermarking.

There is plenty of room to hide information in the fuzziness of an image or in the undetectable tones of a song. It is not as easy to hide a watermark in precise data such as software. The functionality must be preserved, however, there's more than one way to skin a gui and watermarks can be stored in non-function affecting ways.

Purpose

While encryption and obfuscation are technologies designed to slow crime, watermarking may be used to detect crimes and catch criminals. Generally, digital watermarking is used to provide some level of copyright protection. This is done by inserting copyright information into the data, which can then be extracted at a later time. The data with the watermark can be copied and used, but the copyright information can always be retrieved to prove ownership. In addition to encoding copyright holder information, you can also encode information about the original buyer, which allows for tracing of unauthorized copies.

Fingerprinting

The technique of fingerprinting is to "personalize" digital content in order to detect illegal piracy. The personalization is a small alteration in the sequence of data in the digital content such that once the pirated content is found it can be traced back to the original user who colluded in the piracy. Generally, the use of fingerprinting to track piracy is referred to as "traitor tracing."

Fingerprinting has been useful in the detection of piracy of satellite broadcast data. Each legal subscriber is issued a set of keys to decode the broadcast data, and additionally each unit of broadcasted content is uniquely fingerprinted for each legal subscriber. If one or more of the legal subscribers provides keys to others (through the Internet or "blackbox" decoders) the broadcaster can eventually use the fingerprinting information to trace back to the original subscriber(s).

simple watermark 

PreMark - Java and .NET Watermarking

PreMark can be run on both obfuscated and non-obfuscated code, and is available for both Java and .NET assemblies. It embeds hidden information directly into your code. When you run PreMark you provide copyright information, such as company name, and maybe even customer identification.

PreMark then embeds this information and outputs a functionally equivalent module, with no additional code, and with the same size as the original. When you run PreMark on the modified output it reconstructs and outputs the embedded string information.

complex watermark 

In Summary, What Does Software Watermarking Deliver?

It may provide the ability to track software copies and the ability to prove ownership of software and theft of that software. It will not prevent piracy or protect intellectual property. Given how easy it is to add a watermark, it should be a step in your build process.

PreMark's use of steganographic, or hidden, copyright protection techniques means that a casual observer cannot readily tell whether a program run through DashO or Dotfuscator has been copyright protected through fingerprinting. Accordingly, such fact may serve as a deterrent in some circumstances, whether or not the PreMark facility is actually employed. 

 

 

 

 
 

sign up for newsletter

Hve PreEmptive Contact Me