Tekniikka/Allekirjoitus
Allekirjoitettaessa digitaalisesti tulee käsitellä kaksi asiaa:
- allekirjoitus tapahtuu vaihtoehtoisesti:
- laitteessa joka on täysin käyttäjän hallussa (tietokone, tablet)
- palvelussa (web-palvelu, palveluväylä)
- allekirjoituksen muoto
Koska palvelu lähettää allekirjoituspyynnön käyttäjälle, ei ole takeita siitä, että kyseinen palvelu olisi rakennettu vastaanottamaan käyttäjän haluamaa allekirjoitettavaa sisältöä - koska tyypilllisesti web-palvelut ovat räätälöityjä. Voisi siis hyvin olla, että yksittäisen palvelun allekirjoitukset liittyäisivät vain palvelun omaan sisältöön.
Allekirjoitettaessa käyttäjä ottaa yhteyden web-palveluun joka tukee allekirjoittamista ja valitsee sieltä allekirjoitettavan sisällön. Web-palvelu lähettää sisällöstä tiivisteen käyttäjän selaimelle joka välittää sen kortinlukijalle ja kortille - jossa allekirjoitus tapahtuu. Itse allekirjoitus välitetään takaisin web-palveluun joka käsittelee sen kuten palveluun on määritelty.
Käyttäjälle ei jää allekirjoituksesta tiedostoa kuten DigiDoc minkä voisi tallentaa itselleen, koska sellaista ei muodosteta missään vaiheessa. Tämä on ongelmallista viitattaessa allekirjoitettuun sisältöön myöhemmin, tällöin tulee aina olla yhteydessä kyseiseen palveluun - joskin ei ole takeita, että kaikki osapuolet näkisivät samaan allekirjoitukseen palvelussa koska todennäköisesti näkyvyys on tiukasti rajattu. Tämä on keskeistä allekirjoituksen kannalta, koska tarkoitus on nimenomaan todistaa sopimus tms jälkikäteen kolmannelle osapuolelle, kuten tuomioistuimelle. Pahimmassa tapauksessa palvelu tuhoutuu tai poistetaan käytöstä, allekirjoittajalla ei ole tähän mitään kontrollia.
Käyttäjällä tulee olla luottamus kolmatta osapuolta kohtaan, koska allekirjoitus tapahtuu aina palvelussa. Allekirjoitettava sisältö paljastuu palvelun omistajalle ja ylläpidolle. Tämä saattaa vähentää mielenkiintoa allekirjoittaa digitaalisesti jos sisältö on luottamuksellista tai arkaluontoista.
Edelläolevista ongelmista johtuen ei ole ihme, että suomalaisella henkilökortilla ei ole sen olemassaolon aikana vuodesta 1999 lähtien tehty digitaalisia allekirjoituksia mPollux DigiSign-ohjelmistolla sen nimestä huolimatta. Tähän saattaa tulla muutos Suomen ja Viron aloittaessa yhteistyön digitalisaatiossa, jonka yhteydessä virolaiseen qDigiDoc-ohjelmaan (versio 3.10 ja uudemmat) lisättiin tuki Suomen henkilökortille.
Tekninen toteutus
Sähköinen allekirjoittaminen perustuu yleensä epäsymmetrisiin avainpareihin joista toinen on julkinen, mahdollisimman monen tietämä ja toinen salainen, vain omistajansa tietämä/hallitsema. Tästä syystä epäsymmetristä avainparitekniikkaa kutsutaan julkisen avaimen tekniikaksi.
Sähköinen allekirjoittaminen ei käytännön syistä vastaa teknisesti täysin perinteistä allekirjoitusta jossa allekirjoitus tehdään itse paperiin jossa asiakirja on, vaan allekirjoitus tehdään sisällön yksilöllisestä tiivisteestä (eng hash) joka edustaa sisältöä. Lakiteknisesti on sama, allekirjoitetaanko koko asiakirjan sisältö vai sitä edustava yksilöllinen tiiviste.
Tiiviste ei ole selkokielinen ihmiselle vaan lyhyt kirjaimia ja numeroita sisältävä merkkijono. Siitä ei voi silmämääräisesti päätellä sen edustamaa sisältöä. Jos sisältöä muutetaan vähänkin, myös tiiviste muuttuu.
Tiedostomuodot
- XAdES W3C ja ETSI:n määritykset XML:n allekirjoitusta varten
- ASiC johon virolainen DigiDoc-allekirjoitussäiliö perustuu.
- CAdES IETF:n CMS-viestiformaattien laajennokset allekirjoitusta varten
- PAdES PDF laajennokset allekirjoitusta varten
http://www.di-mgt.com.au/xmldsig2.html
Kysymyksiä ja vastauksia
- Voiko samalla tunnusluvun syötöllä allekirjoittaa useamman kerran koodissa? Jos käyttäjä allekirjoittaa nipun tapahtumia (maksuja/sopimuksia/jne) - tuleeko jokaiselle kysyä tunnusluku erikseen?