O co chodzi z publikacją kodu źródłowego aplikacji mObywatel

Ten tekst oryginalnie został opublikowany 29 lipca 2025 r. na moim profilu na Twitterze.

Postanowiłam opisać ten temat jeszcze raz, w związku z niedawną interpelacją Pauliny Matysiak na ten temat. Będzie o tym, jak za rządów PiS przyjęto opozycyjną poprawkę zwiększającą jawność działań rządu i tym, jak Koalicja 13 grudnia szybciutko się z niej wycofała.

(większość wątku napisałam 2 tygodnie temu, ale postanowiłam go w końcu wrzucić w związku z inbą o „szpiegowaniu jak Pegasus” xD)

W marcu 2023 r., Sejm zajął się rządowym projektem ustawy o aplikacji mObywatel. Kompleksowa regulacja funkcjonowania aplikacji miała m.in. umożliwić korzystanie z wbudowanego mDowodu na równi z fizycznym dokumentem tożsamości.

W toku prac nad projektem w komisjach, poseł Michał Gramatyka (Polska2050) zgłosił poprawkę do ustawy, która zobowiązywała ministra właściwego do spraw informatyzacji do udostępnienia kodu źródłowego aplikacji mObywatel w terminie roku od wejścia w życie ustawy i kodu jego aktualnych wersji w terminie dwóch tygodni od ich publikacji. Do poparcia tej poprawki udało się poprzeć zdecydowaną większość Sejmu — tylko jeden poseł wstrzymał się w głosowaniu, nikt nie głosował przeciw.

Zmiana ta pozwoliłaby osobom o odpowiednich umiejętnościach niezależnie audytować kod, zweryfikować, co robi aplikacja dostarczana przez rząd. To zdecydowany krok w stronę większej przejrzystości i budowy zaufania do rządu. Do pierwszej publikacji miało dojść najpóźniej w lipcu 2024 r.

Zanim jednak udało się to zaufanie zbudować, już po zmianie władzy, ze strony COI, Ministerstwa Cyfryzacji… zaczęły pojawiać się głosy o rzekomych zagrożeniach związanych z publikacją kodu źródłowego mObywatela. Wskazywano, że lepiej byłoby udostępnić go we fragmentach1.

Jednak takie rozwiązanie, po pierwsze, nie przyczyniłoby się do budowy zaufania do aplikacji — wręcz przeciwnie, dałoby sygnał „mamy coś do ukrycia”. Co najwyżej zaspokoiłoby ciekawość kilku autystek. Na jakieś pół godziny. Ustawa nie przewiduje też publikacji kodu źródłowego na permisywnej licencji, pozwalającej na jego ponowne użycie w innym projekcie. Taki kod byłby niemal bezużyteczny.

Po drugie, argumenty związane z bezpieczeństwem aplikacji są po prostu błędne. Ustawa w poprzednim brzmieniu zobowiązywała do publikacji jedynie kodu „aplikacji mObywatel”, którą definiuje jako „oprogramowanie przeznaczone dla urządzeń mobilnych, w którym są udostępniane usługi […]”, więc wyłącznie to, które znajduje się już na urządzeniach użytkowników końcowych w formie kodu bajtowego (w przeciwieństwie do „systemu mObywatel”, czyli „systemu teleinformatycznego zapewniającego funkcjonalności niezbędne do działania aplikacji mObywatel oraz usług udostępnianych w tej aplikacji”). Publikacja kodu w formie czytelnej dla człowieka nie tworzy więc nowych zagrożeń, przed którymi hipotetycznie mogłoby zabezpieczyć jego nieujawnienie. Dopiero ujawnienie kodu „systemu mObywatel” mogłoby hipotetycznie umożliwić odnalezienie luk zagrażających bezpieczeństwu jej użytkowników lub systemu.

Publikacja kodu źródłowego mObywatela mogłaby w dalszej perspektywie pozwolić na współtworzenie aplikacji przez społeczność, jak w przypadku ukraińskiej aplikacji Дія, będącej znacznie bardziej rozbudowanym odpowiednikiem mObywatela. Jej kod został udostępniony w 2024 roku na kompatybilnej z innymi licencjami wolnego oprogramowania Licencji Publicznej Unii Europejskiej, którą wyróżnia oficjalne, wiążące tłumaczenie w językach państw członkowskich UE2. W repozytorium Дії na GitHubie możemy odnaleźć niewielkie zmiany wykonane przez osoby z zewnątrz.

Jestem przekonana, że już w dniu udostępnienia kodu w publicznym repozytorium, społeczność zaczęłaby prace nad starannie wykonanym ciemnym motywem dla aplikacji, którego brakuje wielu użytkownikom.

O innych argumentach za publikacją kodu źródłowego aplikacji rozwijanych przez sektor rządowy możecie przeczytać na stronie kampanii „Public Money, Public Code” prowadzonej przez FSFE3.

Rezygnacja z publikacji kodu źródłowego w całości dodatkowo legitymizuje teorie spiskowe powstające wokół aplikacji. Gdy głosowano nad oryginalną ustawą, politycy Konfederacji (i Korony), jako jedyni głosujący przeciw niej, mówili: „traktowałbym tę aplikację jako hakera, który włamał się na mój telefon” (Berkowicz) czy „pod pretekstem służenia obywatelom szykujecie kolejne zamachy na wolność, godność, bezpieczeństwo Polaków” (Braun). Działacze partyjnymi mówili wręcz o „bandzie psychopatów” i „zdrajcach narodu polskiego”.

(swoją drogą, zawsze zastanawiało mnie, jak oni łączą ten technosceptycyzm z bezrefleksyjnym poparciem dla wyborów przez Internet…)

Choć zdrową (🙃) nieufność wobec poczynań rządu polecam każdemu, powinna stanowić ona jednak podstawę dla działań kontrolujących rząd, a nie kontestowania ich dla zasady. Takim, zwiększającym transparentność rządu działaniem było właśnie przygotowanie poprawki zobowiązującej do udostępnienia kodu źródłowego mObywatela i przekonanie do niej większości sejmowej.

Zapisy zobowiązujące do publikacji kodu źródłowego zostały zmienione po cichu, w niezwiązanej z tematem Ustawie z dnia 15 maja 2024 r. o zmianie ustawy o pomocy obywatelom Ukrainy […]. Wymóg publikacji do lipca 2024 r. został zastąpiony artykułem uzależniającym publikację kodu źródłowego od uzyskania opinii CSIRT GOV, CSIRT MON i CSIRT NASK „w zakresie niezagrażającym bezpieczeństwu tej aplikacji oraz jej użytkowników lub systemu mObywatel”. Jednocześnie z ustawy zniknął obowiązek publikacji aktualnych wersji kodu mObywatela. Obecne brzmienie ustawy zobowiązuje rząd jedynie do jednorazowej publikacji fragmentów kodu źródłowego bez wyznaczonej perspektywy czasowej.

Niestety, temat tych zmian w ustawie nie przebił się medialnie. Był komentowany głównie przez polityków wcześniej nim zainteresowanych, jak Adrian Zandberg opowiadający się już wcześniej za ideą #PublicMoneyPublicCode4, czy Janusz Cieszyński5. Wcześniej straszący mObywatelem politycy tym razem siedzieli cicho.

Jedynym politykiem Konfederacji, którego wpis na ten temat odnotowałam był Dobromir Sośnierz6, który jako ówczesny poseł koła Wolnościowcy głosował za pierwotną ustawą. Gdzie były protesty Korony, gdy pod przykrywką pomocy obywatelom Ukrainy rząd rzeczywiście postanowił coś ukryć !?

Teorie spiskowe dotyczące aplikacji mObywatel są propagowane również przez ekosystem medialny skupiony wokół Jan Piński. Według nich, mObywatel „szpieguje Polaków jak Pegazus”. Zasięg propagowanych przez niego treści wymusił reakcję Ministerstwa Cyfryzacji7, a także polityków koalicji rządzącej. Oczywiście ani portal Wieści24, ani youtube’owy kanał Jana Pińskiego nie odnotował wykorzystania wrzutki legislacyjnej w celu ukrycia tego, co znajduje się w kodzie źródłowym mObywatela.

W maju 2025 r. Sieć Obywatelska Watchdog Polska poinformowała, że w kuluarowych rozmowach na konferencji „The Future is Data. Przyszłość to dane” minister cyfryzacji Krzysztof Gawkowski potwierdził, że kod źródłowy aplikacji mObywatel nie zostanie opublikowany, argumentując to względami bezpieczeństwa8.

Publikacja kodu źródłowego aplikacji w całości (na co wciąż pozwala obecny kształt ustawy) stanowiłaby słuszny krok w stronę budowy zaufania do tej aplikacji, jak i do cyfryzacji administracji publicznej, osłabiając siłę rażenia powstających teorii spiskowych.

Interpelacja9, w której napisaniu pomagałam, zadaje pytania dotyczące przygotowywania przez CSIRT GOV, CSIRT MON i CSIRT NASK opinii dotyczących publikacji kodu źródłowego. Zachęcam do przeczytania (choć w tym wątku zrobiłam trochę kopiuj-wklej).

Footnotes

  1. https://www.gazetaprawna.pl/wiadomosci/kraj/artykuly/9492930,wiceminister-michal-gramatyka-pomysl-publikacji-calego-kodu-mobywatel.html

  2. https://interoperable-europe.ec.europa.eu/collection/eupl/news/ukraine-publishes-diia-under-eupl

  3. https://publiccode.eu/

  4. https://x.com/ZandbergRAZEM/status/1788305175989412107

  5. https://x.com/jciesz/status/1788174757529092592

  6. https://www.facebook.com/dobromir.sosnierz/videos/3384783611818942/

  7. https://www.gov.pl/web/cyfryzacja/czy-mobywatel-szpieguje-obywateli

  8. https://siecobywatelska.pl/przyszlosc-to-dane/

  9. https://sejm.gov.pl/Sejm10.nsf/interpelacjaTresc.xsp?documentId=54FEE8E04F77CACAC1258CC700278AA0&view=S