Департамент информационных технологий мэрии Москвы во время очередной публикации задания для проверки надежности интернет-голосования не выложил на GitHub ответы к предыдущему заданию. Публичные ключи и зашифрованные сообщения (задание) на 18 августа уже опубликованы, а приватные ключи и исходные сообщения (ответы) к задаче от 7 августа — нет.
«Медуза» использовала задание от 7 августа как пример того, что мэрия использует ненадежный (слишком короткий) ключ для шифрования голосов в интернет-голосовании. В карточках, опубликованных 16 августа, даны ответы на это задание, по которым можно было бы проверить правильность расшифровки.
Раньше новое задание всегда публиковалось вместе с ответом к предыдущему. Мэрия подчеркивала, что именно расшифровка ответов до их публикации на GitHub — критерий успешного взлома системы. На момент выхода карточек «Медузы» (как и на момент выхода этой заметки) ответ опубликован не был.
В задании от 18 августа есть еще одно отличие. Длина публичного ключа изменилась. Теперь это не три ключа по 256 бит, а один — длиной 1024 бита, как и обещали в мэрии. При этом код смарт-контракта для использования нового ключа пока не поменяли (он все еще рассчитан на три ключа по 256 бит).
Обновление. Изменения в коде смарт-контракта для работы с ключом длиной 1024 бита были опубликованы вечером 20 августа.
Проблему с шифрованием голосов для интернет-голосования обнаружил французский криптограф Пьеррик Годри. Он представил скрипт, позволяющий взломать шифр за 20 минут на бытовом компьютере.
В мэрии настаивают, что Годри не взломал систему, а лишь указал на недочеты.
Интернет-голосование
8 сентября пройдут выборы в Мосгордуму. Избиратели в трех округах смогут проголосовать через интернет. Это округ № 1 (Зеленоград), округ № 10 (Бибирево, Лианозово, Северный) и округ № 30 (Чертаново Центральное и Южное).