Onlangs ontstond er internationaal veel ophef over de Nederlandse watermerkbeveiliging, nadat bleek dat retailers klantgegevens af moeten staan aan Stichting BREIN bij een vermoeden van misbruik. Aanleiding voor eReaders.nl om de toegepaste watermerktechnologie eens kritisch te onderzoeken. Met als conclusie dat het watermerk relatief eenvoudig te verwijderen is.
Om te onderzoeken hoe het watermerk verwerkt is in de ebooks werden er via twee verschillende gebruikersaccounts bij Bol.com twee exemplaren van hetzelfde ebook aangeschaft, en zowel visueel (op xhtml codeniveau) als op bestandsniveau (de afbeeldingen) met elkaar vergeleken. Na het verwijderen van de onderstaande reeks unieke kenmerken en het vervangen van de omslagafbeelding waren de ePubbestanden volledig identiek en derhalve vrij van enige traceerbare aankoopgegevens .
Uit de analyse van eReaders.nl blijkt dat het watermerk op de volgende plekken verwerkt is in de vorm van unieke codes of zo goed als onzichtbare sporen in afbeeldingen:
– de bestandsnaam van het ePub bestand zelf;
– de bestandsnamen van de xhtml bestanden in het ePub-bestand;
– een ‘stempel’ op basis van een base-64 codering onderin elk xhtml bestand in het ePub bestand;
– onzichtbare watermerken in afbeeldingen, waaronder het coverbestand;
– een voor de lezer zichtbaar watermerk helemaal achterin het ebook;
– in de content.opf file (i.v.m. de verschillende xhtml bestandsnamen);
– in de toc.ncx inhoudsopgave (eveneens i.v.m. de verschillende xhtml bestandsnamen).
Om het watermerk te verwijderen moet eerst de ePub zelf hernoemd worden. Daarna moeten in een ePub editor de bestandsnamen van de xhtml bestanden aangepast worden (bijvoorbeeld naar 001.xhtml, 002.xhtml, etc), en het laatste xhtml (met het voor de lezer zichtbare watermerk) bestand verwijderd worden. Om de ePub te laten functioneren moeten deze wijzigingen middels een search&replace ook doorgevoerd worden in de content.opf en toc.ncx.
Hieronder is te zien hoe de bestandsnamen van de xhtml-bestanden in de ePubbestanden in eerste instantie van elkaar verschillen:
Vervolgens moet onderin de code van elk xhtml bestand de base-64 codering verwijderd worden. Deze code is verder niet functioneel en kan zonder gevolgen gedelete worden:
Tot slot moeten alle ingesloten afbeeldingen (waaronder de cover) verwijderd of vervangen worden om de laatste sporen van het watermerk te wissen. In de afbeeldingen zijn namelijk via nauwelijks zichtbare ruis ook unieke kenmerken verwerkt, zoals in onderstaande afbeelding te zien is. De verschillen in de omslagafbeeldingen zijn duidelijk zichtbaar in het linkervenster:
Bij een ebook met veel afbeeldingen (zoals een studieboek) kan het vervangen zo goed als onmogelijk zijn, aangezien het erg lastig is om het watermerk uit de afbeeldingen te verwijderen. De meeste fictie-ebooks bevatten echter maar één afbeelding, namelijk de cover. Die kan eventueel vervangen worden door een coverafbeelding zoals die op de website van een willekeurige retailer te vinden is, zodat het ebook toch zijn omslag behoudt.
De tools die gebruikt werden voor dit onderzoek zijn Sigil en WinMerge, beiden open source en gratis te downloaden. Wie principieel tegen het gebruik van een watermerk is kan met deze hulpmiddelen alle unieke kenmerken uit een ePubs verwijderen. Het is niet strafbaar om een watermerk uit een ebook te verwijderen; wel om het ebook vervolgens aan te bieden via een torrentsite of usenet.
Feitelijk is het gebruik van een watermerk een vorm van security through obscurity. De achterliggende gedachte is dat als de precieze werking van het watermerk niet bekend is, de beveiliging moeilijk door derden kan worden doorbroken. Het boekenvak doet er echter niet verstandig aan om blindelings te vertrouwen op deze beveiligingsfilosofie, zoals deze analyse aantoont.
Een waarschuwing is hierbij op zijn plaats: het watermerkalgoritme kan immers op ieder moment door eBoekhuis aangepast worden, waardoor bovenstaande informatie onvolledig kan raken. Het verwijderen van het watermerk en illegaal ter upload aanbieden geschiedt derhalve volledig voor eigen risico.