– Dobrze, że system PKW do liczenia głosów nie zadziałał, bo ma w sobie tyle błędów, że nawet jeśli ktoś złowrogo zmodyfikowałby dane w protokołach, to ryzyko, że nieprawdziwe dane przeszły, jest właściwie marginalne – ironizował w Telewizji Republika Marek Małachowski, informatyk i prezes spółki Manubia.
Marek Małachowski zasłynął w mediach społecznościowych swoją fachową oceną działania systemu do komputerowego liczenia głosów używanego przez PKW.
Jego analiza brzmi następująco:
Poświęciłem dwie godziny na analizę kodu programu do obsługi komisji wyborczych i kilka testów. Program do logowania wymaga klucza cyfrowego (pliku PEM) o odpowiednio przygotowanych parametrach. Programu nie interesuje przez kogo jest ten klucz podpisany. Więc używając OpenSSL można klucz taki samodzielnie wygenerować.
Przejrzałem instrukcję obsługi programu, gdzie podano przykład logowania. Używając danych pokazanych na obrazkach w instrukcji, można wygenerować sobie klucz logowania do programu jako członek komisji w Bałtowie (gdziekolwiek to jest). Zalogowanie się jako dowolny członek dowolnej innej komisji nie wymaga wyjątkowej wiedzy.
Czyli dowolna osoba, która miała dostęp do komputera z programem "Kalkulator1", mogła się do niego zalogować jako dowolny członek komisji i dokonać w niezauważony sposób zmian w protokołach zapisanych na tym komputerze. Członkowie komisji mogli logować się jako ktoś inny, ale mogła to też zrobić osoba zupełnie z zewnątrz, nie znająca żadnego hasła, bez jakiejkolwiek autoryzacji. Wystarczy, że sama sobie prędzej swój własny klucz cyfrowy zrobiła.
Według instrukcji, jeśli w protokole występują "ostrzeżenia twarde", to należy uzyskać kod, który umożliwia zaakceptowanie protokołu. Zdobywa się go telefonicznie od użytkownika na poziomie delegatury. Jak program sprawdza czy kod jest poprawny? Kod to nic innego jak MD5 z (nr-obwodu rok miesiac dzien).
Co to wszystko oznacza?
1. Dobrze, że ten system nie zadziałał.
2. Jakiekolwiek bezpieczeństwo było gwarantowane tylko poprzez fizyczną kontrolę dostępu do komputera prowadzoną przez przewodniczącego komisji i sprawdzenie przez niego danych zarówno wysyłanych jak i drukowanych. Wszelkie klucze i hasła są w tym systemie zupełnie zbędne.
3. Jeśli w protokole były błędy, wymagające kontaktu z "użytkownikiem na poziomie delegatury", to osoba znająca kod źródłowy programu znała kod autoryzujący te błędy. A jak widać na githubie, kod źródłowy został upubliczniony dzień przed wyborami.
4. Twórca tego programu to początkujący programista. W zasadzie każdy błąd jaki można popełnić w kodzie, został popełniony i mógłbym jeszcze długo pisać. Na przykład o tym, że eksport/import protokołów na serwer nie wymaga żadnej autoryzacji po stronie serwera i co to oznacza.
Myślę, że NIK będzie miał dużo pisania podczas kontroli i mam nadzieję, że za taki bubel Państwo nie zapłaci.
W Telewizji Republika Małachowski wyjaśniał:
"Hasło przewodniczącego, którym chronione były komputery w komisjach, nie gwarantowało bezpieczeństwa, bo zarówno członkowie komisji wyborczych, jak i osoby postronne, mogły wygenerować swoje własne i miałyby dostęp do protokołów. Jeśli akurat przewodniczącego przy komputerze nie było, to istniało ryzyko, że ktoś mógł wejść do protokołu i nanieść w nim zmiany".