Elektronischer Wahlunterricht in der Moskauer Stadtduma 2019

Wir sprechen weiterhin über die Aktivitäten des DIT Moskau (siehe unsere vorherigen Beiträge ), gehen aber gleichzeitig zum nächsten Thema über, das plötzlich relevant geworden ist und an Dynamik gewonnen hat - dem Thema der elektronischen Abstimmung.

Wenn letztes Jahr die Fernabstimmung der Bürger eher als Neugierde oder als Experiment angesehen wurde, aus dem einige Schlussfolgerungen später gezogen werden, dann haben wir alle im Jahr 2020 plötzlich herausgefunden, dass dies eine Realität ist, der wir uns bald und vollständig stellen werden. Quarantänebeschränkungen haben dies weitgehend veranlasst - die Durchführung von Wahlen wurde in Frage gestellt, und das Leben der politischen Parteien wurde unterbrochen.

Im Allgemeinen traf die Nachfrage auf das Angebot - und die Rechnungen gingen zurück. Die Parteien durften Vorwahlen über Gosuslugi / ESIA durchführen, die Regionen berichten nacheinander über den Wunsch, bei den Kommunalwahlen im September die DEG (Remote Electronic Voting) zu organisieren.

Glücklicherweise oder leider reicht die Gesetzgebung allein nicht aus - wir brauchen auch eine technische Implementierung, die nicht so einfach ist. Jemand glaubt, dass alles bereits im letzten Jahr in Moskau getan wurde (es gab dort sogar eine Blockchain!), Jemand - dass die DEG im Allgemeinen nicht auf einem Niveau implementiert werden kann, das keine massiven Fälschungen zulässt, und daher ist es im Prinzip notwendig, die DEG aufzugeben.

Aus diesem Grund haben wir beschlossen, eine kleine Reihe von Artikeln und Sitzungen der Analyse dieser Themen zu widmen:

  1. Alexey Scherbakov - „Lehren aus der elektronischen Abstimmung in der Moskauer Stadtduma von 2019“
  2. Oleg Artamonov - „ Elektronische Fernabstimmung: Architektur eines vertrauenswürdigen Wahlsystems
  3. Runder Tisch „Drücken Sie den Knopf: Theorie und Praxis der elektronischen Abstimmung“



Wir beginnen sofort mit dem ersten Artikel und hängen morgen den zweiten und die Ankündigung des Runden Tisches auf (und fügen hier Links hinzu).

Genau genommen handelt es sich nicht um einen Artikel, sondern um einen leicht wörtlich bearbeiteten Text der gleichnamigen Rede von Alexei Shcherbakov (alexeishch) auf unserer Konferenz am 5. März dieses Jahres.

Alexey ist ein eingeladener Experte des Roman Yuneman-Teams bei der Erstellung des Berichts „ Electronic Voting. Risiken und Schwachstellen “, führender Backend-Entwickler bei FoodPlex.

Der Bericht zeigt, wie genau die elektronische Fernabstimmung bei den Wahlen zum MHD 2019 technisch organisiert war, welche Vor- und Nachteile sowohl bei technischen Lösungen als auch bei der Arbeit mit Expertengruppen zu verzeichnen waren.

Neben diesem Text können Sie auch zwei weitere Artikel lesen, die bereits auf Habré veröffentlicht wurden:


Wenn Sie Video oder Audio bevorzugen, können Sie den vollständigen Bericht auf YouTube ansehen .

***.


Hallo, mein Name ist Alexei Shcherbakov, ich war Experte im eingeladenen Team von Roman Uneman bei der Moskauer Abstimmung. Bevor wir über die Abstimmung selbst sprechen, sollten wir generell sagen, wie dies im Allgemeinen geschehen ist.



Alles begann im März 2019, als das Experiment angekündigt wurde. Im Mai wurde ein Abstimmungsgesetz verabschiedet, und die Abstimmung selbst fand am 8. September in drei Bezirken Moskaus statt. Die Abstimmung fand 12 Stunden lang über das Internet statt.

Das System selbst wurde auf der Basis der Ethereum-Blockchain von Parity erstellt. Dort wurde auch das Verschlüsselungsschema von El Gamal verwendet. Das Protokollierungssystem wurde von Graylog verwendet und eine Art AMQP-Implementierung wurde zum Übertragen von Daten zwischen Nachrichten verwendet. Wir gehen davon aus, dass es sich höchstwahrscheinlich um RabbitMQ handelte, nur als Unternehmensstandard. Das System selbst sah folgendermaßen aus: Der



größte Teil des Systems befand sich außerhalb des Moskauer Ministeriums für Informationstechnologie (DIT) [ dies ist ein sehr wichtiger Punkt, da nur das DIT Moskau mit externen Experten kommunizierte - ca. ed. ], aber die Blockchain war bei ihnen. Sie arbeiteten mit dem State Service Portal zusammen. Beschreibung der Entstehung dieses Systems, DIT of Moscow, veröffentlicht auf Habr. Und sie sprachen dort bereits besonders darüber, dass sie Probleme hatten, im Grunde genommen waren nur eine Stunde lang etwa 400 Menschen davon betroffen.



Wir haben eine Datenanalyse basierend auf dem Download aus der Blockchain durchgeführt, der von Medusa präsentiert wurde. Und sie untersuchten gesondert Zeugenaussagen, die bereits direkt von Beobachtern in den Wahllokalen gesammelt wurden. Es war eine elektronische Seite, auf der die Messwerte auf den Bildschirmen fotografiert wurden. Ich werde Ihnen mehr darüber erzählen.



Bevor ich über die durchgeführte Analyse spreche, werde ich Ihnen sagen, wie wir die Aufgabe angegangen sind. Wenn ich dieses System selbst entwerfen würde, würde ich bestimmte Standards verwenden, um ein Hochverfügbarkeitssystem zu entwerfen. Insbesondere würden Metriken verwendet, um den Zustand des Systems direkt zu überwachen. Um zu verstehen, dass einige Probleme beginnen - und um schnell darauf zu reagieren. Und neben dem Team, das dies alles tun sollte, müssen die Beobachter es selbst sehen - das heißt, die Beobachter müssen irgendwie verstehen, dass etwas schief geht. Und die Wahlkommission des Bezirks, die sich in diesem Bezirk befand, musste auch verstehen, was schief lief, wenn plötzlich etwas schief ging.



In unserem Fall sah die Zeitmetrik für die Berechnung von Blockchain-Blöcken folgendermaßen aus. Es werden mehrere Probleme separat angezeigt. Die ersten Probleme beim Stoppen der Blockchain sind die ersten drei Zonen. Und eine andere Zone ist ein unbekanntes Problem, das wir in dieser Metrik nicht speziell sehen. Und am Ende sehen wir eine reibungslose Verschlechterung, die bis zum Ende der Abstimmung stattgefunden hat.



Wenn wir die zweite Metrik betrachten - die Anzahl der Transaktionen pro Block - dann sehen wir anhand dieser das Problem detaillierter. Erstens sehen wir, dass in den Stillstandsbereichen keine Transaktionen erfasst wurden. In unserer verdächtigen Zone sehen wir nur sehr wenige Transaktionen, und dann sehen wir einen interessanten Moment, in dem sich die Art der Aufzeichnung von Blockchain-Daten ändert. Was ist der Grund dafür? Anfangs, als die Daten geschrieben wurden, wurden sie in einem bestimmten Intervall geschrieben, so dass es unmöglich war, genau zu bestimmen, welche Person zum Zeitpunkt der Abstimmung abgestimmt hatte. Daten wurden gesammelt und in die Blockchain geschrieben. Nach einer Art Blockchain-Rekonfiguration wurden die Daten jedoch zufällig aufgezeichnet. Das heißt, es wurde eine Operation durchgeführt, aber wir können auf der Grundlage dieser Metrik nicht genau sagen, was genau DIT getan hat. Aber wir können sagendass in diesem Fall DIT das System irgendwie gestört hat.



Basierend auf diesen Metriken können wir die Zeit berechnen, für die die Blockchain gestoppt wurde. In Bereichen mit stabilem Betrieb betrug die Blockierungszeit etwa 4 Sekunden. Dementsprechend können wir in den Stoppzonen berechnen, wie viele Blöcke für 4 Sekunden passen und wie viel die verbleibende Blockzeit gestoppt wurde. Und basierend darauf erhalten wir eine Untergrenze für eine Stoppzeit von 2 Stunden. Dies ist die Zeit, in der die Blockchain nicht vollständig funktioniert hat .



Darüber hinaus haben wir noch eine weitere Zone, in der die Daten die Blockchain nicht erreicht haben. Insgesamt dauern alle diese Fehlerzonen 4 Stunden. Die Abbauzone dauert ca. 6 Stunden, begann nach dem Mittagessen und dauerte bis zum Ende der Abstimmung. Aufgrund der Tatsache, dass sie die Blockchain in keiner Weise überwachten, vermuteten sie nicht einmal, dass es irgendwelche Probleme gab. Darüber hinaus sagten die Leute, die im Wahllokal selbst anwesend waren und Teil der Wahlkommission waren, dass sie nur auf dem Sofa sitzen und beobachten könnten, was auf dem Bildschirm geschah. Das heißt, sie verstanden nicht, was geschah, und erfuhren von einigen Problemen ausschließlich von den Medien. Sie hatten überhaupt keine Werkzeuge, um das Problem zu beobachten .

Darüber hinaus gab es einen interessanten Punkt: Beobachter mussten Zugang zur Blockchain selbst haben. Das heißt, ihnen wurde versprochen, dass sie einen speziellen Beobachtungsknoten haben und direkt auf die Blockchain zugreifen, Operationen daran durchführen und beobachten können, was passiert. Aber diese Gelegenheit wurde ihnen genommen! Warum? Unverständlich. Und die Statistiken wurden einfach auf dem Bildschirm angezeigt.



So sahen die Bildschirme aus, es gibt nur vier Positionen: Der klassische „Verkaufstrichter“, wenn wir die Anzahl der Personen haben, die auf die Abstimmungsseite gegangen sind, sich angemeldet, einen Stimmzettel erhalten und abgestimmt haben, und die mit jedem Schritt abnimmt.

Hier gibt es einen sehr wichtigen Punkt - das Leben des Newsletters. Wenn der Wähler innerhalb von 15 Minuten keine Zeit hatte, den Stimmzettel auszufüllen, wurde er als annulliert betrachtet. Und die Statistiken selbst gingen auch in Abständen von 15 Minuten. Das heißt, wenn unser Wähler innerhalb von 15 Minuten keinen Abschnitt des Trichters durchlaufen hat, können wir zuversichtlich sagen, dass er in der nächsten Phase der Statistik nicht berücksichtigt wurde. Und in jeder Phase haben wir eine kleinere Menge bekommen. Dank dessen konnten interessante statistische Anomalien verfolgt werden.



Dieser Trichter wird hier angezeigt. Die Farben geben die Fehlfunktionen der Blockchain an. Es gibt hier interessante Anomalien, zum Beispiel, wenn die rote Linie die gelbe Linie kreuzt - diese Anzahl der ausgestellten Stimmzettel ist größer als die Anzahl der Personen, die sich durch Eingabe des Codes per SMS angemeldet haben. Es ist physikalisch unmöglich, einfach einen Code einzugeben, um einen Newsletter zu erhalten. Und das geschah innerhalb von zwei Stunden.



Dies ist ein Vergleich von Statistiken, die von Beobachtern erhalten wurden, und Statistiken, die beim Entladen aus der Blockchain erhalten wurden. Wie Sie sehen können, stimmen sie praktisch überein, aber es gibt einen kleinen Unterschied, wenn es anscheinend kleine Probleme in der Statistik des Frontends gab. Dies gibt uns die Möglichkeit zu sagen, dass die Statistiken unabhängiger Beobachter und die Statistiken aus der Blockchain basierend auf dem Upload fast gleich sind, mit Ausnahme des Stadiums, in dem wir einige Probleme hatten.

Zusätzlich zur Statistik haben wir eine interessante Audioaufnahme - die Zeit beträgt ungefähr 17 Stunden, ungefähr 2.000 Menschen haben gewählt, einer der Vertreter der Moskauer Informationsverwaltung sagt, welche Interventionen sie an einem funktionierenden System durchgeführt haben. Insbesondere hätten rund 900 Personen wiederholt SMS zur Autorisierung erhalten.



Dies sagt uns zum einen, dass das DIT von Moskau aufgrund des von ihnen verwendeten Protokollierungssystems gegen das Wahlgeheimnis verstoßen könnte . Sie könnten die Abstimmungszeit, den Status des Stimmzettels und die Telefonnummer vergleichen, was sehr wichtig ist! Sie identifizierten Personen, die Probleme hatten, identifizierten ihre Telefonnummern und verschickten wiederholte SMS. Die Zahl dieser Menschen beträgt etwa 40% aller Wähler in diesem Wahllokal. Der Unterschied zwischen den beiden Kandidaten, dem ersten und dem zweiten, betrug nur 84 Personen, während wir bei 900 Personen nicht einmal sagen können, was ihr Ergebnis war. Weil etwas gegen sie unternommen wurde.Wir können nicht sagen, dass diese Stimmen manipuliert wurden, aber wir können sagen, dass 900 Menschen Probleme hatten. Wir können nicht sagen, wen sie gewählt haben und ob sie überhaupt gewählt haben. Das heißt, die Anzahl der Personen, die auf Probleme gestoßen sind, ist zehnmal höher als die Anzahl der Personen, die einen Kandidaten vom Sieg getrennt haben.

Das Datenrepository und der für die Analyse verwendete Code finden Sie unter diesem Link .

Wir haben auch den Code analysiert, der für die Abstimmung selbst verwendet wurde. Wir haben erwartet, dass die meisten Operationen direkt in der Blockchain selbst stattfinden und der Code veröffentlicht wird. Wir haben intelligente Verträge, einen Formularcode und einen Code erhalten, der für das Senden der Nachricht verantwortlich ist. Aber es gab Teile, die unbekannt blieben, weil sie auf der Seite einer anderen Abteilung ausgeführt wurden - dem Portal mos.ru bereits.



Was wurde interessanterweise im Code gefunden? Es stellte sich heraus, dass er die Wahlfähigkeit einer Person in verschiedenen Bezirken nicht einschränkte. Dies ist ein interessanter Punkt, der dem Backend ausgeliefert war, das sich woanders befand und dessen Quellcode wir nicht sehen konnten.Es ist nicht klar, warum das System Blockchain verwendete - da es immer noch nicht alles kontrollierte, konnte es durch eine reguläre Datenbank ersetzt werden . Nun, der magische Code wurde nur einen Tag vor der Abstimmung zum Formularcode hinzugefügt, wodurch es möglich wurde, ein zusätzliches Skript mit einer Variablen auf der Backend-Seite in das Formular aufzunehmen, was sehr interessant ist! Warum haben sie das getan? Tatsächlich ist dies die Fähigkeit, beliebigen Code zum Zeitpunkt der Abstimmung auf dem Gerät des Benutzers auszuführen .



Kryptographie war auch ein interessanter Punkt. Ursprünglich entschieden sie sich für eine 256-Bit-Verschlüsselung, obwohl bereits 1999 vorgeschlagen wurde, 768 Bit für dieses Schema zu verwenden, und vor 10 Jahren wurden 1024 Bit angeboten. Wenn Sie jetzt die Empfehlungen der Europäischen Union öffnen, werden "mindestens 1024 Bit" erforderlich sein. Wenn jedoch vor dem Jahr 2030 ein Schutz erforderlich ist, wird empfohlen, 3072 Bit zu verwenden. Es gibt auch einen interessanten Punkt bei der Berechnung der Entropie. Es ist klar, dass die Leute nicht ganz verstanden haben, warum sie das alles brauchten .

Was kann ich zu diesem System sagen?

Erstens konnte das Moskauer DIT keine Leistung von mindestens 90% erbringen . Es wird allgemein angenommen, dass ein Hochverfügbarkeitssystem mindestens 90% der Zeit haben sollte. Das heißt, wir können nicht einmal sagen, dass sie gearbeitet hat.

Zweitens wurden Operationen an dem Produktionssystem durchgeführt, die niemand in irgendeiner Weise kontrollierte, niemand konnte verstehen, was geschah. Wenn Sie sich die Gerichtsverhandlung ansehen [gegen das Wahlergebnis Berufung einzulegen - rd. ed. ] stellt sich heraus, dass weder Menschen noch Beobachter noch die Kommission selbst verstanden haben, was geschah . Trotzdem war es notwendig, sie irgendwie auf das Verfahren selbst vorzubereiten, das stattfand.

Anstelle einer Schlussfolgerung


Wir wollen nicht sagen, dass elektronische Wahlen notwendigerweise ein Chaos, ständige Probleme, seltsame technische Lösungen und ein Missverständnis dessen sind, was gerade passiert.

Wie wir aus diesem Material sehen, war die Frage des Vertrauens in die Abstimmungsergebnisse im Wesentlichen eine Frage des Vertrauens in die Organisatoren, deren Interaktion sich als sehr zweideutig herausstellte. Dies scheint uns die sehr aktuelle Frage zu beantworten, ob das Moskauer Informations- und Informationssystem über genügend Erfahrung verfügt, um es auf ganz Moskau und vor allem auf das ganze Land auszudehnen, und auf die Frage, ob es möglich ist, einfach eine Art „Wahlgang“ durchzuführen. mit Blockchain “, starten Sie es auf dem Server und führen Sie Wahlen durch.

Ungefähr gleich ist es möglich, ein digitales Abstimmungssystem im Allgemeinen aufzubauen, dessen Glaubwürdigkeit durch seine Architektur selbst und nicht durch die Ehrlichkeit seiner Autoren sichergestellt wird - wir werden im nächsten Artikel darauf eingehen.

All Articles