Hypotézy o falšovaní elektronických volieb v meste Moskva v parlamentných voľbách v Ruskej federácii
MOSKVA – Programátor Petr Žižin si stiahol všetky výsledky elektronického hlasovania z webu observer.mos.ru a analyzoval ich.
Finančné noviny preložili rozhovor, ktorý zverejnil denník Novaja gazeta. Jeho spolumajiteľom a zakladateľom je prvý a posledný prezident Zväzu sovietskych socialistických republík Michail Gorbačov.
– Peter, pár slov o tebe. Kto si?
– Pracujem ako programátor v spoločnosti Yandex a zaoberám sa rozpoznávaním reči. Začal som analyzovať DEG náhodou. Analýza údajov je to, čo mám rád. Chcel by som zdôrazniť, že analýza DEG nie je to, čo robí Yandex. To nemá nič spoločné s mojou prácou. Toto je moja voľnočasová aktivita, moja osobná iniciatíva.
V akej fáze ste sa zapojili do analýzy?
– Situácia ma pobúrila. Rozhodol som sa, že musím analyzovať, čo sa stalo.
– To znamená, že nie ste členom žiadneho volebného tímu?
– Som zástancom Anastasie Briuchanovej a Petra Karmanova. Pomáhal som im, prispel som im na kampaň
Ste teda dobrovoľníkom pre Brjuchanovovej?
– Áno.
– Ako ste do konca volieb vnímali elektronické hlasovanie?
Neveril som systému, ale kým nezačali falšovať, nezaujímal som sa o to. Bol tam niečo ako pocit: „Nuž, zdá sa, že stále fungujú normálne, možno budú prepojení s prezidentskými.“ Pochopil som, že systém je taký neprehľadný, že na pochopenie jeho fungovania sú potrebné špeciálne technické znalosti. Pravdepodobne ste sami zažili, aké náročné bolo všetko analyzovať.
– Rozprávali sme sa s Viktorom Tolstoguzovom. Nie je len programátor, ale vývojár elektronických hlasovacích systémov. Bol jedným z mála ľudí, s ktorými som hovoril, ktorí veria, že elektronické hlasovanie by malo byť zakázané, a bol jeho tvrdým kritikom. Po tejto kritike bol na žiadosť Venediktova zaradený do odbornej rady pre DEG. Náš rozhovor som začal slovami: „Ničomu z toho nerozumiem“ a on odpovedal: „Áno, a toto je porušenie vašich práv ako voliča. Rozumiete, ako funguje obyčajná urna? A tu to chápe len málokto. To znamená, že sú porušené práva voliča. “
– Áno. Tiež mám pocit, že známy systém bol nahradený magickým slovom “blockchain”, ľudia to už niekde počuli, vedeli, že je to kryptomena, že je spoľahlivá a čo je to blockchain – koľkí to vedia? (Viac o blochaine nájdete tu – poznámka Finančných novín)
– Mimochodom, vysvetlite verejnosti, čo je blockchain.
Nie som odborník na blockchain, ale na analýzu údajov to nepotrebujete vedieť. Existuje veľmi veľké množstvo údajov, ktoré je možné analyzovať bez toho, aby ste vedeli, čo je to blockchain. Blockchain je však v zásade systém záznamov, ktorý je kryptograficky usporiadaný tak, že do systému je možné pridať nový záznam, ale na odstránenie starého je potrebné prilákať veľa zdrojov. Ale ak idete na observer.mos.ru, môžete si jednoducho stiahnuť sql.base, rozbaliť a zobraziť tri tabuľky: bloky, dešifrované hlasovacie lístky a transakcie. Pred nami je len databáza, ktorú je možné analyzovať bez toho, aby ste vedeli niečo o blockchainu. Jednoducho, keď máte v Exceli bežnú databázu alebo tabuľku, nemáte žiadnu záruku, že v určitom okamihu nepríde útočník a nenahradí ho. Blockchain je spôsob, ako sa ubezpečiť, že s touto tabuľkou nebolo nikdy manipulované.
Rozumiem tomu, že aby nedošlo k falšovaniu tabuľky, všetky tieto transakcie musia byť uložené na rôznych nezávislých serveroch. Takže ak sa zmení hash nejakého bloku, potom všetky ostatné servery povedia: zastavte sa!
Áno. A to nie je len prípad Moskvy. Tam sú všetky tieto uzly – servery – stále riadené kódom, ktorý DIT Moskvy zostavil zo svojich zdrojov. Prišli odborníci, ktorí požiadali o prepojenie nezávislých spoločností ako samostatného uzla. Ale nie je tomu tak, existuje iba webová stránka observer.mos.ru, kde sa transakcie nahrávajú každých 30 minút. Vývojári hovoria nezávislým pozorovateľom: môžete tam ísť a stiahnuť.
– Viktor Tolstoguzov mi povedal jednu veľmi znepokojujúcu vec. Povedal, že keďže všetky uzly sú riadené DIT (Department informačných technológií mesta Moskva – poznámka Finančných novín), potom je v zásade v tejto polhodine možné vrátiť blockchain späť a nahradiť skutočné transakcie nakreslenými. Vysvetlil mi to tak, že každý blok v blockchaine obsahuje samotný záznam transakcie plus hash – jedinečnú sadu symbolov, ktoré ho charakterizujú. Ďalší blok obsahuje záznam o novej transakcii a nový jedinečný hash, ktorý sa získa z predchádzajúceho bloku. Súčasne existuje technológia rollbacku blockchainu, je to úplne legálne a nevyhnutné, keď sa napríklad na niektorých serveroch vyskytne chyba – jeden server sa napríklad domnieva, že bitcoin patrí Petre, a druhý – že patrí Mišovi. A potom prevrátia celý reťazec späť a uvidia, kde sa stala chyba. Ale to sa deje otvorene, všetky servery o tom vedia. A ak sú všetky servery v DIT, potom každú pol hodinu medzi skládkami môžete vrátiť celý reťazec späť a zaznamenať úplne fiktívne voľby a nikto sa nikdy nič nedozvie.
Ešte raz, nie som odborník na blockchain. Viem si ale ľahko predstaviť, že keď máme málo uzlov, dokážeme všetko prepísať do pol hodiny. Pri písaní príspevku som mal bohužiaľ problémy – nájsť ľudí, ktorí zaznamenali stav blockchainu nie po skončení volieb, ale počas. Databázu som si prvýkrát stiahol, keď už boli zhrnuté výsledky volieb.
Kedy ste presne stiahli databázu?
– V noci. Asi o tretej hodine ráno. Stiahol som to a videl som, že tam nebolo dešifrovaných 700 tisíc hlasov. Potom som požiadal svojho priateľa, aby každú pol hodinu nastavil sťahovanie, aby sledoval dešifrovací proces. Ale ani po zhrnutí sa to nezmenilo. A týchto 700 tisíc hlasov ešte nebolo dešifrovaných. Dešifrovaných bolo iba 1 milión 300 tisíc hlasov. Presnejšie: 1 319 943.
– Poďme sa o tom porozprávať viac do detailov. Hlasovali dva milióny, v databáze boli dva milióny transakcií typu „prijatie hlasovacieho lístka“, jeden milión tristo bolo dešifrovaných a výsledky boli zhrnuté. Čo to má znamenať?
– Veľmi ma to nahnevalo. Dúfal som, že v noci aktualizujú databázu a všetko sa vysvetlí. Ale nie! A potom som mal otázku – ak je dešifrovaných iba 70 percent hlasov, čo je potom vo zvyšných 30? Možno sú všetci za opozíciu?
Stiahol som zdrojový kód z githubu moskovského DIT. Tu je potrebné poznamenať, že DIT tvrdí, že celý kód je open source. To je pravda, ale spôsob, akým leží, je výsmechom programátorov. Zdrojové kódy sú spravidla publikované ako textové súbory v úložisku. S kompletnou históriou zmien kódu a komentármi vývojára. DIT však publikoval archívy v úložisku, v ktorom sa nachádza zdrojový kód.
– Hm. Teraz mám veľmi slabú predstavu o tom, čo hovoríte, a obávam sa, že väčšina čitateľov tiež. Vráťme sa k tomu, že ste pobúrený napísali program na dešifrovanie výsledkov hlasovania.
– Nie je to úplne program. Vytiahol som kúsok zdrojového kódu, trochu ho učesal a dal ako samostatný nástroj. Neskôr ma odborníci na blockchain opravili, že všetko sa dalo urobiť oveľa jednoduchšie. Ale nevedel som, ako s tým pracovať, a strávil som takmer celý pondelok. A kód bol napísaný aj v jazyku Rust, s ktorým som nikdy nepracoval. Budeš sa smiať, aké je to ľahké.
Vytiahli ste teda kus kódu, urobili ste z toho nástroj na dešifrovanie hlasu, a?
– A do pol hodiny odo mňa kód všetko rozlúštil.
Všetky dva milióny?
– Áno. Viete o tom, že teoreticky môže volič zistiť, ako hlasoval?
– Vysvetlili mi, že sa robí všetko preto, aby to bolo veľmi ťažké. Ale ak človek hlasuje a zapíše si hash hlasovania, potom si môže skontrolovať, ako bol jeho hlas zohľadnený.
– Áno. Klikol som na povel: „kto zapísal hash“ a jeden človek mi odpovedal: „Mám hash a išiel som na stránku a môj hlas ešte nebol dešifrovaný.“ Vtipné, čo? Voliči sa ma pýtajú: „skontrolujte, môj hlas nie je dešifrovaný“. A musím pomôcť voličovi pochopiť, ako systém zohľadnil jeho hlas.
– Zastavme sa zase na chvíľu. Tu preložíme to, čo ste povedali, do príkladu, zrozumiteľného pre čitateľa. Existuje stránka. Hlasovali dva milióny voličov. Ich hlasy sú v urnách. Voľby sa skončili, začalo sa sčítavanie. Z volebných urien bolo vyhodených milión tristotisíc hlasov, ktoré sa spočítali. Potom niekto povedal: „Prestaň“. A prestali počítať. Ak teda prestali počítať, ako mohli oznámiť výsledok?
– Poďme teda od úplného začiatku. Predstavte si, že ste prišli pozorovať elektronickú volebnú stanicu, ako keby to bola papierňa. Čo urobí pozorovateľ ako prvé? Kontroluje knihy voličov. A potom si všimneme, že na našom webe máme podivné knihy. Neexistuje priezvisko a priezvisko, ale jedinečný identifikátor. Stránka štátnych služieb tohto voliča pozná, ale my nie. V knihe vidíte, že máte vo svojom systéme 2 milióny voličov. Ale ste na okrsku 5003. A chcete vedieť, nie koľko ich je, ale koľko ich je v tomto okrese a v tomto okrsku? A toto nie je. Tam vo vnútri transakcie „Registrácia voliča“ v rámci jednej transakcie – až 100 registrácií rôznych voter id. Ale zároveň neoznačujú okres, kde je volič zapísaný. Myslím si, že je to zvláštny spôsob, ako si udržať knihu voličov.
To znamená, že pozorovateľ nevidí, koľko elektronických voličov je v danom okrsku?
– Presne tak.
Maxim Gongalsky z Jabloka (politická strana), vedúci mestskej časti Ramenki, ktorá je tiež v sídle Bryukhanova, mi povedal úžasnú vec. Povedal, že vôbec nemali žiadne zoznamy voličov, na ktorých bola uvedená ich adresa. A to isté mi neskôr potvrdila aj Anna Lobonok, pozorovateľka z komunistickej strany. Povedala, že ich adresa nie je uvedená v ich zoznamoch voličov. A že mali sťažnosť z volebných miestností. Príde muž voliť a vidí, že v jeho byte sú zapísaní ďalší dvaja ľudia a títo dvaja jemu neznámi boli prepustení do údajov o elektronickom hlasovaní.
– Neviem, ako funguje systém živého sledovania. Na stránke observer.mos.ru sa môže registrovať volič bez uvedenia volebného obvodu.
A ako tomu porozumieť ?!
– Potom boli počas hlasovania vydané hlasovacie lístky a v transakcii na vydanie hlasovacieho lístka bolo napísané: tento volič_id dostal hlasovací lístok v danom okrsku. Ak mi niekto z DIT vysvetlí, ako skontrolovať, či volič nemôže voliť mimo svojho okrsku, budem rád, pretože sa mi to nepodarilo, rovnako ako sa mi nepodarilo nájsť ochranu pred týmto voličom_id nehlasoval v r. nesprávny okres, ale opäť budem rád, ak to niekto z DIT vysvetlí.
Stop, stop! Pamätáte si primárky Jednotného Ruska? Kedy sa takmer 10 miliónov ľudí odpojilo elektronicky? Zadali ste ich záznamy o verejných službách, zmenili miesto registrácie a hlasovali ste za ne v primárkach v Zjednotenom Rusku v meste Ust-Zakoldobinsk v N-oblasti?
– Neviem. To ma nezaujímalo, kým môjmu kandidátovi neukradli mandát.
Zistili sme teda, že v našej volebnej miestnosti 5003 s podmienkami neexistuje volebná knižka s adresami. To otvára robotom vzrušujúce vyhliadky.
– Zatiaľ to vyzerá takto, áno, ale budem rád, ak to niekto vysvetlí, možno sa mýlim. Pokračujme teda. Volebná komisia začína vydávať hlasovacie lístky. Vydanie hlasovacích lístkov je zodpovednosťou za transakciu nazývanú „vydanie hlasovacieho lístka“. V jeho vnútri je napísané, že daný volič_id hlasuje v takom a takom volebnom okrsku a môže hlasovať s takým a takým kľúčom. Volič začne hlasovať. Zaškrtne lístok. A keďže volič nechce, aby niekto vopred vedel, ako hlasoval, digitálne zakryl toto zaškrtnutie.
– Áno, podľa našej analógie s obvyklým okresom papiera zvážte, že ide o tmel. Ale – a to je veľmi dôležité – keď som už hlasovací lístok obdržal, vyplnil a zakryl, – už nemám viazanosť hlasovacieho lístka na voličský preukaz.
No a čo?
– A je tu tá skutočnosť, že pri voľbách v Moskve bol zavedený systém opätovného hlasovania. A v skutočnosti je to zariadené takto. Ak sa rozhodnete, že váš kandidát nie je pre vás vhodný, potom o 3 hodiny môžete prísť do volebnej miestnosti, vytiahnuť z hrudníka pripravený hlasovací lístok a znova zakryť začiarknutie. To znamená, že keď som dostal hlasovací lístok, dali mi ho. A ak som prišiel znova hlasovať, tak som to zhmotnil spod podlahy. Nemáme žiadne verejné informácie o tom, ako tieto bulletiny navzájom súvisia.
A pozorovateľ nevie rozlíšiť, ktorý hlasovací lístok bol vydaný a ktorý sa zhmotnil spod pultu?
– Áno. Najprv sa mi zdalo, že som hlúpy. Pozerám sa na hlasovacie lístky a nechápem, o ktorými hlasovaniami sa hlasovalo znova. Hľadám v četoch: nájdite osobu, ktorá sa riadila pokynmi hlasov, hlasovala znova a uložila dve svoje hodnoty hash. Našiel som takého človeka a vidím, že v jeho dvoch transakciách nie je nič spoločné. Neexistuje žiadny identifikátor, ktorý by preukazoval, že pochádzajú z rovnakej skupiny.
Neexistujú žiadne informácie! A tu ja, a nielen ja, vzniká otázka: kde môžem získať tieto informácie?
Odkiaľ?
– Začali sme čítať zdrojový kód. A začali mať podozrenie, že musí existovať nejaký paralelný systém. Vtedy som nepoznal také slovo ako „uzavretý blockchain“. A ako sa ukázalo neskôr, o jeho existencii nevedeli ani všetci pozorovatelia DEG. Ale pochopil som, že taký systém by mal existovať. A že v tomto druhom blockchaine spočíva tzv. šifrovaná_skupina_id. A keď dôjde k prerobeniu, tento druhý blockchain do seba zaznamená, aký bol hlas neskôr. A keď sa škandál začal, ukázalo sa, že áno, existuje druhý blockchain. Uzavretý blockchain. A to je poburujúce.
Ak to zhrnieme, musíte rozlúštiť všetky hlasy….
S istotou vyhlasujem, že všetky hlasy neboli dešifrované žiadnymi verejnými systémami.
Dekódovanie hlasov je, keď k nám príde člen volebnej komisie a prinesie špeciálny nástroj, pomocou ktorého vymažeme tmel, ktorým bola začiarknutá značka. Elektronická guma. Táto guma je kľúč, ktorej kúsky boli v siedmich ľuďoch a po 20. hodine sa dali dohromady.
Máme hromadu 2 miliónov hlasovacích lístkov. Komisia začne mazať tmel gumou. A zastaví sa na milióne tristotisíc. A predseda odchádza. Pýtate sa: „Čo sa deje? Máme 700 000 neodšifrovaných. Výsledky nemôžeme zhrnúť. “ Potom príde predseda a prinesie hotový protokol.
A toto dešifrovanie – vymazanie tmelu – na vašom prenosnom počítači trvalo pol hodinu?
– No, stále nemám notebook. Mám 12-jadrový počítač, 24 vlákien.
– Leptop. Osem jadier.
– No, trvalo by ti to 45 minút. A potom, ak kód neoptimalizujete. Ako som povedal, môj kód nebol optimálny.
– V preklade do zdravého rozumu, čo sa stalo, prečo prestali počítať a potom celú noc počítali na strojoch, ktoré sú zjavne výkonnejšie ako tvoje? Sú z výsledkov zdesení? Ako inak sa to dá vysvetliť?
Nuž, teoreticky sa tam nedá dešifrovať jeden hlas. Existujú nefunkčné údaje. Možno to tam ten program vzal, videl tento hlas a spadol.
Ale váš program sa nezastavil?
– Nie, môj všetko dekódoval.
Vo vašom príspevku ma to zarazilo. Na ochranu pred administratívnym tlakom bola zavedená funkcia opätovného hlasovania. Napríklad človek v práci bol požiadaný, aby hlasoval za moc, pretože za Chovanskuju hlasoval, prišiel domov a hlasoval za Brjukanovovú. Rozlúštili ste všetky hlasovacie lístky a nemali ste možnosť určiť, ktoré z nich boli opätovne hlasované a ktoré nie. A keď ste porovnali svoje výsledky s oficiálnymi, ukázalo sa, že na Edra máte menej ako oficiálne. Nie veľa – o 1%, ale menej. Pripadalo mi to ako matematický dôkaz, že na vypchávanie bolo použité opätovné hlasovanie. Pretože z vášho výsledku vyplýva, že ľudia, ktorí hlasovali, volili Jadro (voličov – poznámka Finančných novín).
Maxim Gongalsky zverejnil na svojom Facebooku graf vhadzovania umelých hlasov (rusky vbros), ktoré sa Katzovmu tímu podarilo rekonštruovať. Dokázali, že išlo o banálne vhadzovania, a nie o nejaké prefíkané vracanie blockchainu, ako sa Tolstoguzov obával atď. A boli tam zjavne dve fázy zásahu: „pomalá fáza“, od piatku do soboty, keď nie veľmi hodilo sa veľa, „rýchla fáza“ v nedeľu od 8 do 14:00, keď sa hodilo veľa, a s „prestávkou na obed“ a „voľnou fázou“ od 14:30, keď prakticky nedochádzalo k vhadzovaniu : v tej chvíli bolo zrejmé, že skutočné online hlasovanie je dokonca o niečo viac ako offline, naklonené opozícii. Môžete dať do súvislosti tieto fázy v grafe s tým, čo ste našli? S druhmi vhadzovania?
–K rovnakému výsledku by teoreticky mohlo dôjsť, ak by opozícia, vedúca o možnosti opätovného hlasovania, hlasovala viackrát za svojho kandidáta. Hrané. Ale tu je scenár, ktorý navrhol Venediktov: „Bol som nútený voliť Chovanskaju v práci, vrátil som sa domov a hlasoval za Bryuchanovu“ – takto sa systém nepoužíval. Minimálne ak dôverujeme výsledkom vo volebnom systéme GAS.
– Môžem len špekulovať. Úprimne povedané: Sám som v pondelok ráno dostal rovnaký rozvrh pre District 198, ale nedokázal som sa na to správne pozrieť. Pretože je to obrovská technická práca navyše. Zložiť klobúk.
Ako teda fázy v grafe súvisia s dierami, ktoré ste objavili?
– Pozrime sa. Históriu aplikácií pre elektronické hlasovanie sme vynechali v zátvorkách. Napísal som, že máme viac žiadostí o elektronické hlasovanie, ako je zaregistrovaných v systéme na mos.ru. Tam prišlo ďalších 455 tisíc aplikácií zo systému štátnych služieb a nemáme o tom žiadne informácie. Po zverejnení mi bolo ukázané, že áno, tieto informácie sú v GAS. Aplikácie sa zbiehajú. Je potrebné skontrolovať, či ide vôbec o skutočných ľudí. Brjuchanova dnes ráno uviedla, že na mos.ru neexistujú žiadne domy. Potenciálne falošní voliči. Čo by sa dalo nejako zahrnúť.
Ako mi povedal jeden priateľ: „Musíte pochopiť, že každý starosta má vždy rezervu 5% mŕtvych.“
– Áno, toto je prvý vektor – vziať zosnulých ľudí, kúpiť si účty a zaregistrovať ich na elektronické hlasovanie. Druhým vektorom je opätovné hlasovanie.
Nemyslíte si, že tieto dva vektory zodpovedajú fázam „pomaly“ a „rýchlo“?
– Videl som, že sa o tom diskutuje v rozhovoroch. Nedá sa to však jednoznačne povedať.
Ach, to teší. Pretože som veľmi rýchlo nadobudol dojem, že vhadzujú rôznymi spôsobmi, ako v skutočnej oblasti, a nie iba jednou. A bolo zrejmé, že „pomalá fáza“ boli roboti, „rýchla“ znova hlasovala. Ale ja som filológ a úplný hlupák. Myslel som si, že je to zovšeobecnenie úplného amatéra. Viete, amatér videl niečo známe a okamžite to spojil.
– Tiež mám stále dojem, že som sa niekde mýlil. Mal som veľké obavy, že zverejním príspevok, a oni mi povedali: „Blázon, nevedel som prečítať kód.“ A dúfal som, že DIT vyjde a všetko vysvetlí. Ale zatiaľ nikto nenašiel žiadne chyby.
Ale z „pomalej fázy“ a „rýchlej fázy“ vyplýva ešte jedna veľmi dôležitá vec. Ak by bola plnka obmedzená iba na nich, potom by výsledky nesčítavali celú noc a nevyhnali by Sukhorukova preč z uzla pozorovateľa. Všetko by zrátali za pol hodinu. Neprestali by počítať. Všetky núdzové práce, ktoré prebiehali v noci, znamenali, že po naplnení údajme začali počítať a boli nešťastní.
– Áno, rozlúštili by 2 milióny hlasov. Je celkom možné, že zavesili zámok stodoly na uzol a posadili sa, aby vyriešili uzavretý blockchain, aby nejakým spôsobom zachytili zoskupenia nadmernými hlasmi, aby sa čísla pre EP zblížili.
A čo je „obedná prestávka“?
– Neviem. Možno to bola naozaj prestávka na obed, ak ľudia hlasovali. Alebo možno hodili a koordinovali, dosť – nie dosť.
– Vhodzovania: Sú to boti (elektronické roboty) alebo ľudia hlasovali?
– Neviem. Ale keby roboti, to by bolo úplne poburujúce. Vieš si predstaviť? Vývojári sedia v DIT v Moskve alebo niekde inde, neviem kde, a píšu skripty na hádzanie hlasov.
(Rozhovor nemusí odrážať názory Finančných novín)
Poznámka Finančných novín. Denník Novaja gazeta vytvorila skupina novinárov ako napríklad Dmitrij Muratov, Sergej Kushnerev, Pavel Voschanov, Akram Murtazaev, Dmitrij Sabov a ďalší. Odišli z Komsomolskej pravdy a vytvorili vlastnú publikáciu s názvom Denník Novaya. Michail Gorbačov, dlhoročný partner publikácie, v roku 1993 s využitím časti finančných prostriedkov z jeho Nobelovej ceny kúpil pre túto skupinu 30 novinárov 8 počítačov. Prvé číslo vyšlo 1. apríla 1993 v náklade 100 000 kusov. Prvé tri mesiace vychádzal raz týždenne, od júla 1993 sa stal denníkm. Od februára do augusta 1995 noviny v Moskve nevychádzali z finančných dôvodov. Od augusta 1995 pokračoval v týždenníku. V roku 1996 bola zaregistrovaná ako „Novaya Gazeta“