Дистанционные электронные голосования: архитектура доверенной электоральной системы

В про­шлой нашей пуб­ли­ка­ции – тек­сте докла­да Алексея Щербакова «Уроки элек­трон­но­го голо­со­ва­ния в Московскую Городскую Думу 2019 года» на кон­фе­рен­ции AnalogBytes Conf 2020, про­хо­див­шей 5 мар­та – был разо­бран один из све­жих при­ме­ров про­ве­де­ния дистан­ци­он­но­го элек­трон­но­го голо­со­ва­ния (ДЭГ) и пока­за­но, поче­му осно­ва­ний дове­рять его резуль­та­та не было.

Материалы цик­ла:

  1. Алексей Щербаков — «Уроки элек­трон­но­го голо­со­ва­ния в Московскую Городскую Думу 2019 года»
  2. Олег Артамонов — «Дистанционные элек­трон­ные голо­со­ва­ния: архи­тек­ту­ра дове­рен­ной элек­то­раль­ной системы»
  3. Круглый стол «Нажми на кноп­ку: тео­рия и прак­ти­ка элек­трон­ных голосований»

Подчеркнём: то, что осно­ва­ний дове­рять систе­ме нет, не озна­ча­ет, что резуль­та­ты обя­за­тель­но фаль­си­фи­ци­ро­ва­лись. Это озна­ча­ет, что они мог­ли быть фальсифицированы.

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

Другой вопрос, сугу­бо тех­ни­че­ский — мож­но ли вооб­ще сде­лать ДЭГ устой­чи­вым к фаль­си­фи­ка­ци­ям в срав­ни­мой с «бумаж­ным» голо­со­ва­ни­ем степени.

«Из короб­ки» клас­си­че­ское бумаж­ное голо­со­ва­ние обес­пе­чи­ва­ет нам, как минимум:

  • тай­ну голо­со­ва­ния (раз­рыв меж­ду аутен­ти­фи­ка­ци­ей изби­ра­те­ля и фик­са­ци­ей его голоса);
  • аудит спис­ка изби­ра­те­лей (поимён­ный пере­чень проголосовавших);
  • аудит резуль­та­тов голо­со­ва­ния (воз­мож­ность пере­счё­та бюллетеней);
  • сокры­тие резуль­та­тов до окон­ча­ния голо­со­ва­ния (невоз­мож­ность опре­де­ле­ния исхо­да до окон­ча­ния голосования).

Давайте раз­би­рать­ся, мож­но ли это всё реа­ли­зо­вать в ДЭГ (ответ для нетер­пе­ли­вых: да).

Тайна голосования

При клас­си­че­ском ста­ро­ре­жим­ном голо­со­ва­нии тай­на голо­со­ва­ния обес­пе­чи­ва­ет­ся физи­че­ским раз­ры­вом меж­ду дву­мя места­ми – местом, где изби­ра­тель удо­сто­ве­ря­ет своё пра­во голо­со­вать, и местом, где он отда­ёт голос. В пер­вом месте — это сто­лик изби­ра­тель­ной комис­сии участ­ка – изби­ра­тель иден­ти­фи­ци­ру­ет­ся по пас­пор­ту и ему выда­ёт­ся ано­ни­ми­зи­ро­ван­ный бюл­ле­тень. Во вто­ром месте – урне для голо­со­ва­ния — сам факт нали­чия бюл­ле­те­ня явля­ет­ся под­твер­жде­ни­ем пра­ва на голо­со­ва­ние, лич­ность изби­ра­те­ля уже неваж­на и, соб­ствен­но, неизвестна.

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

Вместе с тем, прин­ци­пи­аль­ной необ­хо­ди­мо­сти стро­ить ДЭГ имен­но так нет ника­кой – кро­ме, разу­ме­ет­ся, логи­ки «нам так проще».

Вот уже три деся­ти­ле­тия спе­ци­а­ли­ста­ми по крип­то­гра­фии раз­ра­ба­ты­ва­ют­ся и ана­ли­зи­ру­ют­ся так назы­ва­е­мые «про­то­ко­лы голо­со­ва­ния», поз­во­ля­ю­щие реа­ли­зо­вать тай­ну голо­со­ва­ния «в железе».

Единственным кри­тич­ным тре­бо­ва­ни­ем к реа­ли­за­ции явля­ет­ся нали­чие двух сер­ве­ров, нахо­дя­щих­ся под управ­ле­ни­ем неза­ви­си­мых друг от дру­га сил (это могут быть, напри­мер, две фрак­ции или два коми­те­та внут­ри пар­тии, если речь о внут­ри­пар­тий­ной системе).

Сервер аутен­ти­фи­ка­ции поль­зо­ва­те­лей про­ве­ря­ет, может ли дан­ный поль­зо­ва­тель голо­со­вать, и если да – гене­ри­ру­ет две поло­вин­ки клю­ча. Одна поло­вин­ка отправ­ля­ет­ся на сер­вер учё­та голо­сов, вто­рая пере­да­ёт­ся изби­ра­те­лю на устрой­ство, с кото­ро­го он голосует.

В момент отда­чи голо­са этот голос под­пи­сы­ва­ет­ся клю­чом изби­ра­те­ля и отправ­ля­ет­ся на сер­вер голо­со­ва­ния, кото­рый све­ря­ет клю­чи и учи­ты­ва­ет голос. Сам факт нали­чия у изби­ра­те­ля его поло­вин­ки клю­ча явля­ет­ся под­твер­жде­ни­ем его пра­ва на голо­со­ва­ние; знать лич­ность изби­ра­те­ля сер­вер учё­та голо­сов не зна­ет и знать не может.

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

В слу­чае тай­но­го голо­со­ва­ния сер­вер учё­та голо­сов толь­ко под­твер­жда­ет сер­ве­ру аутен­ти­фи­ка­ции факт свер­шив­ше­го­ся голосования.

Важным нюан­сом в реа­ли­за­ции такой схе­мы явля­ет­ся учёт воз­мож­но­сти атак по кос­вен­ным дан­ным, в кото­рые могут вхо­дить отпе­ча­ток устрой­ства поль­зо­ва­те­ля, IP-адрес поль­зо­ва­те­ля и вре­мя голо­со­ва­ния. При обес­пе­че­нии неза­ви­си­мо­сти двух исполь­зу­е­мых сер­ве­ров здесь кри­тич­но лишь вре­мя голо­со­ва­ния – мож­но сопо­ста­вить вре­мя аутен­ти­фи­ка­ции поль­зо­ва­те­ля и вре­мя вне­се­ния в базу голо­са; поэто­му схе­ма вза­и­мо­дей­ствия сер­ве­ров и поль­зо­ва­те­лей долж­на преду­смат­ри­вать раз­ру­ше­ние этой свя­зи в явном виде, как мини­мум, через добав­ле­ние слу­чай­ной задерж­ки меж­ду аутен­ти­фи­ка­ци­ей и отправ­кой голо­са со сто­ро­ны устрой­ства, исполь­зу­е­мо­го поль­зо­ва­те­лем для голосования.

В осталь­ном же схе­ма с дву­мя неза­ви­си­мы­ми сер­ве­ра­ми – и толь­ко она! – поз­во­ля­ет реа­ли­зо­вать тай­ну голо­со­ва­ния в элек­трон­ной форме.

Схемы, в кото­рых исполь­зу­ет­ся еди­ный сер­вер, дове­рен­ны­ми в этом кон­тек­сте счи­тать­ся не могут по опре­де­ле­нию; все заяв­ле­ния их авто­ров об отсут­ствии реги­стра­ции имён изби­ра­те­лей в связ­ке с отдан­ны­ми ими голо­са­ми дер­жат­ся исклю­чи­тель­но на дове­рии к чисто­плот­но­сти и акку­рат­но­сти дан­ных авто­ров (и все мы пом­ним, что в IT-индустрии – тыся­чи при­ме­ров, когда автор сер­ви­са не имел в виду ниче­го пло­хо­го, про­сто забыл в релиз­ной сбор­ке отклю­чить отла­доч­ное логгирование).

Корректно реа­ли­зо­ван­ная схе­ма с неза­ви­си­мы­ми сер­ве­ра­ми обес­пе­чи­ва­ет тай­ну голо­со­ва­ния все­гда, если вла­дель­ца­ми обо­их сер­ве­ров не были созна­тель­но пред­при­ня­ты меры к её устранению.

Аутентификация пользователей

Это – самая про­стая часть систе­мы. В зави­си­мо­сти от целей и важ­но­сти голо­со­ва­ния, аутен­ти­фи­ка­ция может проводиться:

  • Парой логин-пароль или PIN-кодом по SMS (напри­мер, соцо­про­сы или реше­ние локаль­ных вопро­сов город­ско­го хозяйства)
  • По номе­ру парт­би­ле­та поль­зо­ва­те­ля, вклю­чая элек­трон­ный парт­би­лет на базе NFC/RFID (напри­мер, теку­щие внут­ри­пайр­тий­ные голосования)
  • По аутен­ти­фи­ка­ции в ЕСИА (внут­ри­пар­тий­ные прай­ме­риз, вне­пар­тий­ные голо­со­ва­ния, вклю­чая обще­го­су­дар­ствен­ные выбо­ры и референдумы)

(ЕСИА — Единая систе­ма иден­ти­фи­ка­ции и аутен­ти­фи­ка­ции — это систе­ма авто­ри­за­ции в «Госуслугах»; пар­ти­ям недав­но раз­ре­ши­ли исполь­зо­вать её для прай­ме­риз и сбо­ра подписей)

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

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

Аудит хода голосования

Одним из спо­со­бов фаль­си­фи­ка­ции резуль­та­тов голо­со­ва­ния явля­ют­ся вбро­сы «лиш­них» бюл­ле­те­ней и так назы­ва­е­мые «кару­се­ли».

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

Вместе с тем, даже при очень высо­кой надёж­но­сти систе­мы аутен­ти­фи­ка­ции поль­зо­ва­те­лей вла­дель­цы сер­ве­ра аутен­ти­фи­ка­ции могут начать гене­ри­ро­вать «вир­ту­а­лов», выда­вая им клю­чи и отправ­ляя их на сер­вер учё­та голо­сов для голо­со­ва­ния за нуж­ный вла­дель­цам этих сер­ве­ров пункт.

Предотвратить это мож­но несколь­ки­ми способами:

  • выгруз­кой с сер­ве­ра аутен­ти­фи­ка­ции поль­зо­ва­те­лей поимён­но­го спис­ка заре­ги­стри­ро­вав­ших­ся и про­го­ло­со­вав­ших изби­ра­те­лей, ана­ло­гич­но­го бумаж­ным спис­кам изби­ра­тель­ной комис­сии (ИК), на устрой­ства наблю­да­те­лей и чле­нов ИК;
  • ана­ли­зом со сто­ро­ны сер­ве­ра учё­та голо­сов ано­ма­лий в пове­де­нии поль­зо­ва­те­лей (боль­шое чис­ло поль­зо­ва­те­лей с одно­тип­ных устройств, оди­на­ко­вых IP-адресов, ненор­маль­ное рас­пре­де­ле­ние поль­зо­ва­те­лей по вре­ме­ни голосования);
  • отсут­стви­ем воз­мож­но­сти для наблю­да­те­лей или вла­дель­цев сер­ве­ра аутен­ти­фи­ка­ции узнать теку­щее рас­пре­де­ле­ние голо­сов до окон­ча­ния голосования.

Здесь мы впер­вые стал­ки­ва­ем­ся с поня­ти­ем «наблю­да­тель» — на дистан­ци­он­ных голо­со­ва­ни­ях наблю­да­те­ли так­же нуж­ны, и нуж­ны с той же целью, что на и голо­со­ва­ни­ях бумаж­ных. Однако, в дан­ном слу­чае они кон­тро­ли­ру­ют про­ис­хо­дя­щее не очно, а по выгруз­ке дан­ных на их устрой­ства с сер­ве­ров аутен­ти­фи­ка­ции и учё­та голосов.

Аудит результатов голосования

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

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

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

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

В этой же систе­ме может решать­ся и зада­ча недо­пу­ще­ния под­ме­ны голо­сов реаль­ных поль­зо­ва­те­лей — воз­мож­на реа­ли­за­ция так назы­ва­е­мой ауди­ру­е­мой систе­мы голо­со­ва­ния, в кото­рой поль­зо­ва­тель может, исполь­зую инди­ви­ду­аль­ный крип­то­гра­фи­че­ский ключ, про­ве­рить, за кого был засчи­тан его голос, при этом не рас­кры­вая свою лич­ность и не имея воз­мож­но­сти про­ве­рить голо­са дру­гих изби­ра­те­лей. Подчеркнём, что во мно­гих ста­тьях такой про­вер­кой воз­мож­но­сти ауди­та исчер­пы­ва­ют­ся – это невер­но, т.к. лич­ная про­вер­ка не исклю­ча­ет воз­мож­но­сти вбро­са «мёрт­вых душ» или под­ме­ны ито­го­вых резуль­та­тов.

Голосование под давлением

Типичной про­бле­мой дистан­ци­он­ных, да и очных голо­со­ва­ний явля­ет­ся голо­со­ва­ние под дав­ле­ни­ем – в ситу­а­ции, когда руко­во­ди­тель (напри­мер, дирек­тор пред­при­я­тия) пред­пи­сы­ва­ет сотруд­ни­кам голо­со­вать за кон­крет­но­го кан­ди­да­та, отчи­ты­ва­ясь фото­гра­фи­я­ми бюллетеней.

Что инте­рес­но, в слу­чае с дистан­ци­он­ны­ми голо­со­ва­ни­я­ми эта угро­за может быть ниве­ли­ро­ва­на воз­мож­но­стью изме­не­ния голо­са в тече­ние все­го хода голо­со­ва­ния. То есть, поль­зу­ясь выдан­ным ему клю­чом, изби­ра­тель может про­го­ло­со­вать несколь­ко раз — и учтён будет толь­ко послед­ний отдан­ный ему голос, что поз­во­лит про­де­мон­стри­ро­вать началь­ни­ку «пра­виль­ное» голо­со­ва­ние, а далее отдать голос уже за реаль­но жела­е­мо­го кандидата.

Кроме того, пост­фак­тум­ное обна­ру­же­ние мас­со­вых пере­го­ло­со­ва­ний (база дан­ных фик­си­ру­ет все голо­са, послед­ний отдан­ный учи­ты­ва­ет­ся уже при под­счё­те) может ука­зы­вать на нали­чие явной про­бле­мы и повод для нача­ла расследования.

Заключение

Таким обра­зом, вопре­ки заяв­ле­ни­ям неко­то­рых экс­пер­тов, поли­ти­ков и поли­то­ло­гов, постро­е­ние дове­рен­ной и надёж­ной систе­мы дистан­ци­он­но­го элек­трон­но­го голо­со­ва­ния воз­мож­но.

Такая систе­ма будет обес­пе­чи­вать уро­вень защи­ты от фаль­си­фи­ка­ций не ниже, а в неко­то­рых слу­ча­ях выше, чем клас­си­че­ское очное тай­ное голо­со­ва­ние, при этом суще­ствен­но сни­зит слож­ность и сто­и­мость орга­ни­за­ции воле­изъ­яв­ле­ния граж­дан (жите­лей стра­ны, горо­да, чле­нов поли­ти­че­ских пар­тий и обще­ствен­ных орга­ни­за­ций, etc.). Что осо­бен­но важ­но, дове­рие к систе­ме обес­пе­чи­ва­ет­ся в зна­чи­тель­ной сте­пе­ни тех­но­ло­ги­че­ски­ми реше­ни­я­ми, а не дове­ри­ем к её эксплуатантам.

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

Распределённый харак­тер систе­мы (неза­ви­си­мая рабо­та двух сер­ве­ров, устройств наблю­да­те­лей и устройств поль­зо­ва­те­лей) обес­пе­чи­ва­ет защи­ту от таких прим­тив­ных и типо­вых при­ё­мов, как под­ме­на кода или запуск сто­рон­них при­ло­же­ний, моди­фи­ци­ру­ю­щих рабо­ту систе­мы, уже после про­вер­ки её экс­пер­та­ми — попыт­ки вме­ша­тель­ства лишь в один из ком­по­нен­тов систе­мы могут нару­шить его рабо­ту, но не могут неза­мет­но для экплу­а­тан­тов осталь­ных ком­по­нен­тов систе­мы фаль­си­фи­ци­ро­вать данные.

При модуль­ном постро­е­нии систе­мы она поз­во­лит про­во­дить голо­со­ва­ния с раз­ны­ми спо­со­ба­ми аутен­ти­фи­ка­ции, тай­ные и откры­тые, с раз­ным уров­нем дове­рия – в зави­си­мо­сти от реша­е­мых вопросов.

P.S. Будут ли такие систе­мы кем-либо внед­рять­ся на прак­ти­ке – вопрос откры­тый. Но тех­но­ло­ги­че­ская воз­мож­ность их раз­ра­бот­ки, внед­ре­ния и исполь­зо­ва­ния есть.

Автор тек­ста — Олег Артамонов, руко­во­ди­тель служ­бы научно-технической экс­пер­ти­зы Партии пря­мой демократии.

Дополнительные мате­ри­а­лы:

Подписаться на рассылку новостей
Партии прямой демократии

Directed by Pixel Imperfect Studio. Produced by Git Force Programming LLC.