DRM in free software
Free software has less antifeatures than proprietary software and users can remove them. While a well-known distro vendor includes spyware, such bugs usually get fixed. Despite these, some well-known free programs include antifeatures restricting uses or modification of data that these programs should access or edit.
These antifeatures are called DRM which is ‘digital restrictions management’. It is unrelated to the Direct Rendering Manager which despite using the same acronym has no freedom issues other than requiring nonfree microcode for Radeon graphics chips. Traditional bugs that make programs mishandle data or crash when using specific files are also different, developers fix them and don’t consider them intentional.
PDF restrictions: Okular, pdftk
The PDF document format includes metadata flags which readers use to determine if the user is allowed to e.g. print the file or copy its text. Okular obeys this restriction by default, while it has an option to respect what the users does.
The main argument for keeping that optional DRM is that the PDF specification requires it and users could use that ‘feature’.
The PDF manipulation program, pdftk
, obeys such restrictions with no
option to remove them without changing its source. Fortunately Debian
fixed this
bug in their
packages, so it can be used on recent Debian-based systems to modify or
fix restricted PDFs.
What if you get a restricted PDF and need to extract its text? Use
pdftk input.pdf output output.pdf
on a Debian-based system to drop
this restriction, or just use the existing file in Okular with disabled
DRM or another free PDF reader.
Debian-patched pdftk
prints the following warning:
WARNING: The creator of the input PDF: drmed.pdf has set an owner password (which is not required to handle this PDF). You did not supply this password. Please respect any copyright.
I think it’s an acceptable way to handle such restrictions. Many uses of the restricted features don’t involve violating copyright.
I made that restricted file earlier using pdftk text.pdf output
drmed.pdf owner_pw hunter2 allow
. It did not warn me that that DRM is
bad or that it can be very easily ignored or removed.
The PDF format supports also document encryption with user passwords. It’s not DRM, since it prevents reading the document instead of restricting it in software: can it be used to protect user’s privacy? (I don’t know how secure that encryption is, I would use OpenPGP instead if I had to send an encrypted document to a friend.)
LibreOffice spreadsheet ‘protection’
OpenDocument supports sheet and cell ‘protection’. It allows the user to read the spreadsheet (except for hidden sheets), but not view formulas, copy or edit their data.
This is implemented by adding metadata that tells programs to not allow editing the cells. The document contains an element with hashed password ‘needed’ to unprotect the sheet. It’s easy to change that password or remove protection using a text editor and a ZIP program to access XML files stored in the document.
LibreOffice Calc did not warn me that the added ‘protection’ is useless against users who can use a text editor. It did not warn me that this kind of restrictions is unfriendly and harmful regardless of them being effective.
The reason why I learned about this antifeature is that I once received
a spreadsheet document and wanted to learn how its formulas worked. I
converted it to ODF
using LibreOffice and used jar
and sed
to change the ‘protection’
password. I learned more than I expected to from that document.
While all complete OpenDocument implementations have this problem, I name LibreOffice specifically here since I use it and recommend for other reasons. This antifeature probably comes from OpenOffice.org or StarOffice which cloned it and other bugs from other proprietary office software.
Like PDF, OpenDocument supports encryption which is unrelated to the discussed restriction.
FontForge
TrueType fonts have metadata flags specifying if a font editor should allow users to modify or embed the font. FontForge supports modifying that metadata and warns the user when opening a font containing it.
The setting responsible for this is ‘Element’ → ‘Font Info’ → ‘OS/2’ → ‘Embeddable’, opening a TrueType font with that value set to ‘Never Embed/No Editing’ shows a dialog box with the following message:
This font is marked with an FSType of 2 (Restricted License). That means it is not editable without the permission of the legal owner.
Do you have such permission?
Accepting it, the program allows me to modify my font and change that
setting. I haven’t felt mislead into considering it an effective
restriction, unlike when using LibreOffice or pdftk
.
DRM and software freedom
All generic DRM issues apply here; I think there are more specific problems when it is used in works edited using free software:
- these restrictions make studying or modifying the work harder;
LibreOffice and unpatched
pdftk
don’t suggest a way of solving this - programs offering options to restrict works made using them usually mislead users into believing that that snake oil is secure
- it legitimizes preventing users from studying or modifying the digital works that they receive
While all cultural works should be free, these issues apply to functional works like fonts, spreadsheets (non-hacker’s programs), research articles or documentation, for which the freedoms of free software can be most clearly applied.
Solution
Free software that we develop should have no antifeatures. If we find a
free program with DRM, we should fix it, like Debian fixed pdftk
.
Software distributions should have explicit policies against DRM; the
No Malware
section of the Free System Distribution Guidelines would be appropriate
if it was implemented and more widely promoted.
Free software is better: skilled users can fix it and share the changes that allow users to control their own computers.