Андрей писал(а):
povischuk писал(а):
Такой вот вопрос:
При подключении к этой сети, голосующий - он имеет свой постоянный адрес? Или временный?
Либо подключается временно к какому-то компьютеру-шлюзу, который находится где-то?
Иначе говоря, машина, с которой голосует голосующий, - она принадлежит ему постоянно, или нет?
Нет. Он может работать с системой из любого места имея в наличии свой персональный GPG ключ.
povischuk писал(а):
Можно ли на ней хранить какую-то тайную информацию (например, одноразовый код голосования), никому ее не передавая вообще?
Конечно. Почему нет?
povischuk писал(а):
Можно ли хранить ее в файле на жестком диске - или только в оперативной памяти?
Если на жестком и машина принадлежит ему постоянно (то есть, он выходит в сеть прямо со своего личного компьютера, получая для него адрес) - то насколько велик риск, что эту информацию может украсть какой-нибудь троян?
Во-первых, на жестком диске будет храниться только информация, доступная снаружи. Т.е. если к ней получит доступ троян - ничего плохого в этом не будет. Если нужно будет хранить какую-то информацию, воровство которой критично, то такая информация, естественно, будет шифроваться.
А тогда, зачем такие сложности в методе Юрия? Какая-то передача публичных ключей, какое-то воздействие, на несознательных товарищей
, выговор по партийной линии?
Смотрите:
Вот идет процесс голосования.
Голосующий включает компьютер, или другой прибор, у себя дома, или у своего знакомого, или в электричке, либо в другом месте, которое он знает и доверяет, что там нет камер.
Ставит приложение если оно еще не стоит.
Вводит свою цифровую подпись.
Выходит в интернет.
Подсоединяется к пиринговой сети. Ищет тех, кто в данный момент доступен и подключен.
Выбирает свой вариант и голосует.
Программа спрашивает его: хочет ли он воспользоваться правом верификации?
Такой вопрос обязателен, согласно нашей новой Конституции. Если кто не в курсе - ее положение гласит о том, что человек всегда имеет право выбирать, что ему важней: верификация или анонимность.
Даже если риск разоблачения минимален и все зашифровано - все равно, он должен иметь право отказаться даже от ничтожного, минимального риска. Принуждать его к верификации нельзя.
Если он отвечает "да, хочу", - то программа генерирует уникальный код для этого. И высвечивает его на мониторе. А голосующий аккуратно переписывает его ручкой на бумажку, ну или фотографирует на фотоаппарат. При нажатии кнопки "убрать код" - код исчезает с монитора.
НЕ записывается на жесткий диск. Но хранится в оперативной памяти, пока компьютер не выключен из розетки и приложение работает.
Дальше эта пара: код и голос (обычные, незашифрованные никак) отправляются в путешествие по разным каналам - как здесь и описано, в методе Юрия.
Если же пользователь не хочет верификацию, то голос отправляется в путешествие без кода, с пометкой "null" на его месте.
По другим каналам идет ЭЦП голосовавшего - свидетельство о том, что он принял участие в конкретном голосовании. Тоже обычная, незашифрованная.
А на жестком диске существуют 2 файла, посвященные голосованию. Туда записываются данные, которые пришли на эту машину с других машин. В одном из них собирается список цифровых подписей - принявших участие в голосовании. В другом - обычный, незашифрованный список голосов, который будет выглядеть так:
3fblkei8-72dfblk0efj-kadkk Зюганов
g79183-eebaulj9lkj-38lkbb Явлинский
97boisd-ebjskbe8jv-8bsalq Немцов
za3bzila-azbouzlkeb-zja/el Навальный
null Путин
null Жириновский
и т.д.
Как только на машину нашего пользователя пришел его "родной" голос - он тут же появляется на жестком диске в файле, в таблице. И голосующий тут же убеждается, что его голос учтен.
Если это произошло пока компьютер не выключен и программа работает - то тогда программа может произвести верификацию за него. Ведь его личный код хранится пока что в оперативной памяти.
Но если он выключил компьютер и ушел спать, то на следующий день он может произвести верификацию таким образом: ввести свой код, который записал ручкой или сфотографировал или запомнил, и посмотреть, существует ли он в таблице, которая собралась на данный момент у него в файле. Существует, правда, проблема кей-логгеров - но она вроде частично решена экранной клавиатурой. Либо, если он этого боится, можно просто упорядочить таблицу по кодам по алфавиту, и найти свой - в общем, это не проблема.
Соответственно, когда на машину пользователя приходит его родная цифровая подпись - он убеждается, что его участие в голосовании зафиксировано.
Если число голосов устойчиво превышает число ЭЦП участников - то значит, имеет место вброс со стороны пакетов с голосами. И с этим нужно срочно разбираться.