Bezpečné online hlasování je možné. Toto je Jak

Volební právo je posvátné. Je nezbytné žít ve svobodné společnosti a vybrat vítěze na [The Voice (https://www.nbc.com/the-voice). Bohužel, volební právo je celosvětově napadeno a špatní herci k tomu využívají techniku. Rusko zasahovalo do referenda o brexitu ve Spojeném království a do voleb tam, na Ukrajině, ve Francii a slavně zde ve Spojených státech, i když to píšu, tím, že nabouralo hlasovací stroje a databáze registrace voličů a manipulovalo se sociálními médii. Ostatní zahraniční státní aktéři zasahují do voleb podobnými, ne-li tak agresivními způsoby.

Mezitím, v našich vlastních hranicích, tady doma, státní zákonodárný sbor v Severní Karolíně používal datovou vědu s „chirurgickou přesností“ ke zmanipulování státních voleb na úkor ústavních práv voličů. Severní Karolína není téměř sama. V roce 2018 měl v Gruzii ministr zahraničí, který kandidoval na guvernéra, pravomoc dohlížet na své vlastní volby a zorganizoval složitou síť korupce, která ve skutečnosti podpořila bezpečnostní zranitelnost a vyvrcholila jeho vlastním dechberoucím vymazáním volebních serverů a záloh. .

Pokud těmto politikům tolik vadí zodpovědnost, měli by pracovat v meteorologii nebo v rádiu sportovních diskuzí.

Ještě horší je, že soudy, včetně odvolacího soudu pátého obvodu v Texasu a Nejvyššího soudu, odmítly zůstat nad politikou, jak by soudnictví mělo, a místo toho se rozhodly legitimizovat tyto špatné aktéry.

Nemůžeme zapomenout ani na kriminální žoldáky, jak jsme také viděli, když Microsoft sejmul Trickbota ve snaze infikovat volební infrastrukturu ransomwarem.

Cíle se liší. Zasít chaos. Zasít nedůvěru k volebnímu procesu. Překonávat vůli voličů. Abychom zachovali mocenské struktury. Změnit cíle americké politiky. Vydělat peníze.

Bez ohledu na účel těchto útoků na volební právo jsou ostudné a systémové chyby to všechno umožňují:

  • Nedostatek transparentnosti, protože výrobci s problematickým střetem zájmů vyrábějí uzavřené, proprietární hlasovací stroje.
  • Nedostatek znalostí nebo zájmu o vzory moderní softwarové architektury, osvědčené inženýrské postupy, strategie uživatelského rozhraní, moderní technologie, dostupnost a dobrou hygienu zabezpečení
  • Nedostatek školení zaměstnanců v používání a údržbě dostupné technologie hlasování
  • Nedostatek finančních prostředků pro úředníky jednající v dobré víře, že vybudují robustní volební infrastrukturu
  • Nedostatek kontroly přístupu, která by zabránila tomu, aby úředníci jednali špatně víry z vykonávání nepatřičného vlivu na infrastrukturu pro nekalé účely
  • Nedostatek standardů NIST, DHS a dalších vládních institucí pro infrastrukturu hlasování

A mnoho dalších. Můžete si přečíst o hrozbách a základních hodnotách zabezpečené online volební platformy definované skupinou odborníků.

Kvůli těmto systémovým problémům jsou vysoké sázky při volbě úředníků, kteří budou rozhodovat o životě a smrti v éře COVID, dechberoucí neschopnost a trapné selhání „moderních“ volebních aplikací, jako je IowaReporterApp, a strach z neúnavných útoků ze strany v celém národě a ve světě jsme nyní na místě, kde panuje shoda, že jediným bezpečným způsobem hlasování jsou papírové hlasovací lístky. Nemluvě o zranitelnostech spojených s papírovými hlasovacími lístky. Nebo otázka přístupu k voličům
k těm papírovým hlasovacím lístkům, které jsou samo o sobě plné argumentů ve zlé víře a rasismu.

Je snadné, i když je to hluboké zklamání, vidět, jak jsme se sem dostali, ale opravdu to tak nemusí být.

Vlastnosti moderního hlasování

Existuje starý vtip:

Řekl jsem doktorovi, že to bolí, když to dělám. Řekl:"Tak to nedělej!"

Abychom mohli vybudovat moderní řešení hlasování, musíme se podívat na problémy se stávajícími řešeními hlasování a „nedělat je“.
Věřím, že bezpečné online hlasování musí mít několik důležitých funkcí.

Open Source (co nejvíce)

Ve světě absurdních konspiračních teorií a legitimních střetů zájmů prodejců hlasovacích strojů musí být jádro řešení open-source. Každý řádek kódu musí být dostupný všem zúčastněným stranám – médiím, voleným úředníkům, volebním právníkům, bezpečnostním analytikům a především voličům – aby měli důvěru v bezpečnost a integritu softwaru, a tedy i ve výsledky voleb.

Brzy uvidíme, že může být nutné začlenit některá komerční řešení, která jsou uzavřená, ale ta by měla být na okraji. Neměla by existovat žádná základní funkce, která by nebyla dostupná všem.

Dalším důvodem, proč si cenit open source, je to, že mise tak důležitá, jako je tato, vyžaduje různé zkušenosti a úhly pohledu – na zkušenosti s hlasováním, minulá selhání softwaru, předsudky, architektonické vzory, technologické zásobníky, potenciální zranitelnosti a cokoli dalšího, co potřebujeme pochopit, abychom vytvořili to nejlepší. je možná online volební platforma.

Nulová důvěra

Každý státní volební systém v Americe je založen na obvodu. Všechno je to o firewallech. Zabezpečení na základě perimetru je chybné, protože jakmile se dovnitř vetřelci dostanou, což, jak jsme znovu a znovu viděli, není úplně nemožné, nelze je zastavit. Místo toho potřebujeme přístup k bezpečnosti s nulovou důvěrou. Nechám Chrise Gerritze vysvětlit, co to znamená:

Místo toho, abyste se marně pokoušeli postavit překážky kompromisu, Nulová důvěra předpokládá, že jste byli kompromitováni . Tato pozice vyžaduje autentizaci a autorizaci v každém bodě interakce. Je to více práce, ale je nutné minimalizovat zranitelnost vůči moderním, sofistikovaným útokům.

Myslete na Zero Trust jako na bezpečný hotel. Potřebujete svůj klíč, abyste se dostali do budovy, abyste se dostali přes ostrahu recepce, abyste vyjeli výtahem do svého patra a pouze do svého patra a nakonec do svého pokoje nebo do tělocvičny nebo do bazénu. Dokonce i uvnitř vašeho pokoje musíte být ověřeni, abyste mohli přistupovat k WiFi nebo používat trezor.

Pokroky v technologii umožňují nulovou důvěru a moderní řešení hlasování posílí nulovou důvěru, aby bylo zajištěno, že každá interakce s každou komponentou architektury vyžaduje ověření a důkladné prověření privilegií a integrity.

Transparentní a auditovatelné

Zatímco zdrojový kód bude plně transparentní, aby každému poskytl důvěru v integritu a spravedlivost výsledků voleb, potřebujeme, aby se tato transparentnost rozšířila i na běhový provoz softwaru. Potřebujeme znát stav systému a znát každou jednotlivou věc, která se děje v celé architektuře – a kdo to udělal. To znamená nepřetržité monitorování v celém zásobníku, elegantní vizualizace telemetrie, a pokud to zvládneme, detekci anomálií pomocí analýzy. Tato úroveň auditovatelnosti je pro Zero Trust nezbytná a je také zvláště cenná pro audity omezující rizika prováděné po volbách, aby se posoudila jejich integrita.

Neměnné a pouze připojení

Napsal jsem a mluvil hodně o hodnotě neměnných dat a myslím si, že je to nezbytné pro bezpečné online hlasování. Software by neměl povolovat aktualizace nebo mazání. Spíše by jakákoli změna údajů – nově registrovaný volič, nová adresa pro stávajícího voliče a určitě každý hlas – měla být reprezentována neměnným způsobem, který lze pouze připojit. V rámci auditovatelnosti softwaru bychom měli být schopni přehrát každou událost, abychom znovu vytvořili stav v kterémkoli bodě procesu.

Agnostika nasazování klientských zařízení a aplikací

Moderní volební řešení musí voličům poskytnout svobodu přístupu ke svým hlasovacím lístkům na širokém spektru zařízení a státním vládním úředníkům svobodu rozmístit je na místě nebo v cloudu. Software musí být vůči těmto možnostem agnostický, což si vynutí kompromisy při implementaci. Nemusí být vždy možné použít „nejlepší“ řešení, pokud je software příliš těsně spojen s konkrétním dodavatelem nebo funkcí.

Použitelné

Může se to zdát samozřejmé, ale bezpečné online hlasování vyžaduje, aby je všechny zúčastněné strany považovaly za intuitivní. To se projevuje několika způsoby. Uživatelská rozhraní musí odrážet moderní principy uživatelského rozhraní, aby voliči, průzkumníci a státní úředníci bez ohledu na věk, úroveň vzdělání, schopnosti a další faktory považovali software za intuitivní.

Také věřím, že dát voličům možnost odevzdat svůj hlas odkudkoli si přejí, je forma použitelnosti. Není to jen o pohodlí. Kvůli neúnavné mediální posedlosti konflikty mají všichni tendenci soustředit se na kandidáty, ale co referenda, změny ústavy státu a emise dluhopisů? Ty mohou být složité. Ze zkušenosti vím, že je užitečné je zkoumat pohodlně z domova, nikoli pod tlakem v prostorových a časových omezeních tradiční volební místnosti.

Nedílnou součástí použitelnosti je výkon. Monitorování pomůže odhalit problémy s výkonem, ale moderní online hlasovací systém musí být navržen pro výkon. Problémy s výkonem budou nejen nepříjemné, ale mohly by také podkopat důvěru v integritu hlasování.

Jednoduché

Abychom toho všeho dosáhli, bude se toho na zabezpečené online volební platformě hodně dít – uživatelská rozhraní, API, šifrování, databáze, vícefaktorové ověřování, monitorování. Bude lákavé přidat složitost, abychom to všechno integrovali, a musíme odolat pokušení předělat. V opačném případě se aplikace stane neudržitelnou pro správce a, což je mnohem horší, nepoužitelnou pro voliče a další, což nás vrátí zpět do status quo volební platformy, která snižuje důvěru, kterou máme v integritu našich voleb.

Žádný z nich sám o sobě nestačí. Například pouhý open source k zabezpečení této platformy nestačí.

To je hodně, a aby toho bylo dosaženo, je třeba vytvořit bezpečnou volební platformu s nepřetržitým nasazením
model, který automatizuje testování (pro funkčnost, zabezpečení, výkon, dostupnost), statickou analýzu a nasazení. Potřebujeme proces, který vyřeší klíčové metriky pro výkon poskytování softwaru, které Google popisuje ve své zprávě State of DevOps:frekvence nasazení, doba realizace změn, doba obnovení služby a míra selhání změn.

Dobrou zprávou je, že bezpečné řešení online hlasování nemá vysoké nároky na škálovatelnost nebo výkon. Není to tak, že by to byly desítky tisíc hlasů za sekundu. Tohle není The Masked Singer.

I kdyby existovala jedna instance platformy pro celé Spojené státy, je to asi 150 milionů voličů. To není mnoho. A protože v Americe každý stát provozuje svou vlastní platformu, ať už v dobrém nebo ve zlém, měli byste pro každý stát a obydlené území maximálně jednu instanci platformy. Kalifornie je podle počtu obyvatel největším státem a celostátní volby tam budou mít kolem 30 milionů voličů. Jak jde softwarová škála, 30 milionů v průběhu několika týdnů (jak se koncept „volebního dne“ naštěstí stává stále kurióznějším) opravdu není tolik. Nyní možná, doufejme, že i skvělý hlasovací software tato čísla zvýší, ale v současném stavu je to mnohem jednodušší. Můžeme se zaměřit na uživatelskou zkušenost, integritu dat a zabezpečení platformy a méně se starat o výkon ve velkém.

Další dobrá zpráva? Uživatelské rozhraní je jednoduché. Jsou to jen nudné formy!

Jak by mohl vypadat balíček technologií?

Nejsem si úplně jistý a existuje spousta skvělých možností. Ale mám pár nápadů, které bych s vámi rád provedl.

Uživatelské rozhraní:Remix Run PWA

Remix Run je nový webový rámec s otevřeným zdrojovým kódem od tvůrců React Router, který poskytuje abstrakce nad základními webovými základy a vytváří tak odolný zážitek. Ve skutečnosti je to právě tato odolnost, která dělá z Remixu přesvědčivou volbu pro hlasovací aplikaci. Je lehký, protože se spoléhá na základní rozhraní API prohlížeče a HTTP a formuláře stále fungují bez JavaScriptu, protože HTTP podporuje odesílání formulářů samo o sobě.

Frontend v Rails nebo jiný robustní monolitický framework by byl určitě efektivní, stejně jako alternativy jako Next.js nebo SvelteKit, ale je pro mě těžké odolat štíhlé filozofii Remixu. V rámci trendu k většímu počtu SSR na okraji nabízí Remix Run dokonce šablony pro různé platformy nasazení, jako je Cloudflare, Fly.io, Netlify a Vercel, a tento seznam bude jen růst. Přestože okrajová funkčnost není pro software s hlasováním, který se používá na tak malém území (jeden stát), nezbytná, flexibilita nasazení je nezbytná a každá milisekunda pomáhá.

Kromě toho si myslím, že je důležité, aby byl frontend nasazen jako progresivní webová aplikace. To nabízí spoustu výhod, ale především pro tento účel je klíčové, aby frontend byl vždy dostupný a maximálně funkční bez ohledu na konektivitu, což v nejbohatší zemi světa absurdně zůstává problémem.

Toto je ortogonální k výběru pro uživatelské rozhraní nebo PWA, ale aplikace pro hlasování musí mít ochranu proti padělání požadavků napříč weby a silnou
Zásady zabezpečení obsahu také.

Mimochodem, mohlo by být zajímavé uvažovat o hlasových rozhraních, která lidem umožní hlasovat pomocí Google Assistant, Alexa nebo Siri, pokud lze vyřešit problémy s ochranou soukromí. Jedna výzva po druhé.

Databáze:PostgreSQL. S otočkou

Páteří této architektury je architektura sourcingu událostí založená na neměnném datovém úložišti pouze s připojením, které představuje každou jednotlivou mutaci dat na platformě, aby byla zajištěna plná znovuhratelnost a sledovatelnost pro audity omezující riziko. Jak to můžeme udělat s PostgreSQL?

Snadný. Odeberte oprávnění UPDATE a DELETE!

Cokoli víc než PostgreSQL, který lze snadno nasadit a je agnostický vůči prostředí, by bylo přehnané vzhledem k malému rozsahu – zvláště pokud někdo nasadí online volební platformu pro malé volby pod státní úrovní s pouhými několika tisíci nebo dokonce několika stovkami voličů. .

Mohli bychom ukládat hlasy do jediné tabulky, kde jednoduchá GROUP BY shromáždí výsledky voleb. To je jednoduché. Můžeme také ukládat časové údaje a údaje o poloze, abychom mohli provádět některé základní sekundární dotazy, jako je měření aktivity voličů podle okrsku nebo denní doby nebo dne v týdnu nebo čehokoli jiného, ​​co chcete vědět. Změny informací o voličích, oblíbená akce pro špatné herce, by také byly sledovány jako neměnné události a voliči by byli informováni, jakmile k nim dojde.

Je to tedy neměnný PostgreSQL. Je snadné se připojit k PostgreSQL z uživatelského rozhraní s Prisma.

Mimochodem, co blockchain? Ne pouze. Ne.

Nasazení:Někde snadné

Nemám žádnou zvláštní preferenci pro to, kde nasadíme tuto online volební platformu, ale musí to být někde nabízející dobré DX a odolnost. Pro mě to znamená jakýkoli z předem připravených cílů nasazení pro Remix Run, ale může to být AWS, Heroku nebo mnoho dalších poskytovatelů cloudu. Může existovat také kombinace jako Remix Run na Cloudflare a PostgreSQL, SMTP a další infrastruktura na Supabase. Vše závisí na tom, co je jednoduché, nákladově efektivní a co vyhovuje potřebám voličů a zaměstnanců.

Monitorování, auditování, obnova po havárii a vysoká dostupnost:záleží

Online volební platforma se stane terčem útoku nejsofistikovanějších hackerů na světě a jejím jediným nejdůležitějším požadavkem je, aby si vždy udržela důvěru voličů. Abychom těmto výzvám čelili, potřebujeme monitorování, auditování, zotavení po havárii a vysokou dostupnost.

Jedná se o průřezové obavy, které se týkají každého netriviálního nasazení, ale zde jsou nepopiratelně zásadní. Je těžké identifikovat konkrétní řešení, protože jsou funkcí platformy pro nasazení, ale stačí říci, že jakákoli platforma, která nedokáže splnit potřeby kriticky důležitého systému, jako je detekce anomálií, upozornění a konzistentní zálohování, je nepředvídatelná.

Nakonec musíme být schopni porozumět tomu, kdo, co, kde, kdy a jak pro každou jednotlivou událost na platformě.

Autentizace a autorizace:Směs open source a proprietárních řešení

Je samozřejmé, že nejdůležitější součástí online hlasování je bezpečnost. Výzva však není jen technická:

  • Musí to být jednoduché na implementaci a údržbu, ale přesto téměř nedobytné
  • Musí být snadno použitelný pro všechny voliče bez ohledu na jejich věk, schopnosti, technické znalosti a další faktory.
  • Musí odolat nezávislému auditu důvěryhodného partnera

Zde budou hlavní mozky v infosec neocenitelné. Nemám k této třídě blízko, ale dovolte mi vyhodit pár nápadů.

V zájmu Zero Trust budou připojení k serveru, databázi a jakékoli další infrastruktuře, jako jsou servery SMTP a mezipaměti, ověřena přes TLS a všechna data v klidu budou šifrována. To samozřejmě znamená úložiště šifrovacích klíčů, jaké poskytuje HashiCorp Vault a podobné produkty.

Voliči by měli na výběr ze způsobů ověřování:

  • Uživatelské jméno/heslo (vyžaduje se 12–64 znaků se smíšenými velkými a malými písmeny, číslicemi a speciálními znaky) a jejich výběr metod MFA (např. ověřovací aplikace, fyzický klíč) spolu s obvyklými postupy Zapomenuté heslo, Změnit heslo
  • Integrace OpenID s Google

Vždy se najdou voliči, kteří se budou cítit pohodlně volit tradičním způsobem – dostavit se v den voleb do svých místních volebních místností a odevzdat hlasovací lístky. Volební místnosti by byly jednoduše vybaveny počítači, ze kterých by voliči hlasovali tím, že by si zřídili účty a přihlásili se přes prohlížeč do naší zabezpečené online volební platformy, a zaměstnanci by s tímto procesem pomáhali. Pokud by záleželo na mně, vláda by poskytla finanční prostředky na fyzické klíče a každý volič, který by se osobně dostavil v den voleb a chtěl by jej mít, by jej dostal a bylo by mu ukázáno, jak jej používat.

Databáze by mohla uživatelům přiřadit náhodné tokeny, podobně jako přístupový klíč pro cloudové rozhraní API, které by pro voliče mělo limit kvóty jeden po dobu oprávněného hlasování. Tyto tokeny by byly šifrovány a pravidelně rotovány a představovaly by voliče v jejich interakcích s rozhraními API, aby hlasovali a zaměstnanci ve všech ostatních voláních rozhraní API.

A konečně, zabezpečení celého kanálu DevSecOps znamená implementaci řady opatření, jako je udržování tajemství mimo kód a konfiguraci, správa řízení přístupu a omezení oprávnění v celém kanálu, podepisování změn správy verzí pomocí PGP, používání mechanismů správy klíčů vhodných pro platformu nasazení, a mnohem více.

A samozřejmě existují automatizované bezpečnostní testy v CI a úplné audity prováděné bezpečnostními profesionály, které vše prověří
architektura.

Celý tento zásobník a vlastně celá architektura je jen nápad. Vše se může změnit.

Nevyřešené otázky

I když jsou architektura a technologie dokonalé, existují obtížné otázky, které zůstávají nejen v technologii, ale také v právu, financích, politice a dokonce i filozofii. Zde jsou některé z nich:

  • Každý stát má své vlastní volební zákony, technologickou infrastrukturu a rozpočet. Jaké druhy právních, soukromí a technických problémů existují při migraci registračních údajů voličů do nového systému? Je vůbec potřeba, aby aplikace mohla zastupovat registrované voliče jiným způsobem?
  • Zkorumpovaní úředníci nechtějí nic, co by hlasování usnadnilo, ale co by bylo dokonce čestné zvažují to úředníci?
  • Co zabrání státním úředníkům, kteří jsou oprávněnými uživateli jednajícími ve zlé víře, aby platformu nějakým způsobem kompromitovali?
  • I když by platforma byla vytvořena s ohledem na odolnost, jaké druhy pohotovostních plánů by byly zavedeny pro případ, že by platforma na delší dobu selhala?
  • Pokud použijeme PostgreSQL jako neměnný obchod pouze pro připojování, který poskytuje opakovatelný protokol všech datových mutací, nakonec narazíme na jeho limity. Jaká je doba uchování údajů? Pokud je dokonce nutné data po uplynutí doby uchování přenést do nějakého datového jezera, kde by to bylo? Jak by to fungovalo?
  • Do jaké míry můžeme zachovat představu „tajného hlasování“, kdy svůj výběr znají pouze samotní voliči? Nebo by měla moderní volební platforma uznat samotný koncept tajného hlasování jako anachronismus, který je v lepším případě nesmyslný a v nejhorším škodlivý a podle toho fungovat?
  • Slouží zde strojové učení svému účelu? Pokud ano, jaký je nejjednodušší a nejúčinnější způsob jeho implementace?
  • Našlo by se publikum, které by prostřednictvím rozhraní API zpřístupnilo údaje, které neumožňují zjištění totožnosti, pro analýzu dat nezávislými organizacemi? Pokud ano, jak bychom to udělali?

Krása open source spočívá v rozmanitosti myšlenek a tvůrčí energie, která se spojuje k řešení zajímavých a těžkých problémů, jako jsou tyto.

Vybudovat bezpečnou online volební platformu, která umožní všem registrovaným voličům vyjádřit svůj názor a dá jim jistotu, že jejich hlasy platí a že vítězové jsou legitimní, bude vyžadovat historické úsilí. Pokud považujete zlepšení přístupu k volbám, zaručení integrity voleb, prosazování sociální spravedlnosti a řešení zajímavých problémů za stejně důležité a přesvědčivé jako já, kontaktujte nás, abychom mohli spolupracovat na něčem, co by mohlo změnit společnost k lepšímu.