Analizujemy mSzyfr: komunikator rządowy oparty na protokole Matrix

kontrabanda.net 1 miesiąc temu

Ministerstwo Cyfryzacji w kwietniu 2026 roku uruchomiło komunikator mSzyfr, który według zapowiedzi ma zapewniać „pełną suwerenność cyfrową”.

Serwis ten jest przeznaczony głównie dla organów państwowych, ale do platformy – za zgodą ministerstwa – dostęp mogą otrzymywać też „inne podmioty”.

Audyty poza zasięgiem opinii publicznej

Według dokumentów uzyskanych przez redakcję „Kontrabandy” w trybie dostępu do informacji publicznej, jak dotąd na utrzymanie komunikatora mSzyfr wydano ponad 1,2 mln złotych.

Do 30 marca 2026 roku trwała umowa dotycząca komunikatora Threema, której łączny koszt wynosił 21,8 mln złotych. Ministerstwo Cyfryzacji postanowiło tej umowy nie przedłużać, nie podając przy tym konkretnego powodu.

Zgodnie z informacją publiczną przesłaną dnia 15 czerwca 2026 roku, odpowiedzialność za utrzymanie mSzyfru spoczywa na NASK–PIB – organie państwowym nadzorowanym przez Ministerstwo Cyfryzacji.

Ministerstwo, zapytane przez redakcję „Kontrabandy” o audyty bezpieczeństwa dotyczące mSzyfru, odmówiło ich udostępnienia, powołując się na art. 37 ustawy o krajowym systemie cyberbezpieczeństwa. Zgodnie z tym artykułem, pozyskanie takich audytów drogą wniosku o informację publiczną jest niemożliwe.

Na czym opiera się mSzyfr?

Sekretarz stanu w ministerstwie, Paweł Olszewski, podkreślał na jednej z komisji sejmowych, iż mSzyfr jest oparty o „polskie rozwiązania, polską infrastrukturę, polski kod”, i iż „nie ma żadnych zewnętrznych komponentów”.

Jednak na stronie rządowej podano, iż mSzyfr opiera się na Element Server Suite Pro – komercyjnej wersji komunikatora Element, który używa otwartego protokołu Matrix.

Oba projekty – Element (komunikator) i Matrix (protokół) – stworzyła brytyjska firma Element Creations Limited, która do 2025 roku nazywała się New Vector Limited. To drugie jest zarządzane od dłuższego czasu przez Matrix Foundation.

W oficjalnym dokumencie FAQ przygotowanym przez NASK, mSzyfr opisano jako rozwiązanie open source.

Częściowo to jest prawdą – kod aplikacji klienckiej, na której mSzyfr został oparty (Element X), jest dostępny na wolnej licencji (GNU AGPLv3). Jednak Element Server Suite Pro – oprogramowanie stanowiące podstawę mSzyfru – to produkt komercyjny, którego kod źródłowy nie jest publicznie dostępny.

Redakcja „Kontrabandy” wystąpiła z kolejnym wnioskiem o udostępnienie informacji publicznej. Zwróciliśmy się również o komentarz rzecznika prasowego Ministerstwa Cyfryzacji w sprawie wypowiedzi Pawła Olszewskiego, którego do momentu publikacji nie otrzymaliśmy.

Skąd wiemy, iż aplikacja mSzyfru jest oparta o aplikację Element X?

NASK na swojej stronie internetowej opublikował pliki ZIP z kodem źródłowym aplikacji klienckich mSzyfru, co było następstwem warunków licencyjnych (GNU AGPLv3 wymaga, żeby zmodyfikowany kod źródłowy był w całości publiczny). Celem archiwizacji (oraz umożliwienia podglądania dokonywanych zmian w czasie) opublikowaliśmy jego kopię w wersji dla Androida oraz dla iOS w serwisie Codeberg.

W kodzie mSzyfru – zarówno w przypadku jednej, jak i drugiej platformy – pozostało wiele odniesień do macierzystej aplikacji. Na czas publikacji artykułu wersja na Androida była oparta o Element X w wersji 26.03.4 (najnowsza w chwili publikacji: 26.06.4), zaś na iOS-a – 25.12.1 (najnowsza w chwili publikacji: 26.06.1).

Przykładami w aplikacji na Androida mogą być plik README.md, który wprost mówi o tym, iż dotyczy on aplikacji Element X:

…plik LearnMoreConfig.kt, z którego odniesienia do strony element.io nie zostały usunięte:

…aż w końcu po plik CHANGES.md, opisujący każdą zmianę, która została wdrożona w aplikacji Element X.

Ponieważ kod mSzyfru został opublikowany wyłącznie w formie plików ZIP, to był jedyny punkt odniesienia, jak bardzo aktualny był kod aplikacji do komunikacji rządowej.

Wersja Element X na Androida z marca 2026 a łatki bezpieczeństwa

Jeżeli uznamy, iż mSzyfr w wersji na Androida rzeczywiście dalej jest oparty o tę samą wersję Element X, to przynajmniej dwie istotne poprawki bezpieczeństwa mogą mieć znaczenie w przypadku braku synchronizacji kodu mSzyfru z projektem macierzystym. Na ten moment mowa o zgłoszeniach o numerach CVE-2026-45056 oraz CVE-2026-45057, które w macierzystej aplikacji Element X na Androida zostały załatane w wersji 26.05.1.

Nie jesteśmy w stanie niezależnie potwierdzić, czy podjęto jakiekolwiek działania w tej sprawie z uwagi na formę publikacji kodu zastosowaną przez NASK. Zgłosiliśmy sprawę do CERT-u i oczekujemy z ich strony na odpowiedź.

Źródła

Zdjęcie tytułowe zostało zrobione własnoręcznie i jest ono dostępne na Wikimedia Commons na licencji CC BY-SA 4.0 International. Treść artykułu powstała na podstawie następujących zewnętrznych źródeł tekstowych i/lub audiowizualnych:

Idź do oryginalnego materiału