По итогам «бумажного» голосования кандидаты от «умного голосования» побеждали ЕР в Москве с разгромным счетом. По итогам электронного голосования все они вдруг проиграли. При этом результаты ЭГ были объявлены не через час, как раньше, а много позже.
Самое интересное происходило в участковых комиссиях на электронных избирательных участках. Там тоже были наблюдатели, но в большинстве своем технически неподкованные для такой работы. Правда, были и исключения. И вот таким «шибко умным» запретили доступ к ноде наблюдателя (то есть компьютеру, подключенному к блокчейн-сети, с которого можно контролировать происходящее на электронном участке). А когда допустили, выяснилось, что она не работает, потому что у нее больше нет сертификата безопасности, выдаваемого ФСБ РФ. Его действие истекло в 20:00 19 сентября, то есть сразу после окончания выборов.
О том, что происходило в электронном УИКе в ту ночь, Юлия Латынина поговорила с Ильей Сухоруковым, профессиональным программистом, который был наблюдателем от Анастасии Брюхановой на электронном УИКе в ту ночь и который первый поднял тревогу и пытался прорваться к ноде.
- Результаты электронного голосования подделаны?
- Мы еще не знаем. У нас есть некоторые догадки, с которыми мы пока разбираемся.
- Ок. Тогда пойдем по порядку. Что это за история с сертификатами ФСБ? Желательно на пальцах.
- На пальцах. Все действия между компьютерами делаются с помощью запросов. Каждый такой запрос подписывается сертификатом. Ну как в здании на входе стоит человек, и ты ему показываешь паспорт. Точно так же каждый запрос от компа к компу подписывается сертификатом.
Вообще, мне придумалась вот какая аналогия. Блокчейн - это как химический процесс, который мы невооруженным глазом не можем увидеть, но можем кое-что увидеть в микроскоп. В нашем случае было два микроскопа. Один - с YouTube-трансляцией в интернет. Это сайт
observer.mos.ru, сделанный так, чтобы любой мог с него наблюдать или скачивать информацию.
Он всю пятницу показывал не то, что на самом деле. Он показывал явку по округам неверную - явка там остановилась в 12 дня.
И был второй микроскоп мощный - он называется нода наблюдателя. Мы, наблюдатели, с его помощью могли смотреть, что все идет корректно. И мы увидели, что явка растет, и это просто баг observer.mos.ru. То есть мы увидели, что это просто у разработчиков руки кривые, и не стали поднимать скандал. К сожалению, я не большой специалист именно по блокчейну, и поэтому, когда я смотрел на ноду во время голосования, я не мог разобрать: это мне химический процесс показывают или я через микроскоп смотрю на маленький мониторчик, в котором происходит имитационный процесс.
- Стоп. А что во время голосования показывает нода наблюдателя?
- Она показывает количество проголосовавших по округам и некоторую другую информацию. Там некоторые вещи можно проверить. Например, у каждого пользователя есть ID, который доступен только самому пользователю, и по ID, если бы он мне его сказал, можно было бы посмотреть, проголосовал он или нет.
- И это тогда доказало бы наличие или отсутствие фальсификаций?
- Нет, к сожалению. Это все равно мог бы быть мониторчик. Но можно было проверить конфигурацию консенсуса, информацию о транзакции, это мне уже потом сказали. Мы тогда этим не обеспокоились.
- Почему?
- Потому что еще тогда не думали о возможности фальсификаций. И даже программистов на участке не было. Была наблюдатель с ПРГ (право решающего голоса. - Ю. Л.) от КПРФ Анна Лобонок, координатор по Хорошевскому району. Вот ее послали туда как программиста. И был еще наблюдатель с ПСГ (право совещательного голоса. - Ю. Л.) от Махницкого, но он совсем не программист. И я чуть-чуть больше их понимал. Но я веб-программист. Я не по блокчейну.
- И вот наступает 8 часов вечера.
- Как я уже упоминал, у меня в целом было доверие к электронному голосованию, потому что люди, которые специалисты, говорили, что все было честно. Я особо не волновался. И в 9 вечера не волновался. В 9:30 появились первые результаты по МГД (Московской городской думе. - Ю. Л.). А у нас ничего нет. Мы ждем. Тут я вижу, что есть результаты по МГД. Начал разбираться, откуда результаты. Оказывается, на
observer.mos.ru появился блок.
А блокчейн - ну, упрощенно говоря, считайте, что это эксель-таблица, в которой каждая строчка подтверждает, что все предыдущие строчки не менялись. Блокчейн используется, чтобы всю цепочку нельзя было поменять. И вот в этой таблице на
observer.mos.ru появляется новая строчка - результаты выборов по МГД, и я вижу, что Карманов (кандидат в Мосгордуму. - Ю. Л.) проиграл. 10 тысяч голосов отрыв в электронке не в его сторону. А потом я смотрю, что сумма голосов - 24 тысячи человек. А зарегистировались 37 тысяч в округе и явка 95 процентов.
- А как это может быть? Это же блокчейн.
- У меня возник тот же вопрос. Я начал бегать везде. Забежал в ноду наблюдателя, и председатель УИКа - Юрий Константинович Павлов - начал на меня орать: «Выйдите!» Я ему сдуру подчинился. Я все еще думал, что выборы будут более или менее честные.
Тут надо пояснить, что для выборов в Госдуме, МГД и муниципальных созданы три электронных УИКа, и все сидят в трех соседних помещениях. В одном месте. Я был ПСГ от Брюхановой и Карманова (кандидат в Мосгордуму от Каца. - Ю. Л.). Я подошел к председателю УИК МГД и говорю: «Обеспечьте мне доступ к ноде наблюдателя». Тот: «Ну пойдемте». А нода наблюдателя - в смежном помещении с УИКа Госдумы. Мы идем с нашим председателем комиссии по выборам в МГД, а председатель УИКа по выборам в Госдуму говорит: «Не пускайте его». Хотя УИКи и разные, но моя председатель воспринимала его как главного.
Вот тут была моя ошибка: надо было настоять. Но у меня все еще была уверенность, что это просто синдром вахтера включился у председателя УИКа. И я не отрефлексировал. Тем более, подумал я, что вся база была доступна в обсервере. Задним числом ничего поменять не удалось бы. Мы сейчас находим тех людей, которые скачивали блокчейн в течение дня, и пока он одинаковый. Так как люди его постоянно скачивают - его подменить сложно. Тогда я думал, что если бы я прошел в ноду, я бы увидел то же самое, что на
observer.mos.ru.
- А сейчас так уже не думаете?
- Не знаю. Не уверен. В полдесятого появляются результаты по МГД. И они явно не сходятся по количеству голосов. Я начинаю спрашивать: «Как так?» И в 11 происходит пресс-конференция главы <Общественного штаба по наблюдению за выборами в Москве> Венедиктова и <начальника Управления по совершенствованию территориального управления и развитию смарт-проектов правительства Москвы> Костырко о том, что выложены результаты только по тем, кто проголосовал один раз. А есть, мол, еще те, кто переголосовывал.
- И тут-то вы поняли, что беда?
- Нет! У меня было впечатление, что базу людей, менявших голос, они ее просто продолбали. И что голосование более или менее честное. И в час ночи я нахожу Венедиктова и прошу обеспечить мне доступ в ноду. Венедиктов зовет Массуха (глава штаба для наблюдения за ходом электронного голосования в Москве. - Ред.). Тот меня сопровождает в ноду, и там случилась ключевая вещь - нам обеспечили доступ.
И мы начали осуществлять запросы. И на запросы система не отвечает. Запрос осуществляется через Google Chrome. Я говорю: «Давайте зайдем в панель разработчика, где можно посмотреть на эти запросы чуть более расширенно».
- Что значит - более расширенно?
- Если вы обычный пользователь, вы нажимаете кнопку, и осуществляется запрос, но не понимаете, как он идет, вы только видите, загрузился сайт или нет. А с панелью разработчика вы можете понять, кому был сделан запрос и какой был ответ. Панель разработчика на сервер никак не влияет. Сервер вообще не знает: открыта эта панель или нет. И мне программист говорит: «Не могу. Настройки безопасности».
То есть он говорит чушь, и я понимаю, что он говорит чушь, и он знает, что я это понимаю. Но говорит.
Он открыл панель разработчика и говорит: «Я не буду делать запрос, потому что безопасность». Я говорю: «Делай». Он нажал кнопочку, отправил запрос с открытой панелью разработчика.
- И?
- И он говорит: «Не покажу».
- Что происходит дальше?
- Я начинаю скандалить. И тут происходит центральное событие ночи, которое мы не зафиксировали в жалобе. Вот тут наша большая ошибка. В два часа ночи появляется Михаил, сотрудник ДИТа… (Департамента информационных технологий г. Москвы. - Ю. Л.)
- ДИТа? Я говорила с Денисом Шендеровичем. Шендерович сказал, что ему показалось, что этот Михаил был из ФСБ. Такой… подтянутый слишком для программиста.
- ФСБ была потом. Возвращаемся к панели разработчика. Каждый вопрос от компа к компу подписывается сертификатом. И Михаил говорит: «Сертификат ноды истек в 8 вечера».
- Стоп-стоп! Как - восемь вечера? Вы сами сказали, что нода - это микроскоп, с помощью которого вы наблюдаете за процессом. Вот кончились выборы, пошел процесс подсчета, самое оно - и тут у микроскопа захлопнули крышечку?
- Именно. Я спрашиваю, когда будет новый сертификат, чтобы нода заработала? Михаил отвечает: «Этим занимается ФСБ, будет новый сертификат, нода заработает». Мы не написали в этот момент жалобу, мы документально не зафиксировали, что были какие-то сертификаты ФСБ. Тут только наше слово. Но если они будут отрицать, что это было, то, значит, все очень плохо.
Ключи шифрования на ДЭГ в Общественном штабе по наблюдению за выборами. Фото: Станислав Красильников / ТАСС
- А нафиг вообще ноде - этому микроскопу - сертификат ФСБ? Как-то подозрительно.
- Участие ФСБ здесь абсолютно не нужно. В лучшем случае оно продиктовано тем, что если написано слово «криптография», то ФСБ пытается все подмять под себя. Нам говорят: «Сертификаты будут позже». - «Когда?» - «В течение 10 минут». 10 минут превращаются в час, два, три. Появляются первые электронные результаты по кандидату в Госдуму Брюхановой. Частичные. «В полях» она выигрывала. И, как я говорил, в тот момент я все еще думал, что это процесс не смогли организовать нормально, но посчитают все честно. Есть блокчейн, список поданных бюллетеней - он зафиксирован, и в нем получится найти, где вброс, как он произошел, что с бюллетенями людей, которые проголосовали дважды. То, что количество выданных бюллетеней не равно количеству записей в блокчейне, обнаружилось только вчера вечером. Я (да и вообще никто из независимых наблюдателей, как мне сейчас кажется) не разбирался, как работает система с переголосованием. Я думал, что она «вшита» в блокчейн, а, по имеющейся сейчас информации, она работает независимо от него, и по блокчейну нельзя понять, какие бюллетени должны быть учтены, какие - нет. Ну и я в ужасном уже состоянии был, потому что с 8 утра воскресенья до 9 вечера понедельника я не спал.
- Стоп. Вы сейчас сказали выносящую мозги вещь. Голоса, поданные повторно, - они отдельно от блокчейна?! То есть они построили вокруг этих сокровищ-голосов цифровую крепость, все заминировали, поставили дзоты, цифровые танки, а потом триста тысяч голосов сложили отдельно от крепости в чистом поле, - заходи и бери?
- Да, они отдельно. И Костырко это подтвердил.
- Я говорила с одним из программистов, который сейчас анализирует базу, и он говорит, что видит только миллион триста тысяч проголосовавших избирателей - не два миллиона, как официально сообщается.
- Не знаю. Я следил только за нашим округом. Дальше к половине четвертого утра мы понимаем, что все разбежались. Вообще никого нету. И доступа никто не даст.
Где-то к 8 утра приносят результаты. Кто это сделал, мы не видели. Секретарь начал их печатать. Члены комиссии их подписывают. Ближе к 11 утра были распечатаны все копии. И члены комиссии начали разъезжаться по округам, чтобы там внесли данные в систему ГАС-«Выборы». Я поехал домой, и вдруг в 01:15 мне секретарь пишет: «На два часа назначено новое заседание УИК ДЭГ, будете ли вы присутствовать?» Я развернулся и поехал.
Приезжаю - оказывается, что в 201-м округе они в сумме выданных бюллетеней не учли бюллетени какого-то кандидата, и там было 112 тысяч, а должно быть 113 тысяч.
И они собирают комиссию, чтобы это перезаверить.
- Стоп. Это как может быть, что они кого-то не внесли? Есть электронное голосование. И один компьютер может другому компьютеру все сам переслать. То есть что, списывают данные электронного голосования с экрана и вписывают от руки в бюллетень?
- Ну, есть два объяснения. Или у них руки растут не из того места, и они не написали шаблона, который автоматически генерирует итоговый протокол.
- Или?
- Ну, знаете, как устроен КОИБ? Он печатает сведения об итогах голосования, а утверждает их комиссия. И бывает, что если сведения неправильные, то в этот момент может отключиться свет, КОИБ станет нерабочим, и бюллетени пересчитают от руки. По-правильному. Здесь та же история. Машина может не учесть тонкости момента.
- Как можно фальсифицировать блокчейн?
- Мы сейчас с этим разбираемся.
- Что это за 300 тысяч людей, которые проголосовали повторно? Это они сами проголосовали или это за них переголосовали?
- Не могу ответить. Меня еще вот какой вопрос занимает: все ли люди, зарегистрированные на мос.ру, - живые? Не завели ли за них записи?
- Илья, у меня такой вопрос. Я ни хрена не знаю про блокчейн, кроме того, что это распределенный реестр. То есть правильно ли я понимаю, что вся суть блокчейна в том, что у вас данные хранятся на разных серверах, которые вы не контролируете, и если вы изменили часть этих данных, другие сервера это сразу видят? При этом весь московский блокчейн расположен на 2-4 серверах, которые хранятся в мэрии Москвы и Общественной палаты. То есть это такой же блокчейн, как Дума - парламент? И переписать его можно легко? Объясните для идиотов.
- Смотрите. Блокчейн можете рассматривать как эксель-таблицу. Если, чтобы совсем просто, представьте, у вас есть текст «Войны и мира». И мы в нем каждую букву и знак меняем на цифру. И суммируем их. И у «Войны и мира» будет свое число. У каждой книги будет свое число, и, сравнив эти числа, мы увидим, что это две разные книги.
- Может случиться, что совпадут?
- Да. И поэтому математики придумали, чтобы никогда не совпадало. Вместо числа они придумали хеш - это последовательность из 30 букв и цифр. Это как отпечаток пальца. Если мы встречаем два одинаковых отпечатка пальцев, значит, они принадлежат одному человеку. Хеш - это цифровой отпечаток пальца, который сгенерирован на основании информации в файле. Сумма цифр в «Войне и мире» - это самый простой хеш.
Невозможно найти два разных файла, у которых были бы одинаковые хеши, и невозможно придумать заранее файл, у которого был бы вот такой же хеш.
Это как такая мясорубка-соковыжималка. В один конец засовываешь быка, а из другого конца вылезает маленький кубик из мяса и жил. И на основании этого кубика всегда можно сказать, один и тот же этот бык или другой.
- Но обратно кубик в быка провернуть нельзя?
- Да. Хеш - это ключевая штука для блокчейна. Блокчейн можно воспринимать как таблицу в экселе. И один дополнительный столбец - это хеш всех предыдущих строк. Если мы составим таблицу, у каждого эксель-файла будет хеш. И если мы захотим, чтобы эксель-файл превратился в блокчейн, в самый простой, то мы можем просто добавить новую строчку. Мы смотрим на все предыдущие блоки, берем от них хеш, и хеши всех предыдущих блоков хранятся в новом блоке. В каждом блоке есть информационная часть, и сбоку приписан один хеш от всех предыдущих блоков.
- Правильно ли я поняла, что даже если блокчейн хранится на серверах в одном месте, то переписать его невозможно?
- Возможно, если у других людей нет доступа. Но наш блокчейн выкладывали постоянно во время выборов на обсервер.мос.ру, и задним числом его подменить нельзя.
- Но можно переголосовать или проголосовать за несуществующих людей?
- Это к блокчейну не имеет отношения; выдачей бюллетеней занимается мос.ру.
- Илья, в электронное голосование в Москве записались без малого два миллиона. Правильно я понимаю, что вы оказались единственным наблюдателем в электронном УИКе, который что-то смыслил в программировании? Что если бы не вы, то мы бы ничего вот про это не знали: про сертификат безопасности ноды, который истек ровно в 8 вечера, про ФСБ? Неужели там других программистов не было?
- Там был еще один человек, который больше меня разбирался, но он был робок. Программисты вообще нелюдимые. Я только потом понял, что он настоящий наблюдатель. И независимый. Но ему было очень некомфортно.
- Почему вас было так мало? Не думали о возможности фальсификаций?
- Да. Не думали. Я бы вот еще какую важную вещь добавил. Каждый блок - ну, строчка в экселе - все выкладывалось онлайн в течение трех дней в зашифрованном виде. И была система с ключами шифрования. Ключ, с помощью которого можно зашифровать, сгенерировался в 7 утра, в пятницу, и торжественно разделился. В 8 вечера, в воскресенье, он торжественно соединился. В течение всех трех дней голосования бюллетени зашифровывались с помощью этого ключа. В 20.15, в воскресенье, это начали расшифровывать. Блок за блоком. Расшифровка - она длится довольно долго. И, соответственно, observer.mos.ru показывал, что вот мы расшифровали этот блок. И, напоминаю, около 9 я увидел на observer.mos.ru блок с результатами выборов в МГД, который не бился по суммам по 19-му и 37-му округам - там тоже не билась сумма, но там наблюдатель был технически несведущий.
Так вот, если вы зайдете на observer.mos.ru - на результаты выборов в Мосгордуму - и кликнете на последние блоки, то
вам покажут, что расшифровка последнего блока остановилась в 12:54 21 сентября, совсем недавно. Это нормально. Последние блоки он расшифровывал, и там был ноль, как и должно было быть.
А если вы зайдете на результаты выборов в Госдуму и кликните на последние блоки, то
вам покажут, что расшифровка закончилась в 21:18 19 сентября.
Этого не может быть.
Источник