Sähköäänestysjärjestelmän vaatimusdokumentteja

Olin jo kahdesti aiemmin pyytänyt Oikeusministeriötä toimittamaan sähköisen äänestyksen pilotin dokumentteja. Edellinen toimitus sisälsi runsaasti Rational Rose -malleja ja UML-käyttötapauskuvia, mutta itse järjestelmän konepellin alle ei niiden avulla käytännössä pystynyt juuri kurkistamaan. Pyysin nyt kolmannella kierroksella ministeriöltä valituskelpoisen päätöksen siitä, luovuttaako ministeriö minulle järjestelmän tietoturvauhka-analyysit (tekniset riskinanalyysit) sekä järjestelmän tilauksen pohjana olleet määrittelydokumentit, siltä osin kun ne koskevat ohjelmistoja ja laitteistoja.

Tämä rajaus oli tarpeen siksi, etteivät esimerkiksi vaalien fyysiseen turvallisuuteen liittyvät salassapidettävät dokumentit sotkisi luovutusta. Ohjelmistojen tietoturvaratkaisujen tulee kestää päivänvaloa eikä turvallisuus saa perustua salassapitoon. Tämä on yleisesti hyväksytty turvallisten järjestelmien suunnitteluperiaate. Erityisesti äänestysjärjestelmässä, jossa hävinneidenkin on pystyttävä luottamaan tuloksen oikeellisuuteen, ei saa olla “mustia laatikoita”.

Ja ministeriö vastasi. Turvajärjestelyjä koskevia asiakirjoja ei edelleenkään luovuteta viranomaisen toiminnan julkisuudesta säädetyn lain (621/1999) 24.1 § 7 kohdan nojalla.

Huomattavaa on, että valituskelpoinen päätös ei enää sisällä viittausta järjestelmätoimittajien liikesalaisuuksiin. Ehkä Oikeusministeriö ei usko liikesalaisuuden olevan enää pitävä argumentti, jos päätöksestä valitettaisiin korkeimpaan hallinto-oikeuteen?

Jos kerran liikesalaisuus ei enää ole este, tarkoittaako tämä sitä, että olemme nyt saaneet kaiken järjestelmästä kirjoitetun dokumentaation? Jos näin on, se vain vahvistaa sitä, että lähdekoodiin ja sen versionhallintaprosesseihin tutustuminen olisi ainoa mahdollisuus järjestelmän todelliseen auditointiin.

Järjestelmän vuonna 2006 hyväksytyt määrittelydokumentit kuitenkin sain. Ministeriön ilmoituksen mukaan ne “eivät kaikilta osin vastaa toteutettua äänestysjärjestelmää” vaan “paremman käsityksen” saisi aiemmin lähetettyjen dokumenttien pohjalta.

Kiinnostavimmat asiat tietoturvallisuuden ja vaalisalaisuuden kannalta löytyvät ei-toiminnallisten vaatimusten listasta (Approved Non-Functional Requirements). Vaatimus SR6 koskee äänten uudelleenlaskentaa. Sen mukaan uudelleenlaskentaa varten säilytetään vaaleissa käytetyn Pnyx.Core-äänestysmoottorin ohjelmaversio ja varusohjelmistot. Nämä voidaan ottaa vaatimuksen mukaan säilytykseen täysvarmistuksella.

Sinänsä käytettyjen ohjelmistojen arkistointi on hyvä idea: jos epäillään vilunkipeliä, ohjelmistoja voitaisiin alkaa tutkia. Ajettavassa muodossa olevan ohjelman analysointi on kuitenkin hyvin aikaa vievää ja vaatii hyvin kehittyneitä reverse-engineering -taitoja. Erityisen hankalaksi tämän tekee se, että ääneen voi vaikuttaa varsinaisen vaaliohjelmiston lisäksi moni muukin komponentti kuten vaikkapa laiteajuri.

Toisaalta vaatimuksissa ei ole otettu kantaa siihen, miten lähdekoodin oikeellisuus ja versionhallinta suojataan, jotta voitaisiin olla varmoja siitä, että ajossa oleviin ohjelmiin ei ole esimerkiksi piilotettu pahansuopaa koodia. Pelkkää jälkijättöistä ajettavan koodin analyysiä en suurin surminkaan hyväksyisi riittäväksi tavaksi varmistua tästä.

Kaiken kaikkiaan nyt luovutetut dokumentit eivät käytännössä lisänneet luottamustamme järjestelmän tietoturvaa ja tulosten oikeellisuuden varmistamista kohtaan. Järjestelmän määritellystä toiminnastakaan ei tullut merkittävää uutta tietoa.

Oikeusministeriön tällä kierroksella toimittamat dokumentit:

* Dokumenttiluettelo – Sähköisen äänestyksen pilotti v1.0H
* Raporttikuvaus – Sähköinen pilotti – Use Case-raportti – Raporttikuvaukset v1.0H
* Vuokaaviot “Pääprosessikartta 1.0H”, “1.2b Pilottiäänestys”, “1.2b2 Uurnan kättöönotto”, “1.2b.3 Äänestys”, “1.2b.3.1 Sähköinen ennakkoäänestys”, “1.2b.3.2 Vaalipäivän äänestys”, “1.2b.4 Uurnan avaus” ja “1.2b.5 Arkistointi”
* uVAT Luokkamalli – Sähköinen pilotti v1.0H
* uVAT Ulkoiset Liittymät – Sähköinen pilotti v1.0H
* uVAT Sisäiset Liittymät – Sähköinen pilotti V1.0H
* uVAT Käyttötapausmalli – Use Case-raportti – Sähköinen pilotti v1.0H
* uVAT Ikkunakuvaukset – Use Case-raportti – Sähköinen pilotti v1.0H
* FEAT: Approved Features, Project Name: Vaali Pilotti versio 3.4.2006
* SR: Approved Non-Functional Requirements, Project Name: Vaali Pilotti versio 3.4.2006

Lisätietoja: [link|http://www.effi.org/blog/2008-03-10-Antti-Vaha-Sipila.html|Aiemmin toimitetut dokumentit] ja [link|http://www.effi.org/blog/kai-2007-08-24.html|usein kysyttyjä kysymyksiä sähköisestä äänestämisestä].