Второй раз за месяц найдена уязвимость в московской системе электронного голосования

    Две недели назад на Хабре писали о найденной уязвимости в системе электронного голосования на выборах в Мосгордуму. Разработчики обещали ее устранить, но как выяснилось это породило новую уязвимость.

    В опубликованной на сайте arxiv.org заметке Александра Головнева указывается, что хотя разработчики устранили найденную Пьерриком Годри уязвимость в реализации схемы Эль-Гамаля, они вновь реализовали ее неправильно, что привело к возможности подсчета голосов в любой момент работы системы. Поскольку у нас в стране публикация результатов голосования запрещена до окончания выборов это, видимо, является серьезной уязвимостью.

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

    Под спойлером немного математики
    Пусть $p=2q+1$ и $q$ простые числа длины порядка 1024 бита. $Q_p$ — группа квадратичных вычетов по модулю $p$, $ |Q_p| = (p − 1)/2 = q$. Для шифрования система выбирает $g \in Q_p$, $pk \in Q_p$ — открытый и $sk \in {1, . . . , q}$ — секретный ключи ($pk=g^{sk}$). Результат шифрования голоса $m$ имеет вид пары$(g^r,pk^rm)$, $r$ -случайное число.

    Если $m$ квадратичный вычет, то при любом $r$ второй компонент шифротекста тоже квадратичный вычет (аналогично — если не квадратичный вычет). Это дает возможность отличать различные голоса с помощью критерия Эйлера. Для этого нам достаточно возвести шифротекст в степень $(p-1)/2$ и проверить равен ли результат единице (в этом случае — это квадратичный вычет).

    Например, номера кандидатов 1, 3 и 4 — квадратичные вычеты, а 2- нет. То есть, мы можем анализируя блокчейн по мере его обновления подсчитывать количество голосов за кандидата 2.

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


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

    Similar posts

    AdBlock has stolen the banner, but banners are not teeth — they will be back

    More
    Ads

    Comments 24

      0
      Складывается ощущение, что систему изначально планировали дырявой, и вся эта суета вокруг нее за НЕДЕЛЮ до голосования только для отвода глаз. А потом скажут, мол не успели, дайте нам еще немного времени и еще МНОГО ДЕНЕГ!

      — Пилите, Шура, пилите!
        +8

        Ну или просто недостаточная квалификация разработчиков, без всяких теорий заговора.

          +2
          Поддержу! Скорее всего дали обычным разрабам без опыта работы с криптографией. Отсюда специфичные ошибки. Вспомните историю первых «крипто-вымогателей», в которых опытные криптографы быстро находили уязвимости и подбирали ключ.
            0
            Ни что не ново под луной. В России даже поговорка про это есть «Простота, хуже воровства»
            0

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

            +4
            Система скорее всего спроектирована с возможностью подтасовки.
              +3
              Ну а если не получится, то по тв и в сми покажут какие надо цифры, в первый раз что ли.
                –2
                Почему вы так считаете?
                  +1
                  По качану, забыли телеэфир с 146%?

                  image
                    –1
                    Смешно… но не показатель.
                    В Молдове к примеру во время выборов взломали сайт ЦИК, и установили каждому кандидату по 100%, 200%, 1000%. И вышел глава ЦИКа сказал что официально имеют силу только протоколы на бумаге, а циферки на сайте это только предварительное информирование
                      0
                      Вот мы и обсуждаем электронное голосование, которые можно подделать и результаты уже нельзя проверить пересчетом бумажных биллютеней.
                      0
                      Не забыл, но мне кажется, что комментатор ищет злой умысел там где имеет место человеческая глупость.
                      Система скорее всего спроектирована с возможностью подтасовки. — в то время как статья об ошибках в реализации алгоритмов защиты. Зачем думать об алгоритмах защиты и прочем, если цель устанавливать цифры из консоли?
                        0

                        Чутка не то поставили в Group By — забыли "вычленить" в % соотношении недоверенных при сборе :)

                    +7

                    Дать Эйлеру двушку, чтобы не высовывался тут со своими вычетами.

                      –2
                      Можно сколько угодно злословить о неграмотности чиновников и привязывать сюда политику, но эта ситуация, как и многие другие с отечественным ПО, показывают реальный уровень отечественных разработчиков не способных сделать что-либо качественно и до конца. Гн милтря на постоянные победы на олимпиадах к сожалению большинство кодеров (и присутствующих тут) способны только на едкие замечания и пустые беспредметные споры.
                        +8
                        С разработчиками у нас все ок, у нас с заказчиками проблема. В сторону профессиональных разрабов практически не смотрят, дают студентоте за дошираки делать, а остальное себе в карман.
                          +1
                          Возможно что уже и не очень ок, все-таки не первый год разработчики из РФ массово уезжают. Понятно что какое-то количество профессионалов осталось, и оно наверняка заметное, но вполне возможно что вот здесь уже не повезло найти хоть кого-то за вменяемые деньги. Добавьте к эмиграции достаточно распространенную неприязнь к власти — и вариант когда нужного уровня разработчиков согласных на работу просто нет уже не кажется такой уж нереальной.
                            0
                            Так это же работа, оплачиваемая из госбюджета, соответственно проводится тендер, и если кто-то предлагает исполнение за порцию доширака, то он его и выигрывает (если, конечно, заранее не назначен нужный безальтернативный победитель).
                          +4
                          У меня у одного формулы не отображаются ни в Firefox 60.8.0ESR, ни в Chromium 73.0.3683.75?
                            0
                            #никтонечитаетформулы
                              0

                              Не у одного. Зато заголовок спойлера радует: "Под спойлером немного математики". Открываешь – а её там действительно немного. 1024, 1, 3, 4, 2 и квадратичный вычет. Вот и вся математика. :)


                              Картинка

                              image

                                0
                                Аналогично Firefox 68.0.2
                                  0
                                  Почему-то у картинок с формулами стоит css visibility: hidden;
                                  +4
                                  Все эти уязвимости несущественны, ибо главная уязвимость находится вне софта — его заказчики.

                                  Only users with full accounts can post comments. Log in, please.