Для участие в голосовании избиратель должен зарегистрироваться и получить ключ для голосования – HASH-функцию.
Каждый участник должен иметь уникальный ключ, который получается шифрованием уникальных данных
избирателя. Ключ помещается в cookies для удобства.
Без использования номера паспорта трудно избежать подделок.
Запрашиваемая информация:
«Представьтесь» – в произвольном виде (например, ФИО) – для восстановления
«Пароль» – для шифрования номера документа (не сохраняется)
«Номер документа» – номер паспорта, шифруется паролем при занесении в базу, желательно на машине пользователя.
Уникальный ключ зашифрован и подписан.
Для недопустимости автоматического голосования (роботы) пользователю будет необходимо распознать нечеткую картинку с номером или буквами.
Предлагаю шифровать «ФИО» и «Номер документа» шифрованием md5 (128-ми, либо 256-битный ключ), в качестве passphrase использовать пароль, который пользователь должен будет ввести. Этот пароль должен быть не менее определенной длины. Также для полученного значения зашифрованных данных будет выполнена HASH-функция (SHA, SHA-1).
Значение выбора будет хранится открыто и будет привязано к зашифрованному значению данных и значению HASH-функции.
1. Таким образом без знания пароля, указанного пользователем, будет невозможно определить, кому принадлежит «голос».
2. Узнать значение поданного голоса или изменить его будет возможно, зная все данные и пароль.
Другой вариант:
1-й и 2-й серверы сертефицированы между собой. Первый сервер служит для первичной авторизации. По имени и паспортным данным создается hash-функция, которая и хранится на первом сервере. Вдальнейшем первый сервер будет служить для аутентификации голосующего. После аутентификации первый сервер выдает временной талончик на голосование на втором сервере. При обращении ко второму серверу с временным талончиком второй сервер проверяет сертификат сервера, выдавшего этот талончик и легитимность временного интервала. Во временном талончике будет указваться зашифрованные hash-функция, номер талончика и временной интервал; + к этому талончик должен быть заверен первым сервером.
Таким образом при повторной аутентификации на первом сервере и получении талончика на голосование второй сервер определит повторное голосование.
+ Подключить существующие базы паспортов (Cronos) и адресов (Кладр). Взависимости от доступности различных баз данных можно подключать милицейские базы или базы прописанных их паспортных столов.
+ ФИО проверяется на корректность. Дл яэтого можно подключить внешнюю базу (Cronos) .
Другой вариант – использование автооризации через мыло.
++++
Использование авторизации через мыло дает невозможность использовнания одного и того же мыла для одного человека.
Отсеивает роботов и невладельцев мыла.
– - –
email не подходит, поскольку работает медленно.
Не у каждого есть мыло.
| Система голосования использует полученный ключом – сохраняет в базе пары ключ (md5 от него?) и результат голосования.
При этом к системе можно обратиться повторно и проверить как ты проголосовал.
Ключ подписан, так что проверяем подпись, удостоверяясь в его подлинности.
Защита от кражи закрытого ключа? – применить аппаратный ключ? – добавить информацию, создаваемую сервером... – делать запрос с md5 – выдавался ли такой ключ.
|