Wczoraj odbyły się wybory do Parlamentu Europejskiego, poprzedzone wzmożoną aktywnością medialną Ministerstwa Cyfryzacji, które:
- informowało, że jesteśmy na celowniku licznych ataków cybernetycznych, które mają zdestabilizować sytuację w kraju,
- namawiało do potwierdzania tożsamości podczas głosowania dokumentem mObywatel.
Niestety, były to kolejne wybory, w których wytyczne PKW dopuszczały najmniej bezpieczny sposób weryfikacji dokumentu mobilnego: sprawdzanie jedynie zabezpieczeń wizualnych. Przeszkadzało mi to przy wszystkich dotychczasowych wyborach, ale dotychczas narzekałem głównie żonie. Jednak w tym roku – w obliczu wojny hybrydowej i w tak wyraźnym zestawieniu z zagrożeniem cybernetycznym – nie wytrzymałem i ponarzekam Wam, na blogu.
Wytyczne PKW – luka bezpieczeństwa
Wytyczne dla komisji wyborczych w sprawie wyborów do Parlamentu Europejskiego zostały wprowadzone przez PKW uchwałą nr 262/2024. Czytamy w nich:
43. Przed wydaniem karty do głosowania komisja:
1) sprawdza tożsamość wyborcy na podstawie dowodu osobistego lub każdego innego dokumentu ze zdjęciem (…). Komisja może potwierdzić tożsamość wyborcy także na podstawie aplikacji mObywatel. Elementy, które potwierdzają, że wyświetlane na ekranie urządzenia dane są wiarygodne, bezpieczne i aktualne:
- na górze pośrodku pod napisem „mDowód” powinna znajdować się aktualna i stale zmieniająca się godzina oraz aktualna data,
- z lewej strony pod zdjęciem falująca, a nie statyczna, flaga Rzeczypospolitej Polskiej,
- pod falującą flagą hologram w postaci zmieniającego natężenie barw godła Rzeczypospolitej Polskiej.
Powtórzmy: zmieniająca się godzina, falująca flaga i hologram to elementy, które potwierdzają że dane są wiarygodne, bezpieczne i aktualne.
Wiarygodne
Bezpieczne
Aktualne
↑ te cechy, dzięki tym elementom ↓
Godzina
Flaga
Hologram
Jeśli flaga i hologram Was nie przekonują, to warto odnotować, że PKW przewiduje, że ktoś może mieć wątpliwości, więc dodaje:
W przypadku gdy okazany na smartfonie dokument nie budzi żadnych wątpliwości, nie ma konieczności podejmowania innych kroków weryfikujących jego autentyczność.
Natomiast w przypadku stwierdzenia wątpliwości w zakresie autentyczności aplikacji członek komisji powinien poprosić wyborcę o wykonanie sprawdzenia w usłudze mObywatel, w szczególności poprzez wyjście z aplikacji i ponowne zalogowanie się.
Czyli jeśli nie jesteś pewien autentyczności aplikacji, to ją wyłącz i włącz ponownie. Świetna rada wujku, bardzo dobra rada.
Legalne, ale czy w duchu prawa?
Takie działanie jest całkowicie zgodne z prawem. W ustawie o aplikacji mObywatel, w art. 9 ust. 2 pkt. 4), jest wyraźnie wskazane, że można weryfikować zabezpieczenia wizualne dokumentu celem jego potwierdzenia.
Pamiętajmy jednak, że jest to tylko jeden z kilku sposobów. Najprostszy, najmniej bezpieczny ale nie jedyny. Ustawodawca wprowadził tę opcję, żeby dokumentu dało się łatwo używać w zwyczajnych, codziennych sytuacjach (np. odbiór dziecka z przedszkola, zakup alkoholu), bo inaczej aplikacja nie byłaby tak popularna.
Ale czy głosowanie w wyborach to też taka błaha czynność? Czy już tak przywykliśmy do demokracji, że zgadzamy się iść po linii najmniejszego oporu?
Luka bezpieczeństwa
Sama architektura aplikacji wydaje się całkiem bezpieczna. Zastosowanie kryptografii, pieczęci elektronicznych, certyfikatów obywateli i prawne założenie fizycznej obecności przy stosowaniu mDowodu powoduje, że trudno jest przeprowadzić atak na usługę jego przekazywania do weryfikacji.
Problem polega na tym, że PKW z tej usługi w ogóle nie korzysta.
W efekcie istnieje możliwość fałszowania wyborów w skali, jakiej do tej pory jeszcze nie było.
Mechanizm ataku
Zobaczmy dlaczego takie wytyczne mogą być groźne.
Przygotowanie atrapy aplikacji
Żeby przeprowadzić atak trzeba najpierw napisać appkę, która:
- wygląda i zachowuje się tak samo jak aplikacja mObywatel (przynajmniej ekrany dotyczące mDowodu),
- pozwala atakującemu na wprowadzanie różnych tożsamości.
Napisanie aplikacji, która wyglądem przypomina inną, w ogólności nie jest raczej trudne. Ale w przypadku mObywatela jest to super proste, bo na stronie dotyczącej jego powstania Ministerstwo udostępniło dostęp do makiet UI aplikacji. Graficy tworzą je, aby ułatwić pracę programistom, żeby nie musieli ustawiać elementów ekranów na czuja. Kolory, wymiary, pozycje: wszystko jednoznacznie opisane, tak jak na przykładzie poniżej:
Samą grafikę (tła, ikony) też dość łatwo pozyskać, co zostało wskazane w artykule Czym jest dokument mobilny mObywatel? z czasopisma Informatyk Zakładowy. Wystarczy dostać się do plików swojej własnej instalacji aplikacji. Poniżej przykłady plików ze wspomnianego artykułu (w tym składowe hologramu):
Pamiętajmy też, że docelowo nawet nie trzeba będzie samemu kodować atrapy, bo kod źródłowy oryginalnej aplikacji ma zostać upubliczniony, na mocy ustawy.
Poza takim samym wyglądem i zachowaniem atrapa powinna pozwalać atakującemu na wprowadzenie czyjejś tożsamości. Zdjęcie będzie zdjęciem atakującego (twarz musi się zgadzać) ale imię, nazwisko i PESEL będzie można wprowadzić na osobnym ekranie (w ustawieniach czy czymś takim) tuż przed wejściem do lokalu.
Tak przygotowanej aplikacji nie wgrywa się oczywiście do sklepu. Plik instalacyjny wysyła się do atakujących, do manualnej instalacji.
Scenariusz ataku
- Pozyskiwane są dane wyborców, pod których atakujący będą się podszywać.
- Grupa atakujących instaluje sobie atrapę mObywatela a następnie każdy z nich otrzymuje swój przydział skradzionych tożsamości (każda z innego obwodu).
- Atakujący wpisuje do atrapy pierwszą tożsamość (lub wybiera z podanych w aplikacji) i przyjeżdża do Obwodowej Komisji Wyborczej możliwie wcześnie rano. Podaje członkowi komisji adres, pokazuje atrapę mObywatela, składa jakiś podpis i pobiera kartę do głosowania.
- Po oddaniu głosu (ważnego lub nie) atakujący wychodzi z OKW, zmienia w aplikacji tożsamość na innego wyborcę i jedzie do kolejnej OKW ponowić proceder.
Rezultat ataku
Gdy później tego dnia, uczciwy wyborca przyjdzie zagłosować, dowie się, że nie może pobrać karty do głosowania, bo już ją odebrał (o czym świadczy fałszywy podpis).
Co będzie dalej? Wyborca się zdenerwuje (bardziej lub mniej) i będzie robił awanturę (większą lub mniejszą). Członkowie komisji albo będą stać twardo na swoim stanowisku i nie wydadzą drugi raz karty, albo stwierdzą, że pewnie oni zawinili (np. wskazali złe miejsce na złożenie podpisu) i dadzą drugą kartę.
Do PKW wpłyną skargi i protesty, które komisja będzie rozpatrywać, by stwierdzić ważność wyborów. Jak ich będzie dużo – może unieważni wybory. Ale raczej uzna, że problemy nie miały wpływu na wynik głosowania, więc nie trzeba go powtarzać.
Warto zwrócić uwagę, że wykrywalność ataku jest mocno związana z frekwencją. Po prostu jest duża szansa, że ofiara nie przyjdzie oddać głosu, więc nikt się nie dowie, że ktoś zagłosował za nią.
To, czy atak będzie udany, zależy od celu atakujących. To może być wpływ na wynik (wprowadzenie swojego człowieka do władz) lub destabilizacja, zamieszanie, zmniejszenie zaufania obywateli do państwa (scenariusz obcej agentury).
Skąd wziąć dane wyborców?
Potrzebne są imiona, nazwiska, nr PESEL i adresy zamieszkania. Skąd te dane wziąć?
Po pierwsze: to jest pytanie retoryczne. Przestępcy już mają nasze dane – te, które wyciekły z baz danych sklepów internetowych itd.
Po drugie: wszystkie potrzebne dane są na listach poparcia, które wyborcy podpisują przed rejestracją komitetów. Wystarczy odpowiednio wcześniej stanąć na ulicy z plakietką byle partii i nagabywać ludzi do wpisania swoich danych do takiej tabelki:
Albo, zamiast udawać wolontariuszy, w jakiś sposób pozyskać (ukraść, kupić) takie listy – czy one na pewno są pieczołowicie niszczone, po weryfikacji w PKW? Czy przed wysłaniem do PKW żaden wolontariusz nie zrobił sobie xero/skanu tabelek, żeby sprzedać na czarnym rynku?
Na marginesie tylko zaznaczę, że osoby udzielające poparcia zwykle są zaangażowane politycznie, więc chodzą na wybory, a zatem kradzież ich tożsamości zwiększa ryzyko wykrycia ataku.
Ryzyko wpadki
Oczywiście noga atakującemu może się powinąć i zostanie zdemaskowany. Trzeba więc pamiętać, aby:
- nie robić tego w mniejszych miejscowościach, gdzie wszyscy się znają („ej, Ty nie jesteś Władek!”),
- głosować jak najwcześniej rano, żeby pobrać kartę przed ofiarą,
- zwracać uwagę na kamery/monitoring – prowadząc śledztwo policja będzie szukać osób, które pojawiały się w wielu OKW, więc warto mieć kaptur, czapkę, zmieniać ubranie itd.,
- dopasować ofiarę do wieku i płci atakującego – członek komisji może wyłapać, że coś jest nie tak, jeśli 80 latek ma twarz młodej dziewczyny.
Co jak się zostanie nakrytym? Jeśli to dlatego, że przy pobieraniu karty jest już podpis ofiary, należy się zachować jakby się samemu było ofiarą: robić awanturę, że to błąd/oszustwo i pisać skargę. W pozostałych przypadkach: dać nogę 🙂
Skala i zasięg
To nie jest tak, że plastikowego dowodu nie da się podrobić. Da się. Ale skala jest ograniczona. Bo to jest materialny przedmiot. Trzeba poświęcić czas nie tylko na jego wytworzenie lecz także obsługę: zebranie zdjęć od atakujących, rozesłanie dokumentów po kraju, niszczenie w celu zatarcia śladów itd. Poza tym nie da się dołączyć nowego atakującego w ostatniej chwili, np. w dniu wyborów.
A aplikację pisze się raz, rozsyła do sieci i każdy z atakujących może wprowadzać dane dziesiątek ofiar. Niskie koszty (zwłaszcza czas) zapewnią efekt skali.
Rozwiązanie
A zatem, żeby wykluczyć takie fałszerstwo, PKW powinno zmienić wytyczne, aby potwierdzanie tożsamości przy pomocy aplikacji mObywatel odbywało się przez usługę przekazania dokumentu a nie weryfikację graficzną.
Jak to działa?
Każda aplikacja mObywatel ma wbudowane dwie bliźniacze funkcje:
- możliwość potwierdzenia swojej tożsamości komuś,
- możliwość potwierdzenia czyjejś tożsamości.
Zakładamy, że w każdej OKW jest przynajmniej jeden członek z aplikacją mObywatel na swoim telefonie. Przy czym ten ktoś nie musi instalować w niej swojego dowodu (łączyć się z Profilem Zaufanym).
Gdy obywatel przychodzi zagłosować, członek komisji pokazuje mu na swoim telefonie specjalny kod QR wygenerowany w aplikacji mObywatel. Wyborca go skanuje aplikacją mObywatel a następnie potwierdza przekazanie dokumentu. Na telefonie członka pojawiają się bezpieczne, wiarygodne i aktualne dane.
Kroki członka komisji (niestety nie mam makiety ostatniego kroku):
Kroki dla obywatela:
W tym układzie nie tylko OKW ma większą pewność ale też obywatel czuje się lepiej, bo nie będzie musiał dawać komuś do ręki swojego telefonu (bo np. członek komisji niedowidzi).
Słabe strony rozwiązania
Największe wady korzystania ze skanowania kodów, to:
- poziom skomplikowania – niestety, choć usługa nie jest trudna, to jednak może sprawiać problemy (kto komu pokazuje? gdzie to się klika? czy to już?) a przy dużej frekwencji robią się kolejki i w OKW jest nerwowo,
- takie zastosowanie wymaga (z tego co wiem) połączenia online, więc nie zadziała tam gdzie nie ma zasięgu,
- usługa może obciążać serwery ministerstwa a ataki DDoS mogą położyć usługę,
- w każdej komisji musi być ktoś, kto tego mObywatela ogarnia – to może być kłopot w miejscowościach mniejszych.
Lecz nie są to problemy, których nie da się zwalczyć. Np. możliwość obecnej weryfikacji można zostawić pod pewnymi warunkami (np. jako opcja zapasowa lub w mniejszych miejscowościach, gdzie ryzyko fałszerstw jest mniejsze).
Należy też pamiętać, że obowiązek udowodnienia tożsamości leży po stronie obywatela. Jak ktoś zapomniał dowodu a mObywatel nie działa, to należy cofnąć się do domu po dowód i wrócić później. To w końcu wybory. Demokracja. Zbyt ważna sprawa, żeby sobie folgować.
Podsumowanie
Sprawa to stary i znany temat. O problemie wiadomo przynajmniej od wyborów parlamentarnych w 2023 r. Już wtedy zwracała na niego uwagę m.in. posłanka SLD Hanna Gill-Piątek, o czym pisała Rzeczpospolita w artykule pt. Aplikacja mObywatel umożliwi nadużycia w wyborach? „Ktoś może zagłosować za kolegę z pracy” Dlaczego więc o tym piszę? Co się zmieniło?
Otóż, po pierwsze, nic się nie zmieniło. Mimo, że były od tego czasu jeszcze inne wybory. Mimo, że minęło tyle miesięcy. A jednak wciąż w sprawie mObywatela mamy te same wytyczne. Rozumiem podejście: ale przecież nic się nie wydarzyło, nie było skarg, więc to dowód, że nie masz racji. Tylko, czy my zawsze musimy być mądrzy po szkodzie?
Rzeczą nową, która mnie bezpośrednio skłoniła do podjęcia tematu, jest napięta sytuacja geopolityczna. Zewsząd czytam o atakach cybernetycznych i trwającej wojnie hybrydowej, której zamierzonymi względem nas rezultatami są m.in. chaos wewnętrzny w Polsce, podgrzany do czerwoności konflikt polityczny, (…) podkopanie wiary obywateli w instytucje i władze, frustracja społeczna1. Celem ataku, który tutaj opisuję, niekoniecznie musi być zmiana wyniku wyborów. Wystarczy lokalny incydent, aby internet i agentura przerodziły to w ogólnopolski skandal.
Rozkładając mechanizm ataku na części składowe nie chcę nikogo zachęcać do jego przeprowadzenia. Chcę tylko uświadomić, jak bardzo jest realny. Marzy mi się, żeby taki głos trafił do Państwowej Komisji Wyborczej. Wówczas chciałoby się zapytać:
– kapewu PKW?
Przypisy i bibliografia
1. Cytat pochodzi z artykułu Brak silnej reakcji strategicznym błędem z serwisu Globalna Gra. Polecam też inny artykuł dot. wojny hybrydowej, który tłumaczy moją motywację: Kontratak hybrydowy.