12 ms·
Moscow's blockchain voting system cracked a month before election
- robertsmit888 7y agoAttain Printer Offline Fix by following simple measures in the blog. Connect with advanced printer experts if still facing issue. For more: https://printeroffline.co/ https://printeroffline.co/
- calewis 7y agoIt’s shame that this wasn't used in production and then nefariously used against Putin.
- hutzlibu 7y agoAh yes, the best way to deal with semi-autocrats, if people still vote them, you manipulate the election - but of course for democracy! Seriously?
- cookieswumchorr 7y agomaybe they meant presenting its vulnerabilities to claim the election illegitimate. But that still won't work, they will just ignore/deny everything as usual
- mamon 7y agoNo democracy for enemies of democracy! /s
- Grue3 7y agoThis election is already a sham since some opposition candidates were illegally prevented from participating in it.
- cameronbrown 7y agoSo more manipulation is better?
- rebuilder 7y agoThink of the possible outcomes: -Status quo, old voting system. Corrupt process with vote results that remain in force. Nothing changes. -Novel, manipulated system where the regime loses the vote. The vote gets overturned because it's illegitimate in the wrong way. Maybe embarrassing to the authorities?
- jplayer01 7y agoMeddling with foreign elections is the quickest way to create inner turmoil and conflict. Instead of busying themselves with creating a functioning democracy, you've just created an illegitimate system which will be destroyed from the inside-out, while provoking hate for the meddling party. I don't see the upside here unless you intend to (and are able to) keep it a secret for forever or unless turmoil and suffering is your goal.
- neom 7y agoMosaddegh is a great example of this. Iran is a huge issue today because of meddling in the 50s.
- rebuilder 7y agoI think we're talking about very different things. I'm thinking of hacktivists exploiting a bug in a stupid system to expose the flaws in it. You seem to be thinking of some kind of attempted coup.
- jplayer01 7y agoThere's a difference between people exposing a bug and publishing it, revealing the flaws inherent in the implemented voting system, and people finding a bug and using it to manipulate the vote directly, then revealing the manipulation to 'overturn' the vote. Which ties into what I said earlier. It's going to cause a crisis and it can be used to spin a narrative about how they're under attack from the West and/or America, further cementing their hold on power. Really, there are so many things that can and have gone wrong in attempts to mess with elections that I just don't see the benefit for anybody.
- equalunique 7y ago>some opposition candidates were illegally prevented from participating in it Can you provide a source for that?
- seppin 7y agosemi-autocrats?
- maehwasu 7y agoYes, because Russia = Bad, and so Bad for Russia = Good /s American provinciality is really bizarre and offputting.
- adventured 7y agoDid you confirm the parent was American before posting that? Even if they were, how does one person's comment on HN apply to a couple hundred million people? It obviously doesn't. You're making a similar type of intellectual mistake as the parent (Russia bad; Americans bad).
- rimliu 7y agoWhat has it to do with American provenciality if the one you replied to is from UK?
- Synaesthesia 7y agoI think Putin is quite popular in Russia and would have won in a free and fair election.
- ebg13 7y agoYou can't have free and fair elections when the opposition periodically gets assassinated.
- Synaesthesia 7y agoI didn’t say it was free and fair.
- seppin 7y agoHow do you know he's popular either? State run opinion polls? Asking people on the street about if they like their ruthless dictator or not? Sure.
- Synaesthesia 7y agoHe is genuinely popular I believe, not just from state run polls but also independent ones. You must understand the fact that he pulled Russia out of one of its worst crises in history and made it a force to be reckoned with again. Yeah there’s plenty to criticise but that fact alone will make him quite popular. He’s certainly authoritarian, I wouldn’t characterize him as a “ruthless dictator”
- ebg13 7y ago> I wouldn’t characterize him as a “ruthless dictator” You mean except for the part where his opposition periodically gets assassinated?
- Synaesthesia 7y agoIt’s clearly a political designation. It’s authoritarian for sure. I’m not gonna defend his actions. There are plenty of countries which so far worse though and do not get designated as “ruthless dictators” by the media. When Yeltsin was in power he was a ruthless dictator, but because he toes the line there were no issues.
- spuz 7y agoI'm definitely missing something here. The standard size of both Ethereum and Bitcoin private keys is a 256bit secp256k1 key. If a 256bit key is guessable within 20 mins then the entire Blockchain is also broken.
- anderskaseorg 7y agoTotally different kind of cryptography. sec256k1 is an elliptic curve, and 256-bit elliptic curves are generally believed to provide comparable security to 3072-bit RSA or DH or ElGamal. (See https://www.keylength.com https://www.keylength.com for a good compilation of reputable comparisons along these lines.)
- jasonzemos 7y agoWhen I click the reference footnote on that page leading to iad.gov I get an invalid certificate authority error, heh. https://www.iad.gov/iad/library/ia-guidance/ia-solutions-for-classified/algorithm-guidance/commercial-national-security-algorithm-suite-factsheet.cfm https://www.iad.gov/iad/library/ia-guidance/ia-solutions-for...)
- nwallin 7y agoFor obvious reasons, the US government was never an authorized CA in firefox, and the application to be put on the list of trusted CAs was denied. The DoD root cert (for .mil addresses) is similarly distrusted. AFAIK most other browsers operate similarly. If you so desire, you can simply add the FCPCA and DoD certs to your trust store. Or... you know.. not. https://wiki.mozilla.org/CA:GovernmentCAs https://wiki.mozilla.org/CA:GovernmentCAs https://bugzilla.mozilla.org/show_bug.cgi?id=478418 https://bugzilla.mozilla.org/show_bug.cgi?id=478418 (Status: RESOLVED WONTFIX) https://fpki.idmanagement.gov/crls/ https://fpki.idmanagement.gov/crls/ https://www.dau.edu/faq/p/DoD-PKI-Certificates https://www.dau.edu/faq/p/DoD-PKI-Certificates Although it kinda makes you wonder why China's CA was trusted by default, and it took actual, in-the-wild fraudulent certs before it was revoked.
- 7y ago
- simosx 7y agoBut why ElGamal?
- randaouser 7y agoProbably for its homomorphic encryption properties. Used in the correct setting with the appropriate Generator ( ElGamal on Elliptic Curve Fields) it is very secure but limited in use beyond Set Intersection as the results cannot be decrypted.
- eukgoekoko 7y agoIs this the key? https://github.com/moscow-technologies/blockchain-voting/blob/master/encryption-keys/keys/private-key.json https://github.com/moscow-technologies/blockchain-voting/blo...
- m0zg 7y agoThere's just no way any elections in Russia would produce the results not approved by the government. Government controls the entire chain of custody, from ballot counting to final vote tallies, and has been routinely falsifying the results at all levels. It often doesn't even need to tell those in charge to do anything: they "know" who should win and they make sure it happens. They also know they will have significant issues, career, legal, and otherwise, if it doesn't happen. Funniest thing is, they don't even need to do this. Because nearly all of the mass media is under government control, the incumbents have overwhelming support of the people as it is.
- toxik 7y agoIt's the "belt and suspenders" approach to vote manipulation.
- m0zg 7y agoThis is also why it's absolutely terrifying that all the press in the US is controlled by like 5 people, and the rest of the information one gets is controlled by Google, Facebook and Twitter. Anyone who thinks this is not being used for nefarious purposes is incredibly naive. There are trillions of dollars at stake.
- CENGaverK 7y agoHow do you know that, though? Are you a citizen of Russia? Because if you are not, I'm suspicious. I live in an undemocratic country but even then, we have a fairly good opposition and kind of a free media thanks to the journalists taking the risk of prison and social media so I was really surprised to find out there is no powerful opposition in my country, all of the media belongs to him and we citizens are just dumb people who wouldn't know our country better than outsiders. The thing is, a leader can't hold that much power. If he lost the election, s/he can play dirty, fight etc. but wouldn't be able to do as s/he pleases with the results. There is always a balance they need to be careful about and not everything is black and white.
- notfromhere 7y ago
- golergka 7y agoOK, so I think a little political context about this would be useful. On September 8th, Russia has "universal voting day", with elections to different regional parliaments, heads of some regions and even additional members of parliament. This year, the campaign have been very political because of Moscow parliament - which was for years treated as a completely uninteresting event with very low news coverage and turnout. This year, however, in response to opposition candidates getting a serious momentum, many have been disallowed to run, triggering escalating protests - some legal, some illegal, with sometimes brutal reaction to the police, which, in turn, led even more people to take part in the protest. This amount of people in the street haven't been seen since 2011 protests. So, after the trust in the elections, rule of law and democracy process have been eroded this much, I'm genuinely surprised that they even bothered to build a buzzword-fueled voting system.
- chupasaurus 7y agoThey were making this voting system since the last year.
- chrisperkins 7y agoCan someone explain what the GitHub org and GitHub repo for https://github.com/moscow-technologies/blockchain-voting https://github.com/moscow-technologies/blockchain-voting is about? If this was about to be used for elections, shouldn't such a critical piece of software have more developers working on it? Why is there only one contributor to the whole project? Why does it have only 37 stars? Is this project well known among the citizens?
- shinigami 7y agoThey likely published to GitHub after it was finished
- nlitened 7y agoThis is a small pilot project, it will be run in just a few districts of Moscow for municipal elections this September. Also, as of now, only about 1% of the population of those districts have registered for online voting, around 500 people. So it's more like a proof of concept, and a first step in making larger-scale electronic elections possible in the future (from technological, political, organizational, and public trust standpoints).
- codedokode 7y agoI can translate the README: > This repository contains the code for electronic voting that will be used for Moscow City Parliament elections. > Purposes of creating this repository > The repository was created to allow examination of a source code. Although the purpose of the system is electronic voting, we ask to leave comments and open issues only on technical questions. All comments containing political statements will be deleted. But the code is incomplete. For example, PHP code looks like a "module" for a larger CMS and cannot be run independently. Also, here [1] there is a header that says "prototype" in Russian. And in several files where there should be the rules and explanations for users there is just a placholder, for example in this file [2]. So I assume this is just an early version of code. This code was published as a part of a challenge to break the encryption used in remote voting. There is no git history probably because this is just a snapshot, github is not used for development. [1] https://github.com/moscow-technologies/blockchain-voting/blob/master/voting-form/src/forms/forms/mgik/mgd2019/send.tpl https://github.com/moscow-technologies/blockchain-voting/blo... [2] https://github.com/moscow-technologies/blockchain-voting/blob/1d4f348681e961420a28e8a3a3d64719c4ddc628/voting-form/src/forms/forms/mgik/mgd-golosovanie/show.tpl#L65 https://github.com/moscow-technologies/blockchain-voting/blo...
- spodek 7y ago> the voting system's protocols weren't yet available in English, so Gaudry couldn't investigate further. What's the relevance to a French researcher of publishing Russian protocols in English?
- zamadatix 7y agoPresumably they weren't available in French either but Gaudry knew English.
- aazaa 7y agoThe paper notes another, distinct, attack possibility: > Before going to this, we mention quickly another mistake in the design that could in itself have led to devastating attacks. The generators that are given in public- key.json are generators of the whole multiplicative group. However, due to the Chinese remainder theorem, it is a good practice to use a generator of prime order. In the present case, the generators will have their order divisible by 2, and therefore there is a huge risk that one bit of information leaks from a ciphertext. In a context like e-voting where a ballot can have a very simple form, this bit of information could reveal a lot of the vote (or even all of it in the case of a yes/no question). In principle, we would have had to investigate more in this direction. But due to the main attack that is much easier and far more powerful, we keep this as a remark. https://arxiv.org/pdf/1908.05127.pdf https://arxiv.org/pdf/1908.05127.pdf This still leaves the question why the developer(s) decided to roll his/her own crypto in this way: > A possible explanation is a confusion with the key size that can be used when using elliptic curves for which the Number Field Sieve algorithm does not apply. This is such an obvious mistake that the entire protocol (whether or not it's ever documented) might be vulnerable. > Another less excusable but still possible explanation might be related to the use of the Ethereum blockchain. In the Solidity programming language that is used to write smart contracts, the bit size of the largest supported integers is 256. Maybe the authors did not want to write a multiprecision arithmetic library that would have been required to deal with larger key sizes. This hypothesis is supported by frequent tests in the source code, checking that the big integers they manipulate are not bigger than SOLIDITY_MAX_INT. This seems more likely. However, that last sentence checking for overflow sounds like another trove of vulnerabilities. Moreover, the claim by the developer in the ZDnet article that a patch is forthcoming seems suspect given that it will need to also include multiprecision arithmetic functionality, where there are still more opportunities for snafu.
- CENGaverK 7y agoIt seems they covered the other attack possibility with the new update as well but another researcher from Harvard was able to break the system so he could count the votes before the election was over. Plus, now there is a new big update and writing code for numerical methods in such a short period is never bug-free. Let's see how it plays.
- arisAlexis 7y agoIt has nothing to do with the blockchain though, they just used weak cryptography
- lovasoa 7y agoHere is the original blog post by the french researcher (in english) [1]. In an update, he says the updated system with a 1024-bit key was also compromised, on august the 24th [2]. [1]: https://members.loria.fr/PGaudry/moscow/ https://members.loria.fr/PGaudry/moscow/ [2]: https://golovnev.org/papers/election.pdf https://golovnev.org/papers/election.pdf
- sorenso 7y agoI'm not surprised. But this sure surprised me:Pierrick Gaudry, from Lorraine University, was able to break the Ethereum-based smart contract encryption in only 20 minutes using nothing more than an average desktop computer and free, publicly available software. Gaudry estimates more modern equipment and sophisticated techniques could crack the encryption in only 10 minutes."
- dmix 7y agoPoor programming and cryptography by the contract developers is always going to be the biggest weakness of smart contracts. This one was developed by a government entity so the quality issue is not really surprising... > It was developed in-house by the Moscow Department of Information Technology The developers claim [1] they were only using a weak private key during a "trial period" which doesn't really make sense. Who releases a different public/private key scheme before launching into production? If the development team doesn't hire outside security testing or request public review - to test the real software - then it's pretty useless. Their response notes a meetup in Moscow in Sept (which is the same month as the election?) which seems like a strange requirement if they were expecting solid public feedback. 1. https://medium.com/@unassuming_teal_crab_127/dear-julia-7bac3612b178 https://medium.com/@unassuming_teal_crab_127/dear-julia-7bac...
- specialist 7y agoMeta: Where's the manual for administrating Moscow's elections? What portion of election administration was this applied to? Thru recurring embarrassment, I've learned that you start with the jurisdiction's laws, rules, procedures, manuals. Update: Julia Krivonosova, cited by this OC paper, appears to be doing excellent work, and does cover some of the context, assumptions. She'd definitely a better election integrity advocate than I ever was. Internet voting in Russia. How? https://medium.com/@juliakrivonosova/internet-voting-in-russia-how-9382db4da71f https://medium.com/@juliakrivonosova/internet-voting-in-russ... The Dizzying Whimsy of Russia’s Electoral Laws https://medium.com/@juliakrivonosova/the-dizzying-whimsy-of-russias-election-laws-761449a7495a https://medium.com/@juliakrivonosova/the-dizzying-whimsy-of-... https://www.ridl.io/en/the-dizzying-whimsy-of-russias-election-laws/ https://www.ridl.io/en/the-dizzying-whimsy-of-russias-electi... -- It's possible (however unlikely) that a voting system built on top of Etherium is perfectly reasonable for Moscow, Russia, where ever. Even in the USA, where the Australian Ballot (private voting, public counting) is the gold standard, there are many, many exceptions (compromises made). For very good reasons. For instance, postal balloting. Originally implemented to enfranchise soldiers kept away from their homes for long durations. Further, even in the USA, YMMV. Local variations impact election administration. For instance, how "voter intent" is adjudicated (when a mistake is made by the voter). If we don't start with the context and assumptions, we end up talking past each other, and getting no where. -- Though I am a blockchain skeptic, for voting and tabulation, there are other exciting potential applications. Election administration is a big, complicated problem. While tabulation is the most important step, it's also relatively minor. Since blockchain is just a shared ledger, it could help with pretty much every other step: candidate filing, political boundaries (GIS), voter registration (eligibility), reporting campaign contributions and expenses, publishing reports (certification), audit of material handling. Etc.
- DINKDINK 7y agoThe only benefit a "Blockchain" can provide is decentralized time ordering. All other properties must be verified by the client, don't require a blockchain, and are typically some other cryptographic proof. There are many properties of a blockchain that are an anti-feature of voting.
- fnord77 7y ago> There are many properties of a blockchain that are an anti-feature of voting. I don't know much of anything about blockchains and voting. What properties do you consider antifeatures?
- codedokode 7y agoBlockchain is used in cryptocurrencies to have a shared registry modified and verified by independent nodes who don't trust each other. Using it, you can prove to anyone that you have X bitcoins, and anyone who received them from you can prove this too. In case of voting, there are no independent nodes, all modifications to the registry are done by the election committee (or authorised by them) and users can only verify the transaction list. So it would be easier to just present election events as a Merkle tree (voter X has submitted an encrypted ballot Y, and the hash of the registry before this was Z). But in this case there would be no "blockchain" and no feeling of reliability and security. If I made a mistake here, I would be happy if someone would point at it.
- deleted 7y ago[deleted]
- firethief 7y agoİ used to think that, but actually a Blockchain can also require something to be publically announced, which is quite powerful and is the basis of a lot of applications
- trhway 7y agoMy old country as always at its best when it comes to propaganda. This elections will be noted in history for the first usage of blockchain instead of for the brutal suppression of opposition https://www.cnn.com/2019/08/14/europe/russia-protests-arrest-gbr-intl/index.html https://www.cnn.com/2019/08/14/europe/russia-protests-arrest... (note the helmeted Russian storm-troopers don't have any ID on their uniform, so they are practically unpunisheable for their actions - I mean there is even no guarantee that it is actual law enforcement and not just some dressed up guys who enjoy beating people )
- codedokode 7y agoResearchers overlook more important issue. As the government controls the servers, it can impersonate any number of users. Users submit an application to vote remotely through a government-controlled site and confirm it by receiving a SMS with code. It is obvious that government is able to submit such an application to its own server without bothering the real user. The users vote remotely and confirm their identity by providing a code from SMS (again) and the government can just look at the code on the server. It isn't important what cryptography is used there. You don't need to guess random numbers when you have root access to the server. The observers are supposed to see a tape where some hashes will be printed when someone votes. Maybe they will be allowed to see the registry of voters who chose to vote remotely, maybe they will not be allowed. I cannot prove this, and this is my personal opinion, so you shouldn't believe me, but I think the government wants an opaque procedure to produce legitimate looking election results with desired outcome. With paper voting, there are too many points of failure: it is difficult to throw the ballots in the box when there is a vigilant observer. Remote voting doesn't have such flaws. If there was a fraud, it would be difficult to explain to a non-programmer. They don't understand anything, they just see how the program says "hash doesn't match". But maybe it is just a program written by foreign agents (and stored on foreign "Github" servers) producing fake results. For comparison, with paper voting anyone can understand that there is a fraud if you show them the video. Also, the government party is slowly losing its rating and starts losing regional elections. Remote voting might be a cure for this undesired situation. And probably any other government (for example Estonian) that implements such an opaque system has similar aims.
- codedokode 7y agoAlso the attack described by the research could actually be a good thing. Decrypting votes would allow to discover fraud, in case if it happens.
- nbabitskiy 7y agoExcuse me, please, are you living here? Do you really think there is a possibility the majority (or even 10%) of voters will vote digitally? It's so out of character of Russian voters, that I honestly suppose you're a Prigozhin's troll.
- hardwaresofton 7y agoElectronic voting should be used to forecast votes and offer confirmation/more data points, and nothing more. It's just too hard to secure currently, and the influence problems (lack of anonymity, possibility of election tampering) isn't worth the risk currently. Electronic voting could also be used simply as a way to save and fast-track the voting process, making it more convenient. Confirm your votes on the app, get to upload them in-bulk to the machine (via QR code or something), and all you have to do is confirm. Lots more time to think about the vote, but you still have t confirm in person. Longer, more casual access to voting booths and mandatory paid time off is the best thing most democratic/semi-democratic systems could do to help voting these days.
- dzamo_norton 7y agoHow can a blockchain-based voting system be a good idea if it invites an attacker who can afford lots of ASICs, e.g. a hostile nation who like to interfere, to launch a 51% attack?
- deleted 7y ago[deleted]