Lately, I’ve been solving information security challenges on RootMe and I came across an interesting steganography challenge that has surprised me. Just a small digression for those who are not familiar with RootMe which is a platform where you can find a lot of interesting security challenges from different topics like cryptanalysis, steganography, servers security, programming, etc. If you are interested in security, RootMe is the place where you can learn a lot of stuff and have fun at the same time.
So the problem goes like this, you are given a scan of a printed document and your goal is to find the date of printing as well as the serial number of the printer. At first, I didn’t know what to do and I was trying to find clues in the text and the file itself. Of course, there was nothing within the text nor the file that I could use to solve this problem so I decided to read the reference that was given. The reference text described how some printers are using hidden digital watermarks called yellow dots or MIC (Machine Identification Code) allowing the printer to mark the identification of the device with which a document was printed and the date of printing. At first, I thought someone has a really good imagination and this challenge is completely fancied, but after some google searches I have found that this is real.
Many printers use this type of watermarking and according to Wikipedia it was developed by Canon and Xerox in the mid-1980s but it was kept secret until 2004. According to Xerox, the main motivation behind this watermarking technique was to assure that their printers won’t be used to counterfeit money. In 2004 Dutch authorities were using this to track down the counterfeiters who had used Canon printers and this hidden property became public. Also, there are rumors that all major manufacturers of color laser printers entered a secret agreement with governments to ensure that the output of those printers is forensically traceable.
Here, you can see how MIC looks on the paper. Every row has a certain number value, and every column has its data purpose in this yellow dots matrix.
If you find this interesting, try to solve the challenge. Good luck and have fun!