Про электронное голосование и одну из поправок. - Учил ли Путин криптографию в КГБ?

То, что нам сегодня предлагают в качестве электронного голосования это "черный ящик" и фикция с очевидными возможностями фальсификации. ЦИК нас убеждает, что у них есть ключ для расшифровки бюллетеней, который распределяется между организаторами голосования и без него нельзя расшифровать бюллетень. Но мы не можем это проверить, нам что на слово верить положено? - Учитывая, что можно все сделать проще и прозрачней. Половина из тех технических особенностей, которые упоминаются, как защита, происходит на стороне сервера и мы не можем их проверить никак, а для проверки другой половины нужно вычитывать код javascript, который зашит в их веб-приложении. А в итоге даже это не имеет смысла, поскольку каждому можно разную страницу подсовывать, определив кто именно зашел на сайт после прохождения авторизации. Серьезная уязвимость протокола также в том, что можно сфальсифицировать (инвертировать) выбор голосующего до момента шифрования и до момента помещения его в блокчейн цепочку. Блокчейн защищает уже записанные результаты от изменений, но каждый новый блок записывается единолично веб-приложением госуслуг (условным ЦИКом) и может быть записан реальным или сфальсифицированным/инвертированным к реальному. Тем более, что первичные документы, на основе которых записывается транзакция, т.е. бюллетени не доступны гражданам и сообществу для проверки, поскольку у нас анонимное голосование по закону. Кстати, анонимность и тайну голосования действующий протокол тоже не обеспечивает, потому как все происходит после авторизации, по крайней мере, мы должны опять-таки этому верить на слово, а возможности надежно в этом убедиться нет. Чтобы устранить существующие уязвимости протокола и достичь анонимности голосования, нужно разделить информационный ресурс наблюдателей для подсчета электронных голосов и ресурс идентификации голосующих (портал госуслуг). Понятно, что нужно использовать эл. подписи (далее ЭП), иначе передаваемое сообщение можно подменить в любой момент. Подписи граждан использовать нельзя, поскольку у нас голосование анонимное. Соответственно, нужно использовать ЭП УИК(ЦИК). После авторизации гражданина на портале госуслуг, робот будет подписывать зашифрованные голосующим бюллетени и отдавать их обратно. При этом шифрование бюллетеня гражданином проводится офлайн методами: либо с помощью встроенного функционала в ОС либо с использованием опен сорсного ПО, т.е. до момента захода на ресурс госуслуг. Поскольку сайту госуслуг доверять нельзя - это "черный ящик". И это, кстати, не вопрос доверия, а вопрос технический и принципиальный. Если можно выстроить протокол таким образом, чтобы обеспечить прозрачность, неотрекаемость, невозможность сфальсифицировать выбор - значит, так и должно быть, любые другие подходы дают право на обоснованные подозрения и право не считать такое электронное голосование легитимным. При этом основой всего протокола может стать протокол, так называемых "полностью слепых подписей". Пример его работы:
Боб - государственный нотариус. Алиса хочет, чтобы он подписал документ, не имея ни малейшего представления о его содержании. Боб не отвечает за содержание документа, он только заверяет, что нотариально его засвидетельствовал. Они собираются действовать по следующему плану:
(1) Алиса берет документ и умножает его на случайное число. Это случайное число называется маскирующим множителем
(2) Алиса посылает замаскированный документ Бобу
(3) Боб подписывает замаскированный документ
(4) Алиса удаляет маскирующий множитель, убеждаясь, что был подписан замаскированный оригинальный документ
В нашем случае, в качестве Боба у нас выступает ЦИК/УИК и портал госуслуг в одном лице:
(1) голосующий генерирует ключ шифрования (офлайн методами), шифрует сообщение(свой бюллетень), в котором указано за кого он голосует
(2) после идет на портал госуслуг, проходит идентификацию и отправляет это сообщение (свой зашифрованный бюллетень, который госуслуги расшифровать не могут, поскольку ключа у них нет), в ответ получает шифрованный бюллетень подписанный ЭП УИКа/ЦИКа
(3) Идет на ресурс наблюдателей. Анонимно, без прохождения идентификации, отправляет зашифрованный бюллетень с подписью УИК/ЦИК и передает ключ шифрования, чтобы наблюдатели могли расшифровать бюллетень и учесть голос. Ресурс наблюдателей должен работать в лучших традициях анонимности - без cookies и javaScript. Робот принимает шифрованные файлы бюллетеней с подписями и ключами шифрования, проверяет подписи на корректность, расшифровывает, учитывает голос и публикует на портале в соответствии с пунктом (4).
(4) На ресурсе наблюдателей публикуется csv/tsv файл, подписанный ЭП наблюдателей, содержащий все зашифрованные бюллетени с подписями УИК/ЦИК, их хэши, ключи шифрования и голос полученный в результате расшифровки бюллетеня. Таким образом, после голосования каждый электронно голосовавший сможет найти свой бюллетень(по хэшу или ключу шифрования) в опубликованном файле и увидеть как зачтен его голос. При этом будет соблюдена и анонимность, никто не будет знать как проголосовали другие. Опять же, скачав итоговый csv/tsv файл (итоговый протокол) внутренними средствами ОС можно будет перепроверить верность подведения итогов электронного голосования. Все это сможет сделать любой проголосовавший на обычном домашнем ПК, потому как проверка и подведения итогов не потребует какого-то заоблачного процессорного времени или дисковой производительности системы.
Вообще, тема электронного голосования, давно и глубоко разработана математиками и криптографами, разобраны алгоритмы, придуманы решения и протоколы. Есть и более сложные и защищенные протоколы, чем тот, что я привел. Но в любом случае это уже хорошо изученный, проработанный еще где-то в 70-80х материал. 50 лет прошло, а мы и близко не подошли к его внедрению. Повторюсь, то что нам сегодня предлагают - это фикция, затуманивание разума граждан, "черный ящик" и несоответствие квалификации занимаемым должностям.
Теперь немного про поправку о защите исторической правды. Можно напихать лозунгов в Конституцию, но важнее будет техническое решение предложить и обеспечить его внедрение - каким-таким образом вы собираетесь это исполнить. И пока у инициаторов туго с идеями. Хотя есть технологии, которые можно поставить на службу в данном вопросе. Все та же электронная подпись. Ей можно подписывать сканы исторических документов, видео свидетельства, автобиографии, интервью очевидцев, официальные сообщения ведомств и прочее. Поскольку технологии позволяют легко производить и тиражировать фейковый контент, то скоро фальсификаций истории будет океан. Подписывать документы должны живые свидетели и очевидцы событий, если это невозможно, то их потомки. Есть, правда, несколько проблем для таких документов, которые придется решить. Не получится использовать централизованно созданные государством (или как у нас сейчас аккредитованные) удостоверяющие центры (далее УЦ), поскольку в условиях, когда речь идет о защите от фальсификаций истории другими государствами, доверия исключительно национальным УЦ нет. Другое дело децентрализованная модель, которая не будет иметь никаких международных границ, так называемые, сети доверия, когда не нужны центры сертификации, а люди генерируют ключи и обмениваются открытыми. Подписывают открытые ключи друг друга, создавая связанное сообщество пользователей.
Например, Алиса может физически передать Бобу свой открытый ключ, поскольку лично его знает. Боб оставляет у себя подписанный собственным ключом открытый ключ Алисы, а копию возвращает. Теперь у Алисы есть свой открытый ключ подписанный Бобом. Кэрол, у которой есть ключ Боба, и которая доверяет Бобу заверять ключи других людей, находит в интернете файл подписанный ключом Алисы, проверяет подпись Боба под ключом Алисы. Таким образом, Боб знакомит Алису и Кэрол, а у Кэрол появляется возможность, подтвердить источник происхождения файла.
Пользователи сами решают кому верить, а кому нет. Для каждого ключа они хранят 2 поля: доверие к подписи (насколько пользователь верит тому, кто подписал открытые ключи других пользователей) и доверие к владельцу ключа. Алиса может выбрать устраивающую её степень паранойи, уровень доверия устанавливается вручную. Алиса не обязана автоматически доверять ключам других людей только потому, что они подписаны ключом, который она считает правильным. И в тоже время двух частично доверяемых подписей может быть достаточно для доверия к неизвестному ключу. Задача системы сети доверия предупредить пользователя, но ограничения можно преодолеть и довериться неизвестному ключу подписавшему файл. Можно на основе сетей доверия и предварительное голосование устраивать для изучения общественного мнения и сравнения впоследствии с результатами электронного голосование. Также можно проводить и социологические опросы, это на порядки более надежный уровень верификации результатов, чем то что нам обычно предлагают, что как обычно является "черным ящиком" и не защищено никаким образом от фальсификации. У сетей доверия есть еще одно преимущество, можно выпускать ключи под именем или ником, необязательно предоставлять полные ФИО и прочие данные(в конечном итоге все строится на личном знакомстве пользователей), стало быть не будет утечки и сбора персональных данных. Если попадается незнакомый ключ, который подписан лицом входящим в обозримый круг своей сети доверия, то система может построить древообразную модель, что даст больше ясности насколько можно доверять этому неизвестному ключу.

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

0
6 комментариев
Написать комментарий...
Виталий Корольков
что можно все сделать проще и прозрачней

Раз можно - делайте. Никто не против.

Поскольку сайту госуслуг доверять нельзя - это черный ящик
Ответить
Развернуть ветку
Maxim Vladimirovich
Автор

Виталий, это все что можете сказать? По существу то будет комментарий? Или квалификации не хватает понять? Что не устраивает в понятии "черный ящик".

Ответить
Развернуть ветку
Виталий Корольков

Сообщение удалено

Ответить
Развернуть ветку
Serge Sokolov

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

Ответить
Развернуть ветку
Миша Магадан

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

Ответить
Развернуть ветку
Maxim Vladimirovich
Автор

в книгах по криптографии можете на эту тему много найти, в частности, например, в "Прикладная криптография 2-е издание. Протоколы, алгоритмы и исходные тексты на языке С.", Брюс Шнайер.

Ответить
Развернуть ветку
3 комментария
Раскрывать всегда