?

Log in

No account? Create an account

Previous Entry | Next Entry

grafiti
Антиобманную систему голосования, выдерживающую подтасовку данных, сконструировать трудно, но можно. Понятно, что не все варианты решений практичны.

Ну например, существуют алгоритмы, позволяющие двум Людям авторизовывать друг друга с помощью пароля в присутствии третьего Человека, который видит как и "вопрос" пароля, так и "ответ", но при этом Человек номер 3 не может воспользовацца ни вопросом, ни ответом для имперсонизации Человека номер 1 в глазах Человека номер 2 или Человека номер 2 в глазах Человека номер 1, так как (допустим) какой будет в следующий раз вопрос ни Человек 2, ни Человек 3 знать не могут, однако Человек 2 обладает алгоритмом правильного ответа, который всегда будет разным (так как вопрос каждый раз разный) и всегда правильным если это действительно Человек 2 а не Человек 3. В то время как если Человек 3 попытаецца задать поддельный вопрос, Человек 2 это сразу увидит, ибо такой вопрос "не подойдет" к алгоритму, который используют Человек 1 и Человек 2, более того, Человек 2 даже при желании не сможет подобрать правильного ответа на поддельный вопрос. Наконец, даже если произойдет чудо и из миллиарда случайных комбинаций (предложенных жуликом и вором) выпадет "удачная", данный алгоритм справляецца с этим так: угадал пароль? Хорошо, угадай тогда еще один - и так, допустим, 10 раз подряд. Это алгоритм бесконечно удаляющейся вероятности, которую можно довести "до минус числа звезд во всей вселенной".

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

1) Нельзя чтоб уникальное хэш-значение юзера было можно обратно "размотать" в имя, фамилию, отчество, год и место рождения

2) Нельзя чтоб "голос" мог магически "сам собой" изменицца

3) Нельзя чтоб кто-то мог сказать, что данного голоса "не было" если он был

4) Нельзя чтоб юзер с одним и тем же хэш-кодом мог проголосовать более чем один раз

5) Нельзя чтоб система позволяла использование "несуществующих Людей"

Кароче, все это можно построить так, чтобы при малейшей попытке нарушения все это тут же выявлялось и записывалось в логи (транслируемые в реальном времени): кто, где, когда, в какую миллисекунду, с какого ай-пи адреса соврал и т.д.

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

ОС и ПО центрального сервера должны на глазах экспертной комиссии (из n Человек, представляющих n партий) устанавливать с дистрибутива с заранее известным checksum, доступ к серверу контролировацца n-ключами (каждый из представителей хранит свой ключ в секрете), само ПО должно компиллировацца с исходников в присутствии экспертной комиссии и т.д.

При учете каждого голоса юзеру выдаецца время в миллисекундах, по которому в дальнейшем можно проверить, что там засчиталось сейчас, или через час, или через сутки, но по специальному коду, который "выдумать" невозможно, если у Человека не изменилась фамилия, имя-отчество, год рождения и т.д.

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

Это хлопотно, но довести это "до ума" вполне реально - вопрос токо в том, как отнесуцца сами обманщики к идее внедрения антиобманной системы - подозреваю, что "плохо"...


Comments

( 3 comments — Leave a comment )
starbereg wrote:
7th Dec, 2011 06:14 (UTC)
Проблема еще и в кривизне самой системы выборов.
kostyad wrote:
9th Dec, 2011 17:11 (UTC)
круто
bespechnoepero wrote:
9th Dec, 2011 22:45 (UTC)
Техническое решение, конечно, найти можно, но зачем? К власти и так приходят те, кого народ заслуживает. Так было с покон века, и так будет.
( 3 comments — Leave a comment )