 Guten Morgen und danke alle, dass ihr so früh da seid. Der Titel ist die Prosenkons von Internetwahlen in Norwegen. Ich werde die Geschichte versuchen, Internetwahlen richtig zu machen. Wer hat diese voting in Estonien-Vortrag folgt am Sonntag? Ihr wisst alles über Internetwahlen. Es gibt zwei verschiedene Sorten von Wahlsystemen. Es gibt die Art, die benutzt, zu sagen, was ist das Beste zwischen Cola und Pepsi und der andere, wer soll regieren? Für diese zweite Art von Votingsystemen geht es um vieles. Es ist eine fundamentale demokratische Zeremonie. Es ist sehr wichtig, dass wir das richtig hinbekommen, dass wir sicherstellen, dass diese demokratische Verfahren fair und korrekt sind. Wir haben drei Teile zu diesem Vortrag. Ich werde sprechen über diese Test von Internetwahlen, die wir in 2013 in Norwegen gemacht haben. Dann werde ich die historische Hintergrund für diesen Test und was ist passiert, damit wir diese Test gemacht haben in Norwegen? Was ist da nach passiert? Was war der Hintergrund? Und dann zu Ende werde ich darüber sprechen über meine eigene Arbeit, über Krypto-Implementation, was wir benutzt haben für diese Wahlsysteme. Es gibt drei Hauptpunkte, die wir daraus herausnehmen sollen. Der erste, denke ich. Internetwahlen, es macht Angst, ist etwas, ich denke, wir wollen das grundsätzlich nicht. Aber die Norwege, aber wirklich wäre so das richtig hinzubekommen. In dem Sinne, dass sie das, die wollten durchführen, ein richtig offener Test und die wollten wirklich ehrlich sein über das, was passiert. Der zweite Punkt, diese Art von Event, ist nicht nur über Technologie, es ist auch über Politik. Und die Acker sagen, Internetwoting, wir wollen das nicht. Und trotzdem, es gibt andere Mächte, die da mitspielen, und die auch das, was zu sagen haben in diesem Prozess. Und deswegen, du fragst dich vielleicht, was würde jemand Internetwahlen machen? Und ich denke, das Hauptargument zehn Jahre her, von Snowden, und wir waren vielleicht ein bisschen mehr naiv über die Gefahren online. Ich kenne Banking online, ich kenne mein Steuer online, warum kann ich nicht wählen? Und daher, manche formale Ziele des Projekts waren zu verbessern und diese Erfahrung besser zu machen für die Leute, die grundsätzlich nicht wählen gehen wie Studenten. Und am Anfang der Tests wollten Sie auch die Beteiligung erhöhen. Internetwoting, in der Experiment hat er keinen Einfluss. Und zu Ende, zuletzt, von einem reinen technischen, wissenschaftlichen Punkt, es ist eine sehr interessante Challenge, Herausforderung. Wir wollten etwas lernen über, falls wir versuchen das zu machen, was sind die eigentlichen Probleme, die der eigentliche technologische Hürde, die da von Entwicklung her uns ausstoßen, darzustoßen? Also, Sie fragen sich, wer ist dieser Typ, dieser Tortyp? Ich habe meinen Dr. Arbeit in Kryptografie vor ein paar Jahren gemacht. Ich arbeite als IT Security Consultant in einer Kompanie in Oslo. Und es ist meine sechste Talk der CCC. Ich habe mit Computer gespielt, schon seit immer. Als ich vier Jahre alt war, habe ich mein erster Unix-System bekommen. Und ich denke, es ist ein fahrende Ding, das ich schon sehr lange mache. Meine eigene Rolle in Beziehung zu Internetwahl in Norwegen. Ich bin nicht Teil vom Votingprojekt. Aber ich habe diese Krypto gemacht in 2013, diese Audit. Weil dieses Projekt war so offen. Alles, was ich hier sage, ist basiert auf öffentliche Information. Aber manche Sachen sehen meine eigenen Interpretationen, basiert an die Fakten, dass ich außerhalb vom Projekt war. Also Norwegen. Ich denke, nicht jede weiß viel über Norwegen. Es ist hier da oben. Es ist ein nordeuropäer Land, fünf Millionen Leute, ziemlich klein. Es ist stabil und reiche Demokratie. Das sind sehr, sehr große Menge von öffentliches Vertrauen. Die Leute sind sehr vertransvoll. Sowohl die Nachbarn als auch die Regierung. Ich denke, in diesem Sinne Norwegen hat eine gute Voraussetzung für diese Art von Internetwahl-Experiment zu machen. Es ist ein sehr kleines Land, es ist ein kleines Experiment. Es ist politisch sehr stabil. Also, falls irgendetwas richtig schief geht, es wäre möglich, das zurückzubekommen auf eine stabile Art. Und es war tatsächlich in 2011 eine terroristische Attacke ein paar Wochen vor den Wahlen gegen die Regierung und ein paar Wochen bevor dieser Experiment tatsächlich. Und wir wurden trotzdem fähig, diese Experiment durchzuführen unter diesen Umständen. Und zuletzt, wir können uns erlauben, das richtig zu machen. Und das sind richtig gute Voraussetzungen für ein Erfolg von diesem Experiment. Falls irgendjemand Internetvoting machen kann, es sollte richtig sein. Also, durch und durch der Konzept von Internetvoting in Norwe, das sind keine elektronischen Voting-Maschinen, das ist Online-Voting vom Laptop, vom Zuhause. Und als Wähler könntest du einfach dich einloggen und online wählen, so oft wie du möchtest. Und die Internetwahl ist gemacht. Bevor der Wahltag, und am Wahltag könntest du zu einem Wahlortung, du kannst auch physisch wählen. Das System ist so gemacht, dass nur der letzte Wahl-Zettel zählt. Und das ist der am wenigsten Anti-Koation-System, das es gibt. Weil, falls dich jemand zwingt zu wählen, dann kannst du einfach später nochmal wählen und deine richtige Stimme zählen. Die zweite Idee, die hier ist, dass wir sehr ausgefeilte Kriptografie benutzen, würde ich was sehr fundamentales sagen. Also, man bekommt ein sehr starker Garantie, dass das Ganze korrekt ist und das, was man haben will. Das Ganze ist so gebaut, dass man eine Verschlüsselung bekommt. Man muss also kein Vertrauen zwischen den einzelnen Stellen in dem Wahlverfahren haben. Es gibt kriptografische Beweise dafür. Und es gibt die Verschlüsselungsschlüssel wurden aufgeteilt und an verschiedene Personen gegeben. Und sie konnten nicht zusammen kooperieren, um auf den eigenen Schlüssel zu schließen. Drittens kommen die Wähler einen Feedback und nur der Wähler kann verifizieren und dass online ob seine Stimme abgegeben wurde, wie er sie beabsichtigt hatte. Das klingt ziemlich vernünftig, denke ich. Und jetzt kommen wir zu den technischen Details. Für ein Wahlsystem will man eine starke Identifizierung. Man möchte sicher gehen, dass die verschiedenen Stimmen der Menschen richtig gezählt werden. Das heißt, das Autifizierungssystem muss sicher sein. Außerdem muss man anonyme Stimmzettel haben. Das heißt, auf der einen Seite der Stimmzettel darf nicht zu dem Wähler zurückverfolgbar sein. Drittens möchte man die Wahlergebnisse verifizieren können. Diese drei Voraussetzungen sind ziemlich widersprüchlich, weil das bedeutet, wenn man eine Aufteilung zwischen verschiedenen Stufen haben muss. Und zwar so, dass man sie nicht wieder zusammenführen kann. Und da gibt es noch eine vierte Sicherheitsvoraussetzung, die nicht so direkt geschrieben ist, aber die Wähler-Fizierungsbarkeit muss gegeben sein. Es gibt hier einige Schwächen und Begrenzungen gegenüber einer Papierwahl. Aber die Bedrohung ist ziemlich gut verstanden. Man kann das mehr oder weniger im fünfjährigen erklären, die Papierwahl. Man wirft den Stimmzettel ein, und dann wird es geschlossen, und dann zählt man die Stimmzettel aus. Man hat Checks and Balances und so, dass man das halt verwirklichen kann. Man muss verstehen, dass das die Voraussetzungen für eine elektronische Wahl ziemlich schwer sind. Das ist eine der fundamentalen Herausforderungen im elektronischen und im Internetwahlen, dass man das Ganze transparent macht, so transparent wie möglich. Wir wissen nicht, wie man das macht bisher. Es gibt also eine vierte Sicherheitsvoraussetzung auf dieser Liste. Man muss Angriffe detektieren können. Eines der Hauptziele der Internetwahlen in Norwegen war, selbst wenn da eine Angriffe auf das System ist, dann selbst wenn es viele Stimmen betrifft, müssen wir es herausfinden können. Wir müssen damit leben, wenn es kleinere Missbräuche des Systems gibt, unter einer bestimmten Schwelle. Das ist vielleicht nicht zu vermeiden. Wir sollten möglich in der Lage sein, große Angriffe herausfinden zu können. Um dann die Wahl in einigen Wochen wiederholen zu können, wenn ein Beweis eines großen Missbrauchs zu finden sind. Schon an diesem Punkt haben wir festgestellt, in einem Internetsystem werden wir nicht in der Lage sein, das 100 % sicherlich zu machen. People werden gehackt werden. Es gibt Malware, aber auf einem bestimmten Level sollte es möglich sein, Angriffe zu entdecken. Es gibt einige Argumente gegen die Internetwahlen und elektronische Wahlen im Allgemeinen. Transparenz und Nachweisbarkeit, wo wir gerade so gesprochen haben. Das ist schwer zu lösen. Das Hauptargument in der öffentlichen Diskussion in Norwegen war darüber, dass man in einem unkontrollierten Umwelt wählt und nicht in einem kontrollierten System wie in einem Wahllokal. Es gab auch in der öffentlichen Diskussion eine demokratische Zeremonie, die sehr hochgeschätzt wird. Ich denke, ich weiß nicht, wie weit sich das anwenden lässt. Zumindest für einige, dass zur Wahl gehen, ist eine demokratische Zeremonie, die sehr hochgeschätzt wird. Das ist ein valides Argument. Am Anfang in der ersten Risikoanalyse wurde Hacking im Allgemeinen gedacht. Aber es gibt spezielle Angriffe, die wir bedachten müssen. Es gibt einige Angriffe, die in den letzten Jahren besonders gestiegen sind. Norwegen als Land hat sehr schlechte diplomatische Verbindungen zu China und Russland. Man könnte glauben, dass jemand versuchen könnte, die Wahl zu beeinflussen. Das ist eindeutig eine Bedrohung für ein Online-System. Ich habe das kryptografische Protokoll erneut, aber ich werde da nicht ins Detail gehen, weil wir sonst eine Stunde darüber zusammenhalten können. Das ist sicherlich interessant für einen Kryptonörd wie mich, aber das könnte etwas zu speziell sein. Das ist ein Standard-Wahl-Protokoll. Es verwendet die Elgamal-Verschlüsselung mit homomorphischen Eigenschaften des Elgamalsystems, um die Wahlzeiten zu verschlüsseln. Sie verschlüsseln die Wähler die Wahlabsicht mit Elgamal und berechnen dann die Elemente an Berechnung auf den Cypher-Text. Um dann zwischen jedem Schritt in der Prozesskette werden Schnorr-Signaturen mit einem Zero-Knowledge-Basis und dann werden verschiedene Systeme eingesetzt, um den Wähler von seinem Wahlzettel zu trennen. Wir haben versucht die Verschlüsselung zu trennen, damit die einzelnen miteinander arbeiten müssten, um eine Verschlüsselung zu brechen. Das ist geschrieben in einigen öffentlichen Papers von Kirsten. Ich denke, das ist ein sehr gutes Protokoll. Also kommen wir jetzt zu den Wahllauf in 2013 im Internetwahl. Wir haben das in 12 von 428 Kommunen versucht. Die sind grün auf der Karte markiert. Das kommt etwa auf 250.000 Wähler hinaus, die etwa 70.000 Stimmen abgegeben haben. Die Internetseite ist so, also die Startseite. Da gibt es eine Linkenseite, eine Spalte, die allgemein die Internetwahl beschreibt, Informationen darüber, wie man wählt und ein Video gibt es dazu auch. Da gibt es Informationen darüber, weil geheim sein sollte, und man allein sein sollte, wenn man die Stimme abgebt. Das Ganze ist auf einer öffentlichen Infrastruktur aufgebaut. Es ist ein Hardware-Token, das verwendet für die Verschlüsselung. Dann gibt es zwei Feedback-Mechanismen für den Wähler. Nachdem man online gewählt hat, bekommt man ein SMS mit der man auf einer Liste nachsehen kann. Und auf der Voting-Karte, die man in der Mail bekommt, und der eigene Wahlzettel dort enthalten ist. Das ist eine der grundlegenden Sicherheitsfeatures. Sodass die die Person nicht zum Wahlzettel verbunden werden kann Die Idee, das war eine Liste auf Hash, sollte auf GitHub veröffentlicht werden, sodass während das Zählen könnte man sein Hash verifizieren und sehen, ob es in der List ist, die veröffentlicht ist. Und so, das war die Web App, die liefern genug Linux. Es ist ein Java-Applikation an der back-end Java. In 2013 die Fronten war Javascript und HTML. Es war ziemlich viel Javascript-Crypto, der da stattgefunden hat. Der Projekt hatte ein paar mehr Sicherheits-Fitsches. Ich habe schon über die Feedback-Mechanismen gesprochen. Es gab auch Wahlmonitoren, die verfolgt haben, was die Leute da gemacht haben. Ich denke, kein Problem war, auf diese Verfahren war. Die Wahlmonitoren wissen nicht langsamer, was die Operatoren, die Reintippen im System das was sie tun. Weil die Interface ist ziemlich schwierig. Der Kurz-Source für die Wahlsystem war öffentlich. Es ist unter appropriaterer Lizenz vom Regierung, aber zumindest haben sie das online veröffentlicht. Die haben schon dritte Anbieter, Kontraktoren, um diese Lösung zu auditieren. Es gab einen Web-Sicherheit-Test am Frontend. Es gab die externe Review der Crypto. Das war mein Job. Und es war eigentlich eine unabhängige dritte Partie Implementation und das zählmodul. Das heißt, die hatten zwei independente Implementationen der Zählsystem, die parallel am selben Daten-Z gelaufen sind. Also die Idee war, dass, falls irgendjemand versucht, das zu verfälschen an der System, es würde trotzdem diese andere, der nicht sabotiert ist. Und das ganze technische System war monitort mit Splunk. Also die Lokale Logs wurden gesammelt zu einem anderen System in eine andere Sicherheitszone. Also die haben ziemlich viel darüber gesprochen. Und fünf Tage vor dem Wahl waren Crypto-Berg. Und der Text sagt, das ist von, das ist von der Region Newspaper. Es gibt ein Fehler in der E-Wahlen. Und was passiert ist, ist, dass die verschlüsselte Stimmzeit der Wähler, die haben eigentlich Informationen über den Plentext wegen dieser Burg beinhaltet und wegen den Sicherheitsleihers, TLS, SSL, die Wahlen waren gespeichert und ein sicherer System, hoffentlich bedeutete, diese Informationen sollten nicht rauskommen. Aber ein Sicherheitslehrer war kaputt. Und eine Kombination von Glück und Vorbereitung, aber sichergestellt, dass keine Wahl eigentlich rausgelegt ist. Aber wir werden nochmal über diese Burg ein bisschen später sprechen. Und was passiert 2014? Der Projekt beendet. Und die Regierung hat entschieden nach einer Evaluation von politischen Wissenschaftlern. Die haben sich die Aspekte der Verfügbarkeit und der beliebte Kabeljunge Wähler angesehen. Die haben gefunden, dass Internetvoting war populär unter den Wählern. Aber die Beteiligung hat sich nicht wirklich geändert. Und die Online-Wähler waren dieselbe Bevölkerungsschicht, als die Wähler, die normalwählen. Also das Projekt wurde beendet. Und die BBC hat diese Geschichte, ein paar Tage später veröffentlicht. Also das Press-Release hat hauptsächlich betont, dass es Sicherheitsprobleme gab. Und es hat aber auch gesagt, dass viele Wähler keine Ahnung hatten vom Sicherheitsmechanismus im System. Und so die BBC hat es so dargestellt, und die Regierung fand es nicht so, diese Angel nicht so toll, als hätte die BBC das nicht verstanden. Und es ist ziemlich interessant, was die norwegische Regierung hier sagt. Norwegen hat eine große Tradition, um Konsens zu suchen in allen Sachen, die die Wahl angeht. Und wir hatten keine politische Wille um Internetvoting, bla bla bla. Wir haben uns entschieden, keine öffentliche Funds für diese Ressource, für diese Pilot weiterzuverwenden. Und das ist der Statement, dass die Regierung rausgebracht hat. Internetvoting war kontroversial in die verschiedenen Stakeholder. Aber es war auch ein sehr interessanter, wichtiger Thema. Nach den 2013 Wählen, es gab eine Änderung in Regierung. Und so in 2014, wenn die Evaluation fertig war, die einfach, dass die Wahrheit ist, keine große politische Wille. Es ist auch eine politische Schlapp-Schnappig. Warum einfach Geld an diesem Pilot geben? Es hat nicht mit der Technologie zu tun. Es hat nicht mit den Fakten, die während der Experimente gefunden sind. Es ist einfach praktisch. Du hast einfach eine gute Entschuldigung. Du kannst das Geld woanders verwenden. Und so die nächste Sache, die ich jetzt schaue, ist, wie ist es zu diesem Experiment in 2013 gekommen? Diese Time slot ist nicht 100 pro richtig, aber das ist nah genug. In 2004, die Regierung damals hat angefangen, eine Marbaracatsstudie über elektronische Voting und Onlinevoting und Onlinewahlen. Aber es gab nicht wirklich eine riesen Enthusiasmus, so weit ich weiß. Es war damals 2005, es gab eine Parlamentewahl und eine neue Regierung. Manche Parteien, es war eine Koalition mit drei Parteien, manche Parteien waren ziemlich interessiert mit Internetwahlen. Und dann es gab Champions in Government, es gab diese Marbaracatsstudie, die wieder hochgepoppt ist. Und alles kam von da und ging ins Rollen. Ich habe ein bisschen in diese Elektronikmanifests von 2005 geschaut und ein der Parteien sagt, es muss einfacher zu sein, zu wählen. Studenten und Schüler sollen wählen können, wo sie studieren. Es muss offen sein, elektronische Voting für alle Wähler. Und das war deren Parteienmanifesto in 2005. Und anscheinend haben sie es geschafft, diese Balancerolle zu bringen, weil es gab Leute, die Bock darauf hatten. Und 2006 haben sie die Ergebnisse dieser Marbaracatsstudie bekommen. Und das sagte der State of the Art in 2006. 200 Seiten Report in Norwege mit vielen Informationen über Erfahrungen mit anderen Ländern, z.B. Es hatte auch ein sehr, sehr hoher Bedrohungsassessment. Es war, es betrachtet einfach Hacking allgemein. Aber das war 2004, 2005, 2006. Diese Studie wurde verbreitet. Und 2008, das kann man letztens rollen, die kriegten etwa Gelder, die haben angefangen zu spezifizieren, die Use Cases, die Anforderungen. In 2009 haben sie einen Auftragnehmer gehabt, eigentlich für verschiedene Systeme. Die Ziele an diesem Punkt waren, mache einen Pilot und mit der Prototyp, damit er es bereit ist, 2017. Die initiale Version war fertig in Sommer 2011. Es ist witzig, weil ein paar Jahre und 2010 merken die Leute, wir werden Internetwahl nächstes Jahr haben. Das ist ziemlich interessant. Es gab ein bisschen öffentliche Debatte, aber bei dem Punkt, die Mächte, die da im Rollen gekommen sind, waren schon so weit vorangeschritten. Das war schon entschieden. Also es gab ziemlich viele skeptische Leute. Und durch die politische Bank, einer der meistbekanntesten politischen Kräfte in Norwegen, waren nicht ein Unterstützer von dieser Regierung, der das gemacht hat. Er hat gesagt einfach, Internetvoting ist gegen Menschenrechte. Auf jeden Fall, im 2011 hatten wir lokale Wahlen. Da gab es einige, so wie immer, dieser Art von Versuchen mit komplizierten technischen Systemen. Da gab es einige Bugs. Einige der Hauptprobleme waren eigentlich, diese Rückmeldung auszudrucken. Da gab es einige Fehldrucke. Und dann gab es diesen Fakt, dass dieser Terroristanschlag einige Wochen vor dem Wahlen war. Und die Server, auf denen wir die Wahl durchführen wollten, wurden als Teil des Tatorts runtergefahren. Und es war ziemlich unangenehm, an die Server heranzukommen. Am Ende gab es 27.500 Wähler, die über das Internet gewählt haben. Es war ein Erfolg. Und die Studie zeigt, dass die Internetwähler ziemlich ähnlich der gesamten Bevölkerung waren. Allerdings in Norwegen gibt es einige Möglichkeiten, den Stimmzettel in verschiedenen Wegen zu verändern. Und viele der Internetwähler waren aktiver darin, den Wahlzettel zu verändern, weil es anscheinend einfacher ist, das im Online zu machen als eine realen Welt. Es gab neun ungültige Stimmen. Ich weiß nicht genau, wie das passieren konnte. Aber eigentlich ist das eine sehr niedrige Zahl. Normalerweise ist das so zwischen einem halben und fünf Prozent der abgegebenen Stimmen. So eigentlich, selbst mit den Papierwahlen ist diese Zahl recht hoch. Nach 2011 wurde entschieden, das Projekt vorzuführen mit einem einzigen Softwareverkäufer. Wir haben einige technische Verbesserungen gemacht für bessere Anonymisierung unter anderem. Aus dem haben wir den Client verbessert, was 2011 ein Java-Applet war. Und dann haben wir gesagt, ein Java-Applet war nicht mehr wirklich cool. Also 2013 haben wir das gemacht mit JavaScript-Kryptografie, denn JavaScript ist wirklich cool. Und so 2013 waren wir da, wo wir wieder angefangen hatten, mit Wahlen in zwölf Kommunen, mit mehr als 70.000 Wahlzetteln, die in Höhe von Online abgegeben wurden. Und nach der Wahl gab es einen Wechsel der Regierung. Und es gab einige Dinge, die ziemlich gut gelaufen sind in diesem Versuch. Technisch hat das System sehr gut funktioniert, in dem Sinne, dass es keine signifikanten Performance oder Erreichbarkeitsprobleme gab. Es gab einige kaputtgegangene oder ungeltige Stimmzettel. Es gab ein Audit der Logs, die gezeigt haben, dass nichts schiefgegangen ist. Es gab einige Probleme unterwegs. Aber zumindest hat niemand irgendwelche, irgendwas entdeckt, worüber sie vorher nicht überlegt hatten. Auf der anderen Seite, da gab es einige schwierige Teile. Da gibt es eine Balance zwischen Sicherheit und Verifizierbarkeit bzw. Testbarkeit. Zum Beispiel die Tatsache, dass es sehr schwer ist, Laufzeitüberwachung zu geben wegen der Sicherheitsbedenken, die Wahlzettel und die Rückmeldungskots. Da gab es einige Hardware-Artifakte. Das Schlüsselmanagement ist ziemlich schwierig. Ein großes Problem ist, dass die Wähler die Sicherheitsmechanismen verstehen und verstehen, was an vorgeht. Es gab einige Menschen, die die Return-Codes verprüft haben und die Hashes sich angeguckt haben. Das ist verständlich. Auf der anderen Seite, das bedeutet, dass diese Mechanismen haben zu haben, bedeutet nicht, dass die Menschen das auch verwenden. Es gab eine Fishing-Demonstration in 2011 als ein Experiment unter kontrollierten Bedingungen bei einem Universität. Da gab es diese Fishing-Seite, die genauso wie die richtige Seite ausgesehen hat und die haben versucht, Informationen über die Return-Codes von den Wählern zu bekommen. Das ist das Schlüssel-Element, das den Wähler zu der SMS verbindet. Das war kein Problem. Denn Fishing funktioniert ja richtig. Man hat diese Art von Problem. Man hat diesen ganzen Komplex über sichere Softwareentwicklung und ein Online-System zu fahren, um das sicher zu halten. Das ist eigentlich ziemlich schwierig. Deswegen, vor der Wahl 2013, wurde entschieden, einen technischen Review zu machen. Der Quellcode war öffentlich. Es hat nicht besonders viel öffentlichen Rückmeldung gegeben. Nach der Tatsache wurde der Internet an Hard-Bleed auftauchte dieses Jahr. Man hat in OpenSNL diesen sicherheitsrelevanten Code, der öffentlich ist, aber die Geschwelle, dass jemand tatsächlich darauf guckt, ist ziemlich hoch. Es gab einige Ausnahmen, zum Beispiel dieses Fishing-Experiment, über das ich gesprochen habe. Es gab einen sehr wichtigen Code über die Code-Qualität. Es gab einige Wissenschaftler, die das durchgeführt haben und die hatten einige Meldungen und die haben einige Sachen gefunden und haben festgestellt, dass der Quellcode vielleicht nicht besonders gut ist. Sie wollten mehr Informationen. Ich habe dieses Assignment bekommen, die die kryptographischen Verfahrensabzüge anzusehen. Es gab einige Beschränkungen in diesem Review. Einige Beschränkungen waren der Zeitrahmen. Es war Dezember 2013 und die Wahl war im September. Wenn wir etwas gefunden hätten und etwas darüber dagegen machen sollten, war der Zeitrahmen ziemlich kurz. Es gab auch eine Begrenzung an der Manpower, weil ich war ein Manpower von Norwegen und ich war alleine und man sollte vielleicht mehr Arbeit darin schlägen. Ich habe diese Aufgabe bekommen und wie sieht das jetzt aus? Ich habe mir erst mal den Code vorgenommen und dann habe ich versucht den Code zu bauen und habe festgestellt, dass der Code sich nicht bauen ließ. Offensichtlich gab es da einige Zugriffsprobleme mit dem Repository. Es ist schön, das online zu haben, aber das war begrenzt. Der Hauptfokus war nicht, dass es mitten im Sommer dort ist. Dann habe ich eine Systemdokumontation geschaut und es sah so aus. Es ist ein Problem, dass für Sicherheitssysteme, du willst das einfach behalten. Für Internetvoting willst du das ein bisschen schwieriger machen, weil du willst alles getrennt halten. Hier haben wir jede Menge Systeme, die wir verschiedene Dinge machen. Manche hier, große Komplexität hier. Du schaust den Code genau an 200.000 Linien Zeilen Java und es ist Source Code. Das ist keine Kommentarkommen, keine Lehrzeichen, keine JUnit-Test und die Modul, die nicht wirklich benutzt werden, die sind auch raus. Also, das ist ziemlich groß. Es ist Code, das ist das Projekt. Es sind keine Libraries. Es ist ungefähr Größe, als ich das Qualcode geschaut habe. Ich hatte Schwierigkeiten zu sehen, es sei dieser Java-Klasse Teil von der produktiven Systeme oder nicht. Das war ein bisschen schwierig rauszufinden. Und ich hätte immer wieder derselbe Problem. Ein Level-Beschreibung des Systems, Source Code, wie verlinkt man beide? Das war nicht besonders gut dokumentiert. Also, nächste Sache, okay, du machst automatisierte Tools da drauf und das sind für Parts der Codebasis. Ich weiß nicht, ob ihr das lesen kann, aber mehrere Hundert Bugs gefunden. Okay, das ist vielleicht nicht kritisch. Aber man merkt, dass die automatische Tools nicht proaktiv benutzt. Also, das Schwierige ist, du kriegst so viele Warnungen, du kannst nicht sagen, welche ernsthaft sind und welche können ignoriert werden. Und es sieht so perfekt. Nur von dieser Hochlevel-Analyse kriegt man eine Idee. Die Komplexität dieser Sicherheitssystem ist ziemlich hoch. Um das zusammenzufassen von dieser Kurzafari, was gefunden wurde, es gibt Schwierigkeiten mit der Trennung zwischen die Sicherheitslogik und die Business-Logik, also das Implementierung des Wahlprozesses. Wie früher gesagt, ich hatte Schwierigkeiten, das Mapping zwischen den High-Level-Design und der Codebasis, weil die aber in Dependance-Injection sind. Und es war schwierig, das Code zu lesen und zu wissen, was passiert, weil es gab in die Konfiguration so viel Abhängigkeiten. Im Grunde, es ist wirklich harte Arbeit, nur durch den Code durchzuwuseln. Mein Fokus war nicht der Code selbst, aber die Krypto. Es gibt viele Krypto da drin. Sehr viele niedrige Level-Krypto. Es ist klar, dass die Entwickler, die das gemacht haben, die wissen schon viel über Krypto. Aber wenn man diese Copy-Paste Entwicklung hat, also Code überall und es ist nicht konsistent und es ist schwierig zu auditieren. Es ist sehr schwer zu prüfen und dann kriege man die Trennung zwischen etwas, was sehr sicher ist, auf einem Sichtspiel oder etwas, was nicht sicher ist, kriege man die Trennung nicht so ganz so scharf. Also ein Beispiel war, das kann ich vielleicht auch später erzählen. Es gibt auch ganz diese Enterprise-Software-Syndrom. Ich habe an großen Enterprise-Software-Projekte gearbeitet und das sah verdächtig nein davon. Es ist schwierig, dazu zu zwingen, dass Qualitätsmethoden durchgeführt werden in diese Art von Codebase. Es ist schwierig zu sagen, was der richtige Qualitätslevel ist, was durchgeführt werden soll. Schauen wir uns andere Bugs. Das ist Code in einem Method-Syndrom-Syndrom-System, um zu exporten zu einem Festplattor. Es ist ein Developer, der das gemacht hat. Die benutzen eine Inkruption, die nicht mehr verfügbar ist. Das ist vernünftig. Vielleicht wäre was anderes besser gewesen, aber es gibt ein Feedback-Mode, das ist interessant, das ist nicht illegal. Was haben wir? Wir haben eine Interaktion von 2, das ist schwierig. Du brauchst etwas mit 10.000 Interaktionen. Das Passwort wird sehr leicht zu knacken mit Brutforce. Die statiker Vektoren, die Inkruption waren nicht sicher. Man sollte wirklich keine statische Vektoren benutzen. Es gibt die Inkonsistenz. Das Padding benutzen Sie CBC-Mode und PKS-5 Padding. Es ist unterschiedlich. Und andere Bugs verbunden mit dem Shamir-Secret Sharing, das ist wirklich sicher, weil man es richtig implementiert. Es ist mathematisch, man kann es beweisen. Wenn es mit richtigem Random-Nummer und die richtige Parameter gewählt werden, dann ist es mathematisch bewiesen, das ist unknackbar. Das ist eine Krypto-Vulnerabilität, die ausgenutzt werden kann. Aber wer weiß, man müsste es genauer anschauen. Es gibt ein paar Merkwürdigkeiten. Die benutzen eine D5 an eine Stelle für eine temporäre File-Integrität. Aber die sagen es ist wirklich nicht wirklich wichtig an dieser Stelle. Und ich sagte, nein, aber er sollte trotzdem nicht MD5 benutzen. Es gab eine sehr merkwürdige Custom-Implementierung von Datenumfang. Es gab Customcode. Es war ein Audit-Logger. Ich habe gesehen, dieses Secure Audit-Logger ist nicht sicher gegen Abschnitt. Aber in diesem Fall, es war ein Problem, dass es kein Krypto-Problem war. Die haben Logs und Fly gesammelt. Und auch wenn man Logs und Server abschneiden kann, dann hat man trotzdem ein Problem. Die haben darüber gedacht, aber ja. Während der Schlüssel generiert wurde, es gab sicherheitsrelevante Plantex, was in der Felsplatte geschrieben war. Nein, das wäre auf ein sicheres Service. Es wäre sowieso schwierig, daran zu bekommen. Aber trotzdem. Und es gibt Secure Random, das nicht explizit initialisiert wird. Also man muss sich davon vertrauen, dass eine Java-Implimentation richtig gesetzt ist. Und ein kritischer Im-Crypton-Back, das wirklich einen Einfluss auf die Wahlprozess hatte. Das war in JavaScript in einem Krypto-Klein. Also nicht etwas, was ich auditiert habe. Aber ehrlich gesagt, ich hätte es auch nicht gefunden, dass ich auditiert hätte, wenn ich auditiert hätte. Es ist ein Problem mit schlechter Random-Nummer. Und was es bedeutete, 30.000 Waldsettel gehen durch dieselbe Randomität an der Stelle von verschiedenen Randomitäten. Das war ein Problem mit dem redundanten Waldstimmensäler. Also zusammengefasst ein paar Gedanken. Was ich gemacht habe, war ein einfacher Source-Code-Analyse. Der System ist wirklich zu komplex, um so verifiziert zu werden. Um mehr realistische Tests zu machen, müsste man versuchen, herausfinden, welche Interface du benutzen kannst, um spielen. Also, so denke ich nicht, dass jemand all das getestet hat, die die Widerstandsfähigkeit gegen mal wäre, Angriffe oder andere Eindringen, anderes Eindringen. Es ist das Projekt, haben wir drüber gesprochen. Sie wollten das auf einem nationalen Level machen. Aber für den Test haben sie einige Dokumentationen gemacht, aber das ging nicht durch den Verifikationsprozess. Es gab ein Problem mit der späten Code-Lieferung. Es gab diesen Freeze. Das wurde kritisiert von der OECD. Wie kann man die technische Community einbeihunden? Eine übliche Reaktion ist, nein, ich will daran nicht teilnehmen, ich möchte nicht draufschauen. Aber das bedeutet auch, es gibt eine hohe Barriere, um da reinzukommen. Selbst für Techies, wenn du versuchst, da mit reinzukommen, dauert das ziemlich lange und es braucht viel Arbeit, um zu verstehen, was da vor sich geht. Das ist schwer damit zu arbeiten. Es wäre gut gewesen, wenn das Projekt Anreize geschaffen hätte, dafür die Leute um daran teilzunehmen. Es gibt auch eine Sprachbarriere. Selbst wenn die Quellkode-Dokumentation auf Englisch ist, sehr viel Diskurs und Kontext ist in Norwegen. Und Norwegen ist ein kleines Land und die Leute verfolgen nicht unbedingt, was in Norwegen passiert und es ist ein bisschen unter dem Radar durchgeschlüpft. Ist das jetzt das Ende von Internetwahlen in Norwegen für jetzt? Internetwahlen gruseln mich, aber ich habe ein bisschen gemischte Gefühle darüber. Das ist, glaube ich, ein ziemlich guter Versuch, das richtig hinzukriegen. Wir haben das Wissen nicht verloren, die Leute, die daran gearbeitet haben. Und als ich diesen Talks versucht vorzubereiten, wurde es immer schwerer, die Dokumente zu finden, weil die Link veraltet sind. Wir haben jetzt elektronische Wahlen in Norwegen und das wurde noch nicht so stark von der Community angeschaut. Internet und elektronische Wahlen sind auf der Agenda woanders auch. Und das war es jetzt von mir. Ich danke euch, dass ihr da wart. Und jetzt haben wir noch etwa zehn Minuten für Fragen und Antworten. Wenn ihr Fragen habt, stellt euch bitte an die Mikrofone. Haben wir Fragen vom Internet? Ja, haben wir. Ja, nachdem die Wahl, wie kommen die Wähler davon abhalten, Stimmen in der nächsten Mal wieder abzugeben. Also die Frage war, die Riternkurs, die gesendet wurden per SMS, ändern sie sich während die Elektion, ob das eine Möglichkeit von Wahlverkauf anbieten würde? Ich glaube nicht, ich habe diese Voting Card nicht gesehen, die wurde nur gegeben in die Kommunen, wo sie diese Experimente durchgeführt haben. Mein Verständnis war, es war ein Unique Random Code für jede Partie an dem Stimmzettel und der für diese Wähler gültig war, die er dann per SMS bekommen hat. Und dann könntest du der SMS mit dem Papier gegenüberstellen. Und ich habe nicht wirklich viel Zeit verbracht, dieses Szenario durchzuprüfen. Ich denke, das größte Frage, das war, du könntest immer wählen, die Election Day an einem Papier ankreuzen, also auch. Bitte, die, die rausgehen, ruhig sein. Haben Online-Wähler für unterschiedliche Stimmen parteingestimmt als die normalen Wähler? Denn das könnte das Ende des Projektes erklären. Die Frage, ob die Online-Wortern, aber für andere Parteien als die Online-Wortern, sondern so, soweit wir determinieren könnten, die Antwort ist Nein. Die Statistik hat gezeigt, die waren sehr ähnlich, sowohl national als auch lokal in die verschiedenen Kommunen. Also, es war nicht eine signifikante Unterschiede, der nicht erklärbar wäre mit anderen Faktoren. Okay, question from one. Ja, ich bin just wondering, was war die Prozedur für die Auswahl, wer das System bauen sollte, im Vergleich dazu, wer das Programmieren sollte, wer waren die Menschen, die da involviert waren, was waren die Faktoren in dem Auswahlprozess? Man könnte sagen, das ist ein ziemlich sensitives System. Die Sicherheitssysteme wollen vielleicht um die Programmierung schauen. Der Zufalls-Zahlen-Generator wäre ziemlich einfach, da reinzukommen, wenn man weiß, was man tut. Also, die Frage, gab es an Evaluationen von den Gesellschaften, die diese Softwareimplementation gemacht haben. Ich weiß nicht. Die Hauptkompanie, die das gemacht hat, die Hauptfirma, war nicht Norweger, aber ich werde sie nicht nennen. Aber das ist alles öffentlich, das könnt ihr online finden, aber ich werde jetzt keinen Namen geben. Aber ob die Nationale Sicherheitsagentur und das geprüft haben, weiß ich. Es gab fünf Firmen, die für diesen Kontakt sie beworben haben. Ich weiß nicht viel über diesen konkreten Prozess der Auswahl. Erstens, danke für den Talk. Das war sehr interessant. Ich habe eine Frage. Du hast erwähnt, dass da neun ungültige Stimmen waren. Wenn ich einen Papierwahl habe, dann kann ich das absichtlich ungültig machen. Und dieser neuen ungültige Stamm war das, weil man weiß es nicht. Oder hat das jemand, weil da jemand drei Kreuze statt zwei. Eine Frage aus dem Internet. Gab es da eine, irgendwelche Studien von Nutzern oder Wählern, ob die das Sicherheitssystem verstanden haben oder gab es da irgendwelche Berichte im Englisch? Also die Frage war, gab es Studien, ob die Nutzern die Sicherheitsstandards verstanden haben oder gab es eine Studie in Englisch? Die Antwort ist ja zu beidem. Die meiste technische Dokumentation über dieses System ist verfügbar in Englisch und auch ob die politische Wissenschaft, das ist vielleicht nicht in Englisch verfügbar. Es würde mehrere Benutzerstudien, Benutzbarkeit, Studien und auch Verhaltensbeobachtung, Verifikationsmechanismen, die ich denke ist auch der Ursprung zu der Tatsache, dass ein paar Wähler das geprüft, aber nicht viele. Wie viele Prozent der Wähler sollen diese manuelle Verifikation um eine statistische Garantie zu haben? Ich weiß nicht. Gibt es da einige Gegenmaßnahmen gegen einen Insight-Angreifer? Kann der Wähler verifizieren, ob da keine zusätzlichen Stimmen abgegeben wurden oder hinzugefügt wurden? Ich denke, die Wähler könnten prüfen, solange sie bekommen ein SMS für diese Nummer. Aber für Insight-Attacken, wir hatten Beobachter und auch die Tatsache, dass sie diese geheimen Schlüssel verteilen. Es gab auch Zugriffskontrolle und so weiter und so fort. Es gab eine physische Sicherheit an dem Standort selbst. Ich habe mich gefragt, ob sie tatsächlich gehen auf andere Systeme, die wir stehen, oder ob du hat dir andere Systeme angesehen hast. Vielleicht glaubst du, dass es eine gute Idee ist, zu versuchen, ein System zu entwickeln, das nicht diese Fehler hat. Die Frage ist, ob ich mir andere Systeme geschaut habe, ob sie andere Systeme geschaut haben, ist es eine gute Idee, das zu tun. Der Projekt hat sich schon andere Systeme angeschaut, sowohl im Jahr 2006 als auch im Jahr vorher, als auch im Jahr vor dem Start des Projekts selbst. Ich hatte nicht die Gelegenheit, andere Systeme zu schauen, als ich mir das angeschaut habe, weil ich hatte wenig Zeit. Aber natürlich, es ist mir alles sehr bekannt, diese E-Voting in Estonia ist mir bekannt. Ich denke nicht, dass es eine gute Idee ist, weil ich denke, um in diesem Message rauszubringen, man muss auf einen technologischen, aber auch Richtlinien, Politik, Leben nach. Das ist eine Frage von Nico von Zwei. Ja, ich habe mich gefragt, ob du irgendwelche Ideen hast über Änderungen im Sprachfloh, und wie sich das auf die Codequalität auswirkt. Ich denke, von meinem Standpunkt als ein Kryptografer und Ingenieur, mein Perspektiv wäre, zu versuchen, zu isolieren und entkapsulieren der Kryptografik-Krypto-Code so viel wie möglich. Mehr allgemein gesehen, für hohe Softwarequalität, für hohe Codequalität. Ich bin wahrscheinlich nicht die Person, die diese...