ДЭГ-шоу

топ 100 блогов novayagazeta25.09.2021 Как могло быть сфальсифицировано электронное голосование в Москве: расследование Юлии Латыниной и программиста Яндекса Петра Жижина.

Программист Петр Жижин выгрузил с сайта observer.mos.ru весь дамп с результатами электронного голосования, написал программу для его расшифровки, расшифровал, проанализировал, и в среду поделился результатами своего анализа в посте на хабре. Юлия Латынина поговорила с Петром Жижиным о том, что он нашел, а также о вещах, которые стали известны после его поста. В принципе это рассказ о том, как могло быть фальсифицировано ДЭГ в Москве. Поэтапный.

Петр, несколько слов о вас. Вы кто?

— Я работаю программистом в Яндексе и занимаюсь распознаванием речи. Анализом ДЭГ я занялся случайно. Анализировать данные — это то, что я люблю. Я бы хотел подчеркнуть, что анализ ДЭГ — это не то, чем Яндекс занимается. Это не имеет отношения к моей работе. Это мое свободное время, моя личная инициатива.

На каком этапе вы включились в выборы?

— Меня возмутила ситуация. Я решил, что надо проанализировать то, что случилось.

То есть вы не состоите ни в чьем штабе?

— Я являюсь сторонником Анастасии Брюхановой и Петра Карманова (кандидаты Каца в Госдуму и Мосгордуму,прим. Ю.Л.). Помогал им, волонтерил, перечислял им деньги.

То есть вы — волонтер Брюхановой?

— Да.

ДЭГ-шоу

Петр Жижин. Фото из соцсетей

До конца выборов как вы относились к электронному голосованию?

— Я не доверял системе, но пока они не начали фальсифицировать, я не интересовался этим. Было что-то вроде чувства: «Ну, похоже, они пока нормально работают, может быть, к президентским подключат». И я понимал, что система настолько непрозрачная, что нужны специальные технические знания, чтобы понимать, как она функционирует. Вы, наверное, на себе почувствовали, как это сложно было все проанализировать.

Я говорила с Виктором Толстогузовым. Он не просто программист, а разработчик систем электронного голосования. Он был один из немногих моих собеседников, который считал, что электронное голосование должно быть запрещено, и был его яростным критиком. Его после этой критики по требованию Венедиктова включили в экспертный совет по ДЭГ. Я начала нашу беседу со слов: «Я в этом ничего не понимаю», и он ответил: «Да, и это нарушение ваших прав как избирателя. Вы же понимаете, как устроена обычная урна? А тут понимают единицы. Значит, права избирателя нарушены».

— Да. У меня тоже такое чувство, что привычная система была заменена на волшебное слово «блокчейн», люди где-то его слышали, знали, что это криптовалюта, что это надежно, а что такое блокчейн — сколько знает?

А вот кстати, объясните, что такое блокчейн, публике.

— Дисклеймер: я не специалист по блокчейну, но для анализа данных этого и не нужно знать. Там очень большой массив данных, которые можно анализировать, вовсе не зная, что такое блокчейн. Но в принципе блокчейн — это система записей, которая криптографически устроена так, что в систему можно добавить новую запись, а вот чтобы удалить старую, нужно привлечь очень много ресурсов. Но если вы зайдете на сайт observer.mos.ru, вы можете просто скачать sql.базу, распаковать и увидеть три таблицы: blocks, decrypted ballots и transactions. Перед нами — просто база данных, которую можно анализировать, ничего о блокчейне не зная. Просто, когда у вас есть обычная база данных или таблица в экселе — у вас нет никакой гарантии, что в какой-то момент злоумышленник не придет и не подменит ее. Блокчейн — это способ удостовериться, что эта таблица никогда не была подменена.

Как я понимаю, для того, чтобы таблица не была подменена, все эти транзакции должны храниться на разных независимых серверах. Чтобы если у какого-то блока изменился хеш, то все другие сервера сказали бы: стоп! У нас другое записано.

— Да. И в Москве этого нет. Там все эти ноды — сервера — все равно контролируются кодом, который собрал ДИТ Москвы из своих исходников. Были эксперты, которые приходили и просили подключить независимые компании как отдельную ноду. Но этого нет, есть только сайт observer.mos.ru, куда транзакции выгружаются каждые 30 мин. Разработчики говорят независимым наблюдателям: вы можете зайти туда и скачать.

Виктор Толстогузов сказал мне одну очень огорчительную вещь. Он сказал, что, поскольку все ноды контролируются ДИТом, то в принципе в эти полчаса можно откатить блокчейн и заменить реальные транзакции нарисованными.

Он мне объяснял так, — извините, тут я это для читателей объясню то, что мне самой только что объяснили, — что любой блок в блокчейне включает в себя саму запись о транзакции плюс хеш, — уникальный набор символов, который ее характеризует. Следующий блок включает в себя запись о новой транзакции и новый уникальный хеш, который получается из предыдушего блока.

При этом существует технология отката блокчейна, она совершенно легальна и необходима, когда, например, на каком-то из серверов возникла ошибка, — один сервер, скажем, считает, что биткойн принадлежит Пете, а другой — что он принадлежит Мише. И тогда откатывают всю цепочку и смотрят, где произошла ошибка. Но это происходит открыто, об этом знают все сервера. А если все сервера стоят в ДИТе, то так каждые полчаса в промежутках между дампами можно откатывать всю цепочку и записывать совершенно фиктивные выборы, и никто вообще никогда ничего не узнает.

ДЭГ-шоу

Виктор Толстогузов. Фото из соцсетей

— Еще раз: я не эксперт по блокчейну. Но я легко могу представить, что когда у нас немного нод, мы за полчаса все можем перезаписать. У меня, к сожалению, возникли проблемы, когда я писал пост — найти людей, которые состояние блокчейна записывали не после конца выборов, а во время. Я скачал базу первый раз, когда итоги выборов уже подвели.

— Когда именно вы базу скачали?

— Ночью. Около трех часов ночи. Я ее скачал и увидел, что там не расшифровано 700 тыс. голосов. Тогда я попросил своего знакомого настроить скачку каждые полчаса, чтобы проследить за процессом дорасшифровки. Но после подведения итогов этот дамп не менялся. И эти 700 тыс. голосов еще нерасшифрованы. Расшифрованы только 1 миллион 300 тыс голосов. Если точнее: 1319943.

Стоп! Вот отсюда — поподробней. Это как? Проголосовали два миллиона, транзакций с типом «прием бюллетеня» в базе два миллиона, расшифрованы миллион триста, а итоги подведены. Это как? Это что?!

— Вот! Это меня сильно возмутило, я надеялся, что ночью они базу обновят. Нет! И дальше у меня встал вопрос —

если расшифровано только 70 процентов голосов, то что в остальных 30? Может, они все за оппозицию?

Я скачал исходный код с гитхаба московского ДИТа. Тут надо отметить, что ДИТ утверждает, что весь код открыт. Это действительно так, но то, как он лежит — это издевательство над программистами. Обычно исходные коды публикуются в виде текстовых файлов в репозитории. С полной историей изменения кода и с комментариями разработчиков. Но ДИТ опубликовал в репозитории архивы, внутри которых лежит исходный код. Слушайте, я в 10 классе научился работать не в виде архивов, а в виде репозитория. Сейчас 2021 год!

Гм. Я очень плохо сейчас представляю себе, о чем вы говорите, и боюсь, что большинство читателей — тоже. Давайте вернемся к тому, что, возмутившись, вы написали программу для расшифровки результатов голосования.

— Ну, это громко сказано — программу. Я просто вытащил кусок исходного кода, немного причесал его и выложил его в виде отдельной утилиты. Меня уже потом поправили эксперты по блокчейну, что все можно было сделать гораздо проще. Но я не знал, как с этим работать, и потратил почти весь понедельник. И еще код был написан на Rust, с которым я никогда не работал.

Просто обхохочешься, как просто. Итак, вы вытащили кусок кода, сделали из него утилиту по расшифровке голосов, и?

— И за полчаса он у меня все расшифровал.

Все два миллиона?

— Да. Вы знаете, что теоретически избиратель может узнать, как он проголосовал?

Мне так объяснили, что все сделано, чтобы это было очень трудно. Но если человек голосует и записывает при этом хеши голосования, то потом он может проверить, как учли его голос.

— Да. Я кликнул клич: «кто записал хеши» и мне отвечает один человек: «у меня есть хеш, и я зашел на сайт, и мой голос до сих пор не расшифрован». Смешно, да? Меня избиратели спрашивают: «проверьте, мой голос не расшифрован». И мне приходится помогать избирателю понять, как система учла его голос. Учла его, кстати, правильно.

ДЭГ-шоу

Фото: Евгений Одиноков / РИА Новости

Стоп-стоп. Еще раз. Вот переведем то, что вы сказали, на понятный читателю пример с бумажным голосованием и урной. Есть участок. На нем проголосвали 2 миллиона избирателей. Их голоса лежат в урнах. Выборы кончились, начался подчет. Миллион триста голосов вывалили из урн, посчитали. Потом сказали: «стоп». И перестали считать. Так если они перестали считать, как они объявили результат?!!

— Давайте тогда с самого начала. Действительно, представьте себе, что вы пришли наблюдать на участке электронного голосования, как если бы это был бумажный участок. Что первое делает наблюдатель? Он проверяет книги избирателей. И тут мы замечаем, что у нас на участке книги странные. Там нет фамилии-отчества, а вместо него — уникальный идентификатор. Сайт госуслуг этого избирателя знает, а мы — нет. Вы видите в книге, что у вас в системе 2 млн. избирателей. Но вы находитесь на участке 5003. И вы хотите знать, не сколько их всего, а сколько их конкретно в этом округе и на этом участке? И этого нет. Там внутри транзакции «Регистрация избирателей» внутри одной транзакции — до 100 регистраций разных voter_id. Но при этом в них не указан округ, где избиратель зарегистрирован.

Я считаю, это странный способ вести книгу избирателей.

То есть наблюдатель не видит, сколько электронных избирателей в данном округе?

— Из книги электронных избирателей — не видит.

Это мозг выносит. Максим Гонгальский от «Яблока», глава муниципального округа «Раменки», который тоже в штабе Брюхановой, мне сказал удивительную вещь. Он сказал, что у них вообще не было списков избирателей, в которых был указан их адрес. И то же самое мне подтвердила потом Анна Лобонок, наблюдатель от КПРФ. Она сказала, что у них в списках избирателей не был указан их адрес. И что с участков у них была жалоба. Приходит человек голосовать, и видит, что в его квартире прописаны еще двое человек, и эти двое ему неизвестных выписаны на ДЭГ. У меня просто крышу снесло.

— Я не знаю, как устроена система живого наблюдения. Я могу однознрачно сказать по сайту observer.mos.ru Транзакции с типом «регистрация избирателей» — в них не указано, по какому округу он голосует.

А как же это понять?!

— Потом во время голосования выдавались бюллетени, и в транзакции на выдачу бюллетеня было написано: данный voter_id получил бюллетень по заданному округу. Если кто-то из ДИТа мне пояснит, как проверить, что избиратель не может проголосовать не по своему округу, я буду рад, потому что у меня не получилось этого сделать, так же как и не получилось найти в исходном ходе защиту от того, чтобы данный voter_id не проголосовал не в своем округе, но опять же я буду рад, если кто-то из ДИТ пояснит.

Стоп-стоп! Вы помните праймериз «Единой России»? Когда чуть ли не 10 млн человек отъединороссили электронно? Зашли в их записи на госуслугах, изменили место прописки, и проголосовали за них на праймериз в ЕР в городе Усть-Заколдобинске N-cкой области?

— Я не в курсе. Меня это не интересовало, пока у моего кандидата не украли мандат.

ЧИТАЙТЕ ТАКЖЕ

Праймаразм

На предварительном голосовании за кандидатов «Единой России» в Москве грубо нарушены законы логики и математики. Расследование «Новой»

Итак, мы выяснили, что на нашем условном участке 5003 нету книги избирателей с адресами. Что открывает захыватывающие перспективы для ботов.

— Пока выглядит так, да, но буду рад, если кто-то пояснит, может это я и ошибаюсь. Итак, продолжим. Избирательная комиссия начинает выдавать бюллетени. За выдачу бюллетеней отвечает транзакация, которая так и называется: «выдача бюллетеня». Внутри нее написано, что данный voter_id голосует по такому-то округу и может проголосовать с таким-то ключом. Избиратель начинает голосовать. Он ставит галочку в бюллетене. И так как избиратель не хочет, чтобы кто-то раньше времени узнал, как он проголосовал, он цифровым образом эту галочку замазывает.

Выданным ему личным ключом шифрования?

— Да, по нашей аналогии с обычным бумажным округом, считайте, что это замазка. Но, — и это очень важно — когда я уже получил бюллетень, заполнил и замазал, — я не имею уже привязки бюллетеня к идентификатору голосующего.

Ну и что?

— А то, что на выборах в Москве была введена система переголосования. И по факту она устроена так. Если ты решил, что твой кандидат тебе не подходит, то ты через 3 часа можешь прийти на участок, вытащить из-за пазухи готовый бюллетень и опять замазать галочку. То есть когда я получил бюллетень, мне его выдали. А если я пришел переголосовать, то я материализовал его из-под полы. У нас нет никакой публичной информации, как эти бюллетени связаны друг с другом.

ДЭГ-шоу

Фото: Владимир Федоренко / РИА Новости

Стоп! То есть они взяли сейф, положили туда два миллиона голосов, сказали: «сейф надежный, блокчейн, все дела», а потом рядом повесили на гвоздь 300 тыс?

— Я бы сказал так, — пользуясь нашей аналогией с бумажным участком. В конце дня мы подводим итоги голосования. И я вижу, что в урне лежит 133 тыс. бюллетеней с замазанной галочкой. И мне говорят: а посчитаем мы из них только вот эти 120 тыс». И спрашиваю: как же так получилось? На каком основании? И председатель ОИКа тогда говорит: «Ах, ну знаете, у нас тут в ДИТе был второй непубличный блокчейн, в нем-то и записано, что вот эти 13 тыс. мы считать не будем».

ПРОДОЛЖЕНИЕ

Оставить комментарий

Архив записей в блогах:
В Московский Губернский театр я сходила уже раз пять или шесть, все спектакли мне очень понравились и я, расслабившись, решила, что теперь можно туда покупать билет не глядя. Была неправа. В пятницу сходила на "Джаз-комедию". Как выяснилось, это неудачная переделка "Веселых ребят". И ...
Сами мы не местные... (Норвежская парочка) Самым смешным в трансляции первого полуфинала Евровидения оказались те глубина и степень, с которыми облажались немецкие организаторы. Посреди действа пропал звук от комментаторов, каковые спустя ...
Слушайте, у меня дурацкий вопрос, но вы сильно не смейтесь.Вот я, предположим, хочу ...
Уверен, сегодня будет много разговоров о том, что в России было принято решение о "добровольном" переселении украинских беженцев, спасавшихся от кровавой хунты в братской россиюшке, в Сибирь. Кто-то будет осуждать действия россиян, ведь все мы понимаем, что это такое "добровольное перес ...
Ровно 100 лет назад, 19 февраля 1918 года, начался так называемый Ледовый поход Балтийского флота - масштабная операция по эвакуации боевых кораблей из Ревеля в Гельсингфорс (то есть - из Таллина в Хельсинки), а потом - из Гельсингфорса в Кронштадт, чтобы не допустить их захвата ...