Tivoisierung: Wann ist Software wirklich frei?

12.04.2022

Dr. Andreas Kotulla

Open Source

Dr. Andreas Kotulla

zerbrochene Kette

Tivoisierung? Es liegt schon einige Zeit zurück, als dieser Begriff in aller Munde war. Mit der zunehmenden Verbreitung von „Embedded Devices“ auf der Basis von Linux ist die Diskussion in letzter Zeit jedoch wieder aufgeflammt.

Tivoisierung beschreibt den Vorgang, dass freie Software auf Geräten zum Einsatz kommt, auf denen nur vom Hersteller signierte Software lauffähig ist. Der Anwender hat dann zwar der Lizenz nach das Recht, sich den Quelltext zu besorgen und nach seinen Vorstellungen zu ändern, nicht jedoch die technische Möglichkeit, die von ihm veränderte Software auf das Gerät des Herstellers aufzuspielen. Das Gerät würde den Dienst verweigern oder zumindest nicht mehr ordnungsgemäß funktionieren (Wikipedia). Technisch gibt es viele Möglichkeiten veränderten Code zu erkennen und dementsprechend zu reagieren. So prüft die Hardware manchmal die installierte Software mit einer Prüfsumme und schaltet sich ab, wenn sie nicht mit einer erwarteten Signatur übereinstimmt.

Der Begriff wird geprägt vom Hersteller des digitalen Videorekorders Tivo, welcher auf Linux basiert. Wie es die GPL 2 verlangt, legt das Unternehmen die Quelltexte der TiVo-Software offen. Man kann sie einsehen, verändern, neu übersetzen, aber nicht mehr auf den TiVo aufspielen, denn dann läuft er nicht mehr: Die Firmware akzeptiert nur System-Images, die die TiVo-Macher digital signiert haben.

Dies löste eine heftige Diskussion in der Open-Source-Welt aus: Für Linus Torvalds, Initiator der Linux-Kernel Entwicklung, ist das Verhalten des Herstellers kein Problem: Der Code liegt offen, jeder Nutzer kann sich ansehen, was die TiVo-Macher programmiert haben, und diesen Code selbst verwenden. Chefideologe Stallman, Gründer der Free Software Foundation (FSF) hingegen betont die Freiheit der Anwender, das Gesamtsystem aus Hard- und Software nach Belieben zu ändern. Folgende wesentlichen vier Freiheiten hat die FSF dafür definiert1:

0. Die Freiheit, das Programm auszuführen wie man möchte, für jeden Zweck (Freiheit 0).

1. Die Freiheit, die Funktionsweise des Programms zu untersuchen und eigenen Datenverarbeitungbedürfnissen anzupassen (Freiheit 1).

2. Die Freiheit, das Programm zu redistributieren und damit Mitmenschen zu helfen (Freiheit 2).

3. Die Freiheit, das Programm zu verbessern und diese Verbesserungen der Öffentlichkeit freizugeben, damit die gesamte Gesellschaft davon profitiert (Freiheit 3).

Mit der Tivoisierung geht die nach Ansicht der FSF wichtige Möglichkeit verloren, die freie Software im TiVo nach Belieben zu ändern.

Ein Kompromiss wurde in der nun akzeptierten Fassung der GPL 3 gefunden, in welcher die Möglichkeit der „technischen Unterwanderung“ der Lizenz angesprochen wird: Die GPL 3 gibt explizit vor, dass bei einer Modifikation von Code auch „Installationsinformationen“ zur Verfügung gestellt werden müssen. Die Autoren der Lizenz haben hier neben dem „TiVo-Fall“ auch an den immer größeren Einsatz von PDAs, Smartphones oder ähnlichem gedacht, die meist mit einem eigenen Betriebssystem ausgeliefert werden und bei denen die Möglichkeit der Weiterentwicklung oder Anpassung der Software nur geringfügig oder gar nicht gegeben ist. Der Lizenzgeber muss hier sicherstellen, dass es dem Lizenznehmer technisch möglich ist, die Rechte, die er durch die GPL 3 erhält, auch tatsächlich umsetzen zu können.

Die Präambel der GPL 3 ist weitgehend identisch mit der der GPL 2, allerdings enthält der sprachlich überarbeitete Text auch diesen anlassbezogenen Abschnitt 6, der sich mit eingebetteten Systemen und dem „TiVo“-Fall beschäftigt:

Ein „Benutzerprodukt“ ist … ein „Endbenutzerprodukt“, womit ein materieller persönlicher Besitz gemeint ist … der … im Haushalt eingesetzt wird …
„Installationsinformationen“ für ein Benutzerprodukt sind alle Methoden, Verfahren, Berechtigungsschlüssel oder andere Informationen, die erforderlich sind, um modifizierte Versionen eines betroffenen Werks in diesem Benutzerprodukt aus einer modifizierten Version seines korrespondierenden Quellcodes zu installieren und auszuführen. Die Informationen müssen ausreichen, um sicherzustellen, daß das weitere Funktionieren des modifizierten Objektcodes in keinem Fall verhindert oder gestört wird, nur weil eine Modifikation vorgenommen wurde.

Dazu Eben Moglen, Professor für Recht und Rechtsgeschichte an der Columbia Law School in New York und beratend an der Entwicklung der GPL3 beteiligt:

Alle zukünftigen Versionen der GPL werden die [vier oben erwähnten] Freiheiten vollständig schützen, die die Free Software Foundation vor Jahrzehnten definiert hat und die unserer Meinung nach allen Software-Nutzern überall garantiert werden sollten.

Entwickler von „embedded Devices“ müssen also bei der Nutzung von Open Source unter der GPL 3 besonders achtsam sein und sicherstellen, dass nicht nur der Quellcode selbst veröffentlicht wird, sondern auch alle zusätzlichen Informationen, um Nutzern die Änderung zu erlauben, und den von ihnen geänderten Code auf dem Gerät auch wieder auszuführen. Damit werden schließlich die Freiheiten 0 bis 3 erfüllt.



1Der Grund, warum die vier Freiheiten mit 0, 1, 2 und 3 nummeriert sind, ist historisch bedingt. Um 1990 gab es drei Freiheiten, nummeriert mit 1, 2 und 3. Dann wurde klar, dass die Freiheit, das Programm für jeglichen Zweck auszuführen, explizit erwähnt werden musste. Diese Freiheit war deutlich elementarer als die anderen drei, sollte also entsprechend vorangestellt sein. Anstatt die anderen nun umzubenennen, wurde sie dem folgend Freiheit 0 benannt.