While Russia is earnestly preparing for the upcoming Moscow Elections, a French security researcher, Pierrick Gaudry has found a major loophole in the blockchain-based voting system that Russian officials plan to use for the upcoming 2019 Moscow City Duma elections.
Interestingly, Gaudry could easily compute the voting system’s private keys based on its public keys.
He has blamed the fiasco on Russian officials who use a variant of the ElGamal encryption scheme. The scheme uses encryption key sizes that do not guarantee any security, which implies that modern computers can easily break the scheme within minutes.
“It can be broken in about 20 minutes using a standard personal computer and using only free software that is publicly available. Once these [private keys] are known, any encrypted data can be decrypted as quickly as they are created.
While it is still not known that what can an attacker do with the encryption keys since the system’s protocols are not available in English. Thus, further investigation could not be carried on by Gaudry.
“Without having read the protocol, it is hard to tell precisely the consequences, because, although we believe that this weak encryption scheme is used to encrypt the ballots, it is unclear how easy it is for an attacker to have the correspondence between the ballots and the voters,” he added.
“In the worst-case scenario, the votes of all the voters using this system would be revealed to anyone as soon as they cast their vote.”
One of A Kind Blockchain System
Moscow’s blockchain voting system has been developed by the Moscow Department of Information Technology and works as a “smart contract” on top of the Ethereum blockchain. Reportedly, the system will go live on the 8th of September and will run for 12 hours in sync with the official voting session.
Moscow residents can thus, cast their votes via their phone, internet or computer and have their votes recorded on the public Ethereum blockchain. The voting system would officially become the first blockchain-based system to be used in an election and not just in limited testing capacities.
Gaudry was able to find the vulnerability as the officials published the source code on GitHub in July, and asked the researchers to try their hands on it. After Gaudry’s discovery, the Moscow Department of IT has promised to fix the issue.
“We agree that 256×3 private key length is not secure enough. This implementation was used only in a trial period. In a few days, the key’s length will be changed to 1024.”
a spokesperson said in an online response.
While the department has indeed modified the previous encryption scheme, Gaudry was unable to explain the reason for the same.
“This is a mystery. The only possible explanation we can think of is that the designers thought this would compensate for the too-small key sizes of the primes involved. But 3 primes of 256 bits are not the same as one prime of 768 bits,” the French researcher said.
As per Gaudry, a public key of a length of 1024 bits may not suffice. Rather, a key of least 2048 bits should be used. The design decision also surprised Chris Roberts, Chief Security Strategist at Attivo Networks.
“Why on this planet would the developers of the platform choose a weak length in the first place is a question. Is it lack of knowledge and understanding? Or simply looking to maximize speed and efficiency or something else,” said Roberts.
Roberts further took a dig at the US system and said that the system could take a lesson or two from this, as the latter has been trying hard to secure its electronic voting machines.
Gaudry To Be Rewarded
For his commendable efforts, Moscow officials will reward Gaudry with $15,000 which is equal to a whopping 1 Million Ruble.
All being said and done, let us see if the Moscow department considers the suggestions and makes further amends in the system.