Проект "Свободные голосования" http://gplvote.andyhost.ru/forum/ |
|
Текущий вариант системы по моему разумению http://gplvote.andyhost.ru/forum/viewtopic.php?f=21&t=59 |
Страница 1 из 5 |
Автор: | Андрей [ 06 июл 2011, 11:14 ] |
Заголовок сообщения: | Текущий вариант системы по моему разумению |
Решил здесь описать систему так, как я ее понимаю на текущий момент... Во-первых, хочу все-таки отметить что сначала лучше создать базовый вариант соответствующий "прямой демократии". Без делегирования, без матричного голоса. Этот вариант будет основной, на которую можно будет уже навешивать и различные варианты делегирования и матричный голос и матрицы специализаций у голосований. Зато это будет работающая система, которую можно создать относительно быстро. Основа: прямая демократия Способы работы с ЭЦП и шифрованием Работа с ЭЦП и шифрованием будет производиться через специальную программу-агент, установленную на компьютере пользователя. При необходимости произвести какую-либо из операций по созданию подписи, шифрованию или расшифровке, на странице с сервера размещается специальный JavaScript код (AJAX), обращающийся по адресу 127.0.0.1 на соответствующий порт программы. В программу передается команда и данные, из программы - результат операции. В зависимости от настройки программы, она может спрашивать у пользователя подтверждение на некоторое или на все действия, запрашивать пароль и т.д. Регистрация и авторизация Основой системы авторизации будет персональная ЭЦП пользователя. При регистрации пользователь использует свою ЭЦП (токен, смарт-карту и т.д.) для того что-бы передать в систему сертификат ЭЦП и открытые ключи. При этом сертификат ЭЦП должен быть подписан одним из доверенных центров. Корневые сертификаты таких центров будут заранее внесены в систему. При необходимости авторизации, страница через JS код будет опрашивать программу работы с ЭЦП командой подписи каких-то данных (например "логин <дата>, <время>"). На основании этого будет определяться кто именно из пользователей заходит в систему. Субъекты голосований Все голосования будут производится в контексте субъектов голосования. Создать субъект голосования может любой пользователь. Возможно, что имеет смысл сделать некую активацию таких субъектов что-бы не создавались всякие хулиганские субъекты голосования. У субъекта голосования будут следующие свойства: - название; - идентификатор; - фильтр голосующих (географический принцип или членство); - ссылка на URL с сайтом данного субъекта; - список пользователей, составляющих совет экспертов (в начале - только создавший субъект голосования. До выбора совета экспертов он занимается техническими вопросами); - список голосований по выбору совета экспертов; Голосование Голосование в контексте субъекта голосования представляет собой набор документов и/или вопрос голосования и варианты выбора ответа. Голосование, в процессе работы над ним, несколько раз меняет свой статус: - "Инициировано советом" - такой статус у него сразу после создания; - "Инициировано голосующими" - статус после инициации голосования кем-то из голосующих. Проводится обсуждение и уточнение текстов голосования; - "Выдвижение голосующими" - процедура голосования, на которой простым большинством голосов данное голосование отправляется в совет экспертов; - "Подготовка и обсуждение" - голосование обсуждается всеми голосующими. Уточняются тексты, обсуждается предмет голосования; - "Установка параметров голосования" - обсуждение в совете типа голосования, срока поведения, количества голосов для принятия, кворум для данного голосования; - "Запущено" - после окончания уточнения текстов, обсуждений голосование запускается. После этого проводится непосредственно голосование. - "Завершено" - завершенное голосование; - "Остановлено" - голосование, остановленное советом по каким-либо причинам; Вывод результатов голосования Результат открытого голосования выводится в виде: "ФИО" - "Выбранный вариант" - "Персональная подпись выбора" Результат тайоного голосования выводится в виде двух списков. Список голосов: "Одноразовый код" - "Выбранный вариант" Список голосовавших: "ФИО" - "Подпись пользователя о том что он участвовал в голосовании" Процедура тайного голосования 1. Пользователь генерирует своей программой-агентом одноразовый идентификатор. В систему он передается в открытом виде для добавления в список голосов. 2. Пользователь генерирует с помощью ЭЦП расписку в том что принял участие в голосовании. 3. Пользователь выбирает вариант ответа и отсылает результаты голосования. 4. Пользователь размещает на странице личного кабинета одноразовый идентификатор (с введением случайного элемента в шифруемые данные) с идентификатором голосования и выбранным результатом в подписанном И зашифрованном публичным ключем пользователя виде. Таким образом мы получим что в результатах голосования хранится одноразовый код пользователя, но информация, связывающая его голос с ним хранится зашифрованной его персональным ключем. И расшифровать ее может только данный пользователь. Таким образом, пользователь всегда может проверить результаты своего голосования. |
Автор: | Андрей [ 06 июл 2011, 11:19 ] |
Заголовок сообщения: | Re: Текущий вариант системы по моему разумению |
Вообще, остается вопрос о том, что получится если пользователь теряет свой ключ, например, из-за выхода из строя его носителя. Если при этом теряется и секретный ключ, которым он может расшифровать результаты своих голосований - это означает что после этого никакой связи между пользователем и ранними результатами его голосований не будет. Как возможный вариант можно использовать для хранения таких данных локальную программу-агент (и даже не для хранения результатов голосования, а просто для хранения списка всех, когда-либо, сгенерированных одноразовых кодов). Однако, даже если не использовать этот вариант, я считаю, не будет ничего страшного если пользователь не сможет проверить свои результаты каких-то давних голосований. Т.к. обычно результаты будут проверяться сразу после окончания голосования. |
Автор: | ameten [ 06 июл 2011, 21:48 ] |
Заголовок сообщения: | Re: Текущий вариант системы по моему разумению |
Отлично. Теперь я буду критиковать Андрей писал(а): 1. Пользователь генерирует своей программой-агентом одноразовый идентификатор. В систему он передается в открытом виде для добавления в список голосов. Надо указать, что если такой одноразовый идентификатор уже присутстует в системе, то программа-агент выпускает другой. И так до тех пор, пока этот одноразовый идентификатор не будет уникальным в системе. Андрей писал(а): 4. Пользователь размещает на странице личного кабинета одноразовый идентификатор (с введением случайного элемента в шифруемые данные) в подписанном И зашифрованном публичным ключем пользователя виде. Мне не очень понятно, что значит "на странице личного кабинета". Данные хранятся либо на сервере, либо на компьютере пользователя. (По-моему, надо хранить на сервере. Тогда голосовать можно с любого устройства.) Вопрос. Если в списке голосов выбор пользователя изменен, как пользователь сможет доказать, что он проголосовал определенным образом? В моей схеме пользователь расшифровывает Специальное Поле, где указан его выбор. |
Автор: | Андрей [ 07 июл 2011, 09:50 ] |
Заголовок сообщения: | Re: Текущий вариант системы по моему разумению |
ameten писал(а): Отлично. Теперь я буду критиковать Андрей писал(а): 1. Пользователь генерирует своей программой-агентом одноразовый идентификатор. В систему он передается в открытом виде для добавления в список голосов. Надо указать, что если такой одноразовый идентификатор уже присутстует в системе, то программа-агент выпускает другой. И так до тех пор, пока этот одноразовый идентификатор не будет уникальным в системе. Естественно. ameten писал(а): Андрей писал(а): 4. Пользователь размещает на странице личного кабинета одноразовый идентификатор (с введением случайного элемента в шифруемые данные) в подписанном И зашифрованном публичным ключем пользователя виде. Мне не очень понятно, что значит "на странице личного кабинета". Данные хранятся либо на сервере, либо на компьютере пользователя. (По-моему, надо хранить на сервере. Тогда голосовать можно с любого устройства.) Вопрос. Если в списке голосов выбор пользователя изменен, как пользователь сможет доказать, что он проголосовал определенным образом? В моей схеме пользователь расшифровывает Специальное Поле, где указан его выбор. Ну, тоже не проблема. Просто пользователь вместе со своим кодом в личном кабинете в зашифрованном виде будет хранить идентификатор голосования и свой голос (поправил текст с учетом этого замечания). |
Автор: | ameten [ 07 июл 2011, 19:56 ] |
Заголовок сообщения: | Re: Текущий вариант системы по моему разумению |
Андрей, что означают слова "на странице личного кабинета"? Мне не понятно. |
Автор: | Андрей [ 07 июл 2011, 21:24 ] |
Заголовок сообщения: | Re: Текущий вариант системы по моему разумению |
ameten писал(а): Андрей, что означают слова "на странице личного кабинета"? Мне не понятно. Это значит, на странице, которая будет доступна только пользователю. |
Автор: | Андрей [ 07 июл 2011, 21:27 ] |
Заголовок сообщения: | Re: Текущий вариант системы по моему разумению |
Кстати, если мы сразу будем использовать ЭЦП официально признанные в РФ, то голосования практически сразу можно будет считать официальными. Т.к. ЭЦП идентична собственной подписи. Т.е. если с помощью нашей системы по какому-то вопросу выскажется достаточное количество пользователей, этот можно будет считать официальным голосом народа. |
Автор: | ameten [ 07 июл 2011, 21:30 ] |
Заголовок сообщения: | Re: Текущий вариант системы по моему разумению |
Андрей писал(а): ameten писал(а): Андрей, что означают слова "на странице личного кабинета"? Мне не понятно. Это значит, на странице, которая будет доступна только пользователю. Страница - это способ отображения данных. Данные должны где-то храниться. ГДЕ? |
Автор: | ameten [ 07 июл 2011, 21:52 ] |
Заголовок сообщения: | Re: Текущий вариант системы по моему разумению |
Андрей писал(а): "Подпись пользователя о том что он участвовал в голосовании" Я правильно понимаю, что это подписанный идентификатор голосования с помощью закрытого ключа ЭЦП пользователя? |
Автор: | ameten [ 07 июл 2011, 21:58 ] |
Заголовок сообщения: | Re: Текущий вариант системы по моему разумению |
Андрей писал(а): 4. Пользователь размещает на странице личного кабинета одноразовый идентификатор (с введением случайного элемента в шифруемые данные) с идентификатором голосования и выбранным результатом в подписанном И зашифрованном публичным ключем пользователя виде. Здесь мне не понятно, что шифруется, а что подписывается, и что шифруется и подписывается одновременно, и в каком подрядке - сначала шифруется, потом подписывается, или сначала подписывается, а потом шифруется. |
Страница 1 из 5 | Часовой пояс: UTC + 3 часа [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |