STREFA WIEDZY

Kod mObywatela: dlaczego to nie jest pełne open source?

https://isap.sejm.gov.pl/isap.nsf/DocDetails.xsp?id=WDU20230001234

Publikacja kodu źródłowego aplikacji mObywatel wywołała szeroką dyskusję, w której bardzo szybko zaczęły mieszać się pojęcia prawa, technologii i oczekiwań społecznych. W wielu komentarzach pojawia się zarzut, że skoro kod został udostępniony, to aplikacja powinna być w pełni open source. Taka teza brzmi intuicyjnie, ale z prawnego punktu widzenia jest nieprecyzyjna. Aby właściwie ocenić decyzję administracji, trzeba oddzielić obowiązek ustawowy od decyzji licencyjnych oraz rozumieć, czym w ogóle jest open source i czym jest licencja MIT.

Przepisy zobowiązują administrację publiczną do udostępnienia kodu źródłowego aplikacji mObywatel w Biuletynie Informacji Publicznej. Jednocześnie ustawodawca wyraźnie zastrzega, że publikacja następuje wyłącznie w takim zakresie, który nie zagraża bezpieczeństwu systemu ani jego użytkowników. To rozróżnienie ma fundamentalne znaczenie. Przepisy nie posługują się pojęciem open source i nie nakładają obowiązku pełnego otwarcia kodu ani wyboru określonej licencji. Obowiązek ma charakter transparentnościowy i informacyjny, a nie licencyjny.

Co wynika z przepisów, a czego prawo nie wymaga

Prawo zobowiązuje administrację publiczną do udostępnienia kodu źródłowego aplikacji mObywatel w Biuletynie Informacji Publicznej. Jednocześnie ustawodawca wyraźnie zastrzega, że publikacja następuje wyłącznie w takim zakresie, który nie zagraża bezpieczeństwu systemu ani jego użytkowników. To rozróżnienie ma fundamentalne znaczenie. Przepisy nie posługują się pojęciem open source i nie nakładają obowiązku pełnego otwarcia kodu ani wyboru określonej licencji. Obowiązek ma charakter transparentnościowy i informacyjny, a nie licencyjny.

Kod źródłowy jako utwór chroniony prawem autorskim

Kod źródłowy programu komputerowego jest utworem w rozumieniu prawa autorskiego. Sam fakt jego opublikowania nie oznacza rezygnacji z praw autorskich ani automatycznego przyznania uprawnień do korzystania z niego w dowolny sposób. Bez wyraźnej licencji użytkownik może co najwyżej zapoznać się z treścią kodu. Nie ma prawa go kopiować, modyfikować ani wykorzystywać w innych projektach. Dlatego publikacja kodu i udzielenie licencji to dwie odrębne decyzje prawne, które często są ze sobą mylone.

Czym jest licencja MIT z perspektywy prawa

Licencja MIT jest jedną z najbardziej liberalnych licencji open source. Z prawnego punktu widzenia oznacza ona zgodę autora lub właściciela praw na bardzo szerokie korzystanie z utworu. Pozwala ona na kopiowanie kodu, jego modyfikowanie, rozpowszechnianie oraz wykorzystywanie także w projektach komercyjnych. Jednocześnie nie nakłada na korzystających niemal żadnych obowiązków. Nie wymaga publikowania zmian ani dalszego udostępniania kodu. Właśnie dlatego licencja MIT jest często wybierana tam, gdzie zależy na prostocie i minimalizacji ryzyk prawnych.

W przypadku mObywatela istotne jest jednak to, że licencja MIT obejmuje wyłącznie te fragmenty kodu, które zostały faktycznie opublikowane. Nie rozciąga się ona automatycznie na całość systemu ani na elementy, które z uwagi na bezpieczeństwo nie zostały udostępnione.

Czym jest open source i dlaczego to pojęcie bywa mylące?

Open source to nie tylko dostęp do kodu. W sensie prawnym i praktycznym oznacza on możliwość korzystania z pełnego kodu źródłowego w sposób umożliwiający jego uruchomienie, rozwijanie i tworzenie własnych wersji programu. Projekt open source jest kompletny i pozwala społeczności realnie uczestniczyć w jego rozwoju. Samo udostępnienie fragmentów kodu, nawet na liberalnej licencji, nie czyni jeszcze projektu open source w tym znaczeniu.

W praktyce istnieje pośredni model określany jako source available. Polega on na udostępnieniu kodu lub jego części do wglądu i analizy, bez oddawania kontroli nad całością projektu. Taki model zapewnia przejrzystość, ale nie umożliwia pełnej reprodukcji systemu ani jego samodzielnego rozwijania poza strukturami właściciela praw.

Dlaczego w przypadku mObywatela wybrano taki model?

mObywatel nie jest zwykłą aplikacją komercyjną. To system przetwarzający dane osobowe, dokumenty oraz elementy tożsamości cyfrowej obywateli, zintegrowany z rejestrami państwowymi. Z prawnego punktu widzenia mówimy o systemie o szczególnym znaczeniu dla bezpieczeństwa publicznego. Pełne otwarcie całego kodu rodziłoby istotne ryzyka prawne i organizacyjne, w tym pytania o odpowiedzialność za luki bezpieczeństwa oraz o obowiązki reagowania na zewnętrzne modyfikacje.

Z tego powodu administracja zdecydowała się na rozwiązanie kompromisowe. Spełnia ono wymogi ustawowe dotyczące transparentności, umożliwia analizę wybranych elementów kodu i jednocześnie pozwala zachować kontrolę nad najbardziej istotnymi komponentami systemu.

Publikacja kodu mObywatela nie jest próbą stworzenia pełnoprawnego projektu open source, ponieważ prawo tego nie wymaga i ponieważ w przypadku systemów państwowych pełne otwarcie kodu wiązałoby się z realnymi zagrożeniami. Zastosowany model source available z wykorzystaniem licencji MIT jest świadomym wyborem prawnym, który równoważy transparentność działania administracji z odpowiedzialnością za bezpieczeństwo obywateli. Ocena tej decyzji wymaga spojrzenia przez pryzmat prawa, a nie wyłącznie przez oczekiwania środowiska technologicznego.