Hlavní navigace

Virtualizace umožní obejít GNU GPL 3

30. 8. 2007
Doba čtení: 4 minuty

Sdílet

Řešit problém zneužívání GPL kódu v hardwarových zařízeních některých výrobců byl jeden ze stěžejních úkolů nové verze GNU GPL 3. Nyní se zdá, že je k dispozici způsob, jak mohou výrobci nové restrikce obejít a získat ještě další výhody. Jak to funguje? Co výrobci nyní mohou? Můžeme jim v tom zabránit?

TiVoisace

O fenoménu zvaném TiVoisace jsme psali například v článku o novinkách v GPLv3. Jedná se o velmi nepříjemnou hrozbu pro svobodný software, jejíž závažnost si uvědomuje také Free Software Foundation, která se rozhodla zasáhnout za pomocí nové GPL 3.

Problém spočívá v obcházení licenčního ujednání za pomocí elektronického podpisu. Výrobce tak dokáže zabránit uživatelům v instalaci upraveného firmware, ačkoliv dává k dispozici zdrojové kódy. Ve zmíněném článku jsme o TiVoisaci napsali:

Někteří výrobci hardware na svých zařízeních provozují svobodný software, a proto musejí vydávat jeho upravené zdrojové kódy (v hardware se šíří binární podoba). Z tohoto pohledu tedy obvykle licenci dodržují.

Problém ovšem je, že v poslední době se množí případy, kdy výrobce sice vydá zdrojové kódy, ale jeho vlastní binární software je upraven tak, aby jako jediný na zařízení běžel. Obvykle se k tomu používá šifrování nebo elektronické podpisy. Pokud si tedy uživatel vytvoří vlastní verzi firmware, přístroj ji odmítne.

Výrobce se tímto způsobem brání zejména těm úpravám firmware, které by dovolily například obejít bezpečnostní opatření. Ze zařízení TiVo by tak uživatelé s upraveným softwarem mohli získat například kopii zaznamenaného televizního pořadu a podobně. Možností je celá řada.

Na druhou stranu software je prokazatelně založen na GNU GPL kódu a je proto potřeba dodržet všechna práva zaručovaná svobodnou licencí a tato práva zajistit i pro další uživatele.

Reakcí je GNU GPL 3

Aby do budoucna nedocházelo k podobnému obcházení práva, rozhodl se Richard Stallman, že do GNU GPL verze 3 přidá pasáž, která učiní podobným pokusům přítrž. Po mnoha jednáních a silné kritice některých částí se nakonec podařilo do licence novou sekci dostat.

Konkrétně je možno příslušný text najít v paragrafu šest:

Instalační informace pro uživatelský produkt znamenají veškeré metody, procedury, autorizační klíče nebo další informace potřebné pro instalaci a spuštění modifikovaných ver­zí…

Znamená to, že výrobce, který použije ve svém zařízení kód vydaný pod GNU GPL 3, musí ke zdrojovým kódům dodat také vše potřebné k vytvoření funkční upravené verze.

Virtualizace jako beranidlo

Bruno Zoppis ovšem vymyslel a popsal způsob, jak licenční ujednání elegantně obejít a ještě získat další bonusy. Jeho metoda by se dala zařadit do kategorie „vlk se nažere a koza zůstane celá”. Jeho metoda dovoluje zcela legálně na jednom zařízení provozovat GNU GPL i uzavřený kód, aniž by došlo ke „kontaminaci” licencí.

Zoppis využívá k řešení situace virtualizaci – konkrétně hypervisory. Jedná se o techniku, kterou využívá například jaderný systém Xen.

Hypervisor je software, který je natažen do paměti ještě před nahráním samotného jádra operačního systému. Toto jádro pak běží pod správou hypervisoru, který tvoří další vrstvu mezi reálným hardware a systémem. Pod hypervisorem může samozřejmě naráz běžet několik zcela oddělených systémů. Tyto vlastnosti jsou klíčové pro Zoppisovu metodu.

Princip práce software je pak poměrně triviální. Výrobce do svého zařízení nainstaluje hypervisor, který převezme kontrolu nad celým hardware a omezí práva jednotlivých virtualizovaných systémů.

Tento hypervisor může být vydán pod libovolnou licencí, protože není založen na žádném GNU GPL kódu. Neběží pod tímto kódem ani není součástí operačního systému. Naopak systém technicky běží pod hypervisorem.

Ve dvou „kontejnerech” pak budou spuštěny dva různé systémy. V jednom poběží veškerý GNU GPL kód, který může být samozřejmě libovolně upraven, aby v zařízení běžel. Ve druhém prostoru pak poběží všechny klíčové aplikace, dekódovací software, proprietární kodeky a další uzavřený software.

Hypervisor

Při startu systému pak bude kontrolována integrita oné uzavřené části. Ta může být podepsaná elektronickým podpisem nebo šifrovaná. Zbytek software, který je vydán pod GNU GPL, může být libovolně modifikován a výrobce to nadále nemusí hlídat. Hypervisor totiž omezuje možnosti tohoto kódu, a tak ani silně upravený software nedosáhne na uložená data, šifrovací klíče a podobně.

Jelikož jsou obě části striktně samostatné, nezávislé a běží odděleně, nelze hovořit o odvozeném díle a proprietární kód může být vydán pod libovolnou licencí. Pro předávání dat mezi oběma spuštěnými systémy je pak možno využít například sdílenou paměť, do které mohou přistupovat oba programy. Kód však zůstane stále oddělen.

Co z toho plyne?

Tato poměrně obecná metoda umožňuje výrobcům hardware použít například linuxové jádro, ale i další aplikace a legálně je spojit s proprietárním kódem. Update firmware tak může zůstat aktivní, aniž by se výrobce obával kritických změn ze strany uživatele.

To se samozřejmě netýká jen výrobců TiVo, ale také dodavatelů mobilních telefonů, kapesních počítačů, set-top-boxů, multimediálních přehrávačů a všech dalších embedded zařízení.

CS24_early

Doopravdy tak může být v rámci aktualizace dodávána binární forma nového firmware společně se zdrojovým kódům jen k některým částem programů. Veškeré ovladače hardware, kodeky, komunikační rozhraní a další klíčový software nám tak zůstane zcela uzavřen.

Přijdeme tak nejen o možnost vytvářet modifikované verze firmware, ale také o ovladače k některým zařízením a především o část svobod. Pokud se tento způsob distribuce firmware skutečně rozšíří, nepochybuji o tom, že FSF bude hledat nové způsoby, jak mu zamezit. Otázkou je, jestli to vůbec bude možné.

Je to...

Byl pro vás článek přínosný?

Autor článku

Petr Krčmář pracuje jako šéfredaktor serveru Root.cz. Studoval počítače a média, takže je rozpolcen mezi dva obory. Snaží se dělat obojí, jak nejlépe umí.