Watermarking and Security

time to read 2 min | 367 words

I was reading Jamie Fraser’s blog when I run into this post. In the post, Jamie talks about how he want to make it to fake data that the user is able to print from a site.

The example given is a payslip, which we don’t want the user to be able to successfully change. The solution that Jamie came up with is to watermark the image. His example is:

Unmodified Watermarked

But what aroused my curiosity is:

The one issue I've encountered however is that it is simply not possible to completely prevent editing of the files - a skilled Photoshop user could work around pretty much any watermark, and of course detecting tampering is quite difficult for the casual viewer

Well, that is true enough, but you don’t have to do it this way. Instead of thinking in terms of making it hard to the user to fake the data, sign it.

You can just do this:

image

The numbers at the bottom compromise a cryptographically meaningful signing of the data. So without knowing your private key, no one can actually fake the data, no matter how good their photoshopping skills are. Now, you may want to go with the watermarking anyway, to make it harder for the casual user to do so, and because even with signing, how many people are going to actually check the signature?

But if you need to take it to court, or something similar, proving that this is a fake or not would be a very easy task.