August 10th, 2012

ЛВ10

Регистрация избирателей: а как вам такая схема?

Схема надежной регистрации избирателей полностью сложилась. Сейчас она мне кажется просто отличной, поэтому - обязательно покритикуйте. 

Главные идеи схемы: 
1. Процедура регистрации избирателя должна быть одинаковой в онлайне и в оффлайне. 
2. Регистрацию не надо поручать площадкам для голосования; сложно будет проконтролировать корректность их работы, и, главное, это очень нагрузит разработчиков площадок в плане их доведения до ума. 
3. Хранить список избирателей - нехорошо. 
4. Трудозатраты на одного избирателя надо минимизировать (мы же рассчитываем, что их будет очень много!). 

Вот как (вчерне) это все может работать. 
Он-лайн регистрация.
А. Избиратель заходит на сайт ЦВК, идет в форму регистрации, и вводит там следующие данные: серию и номер паспорта, дату рождения, номер мобильного телефона, а также загружает фотографию/скан первой страницы паспорта. Дополнительно - проверяем принадлежность телефонного номера избирателю через СМС-подтверждение. 
Б. На бэк-энде на это дело смотрит наш оператор, у которого в интерфейсе есть только две кнопочки: "ДА" или "НЕТ". Если ему кажется, что с картинкой все в порядке, и, естественно, номер паспорта и дата рождения, введенные избирателем совпадают с теми, что указаны в паспорте - нажимает кнопочку "ДА", если данные не совпадают, или ему кажется, что паспорт подфотошоплен - нажимает "НЕТ".
В. Из номера паспорта, даты рождения и номера телефона (это примерно 10^22 вариантов) собирается хэш, который заносится в централизованный реестр. В реестре хранятся только хэши; никаких персональных данных не хранится. Длина хэша достаточно велика, чтобы исключить совпадения.   
Г. Теперь выборы можно проводить на любой электронной площадке, которая реализует у себя следующую функциональность: 
- на входе спросит номер паспорта, дату рождения, телефон
- сформирует запрос в реестр
- получит подтверждение из реестра о том, что такой избиратель существует и еще не голосовал
- покажет избирателю бюллетень, и передаст итоги голосования в ЦВК

Офф-лайн регистрация. 
А. Происходит точно таким же образом!

Сразу, может быть и не очень понятно, но осознайте такие прелести этой схемы:
1. Ясно, как повышать ее надежность. Например, можно проверять данные не одним оператором, а тремя, от трех курий. Если три галочки "ДА" - избиратель регистрируется, если две или три галочки "НЕТ" - не регистрируется (и сбрасываем такую заявку в отдельный реестр, и смотрим, как нас пытались обмануть), если одна галочка "НЕТ" - проводим дополнительную проверку. (Например, назначаем с избирателем скайп-звонок, и проверяем, что он - это он). Кроме того, можно проводить случайную выборочную проверку.
2. Резко снижаются требования к площадкам - фактически, им не надо проводить сложные и дорогие доработки, реализуя проверку ЭЦП, или привязку к банковским выпискам, или что-то еще такое. Почти любая интернет-голосовалка сможет стать защищенным электронным участком для голосования на выборах в КС. Такая распределенность, в частности, снижает риск пострадать от DDoS-атак. 
3. Централизованный реестр, в котором хранятся хэш-значения, является, очевидно, наиболее уязвимым местом всей схемы - но его можно вообще не экспонировать в интернет. С каждой из аттестованных электронных площадок можем поднять закрытый канал, с каждой РВК тоже, или работать через SMS-интерфейс. Сам этот реестр технически является очень простой штукой - база данных весом всего несколько мегабайт и API из двух методов, Get и Set. Очень просто зеркалировать, очень просто развернуть в другом месте за минуты, если возникли проблемы.
4. Вторым нераспараллеленным местом является сайт ЦВК, но поскольку на регистрацию избирателей отводится больше месяца, то DDoS-ить его оказывается довольно неблагодарным занятием. Функциональность там тоже очень примитивная; развернем на Амазоне, и пусть пытаются положить сколько угодно. Кроме того, онлайн-регистрация дублируется оффлайн-регистрацией, и наоборот. 
5. Получение ЭЦП стоит денег (несколько сот рублей), и привязка банковской карты через выписку стоит денег (около 50 рублей), а вот предложенная схема регистрации не стоит почти ничего. Кажется совершенно реальной проверка одним оператором 300 избирателей в час (то есть 5 раз за минуту успеть сверить номер паспорта и дату рождения с фотокопией), таким образом регистрация 1 млн избирателей будет стоить около 3500 человеко-часов работы операторов: ресурс весьма подъемный даже за счет волонтерской работы, но и для бюджета ЦВК (с учетом оргвзносов и добровольных пожертвований) это выглядит вполне посильным объемом.
6. С точки зрения безопасности все выглядит очень кошерно. Мы у себя ничего не храним и не обрабатываем; по сети передается связка "паспортные данные - дата рождения - номер телефона", но без ФИО она не является персональными данными (см. 152-ФЗ). Более того, даже избиратель может сам на фотокопии паспорта закрыть белой бумажечкой фамилию - мы не будем возражать, это нам не помешает! Даже свой хэш избирателю не надо хранить (рискуя его потерять). 

Короче, пока вижу одни плюсы - простая и надежная схема. Ну, потому что я ее сам придумал, и не могу объективно смотреть. Поэтому, пожалуйста, раскритикуйте жестоко.