V piatok 3. februára 2023 vyšla verzia 4.5 štátneho eID klienta. V poznámkach k verzii sa nachádza nenápadná novinka:
- aplikácia už nepoužíva knižnicu OpenPACE
Táto poznámka je len malým kúskom zaujímavého príbehu, nuž vám z neho vyrozprávam viac.
1 OpenPACE a GPL
OpenPACE je slobodná softvérová knižnica implementujúca (okrem iných) protokol PACE (TR-03110, 2. časť) slúžiaci na našich preukazoch na overenie BOK či CAN kódu (zjednodušene “prihlásenie”).
Pretože knižnica OpenPACE je distribuovaná pod licenciou GPLv3, nemožno ju kombinovať s neslobodným softvérom akým je eID Klient. Napriek tomu sa v septembri 2022 vo verzii 4.0 táto knižnica objavila.
Hoci OpenPACE je nám k dispozícii pod licenciou GPLv3, autorom nič nebráni poskytovať svoj softvér aj pod inou licenciou. Samotná prítomnosť kódu pochádzajúceho z GPL knižnice v neslobodnom produkte nemusí znamenať porušovanie autorských práv. Autori sa mohli nejako dohodnúť.
V novembri 2022 som sa preto autora OpenPACE opýtal, či je distribúcia jeho diela ako súčasti slovenského štátneho eID klienta v poriadku. Nuž, nebola. O ničom nevedel, eID klient jeho autorské práva porušoval. Bol teda akýmsi pirátskym softvérom z dielne štátu.
Ako takúto chybu napraviť? Možností je viac. Napríklad:
- Zverejniť kompletný zdrojový kód eID klienta pod slobodnou licenciou.
- Dohodnúť sa s autormi OpenPACE na inej licencii, ktorá kombináciu s neslobodným softvérom dovoľuje.
- Nahradiť knižnicu iným kódom bez “problémovej” licencie.
Elegantné prvé riešenie by dozaista privítala nielen odborná verejnosť, štát (či jeho dodávateľ) však chybu napravil krokmi č. 2 a 3.
To vieme aj vďaka priamej odpovedi z ministerstva vnútra. V slovenskom prostredí (e-Governmentu) nie som doma, preto som sa v novembri o poznatok o porušovaní autorských práv štátom podelil s @jsuchal. On v januári 2023 napísal na ministerstvo vnútra takúto žiadosť o informácie:
-
Používa eID klient knižnicu OpenPACE?
Áno, avšak len do verzie 4.4. V ďalších verziách táto knižnica použitá nebude. -
Ako sú vysporiadané licenčné práva voči autorovi OpenPACE (ak existuje zmluva s autorom, žiadame o jej zaslanie)
Vysporiadanie licencií je v kompetencii dodávateľa aplikácie eID klient. Podľa našich informácií sa dodávateľ aplikácie eID klient dohodol s autorom knižnice na proprietárnej licencii, pričom aktuálne prebieha negociácia zmluvy priamo medzi autorom knižnice a dodávateľom aplikácie eID klient.
Negociácia zmluvy s autorom knižnice je v kompetencii dodávateľa aplikácie eID klient a jej text preto nie je dostupný Ministerstvu vnútra Slovenskej republiky. -
Kde je možné nájsť zdrojové súbory eID klienta?
Zdrojové súbory eID klienta nie sú zverejňované. -
Zoznam knižníc, ktoré sú využívané v eID klientovi a ako sú vysporiadané autorské/licenčné práva na užívanie týchto knižníc.
Zoznam knižníc je nasledovný (názov knižnice – typ licencie):
• Botan – BSD 2-clause “Simplified” License
• nlohmann/json – The MIT License (MIT)
• openjpeg – BSD 2-clause “Simplified” License
• OpenSSL – Apache License 2.0
• OpenPACE – proprietárna licencia
• Qt – LGPL v3
Pri zozname knižníc je uvedený typ licencie, čo znamená, ako bola licencia vysporiadaná.
Odpovede najmä potvrdili to, čo sme už vedeli. Mňa však na konci zaujala informácia o licencii, pod ktorou štát s klientom distribuuje knižnicu Qt.
2 Qt a LGPL
Qt je zbierka knižníc (nielen) na programovanie používateľského rozhrania. Aj vďaka Qt funguje (či vyzerá) eID klient porovnateľne na rôznych operačných systémoch. Okrem komerčnej licencie je Qt k dispozícii aj pod slobodnou licenciou LGPL. Podľa odpovede Ministerstva vnútra (a napokon aj podľa textov licencií priložených k eID klientovi) je knižnica Qt distribuovaná práve pod licenciou LGPL.
LGPL je menej “prísna” príbuzná GPL. Softvér pod licenciou LGPL možno za určitých podmienok (4. časť licencie) kombinovať s neslobodným softvérom. Presnejšie, dodávateľ eID klienta nám musí dať (zdokumentovanú) možnosť používať program s inou (kompatibilnou) verziou Qt, napríklad s tou, ktorú už na počítači máme nainštalovanú. Samotní autori Qt tieto podmienky formulujú takto:
- The user is allowed to change and re-link the library used in the application or device – including reverse engineering. With LGPLv3 it is explicitly stated that the user also needs to be able to run the re-linked binary, and that sufficient installation information must be provided.
- If the application or device is not fully following all requirements of the LGPL, it is not allowed to be distributed at all.
- The freedoms provided by the LGPL license cannot be in any way negotiated upon or restricted from any of the recipients – i.e. it is not possible to make such terms for an application or a device using the LGPL library that would in any way restrict the rights provided by the LGPL.
Tieto podmienky ale eID klient zrejme nespĺňa. Kto sa pokúsi program spustiť s inou, no kompatibilnou verziou Qt, uvidí takéto chybové hlásenie:
Z akéhosi dôvodu eID klient pri štarte kontroluje integritu viacerých spustiteľných súborov a ukončí sa, ak narazí na neznámu kópiu knižnice. Tým pravdepodobne porušuje licenciu LGPL a zostáva pirátskym softvérom. Pravdepodobne, pretože ja som programátor a právu sa nerozumiem.
Milé právničky, milí právnici, prosím pomôžte nám. Ako tomu rozumiete vy?
Ako z toho von?
Podobne ako v prípade OpenPACE, aj tu je možných riešení hneď niekoľko. Napríklad:- Zverejniť kompletný zdrojový kód eID klienta pod slobodnou licenciou.
- Zmeniť eID klienta tak, aby bol v súlade s LGPL. To znamená najmä umožniť jeho spúšťanie s inými (i upravenými) kompatibilnými verziami Qt.
- Zaplatiť za komerčnú licenciu Qt, ktorá žiadne takéto “obmedzenia” nemá.
- Nahradiť knižnicu iným kódom bez “problémovej” licencie.
Za pravdepodobné riešenie považujem druhé, hoci ani tretie nie je nereálne. Najlepším riešením by však bolo to prvé.
3 Záver
Dobrou správou je, že z používateľov štát svojím babráctvom pirátov nespravil. Knižnice smieme používať i napriek ich spornej distribúcii.Porušovaním licenčných podmienok sú dotknuté práva autorov príslušných programov, my sme naozaj len v pozícii publika. Pretože však ide o konanie štátu, dozaista ho smieme kontrolovať a očakávať od neho lepšiu robotu.