11:18
18/11/2014

Ponieważ, jak wczoraj wspominaliśmy, instalki tzw. Kaklulatora Wyborczego przeznaczonego dla Komisji Obwodowych są dostępne publicznie (każda z nich musi go zainstalować i za jego pomocą generować protokoły oraz przesyłać statystyki do centrali PKW), zostały one już zdekompilowane i umieszczone na GitHubie.

Jakości tego kody poświęcono posty na tak znanych serwisach jak Daily WTF i Reddit. Warto poczytać komentarze i przy okazji sprostować tych zachodnich kolegów, którzy uważają, że Polacy głosowali elektronicznie w tych wyborach (w USA wybory elektroniczne i problemy z tym związane to teraz temat na topie).

Ciekawa jest także opinia naszego rodaka, Marka na jego FB:

_2__Poświęciłem_dwie_godziny_na_analizę_kodu____-_Marek_Małachowski

Przeczytaj także pełny post, obiektywnie oceniający techniczne aspekty przeprowadzenia wyborów (łącznie z procesem przetargowym i innymi “trudnościami”).

Przeczytaj także:

Ten wpis pochodzi z naszego linkbloga *ptr, dlatego nie widać go na głównej.
*ptr możesz czytać przez RSS albo przez sidebar po prawej stronie serwisu.

Dowiedz się, jak zabezpieczyć swoje dane i pieniądze przed cyberprzestępcami. Wpadnij na nasz kultowy ~3 godzinny wykład pt. "Jak nie dać się zhackować?" i poznaj kilkadziesiąt praktycznych i przede wszystkim prostych do zastosowania porad, które skutecznie podniosą Twoje bezpieczeństwo i pomogą ochronić przed atakami Twoich najbliższych. Uczestnicy tego wykładu oceniają go na: 9,34/10!

Na ten wykład powinien przyjść każdy, kto korzysta z internetu na smartfonie lub komputerze, prywatnie albo służbowo. Wykład prowadzimy prostym językiem, wiec zrozumie go każdy, także osoby spoza branży IT. Dlatego na wykład możesz spokojnie przyjść ze swoimi rodzicami lub mniej technicznymih znajomych. W najbliższych tygodniach będziemy w poniższych miastach:

Zobacz pełen opis wykładu klikając tutaj lub kup bilet na wykład klikając tu.

106 komentarzy

Dodaj komentarz
  1. […] Aktualizacja 18.11.2014 Kod zdekompilowanego kalkulatora trafił do internetu i przyjrzeli mu się zarówno polscy jak i zagraniczni informatycy. Opinie i co ciekawsze wątki na temat jakości i zaskakujących struktur w kodzie źródłowym, zebraliśmy tutaj. […]

  2. a podobno ABW wcześniej oglądała ten kod

    • ABW oglądała ? ;) Jeśli to byłoby potwierdzone,to po wpadce w “Wprost” będą musieli ich chyba na szkolenia wysłać.Intensywne szkolenia ;) Ale moim zdaniem – Ś.C.I.E.M.A… Akurat by im się chciało…

    • h**p://fakty.interia.pl/prasa/news-rzeczpospolita-abw-sprawdza-pkw,nId,1551181,s,1
      ile w tym prawdy? niebezpiecznik ma tam wejscia

    • Jezeli mają tam takich informatyków jak w momencie gdy nie potrafili w redakcji “wprost” włączyć “makbuka” :) to wszystko wyjasnia

    • ABW sprawdziła i zatwierdziła, bo kod pasował do ich celów

  3. Aż sobie ściągnąłem i skompilowałem. Po pracy sam z ciekawości przejrzę kod i może uda się coś wysłać do PKW, np karnego kutasa.

    • Karny kutas za chujowe zabezpieczenia.

    • raczej karny PiSior ;)

    • z POlityką to na wykop.

  4. Biorąc pod uwagę czym się ta firma do tej pozy zajmowała, nie nastraja to optymistycznie:

    realizacja projektów informatycznych. W szczególności dla takich klientów jak:
    – Centrum projektów Informatycznych MSWiA – Scentralizowany system dostępu do informacji publicznej
    – Ministerstwo Administracji i Cyfryzacji – utworzenie strony głównej biuletynu informacji publicznej wraz z jego utrzymaniem
    – Ministerstwo Obrony Narodowej – utworzenie oraz utrzymanie strony głównej Wojska Polskiego.
    – Instytut Badań i Edukacji – wdrożenie systemu obiegu dokumentów
    – Pozyskanie oraz realizacja projektu POIG 8.1

    Źródło: http://www.goldenline.pl/maciej-cetler/

    • Ja nie chce nic mówić ale właściciel wg goldenline od 11 lat robi magisterke :) pewnie caly czas tam siedzi żeby werbowac nowych pracownikow :D

    • Z profilu na GL:

      Hobby: Majsterkowanie

      I wszystko jasne ^_^

  5. Mnie śmieszy, że są jeszcze ludzie, którzy wierzą, że ktoś poniesie jakąkolwiek odpowiedzialność – wszystko jest dobrze zaplanowaną, rozproszoną socjotechniczną iluzją. Opłaconą takimi pieniędzmi, że nawet inteligentna osoba potrzebuje czasu żeby poukładać puzzle w całość, ale wtedy jest już po deadline i nie ma to najmniejszego znaczenia.

  6. Akurat w przypadku aplikacji tego typu, dziwi mnie fakt, że kod aplikacji nie był publicznie dostępny od samego początku – to przecież jest najlepszy sposób jego weryfikacji. Wydaje mi się więc, że jednym z wymogów przetargu powinno być, aby kod ten był jawny (i żeby nikt nie musiał go dekompilować).

  7. To fajnie, ci którym się nie chciało wychodzić z domu mogli po prostu wygenerować sobie klucze?

  8. Zemściło się kryterium najniższej ceny w przetargach.

    • Próbujesz w ten sposób usprawiedliwić to co było z góry zaplanowane? Na Białorusi fałszerstwa wyborów to norma, u nas chyba ostatnio też…

  9. Literówka: ‘kaklulator’ w pierwszej linijce.

  10. Open-source – system wyborczy w Estonii, jest na githubie :)

    https://github.com/vvk-ehk/evalimine

    • Jeżeli Estonia wystawia swój system do użytku publicznego to dlaczego moje pieniądze wyrzucane są w błoto?!

  11. Ciekawi mnie dlaczego w tvp i tvn pokazywali Kowalczyka z MediaRecovery, jeszcze na tle dysków twardych, a pytania dotyczyły projektów programistycznych i testów. Ja bym pytania zadawał jakiemuś szefowi projektu, lub zwrócił się w sprawie testów do sławnego pentestera Piotra Koniecznego.

  12. MessageBox.Show(“Nie mozna znalesc pliku do eksportu”, “Error”);

    nie można znaleść… :)

  13. A tutaj jeszcze takie coś na fb udostępniają http://klk.kbw.gov.pl/kalkulator/20141116/000000/SMD/

  14. ciekawe do kogo należy ów zaprzyjaźniona firma… :)

    • Z tego co gdzies ostatnio czytalem to jakis pociotek PO. Nie podam linka bo nie znajde teraz :)

  15. Ale co z tego, że wygeneruję sobie 2 klucze .pem, Zaloguję się do systemu i wyślę protokół?
    Po pierwsze trzeba mieć klucz operatora do wprowadzenia protokołu.
    Po drugie trzeba mieć klucz przewodniczącego komisji, który zapewne jest walidowany po stronie serwera (tego niestety się nie dowiemy). Więc nawet wysłanie protokołu niekoniecznie oznacza, że uda się zmienić wynik wyborów.

    • Ale już DoS/DDoS piękny wykonać można dzięki brakowi weryfikacji zaufania na poziomie klienta.

    • Pomijając fakt istnienia fallbacku z https do http?

    • Przecież masz napisane wyżej, że każdy w miarę kumaty może sobie ten klucz wygenerować. Tak jak by komisja uznwała dowód osobisty co sobie na karteczce post-it ktoś sam napisał,

    • @Piotr: no dobrze, ale co z tego, że każdy może wygenerować sobie klucz, który PRAWDOPODOBNIE sprawdzany jest również po stronie serwera po wysłaniu protokołu?
      Nie wiem jak Ty, ale ja miałem tę wątpliwą przyjemność być operatorem i obsługiwać super system – jak zawsze po wypełnieniu protokołu podpisuje się go jeszcze licencją przewodniczącego (i ta właśnie pewnie jest sprawdzana na serwerze)

  16. jakich ludzi nie bylo podczas naboru do tej roboty?

    tanszych.

  17. Z całym szacunkiem, ale autor analizy chyba nie wie, jak działa autoryzacja z użyciem klucza publicznego.

    To, że ja sobie wygeneruję podpisany przez siebie (bo to tutaj jest kluczowe) certyfikat nie znaczy, że uda mi się dokonać jakiejkolwiek autoryzacji. Autoryzacja jest dokonywana po stronie serwera, to, że klient dopuszcza użycie dowolnego certyfikatu jest tu nieistotne – po co robic podwójną weryfikację? Jeśli certyfikat nie zostanie zaakceptowany przez serwer (a prawdopodobnie nie zostanie, jeśli nie jest podpisany kluczem prywatnym PKW) to nigdzie się z nim nie zalogujemy.

    Natomiast uwaga o MD5 jest niewątpliwie trafna – typowe “security by obscurity”.

    • A jesli nie ma wogole autoryzacji uzytkownikow na poziomie “operator” po stronie serwera? Z tego co widzialem autoryzowany jest dopiero przewodniczacy przy wysylaniu. To po co wogole robic te klucze i hasla?

    • Z całym szacunkiem: “jeśli (protokół) nie jest podpisany kluczem prywatnym PKW”? Uważasz, że PKW powinna przekazać komukolwiek swój klucz prywatny? Może chciałeś napisać, że operator powinien podpisać swoim klUczem prywatnym protokół, a następnie go przesłać na serwer, gdzie będzie zweryfikowany kluczem publicznym tego operatora?

  18. Co do uwagi, że Państwo nie powinno zapłacić za oprogramowanie, to mam jedną uwagę: czy SIWZ zawierał wystarczająco szczegółowe informacje dla wykonawcy? Raczej nie. Czy Zamawiający przewidział wystarczająco dużo czasu na napisanie oprogramowania dla Wykonawcy? Też nie. Nawet gdyby w tej firmie byli światowej klasy specjaliści nie mieliby najmniejszej szansy aby to napisać, przetestować i oddać do użytku.

    Ponieważ uczestniczę w wielu przetargach dla instytucji państwowych i zadaję wiele pytań do SIWZ przed wzięciem udziału w przetargu wiem jak to zazwyczaj wygląda. Wykonawcy zadają pytania np. z sugestią, że czas na wykonanie przedmiotu zamówienia jest za krótki, a bufony z instytucji odpowiadają, że nie wyrażają zgody na wydłużenie czasu realizacji lub czasu na składanie ofert. W takiej sytuacji do przetagu zgłasza się kilka firm-krzaków, bo poważni wykonawcy nie wezmą na klatę takich problemów jak z systemem dla PKW ze względów wizerunkowych.

    Tak więc podsumowując: wina wykonawcy jest oczywista, ponieważ podjął się zadania niemożliwego do wykonania. Natomiast po stronie PKW powinno polecieć pare głów, bo to termin i sposób przygotowania postępowania przetargowego doprowadziły do obecnego stanu rzeczy.

    • Już pytałem na FB i każdy milczy – gdzie tutaj nierealny termin. Jeżeli wykonujesz zamówienia publiczne, to albo jesteś z ligi Nabino albo nas okradasz. Dlaczego?

      Przygotowanie z grubsza 2 formularzy, bazy regionów i wersji do wydruku to zajęcie na więcej niż miesiąc, czy dwa? Jeszcze eksport, czy integracja z systemem PKW – ale jak widać kalkulator tego nie ma, więc pewnie stał skrypt po stronie serwera, napisany w jakimś ludzkim języku i przerzucił dane. Jak tak wszystko podsumowywałem to 2 tygodnie na działający serwis z HTTPSem (i bez pudla, bo na serwerach był włączony SSLv3 – tak był!) udokumentowany (bo ile to 2 formy udokumentować i kilka tabel), a pozostałe 2 miesiące na szkolenia ludzi chyba starczą….

      Jak czytam takie posty, że zrobienie programu mającego wysyłać raporty, a potem je pobierać i sprawdzać to robota na ponad 2 miesiące to odbezpieczam karabin i ubieram buty.

    • @misiek
      Zakładasz, że zamawiający potrafi od razu napisać czego potrzebuje. A podejrzewam, że “zapotrzebowanie na funkcjonalność” pojawiło się w PKW dopiero przy okazji testowania…

    • To, że zadajesz takie pytanie znaczy tylko tyle, że nigdy nie uczestniczyłeś w takim projekcie od strony zarządzania i współpracy z zamawiającym. Czas programistów to z reguły optymistycznie 50% całości, a z reguły dużo mniej. Reszta to analiza, przerzucanie się błotem z zamawiającym, ponowna analiza, testy, reimplemntacja rzeczy zakwestionowanych w wyniku niezrozumienia analizy, ponowna analiza, ponowne testy. Na końcu całości idzie wdrożenie, testy akceptacyjne i protokoły. Samych procedur da się poskładać na dwa miesiące i czas programistów jest tu kompletnie nieistotny. Co więcej, czas programistów nigdy nie jest nawet pobieżnie szacowalny na podstawie SIWZ. A to co napisałem to wyjątkowe uproszczenie i czubek góry lodowej. W każdym razie, w dwóch podpunktach:

      a) tak, _napisanie_ systemu od strony technicznej o stopniu skomplikowania o którym mówisz w czasie o którym mówisz jest bezproblemowo możliwe, nawet przy niezbyt dużym zespole. O czasie na testy i wdrożenie można polemizować.
      b) nie, zrealizowanie _projektu_ w tym czasie nie jest możliwe w żadnym wypadku chyba, żę jest się kamikadze.

      M.

    • W SIWZ nie ma słowa o oczekiwanej wydajności – jak system wypluje z siebie wyniki wyborów w maju przyszłego roku, to będzie to zgodne z wymaganiami.
      Nie znalazłem tam słowa na temat specyfikacji serwera/serwerów na których ma to być uruchomione, systemach operacyjnych, specyfikacji stacji roboczej dla komisji okręgowych, systemów operacyjnych tamże, przepustowości łącza itp itd. Bez podania tych wszystkich informacji oczekiwanie jakiejkolwiek wydajności jest bezcelowe – bo każdy system, o ile zadziała, to na odpowiednio szybkiej maszynie zadziała odpowiednio szybko…
      Odnośnie bezpieczeństwa – jest jeden akapit:
      9. Wykonane oprogramowanie musi zapewniać odpowiedni poziom bezpieczeństwa w zakresie uwierzytelnienia (w tym uwierzytelnienie wieloczynnikowe z autoryzacją certyfikatem SSL i hasłem), kontroli dostępu, audytowania zdarzeń bezpieczeństwa i wsparcia dla pojedynczego logowania (SSO) w oparciu o udostępnioną przez Zamawiającego bazę użytkowników LDAP z zachowaniem historii dostępu do historii logowania.

      “odpowiedni” – piękne słowo, ale nic nie znaczy jako wymaganie.

      Czy tak przygotowany przez Nabino system spełniał te wymagania? Moim zdaniem tak.

      pozdrawiam
      Saren

    • A czy my pierwszy raz robimy wybory, ze nie wiemy czego nam potrzeba? I ciekawe jak robilismy wybory 4 lata temu? Czy nie mamy starych systemow?
      Calosc jest skrzetnie zaplanowana.

  19. Kłamstwo. Tego programu nie da się zrozumieć, sam jego autor go nie rozumie. Drzewo wywołań jest zbyt skomplikowane. Piękny przykład nie stosowania absolutnie żadnych wzorców.

    • To raczej (mniej lub bardziej) efekt dekompilacji… Chociaż zapewne poziom wiedzy osób, które to tworzyły też nie był zbyt wysokI…

  20. akurat namolnie używacie słowa “informatyk” a moim skromnym zdaniem do oceniania kodu jest programista, a informatyk to jednak inny fach. No ale może to ja nie mam racji.

    • Informatyk jest tutaj użyty jak najbardziej właściwie. Studia informatyczne na uczelniach technicznych są nazywanie “informatyką” a w przeważającej większości jest tam programowanie. Można ew. odróżnić informatyka od komputerowca (sprzętowca). Chociaż wciąż mamy informatyków, którzy zajmują się stawianiem systemów/serwerów i ich administracją. Zatem informatyk jako programista jest trafne. Warto raczej podkreślać o jakiego informatyka chodzi jeśli mowa o sprawach nie-programistycznych.

      Ostatecznie “programista” jest najdokładniejsze, no ale informatyk też pasuje :) Taki to mój wywód.

  21. Och, ludzie którzy narzekają, że output z DEKOMPILATORA jest nieczytelny. Tak bardzo profesjonalne, idę po czipsy.

    • To jest output z C# kompilowanego do kodu pośredniego w trybie DEBUG i do tego z dołączoną bazą symboli.

      Dekompilacja daje tu jak najbardziej miarodajne efekty, nie zaniża czytelności kodu w stopniu znaczącym, a już na pewno nie powoduje przeinaczeń, czy zmian użytych konstrukcji.

      Tak bardzo profesjonalny OP.

  22. “Można ew. odróżnić informatyka od komputerowca (sprzętowca). ” tak a informatyka mającego serwis gsm nazwijmy nie informatyk a smertfonowiec, tego co naprawia i konfiguruje softg na tabletach tabletowcem, dalej idą mamy konsolowca, wymieniacza tonerów, wzywacza serwisu do urzędu itd :)

  23. Autor nie ma racji, ale pobieżna analiza kodu wskazuje na inne problemy. Wydaje się, że można wysłać na serwer wyborczy cokolwiek z czegokolwiek. Nie jest wymagany certyfikat użytkownika z zaufanego CA. Wszystko, jak leci pakują na syswyb.
    Nadzieja w tym, że program sprawdza potem podpis pod przesłanym dokumentem. ( dopóku KBW nie opublikuje tych dokumentów – trudno to sprawdzić).
    Roztropniej było by przyciąć ruch już na poziomie SSL ( tak działał poprzedni program ).

  24. Pan Cetler nie pierwszy raz:
    http://www.dailymotion.com/video/xa0d75_cetler-mamy-zarzuty-do-kancelarii-p_news
    Firma nr 0:http://www.money.pl/rejestr-firm/nip/729-25-73-490/kod-pocztowy/93-578/
    Strona http://komunix.pl przekierowuje na eoda na domenie nobina….

  25. Dlatego uzywajmy slowa informatyk i bedzie git ;)

  26. ciekawe kogo NIK wyśle do kontroli, standardowego kontrolera po filozofii lub fizyce albo rusycystyce czy wynajmą sobie eksperta od analizy kodów źródłowych.
    Obstawiam to pierwsze

  27. Informatyka to nauka. Informatyk to potencjalnie naukowiec. Tak samo matematykiem jest wielki profesor i udzielacz korepetycji dla nauczania początkowego.

  28. Być może mało istotnie, ale ostatnio dodano wiki tego repo: https://github.com/wybory2014/Kalkulator1/wiki :D

    • ???

    • Zdekompilowane binarki ściągnięte z PKW są identyczne z githubem. Czyli “wiki” to ściema.

    • https://github.com/saldi?tab=activity

  29. Patrząc na ilość błędów w komunikatach, to ewidentnie widać, że było za mało czasu na realizację, a całość w ogóle nie była testowana tak, jak powinna. Mnie bardziej zastanawia, dlaczego taki projekt zleca się w ostatniej chwili.

    MessageBox.Show(“Nie można zapisać pliku. Otwórz aplikacje jako administracje”, “Error”);
    DialogResult result = MessageBox.Show(“Czy napewno usunąć licencje ” + this.waitLicenses.Rows[e.RowIndex].Cells[“Licencja”].Value.ToString() + “?”, “Usuwanie”, MessageBoxButtons.YesNo);

  30. Jak patrzę na ten kod, to jest mi wstyd, że jestem .net’owcem. Serio.

  31. może to nie bug, może to feature … W końcu nie znamy założeń, być może komuś zależało na takim braku zabezpieczeń

  32. Czy nie zastawiało Was to że b. premier i b. przewodniczący PSL interesował się informatyką i był gadżeciażem. I aż dziwne że w tych wyborach PSL po “frajerach” Sawickiego zanotowało tak wysoki wynik wyborczy. Ja gdybym był ABW czy jakąkolwiek służbą która by szukała powodów dla których ten system informacyjny (wyborczy) tak działał wiele lat skierowałbym kroki w kierunku tej formacji i przejrzał wstecz przez te 20 lat kto mógł odpowiadać/zataić informacje dotycząte tego Systemu Informatycznego i jego zabezpieczenia.

  33. W Bałtowie jest park rozrywki dla dzieciaków i dorosłych. Świetna sprawa.

  34. Ja widzę tu jeszcze inny problem – brak walidacji sumy kontrolnej samego programu. Skoro od fazy testowej każdy mógł sobie pobrać i zdekompilować ten syf, to przecież równie łatwo mógłby wprowadzić modyfikację jeśli tylko miałby dostęp do stacji z której wysyłane są protokoły. Następnie naszą wersją kalkulatora podpisujemy wszytko elegancko oryginalnym kluczem. Do tego ingerencja w moduł drukowania i to samo trafia na drzwi komisji. Z tego co rozumiem infrastrukturę (czyt. kompa z netem i drukarką) dostarczały gminy…

    Tak jak wcześniej ktoś zauważył, to że wygenerujemy sobie certyfikat, nie oznacza, że podpisany dokument zwaliduję się po stronie serwera. Choć jeśli stronę serwerową pisali ci sami geniusze to całkiem jest prawdopodobne, że nie walidują wystawcy, tylko samą poprawność podpisu, nie wspominając już o korzystaniu z CRL.

    Fallback do http to też nic strasznego, a może to nawet lepiej, że można podejrzeć co te liczydło wysyła. Przecież dane, które przesyła są jawne i wywieszone na drzwiach każdej komisji.

    • Komputer zazwyczaj przynoszą sami operatorzy, czyli “ludzie z ulicy”. Jest to zdecydowanie najsłabsze ogniwo obecnego systemu. Dlatego papierowa wersja protokołu jest (a przynajmniej powinna być) po dostarczeniu weryfikowana z elektroniczną.

    • “Fallback do http to też nic strasznego, a może to nawet lepiej, że można podejrzeć co te liczydło wysyła. Przecież dane, które przesyła są jawne i wywieszone na drzwiach każdej komisji.”

      Naprawdę? Proponuje zapoznać się oględnie z tym co upublicznił Snowden.

    • “Proponuje zapoznać się oględnie z tym co upublicznił Snowden.”

      Wyniki wyborów samorządowych? Rozmawiajmy poważnie. Tutaj jedynym problemem jest weryfikowalność spójności danych wysyłanych do serwera z komisji, co teoretycznie gwarantuje podpis cyfrowy i nikt na razie nie dopatrzył się zagrożenia pod tym względem. Jedyne niebezpieczeństwo, które mi przychodzi do głowy, to że oprogramowanie na serwerze nie waliduje podpisu.

    • “Wyniki wyborów samorządowych? Rozmawiajmy poważnie.”

      A co jest poważniejszego od decyzji kto będzie rządzić w państwie? Dla zwykłego szaraka ważniejsze jest kto jest premierem czy kto jest prezydentem/burmistrzem w jego miejscowości?

      “Tutaj jedynym problemem jest weryfikowalność spójności danych wysyłanych do serwera z komisji, co teoretycznie gwarantuje podpis cyfrowy i nikt na razie nie dopatrzył się zagrożenia pod tym względem. Jedyne niebezpieczeństwo, które mi przychodzi do głowy, to że oprogramowanie na serwerze nie waliduje podpisu.”

      Zatem mało Ci przychodzi do głowy. Po pierwsze, w jaki sposób klucze były dystrybuowane i czy jesteś w stanie zapewnić, że żaden nie wyciekł? Oczywiście nie. Po drugie, celowe “unieważnienie” głosu przez jego nieautoryzowaną modyfikację ma w sumie identyczny skutek jak jego zmiana w sposób poprawny.

  35. Fajne jest to, że wydruki są poskładane w HTMLu – jakby tak zarejestrować komitet wyborczy z XSS w nazwie …
    A na poważnie, dzięki kryterium 100% cena, oprogramowanie dla administracji jest bardzo kiepskiej jakości, jeżeli jakaś firma nawet by chciała robić porządnie to zaraz zostanie “zjedzona” przez tych co nie będą się liczyć z jakością. Nawet gdybny w SIWZ były wymagania jakościowe to po stronie urzędów jest mało osób które potrafiłyby jakość wyegzekwować, a zatrudnianie zewnętrznych firm do audytu znowu kończy się tym, że będzie to 100% cena – jeżeli puszczą automat do skanowania to będzie dobrze, no i o ile wykonawca ich nie podkupi :)
    Trochę za bardzo czepiacie się tych certyfikatów. Program powinien je weryfikować na poziomie połączenia TLS przy komunikacji z PKW, ale już niekoniecznie przy logowaniu do systemu – z tej prostej przczyny, że program musi też działać w trybie offline, jak nie będzie połączenia internetowego, to komisja nagrywa protokół na płytę którą oddaje wraz z protokołem papierowym do pełnomocnika i tam dopiero jest on wprowadzany do systemu.

    • przecież wystarczyło w pakiecie instalacyjnym dodać klucz publiczny tego PKI co wystawia te certyfikaty i z weryfikacją nie byłby problemów … ale tak wyliczać co tam można było zrobić to pewnie można godzinami…

    • W przetargu na system PKW cena stanowiła “jedynie” 49% wagi

  36. Zapraszam do zapoznania się z portfolio autora:D
    http://www.nabino.pl/portfolio19/
    Skala działania tej firmy jest zatrważająca…

    • A zauważyłeś w PKWiU “24,20,Z – produkcja pestycydów i pozostałych środków agrochemicznych?”. A nie przepraszam to komuna x. ;)

  37. Najlepsze efekty daje wpisanie Nabino w goldenline .. wychodzi na to że tam jest 5 ludzi, a wszyscy z doświadczeniem max 4 lata po studiach. Współczuję pani Agnieszce – programistce od kwietnia 2014, wcześniej webmasterce w 2 lata po studiach że ją w taki kanał na początek wpuścili ..

    • nie każðy ma konto na goldenline więc może być tam ich spokojnie 2 razy więcej. ale faktem jest że przystępując do przetargu wydali na siebie wyrok, nie dość że 3 miesiące nieprzespanych nocy to teraz jeszcze ABW na karku…

  38. Nie, miałem na myśli dokładnie to, co napisałem. Na tym właśnie polega kryptografia z kluczem publicznym. Z tego, że PKW swoim tajnym kluczem prywatnym coś podpisuje nie wynika, że udostępnia klucz prywatny. To, co nazywamy “podpisem” to skrót (hash) wiadomości zaszyfrowany kluczem prywatnym – do jego weryfikacji (odszyfrowania) wymagany jest klucz publiczny, a nie prywatny.

    • Odwrotnie. Szyfruje się kluczem publicznym, odszyfrowuje prywatnym. Na co takie szyfrowanie, skoro każdy może wiadomość odczytać? W tym przypadku jednak – dane są przecież jawne. W ogóle nie ma potrzeby szyfrowania.

    • Tylko to nie PKW podpisuje protokoły, a przewodniczący komisji i chyba nie myślisz, że każdy przewodniczący będzie podpisywał swój protokół tym samym kluczem prywatnym.

    • Używają standardu xmldsig i dołączaja certyfikat. (Certificate#SignXml())

      System.Security.Cryptography.X509Certificates.X509Certificate MSCert = System.Security.Cryptography.X509Certificates.X509Certificate.CreateFromCertFile(CertificateFileName);
      keyInfo.AddClause(new KeyInfoX509Data(MSCert));

      Pytanie dlaczego użwają xmldsig a nie zalecanego przez MSWiA XADES’a

    • “Odwrotnie. Szyfruje się kluczem publicznym, odszyfrowuje prywatnym. Na co takie szyfrowanie, skoro każdy może wiadomość odczytać? W tym przypadku jednak – dane są przecież jawne. W ogóle nie ma potrzeby szyfrowania.”

      Litości…

      Komunikaty nie były szyfrowane tylko PODPISYWANE. Podpis działa tak:
      1. Liczę skrót z komunikatu w sposób zaakceptowany i zrozumiały dla wszystkich stron
      2. Szyfruje ten skrót kluczem PRYWATNYM.
      3. Druga strona odbiera komunikat i liczy skrót tym samym algorytmem.
      4. Następnie druga strona odszyfrowywuje nasz skrót naszym kluczem PUBLICZNYM
      5. Jeśli skróty się zgadzają oznacza to, że nikt po drodze nie zmienił treści komunikatu.

  39. Jeśli ten kod to nie fake, to autor(ka) dostanie review za darmoszkę. ;P

  40. Może źle ciebie zrozumiałem. Jeszcze raz: W tym przypadku podpisuje się dokument z użyciem klucza prywatnego (nadawcy). Szyfruje z użyciem klucza publicznego (odbiorcy).

  41. Koledzy, nie ma co się dziwić.
    Czy ktoś z Was pracował w budżetówce? Tam bieda piszczy, wszystko idzie przetargami, każdy dostaje wariacji z tego powodu, od zamawiających po firmy biorące udział. Polskie prawo jest rakiem wyniszczającym przez lata wszystko co się da. Bez grupy doświadczonych prawników lepiej przetargu nie rozpisywać, a tym bardziej lepiej do niego nie przystępować. Ja widziałem małe firmy, które bankrutowały przy prostych dostawach tonerów do drukarek, a właściciele o mało na zawał nie schodzili przy podpisywaniu dokumentów. To już umowy kredytowe są łatwiejsze do przełknięcia niż to, co się dzieje z przetargami w tym bez-państwie. Pamiętajcie – oni służą sobie, nie nam.

  42. Nie jestem zaawansowanym informatykiem, chociaż jakieś pojęcie o pracy z różnymi programami mam. Skoro, jak piszecie, kalkulator był instalowany niezależnie, na komputerach komisji, to był w pewnym sensie niezalezny od całego systemu. Domyślam się, że protokoły drukowane przez komisję były na podst danych z tego kalkulatora. Dziś poczytałam te protokoły u mnie w siedzibie OKW. I widzę: w ostatniej kolumnie tabelki łacznie głosów na pewna listę 12, tymczasem w wierszu Razem – 4. W innej tabeli, w wierszu “Liczba uprawnionych do głosowania” jakieś śmieszne liczby rzędu jedności. NIC z tego nie rozumiem!

  43. A ja jestem dumny że jestem Polakiem i że mamy tak wspaniałe i wyrozumiałe państwo że powierza tak ważne zadania jak kalkulatory wyborcze początkującym programistom. Dzięki temu zdobywają konieczne doświadczenie zawodowe i wreszcie mogą wyjechać na zachód/daleki wschód zarabiać normalne pieniądze za swoją marną pracę. Bynajmniej czegoś się tam nauczą :]
    Dziękujemy politykom za wyrozumiałość dla początkujących. Chętnie zatrudnię się jako pilot rządowych samolotów. Zawsze chciałem zrobić licencję pilota. Nie mam jej ale przecież to nie ważne dopóki uda mi się wystartować i wylądować prawda?
    Pozdrawiam.

  44. Nie znam się na tym, ale nie można tego było zrobić w excelu i wysyłać mailem? Poza tym proszę psów nie wieszać na firmie nabino, zakładając że było ich 5 i po równo się dzielili to daje 500/5/3 ca 30 tys. miesięcznie na głowę więc firma dochodowa, wydajność wysoka i chyba nieźle płaci.

    • Masz rację, ten cały system to tylko “trochę lepsze” PGP, a za pół bańki można było posadzić sporo ludzi to zliczania tych “excelów”

  45. Na reddicie kravietz2 pisze iż w całej tej sprawie istnieje jeszcze inny, ważny czynnik.
    https://www.reddit.com/r/programming/comments/2ml27h/source_code_of_polish_electoral_calculator_big/cm5yfws
    Jego zdaniem PKW była zmuszona do stworzenia nowego kalkulatora od podstaw w związku z nowelizacją Kodeksu wyborczego. Prawdopodobnie chodzi o zmiany wprowadzone 11 listopada 2014 roku (http://isap.sejm.gov.pl/DetailsServlet?id=WDU20140001072).

  46. ..czego sie czepiacie?!
    ..praca byla prawidlowo wykonana tylko…wycieklo to do internetu, wiec maja teraz problem z zamieceniem calego brudu pod dywan (zabezpieczenia..etc, przeszkolenie komisji odnosnie ochrony danych osobowych jak postepowania z kartami wyborczymi)
    ..he he he..to tyle w temacie :-)

  47. Odczepcie się od kodu źródłowego, przeczytajcie SIWZ. Tam nie ma słowa o wydajności, jest że ma być SSL (był) i że mają być certyfikaty (też były).

    Jest za to: “(w zakres szkolenia wchodzi także uroczysta kolacja dla uczestników szkolenia)”. (około 150-200 osób – mam nadzieję że im smakowało)

    • Punkt IV.2
      a) Liczba jednoczesnych użytkowników systemu — co najmniej 1000 (jeden tysiąc),
      b) Liczba transakcji co najmniej 200 na minutę, każda transakcja co najmniej 100 KB z co najmniej 100 pól ze sprawdzeniem autentykacji użytkowników przy certyfikowanym dostępie do systemu,
      c) Najliczniejsza encja — co najmniej 3 miliony wystąpień.

    • Naprawdę jest tam napisane “autentykacji”? :/

    • @philips

      Przeczytaj jeszcze raz, dokładnie.
      To są wymagania na *wcześniej zrealizowane systemy* przez firmę przystępującą do przetargu.

      Wymagań dotyczących wydajności zamawianego systemu nie ma.

      Dokładniej:
      IV. Dokumenty i oświadczenia potwierdzające spełnianie warunków udziału w postępowaniu, jakie należy dołączyć do oferty
      (…)
      2. Wykaz wykonanych i wykonywanych (…) zamówień (systemów) …

      Saren

  48. A wie ktoś jak wyglądała procedura przyznawania i wysyłania kluczy prywatnych? Dobrze rozumiem, że można go było pobrać samym kalkulatorem po czystym http jak https zawiódł?

    • Klucze były generowane poprzez wspominany tu syswyb :) czyli poprzez stronę (po https ;)). Gdybyś pobrał i zainstalował kalkulator to byś widział, że jest tam tylko wniosek o klucz, który przyznawany był wyżej niż operator i ktoś to MUSIAŁ KLIKNĄĆ. Choć już weryfikacja…
      Ale niezłe głupoty opowiada ten koleś z Kielc, który kalulatorem dopisał kogoś do drugiej tury :D

    • Co nie zmienia faktu, że później klucz leżał sobie spokojnie na dysku komputera pana Zdzisia z komisji podłączonym do internetu…?

      Żenujące jest to, że żyjemy w kraju, który nie potrafi zorganizować bezpiecznych i wiarygodnych wyborów. Klucze walają się po dyskach. Zero kontroli nad maszynami, z których wysyłane są protokoły. Sama aplikacja ogólnie dostępna, brak jakiejkolwiek weryfikacji, czy nie została zmieniona….

    • “Gdybyś pobrał i zainstalował kalkulator to byś widział, że jest tam tylko wniosek o klucz,”

      Nie instaluje oprogramowania z niepewnego źródła, nie wiem co ten freewerowy instalator instaluje poza liczydłen, poza tym nie chcę żeby mój komp stał się częścią botnetu PKW ;)

  49. Profesjonalny program dla firmy produkcyjnej jest u nas poprawiany od 1,5 roku.Kosztuje więcej niż ten wyborczy.Powód ten sam,Zamawiający nie był geniuszem potrafiącym ogarnąć wszystkie problemy ,Co zamówił to dostał a pracownicy w prezencie stan przedzawałowy i długopisy bez ograniczeń ilościowych,

  50. Nie krytykujcie!! Chlopaki odwalily kawal dobrej roboty i do tego OpenSource!! Wysylajcie commity moze cos jeszcze z tego bedzie.
    :D :D

  51. Ciekawy jestem jak to się na do awarii, prawie na całą północną Polskę, jednego z głównych dostawców internetu :) Dokładnie w tym samym czasie :)

  52. … klucze ze swej definicji, często “walają” się po dyskach. Nie pisz już nic więcej :(

  53. Witam

    Co się stało z poprzednim rozwiązaniem informatycznym do obsługi wyborów wykonanym w technologii Java (kalkulator z firmy Pixel Łódź)? Sprawdzało się wiele lat i je całkowicie odrzucono ?

    • Poprzedni kalkulator, jako część systemu platforma wyborcza, jest własnością Krajowego Biura Wyborczego. Leży na półce.

  54. […] dostęp do kalkulatora mógł zdobyć każdy, jego kod źródłowy szybko stał się powodem wielu żartów międzynarodowych programistów. Fiasko elektronicznego zliczania głosów ściągnęło na PKW uwagę osób “niezdrowo […]

Twój komentarz

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

RSS dla komentarzy: