Web eID

Web eID lahendus võimaldab Eesti digitaalseid dokumente (ID-kaart, digi-ID, e-residendi digi-ID, elamisloakaart jms) kasutada veebis turvaliseks autentimiseks ja allkirjastamiseks. Web eID töötab levinumates operatsioonisüsteemides ja veebilehitsejates, kasutades PC/SC rakendusliidest otsesuhtluseks ID-kaartidega. Lisaks on Web eID-s toetatud Läti, Leedu ja Soome ID-kaart. Samuti loodi tehniline võimekus, et võtta veebis kiiresti kasutusele levinumate Euroopa eID kiipkaardid.

Web eID lahendus koosneb JavaScript teegist, veebilehitseja laiendusest ja rakendusest, mis koos koordineerivad veebilehitseja, veebilehe ja kiipkaardi vahelist suhtlust krüptograafiliste toimingute tegemiseks.

Web eID kasutusele võtmiseks tuleb ka e-teenustes teha täiendavaid muudatusi. Praegu on olemas e-teenustele valmisteek ja näidised Java platvormile ning plaanis on lisada ka teiste platvormide tugi. E-teenustes Web eID-le üleminek eeldab, et kasutajatel on paigaldatud Web eID laiendus ja rakendus. Kasutajad saavad vajalikud komponendid koos ID-tarkvaraga. Täpsema informatsiooni leiab ajakavast.

Koodihoidla: https://github.com/web-eid/

Arhitektuuri dokumentatsioon: https://github.com/web-eid/web-eid-system-architecture-doc

Portaal ja proovikeskkond: https://web-eid.eu/

Miks ja mis muudatused toimuvad?

Tänase lahenduse keerukuse tõttu on olnud mitmeid veebilehitseja ja operatsioonisüsteemi rakendusliidese töökindlusega probleeme ning seetõttu on olnud tõrkeid veebilehitsejas ID-kaardi kasutamisel. Web eID eesmärk on muuta kasutamine töökindlamaks ja kasutajasõbralikumaks ning lahendada mitmeid tänase lahendusega esinevaid probleeme.

Web eID lahenduse olulisemad muudatused võrreldes tänase lahendusega:

  • Web eID lahenduses muutub autentimise tööpõhimõte, brauserisse sisseehitatud serdiautentimise (TLS client certificate authentication) asemel edastatakse JWT autentimistõend e-teenusele valideerimiseks REST API kaudu AJAX päringuga. Tänu sellele vähenevad tõrked, mis tulenevad erinevate tehnoloogiate kasutamisest autentimisel ja allkirjastamisel. Allkirjastamise tööpõhimõtted ja töövood jäävad Web eID lahenduses samaks, kuid rakendusliides muutub, et tõkestada murdskriptimisründeid (cross-site scripting, XSS).
  • Web eID lahenduses ID-kaardiga autentimisel PIN1-koodi vahemällu ei talletata ning PIN1-koodi küsitakse igal autentimisel uuesti. Seetõttu ei ole väljalogimisel vaja veebilehitsejat sulgeda või taaskäivitada.
  • Web eID lahenduses autentimissertifikaate ei puhverdata, vaid laetakse alati otse kaardilt, seetõttu näidatakse kasutajale ainult parasjagu kaardilugejas oleva kaardi sertifikaati. Selle tulemusena kaob ära õige sertifikaadi valik varasemalt kasutatud sertifikaatide loetelust ning kaardiga suhtlus muutub kiiremaks.
  • Tänase lahendusega kasutavad veebilehitsejad operatsioonisüsteemide lõikes erinevaid krüptograafilisi rakendusliideseid (CNG, CDSA/Tokend, PKCS#11), millel on veebilehitsejates erinev visuaal (dialoogid). Visuaal võib erineda ka samas brauseris autentimisel ja allkirjastamisel. Uue lahendusega on kõikides veebilehitsejates ja operatsioonisüsteemides ühesugune visuaal nii autentimisel kui ka allkirjastamisel.
  • Web eID lahendus kasutab tavalist HTTPS ühendust, mis ei nõua veebiserverilt TLS eriseadistust. Tänu sellele lihtsustab see ID-kaardi kasutamist pilveteenustes ja klastrisüsteemides.

Mida pean tegema selleks, et integreerida Web eID lahendus enda e-teenusesse?

Web eID kasutuselevõtt eeldab e-teenuste poolseid muudatusi. Praegu on saadaval valmisteek ja näidised Java platvormile. Arendused .NET platvormile on töös. Teiste platvormide tugi on planeerimisel.

Alustuseks soovitame tutvuda Web eID materjalidega:

Sammud Web eID kasutamiseks Java platvormil:

  1. Integreerige enda teenuse front-end’i web-eid.js JavaScript teek. JavaScripti teek on vajalik, et e-teenuse veebileht saaks suhelda brauserilaiendusega. Kasutuselevõtu juhised: https://github.com/web-eid/web-eid.js#quickstart
  2. Autentimiseks tuleb back-end’is kasutada autentimistõendi valideerimise Java teeki web-eid-authtoken-validation-java. Kasutuselevõtu juhised: https://github.com/web-eid/web-eid-authtoken-validation-java#quickstart
  3. Allkirjastamiseks tuleb back-end’is kasutada mõnda XAdES teeki. Java platvormil soovitame kasutada digidoc4j teeki. Kasutuselevõtu juhised: https://github.com/open-eid/digidoc4j/wiki/Examples-of-using-it

Sammud Web eID kasutamiseks teistel platvormidel:

  1. Integreerige enda teenuse front-end-i web-eid.js JavaScript teek. JavaScripti teek on vajalik, et e-teenuse veebileht saaks suhelda brauserilaiendusega. Kasutuselevõtu juhised: https://github.com/web-eid/web-eid.js#quickstart
  2. Autentimiseks tuleb back-end’is kasutada autentimistõendi valideerimise teeki. Hetkel on valmisteek olemas ainult Java platvormile. Teiste platvormide tugi on planeerimisel, vaata täpsemalt ajakavast. Lisaks ootame teiepoolset tagasisidet platvormide eelistuste osas.
  3. Allkirjastamiseks tuleb back end-is kasutada mõnda XAdES teeki. Võimaluse korral soovitame kasutada olemasolevaid teeke:
    1. Libdigidocpp: https://github.com/open-eid/libdigidocpp
    2. DigiDoc4j: https://github.com/open-eid/digidoc4j

Web eID paigaldamine

Web eID beetaversiooni saab alla laadida siit: https://web-eid.eu/. Pärast tarkvara paigaldamist tuleb veebilehitsejas Web eID laiendus käsitsi aktiveerida.

NB! Web-eid.eu lehel pakutav tarkvara on mõeldud ainult Web eID lahenduse testimiseks ning ei ole mõeldud igapäevaste toimingute tegemiseks.

Web eID lõppversioon lisatakse tulevikus ID-tarkvara paigalduspaketti, mis on kasutajate jaoks kättesaadav www.id.ee veebilehelt.

Toetatud operatsioonisüsteemid, veebilehitsejad ja ID-kaardid

Toetatud on levinumad operatsioonisüsteemid ja veebilehitsejad.

Toetatud operatsioonisüsteemid:

  • Windows 8.1, Windows 10, Windows Server 2012 R2, Windows Server 2016, Windows Server 2019
  • macOS Mojave (10.14), macOS Catalina (10.15), macOS Big Sur (11)
  • Ubuntu 18.04 (LTS) (64bit), 20.04 (LTS) (64bit), 20.10 (64bit)

Toetatud veebilehitsejad:

  • Google Chrome
  • Mozilla Firefox
  • Edge Chromium
  • Safari

Web eID tulekuga ei toetata enam Internet Explorer ja vanemat Microsoft Edge veebilehitsejat.

ID-kaartide tugi:

Web eID toetab kõiki Eesti digitaalseid dokumente, näiteks ID-kaart, digi-ID, e-residendi digi-ID, elamisloakaart jms ning Läti, Leedu, Soome ja Horvaatia ID-kaarti.

Tagasiühilduvus

Web eID autentimise funktsionaalsust saab kasutada e-teenustes, milles on kasutusele võetud web-eid.js teek. Kui e-teenuses kasutatakse allkirjastamiseks hwcrypto.js, siis suure tõenäosusega on autentimiseks endiselt kasutusel TLS-CCA lahendust.

Web eID allkirjastamise laiendus toetab üleminekuperioodil e-teenuseid, mis kasutavad praegu olemasolevat lahendust (hwcrypto.js) või uuemat Web eID lahendust (web-eid.js).

Web eID allkirjastamise laiendusele lisatud tagasiühilduvuse funktsionaalsus (hwcrypto.js tugi) on lisatud ainult üleminekuperioodiks ning tulevikus see eemaldatakse. Täpsema informatsiooni leitab ajakavast.

Praegu kasutusel olevate allkirjastamise laiendustega ei ole võimalik kasutada e-teenuseid, mis on läinud üle uuemale Web eID lahendusele (web-eid.js). Sellisel juhul peaks teenusepakkuja suunama kasutaja paigaldama uut ID-tarkvara, mis sisaldab Web eID komponente.

Ajakava

Web eID v0.9.4 avalikustatud 26.02.2021

Web eID v1.0.0-rc1 avalikustatud 30.04.2021

  • Mitme kaardi tugi
  • PinPad lugejate tugi
  • Veahaldus
  • PKCS#11 I etapp
  • Uue disaini I etapp

Web eID v1.0.0-rc2 avalikustatud 11.06.2021

  • Uue disaini II etapp
  • Kaardi vahetamisel info muutmine
  • PinPad lugejate täiendused
  • Täiendavad parendused/parandused

Web eID v1.0.0 versioon planeeritud avalikustada – suvi 2021

  • Uue disaini III etapp
  • Tõlked
  • Ekraanilugejate parandused
  • Safari tugi
  • Dokumentatsiooni täiendamine
  • Täiendavad parendused/parandused

Web eID v1.0.1 versioon planeeritud avalikustada – kuupäev täpsustamisel

ID-tarkvara reliis kasutajatele planeeritud avalikustada – sügis 2021

  • Web eID komponendid lisatakse ID-tarkvara koosseisu (sh. sisaldavad tänase lahenduse tagasiühilduvuse funktsionaalsust).
  • Eemaldatakse tänase lahenduse veebis allkirjastamise komponendid.

Web eID lahendusele ülemineku algus e-teenustes planeeritud – 2022 (kuupäev täpsustamisel).

Näidis .NET platvormile – suvi 2021

Näidised teistele platvormidele (C++, PHP, Node.js, Python, Go) – planeerime vastavalt tagasisidele.

Web eID lahendusele ülemineku lõpp, st. Web eID komponentidest eemaldatakse tänase lahenduse tagasiühilduvus – 2022/2023 (kuupäev täpsustamisel).

Muudatused riiklikus autentimisteenuses ja tarkvaras (TARA) – kuupäev täpsustamisel.

Testimine

Web eID lahenduse testimiseks tuleb kõigepealt paigaldada operatsioonisüsteemile sobiv tarkvara. Tarkvara saad alla laadida siit: https://web-eid.eu/. Pärast tarkvara paigaldamist tuleb veebilehitsejas Web eID laiendus käsitsi aktiveerida.

Enda e-teenuses autentimise ja allkirjastamise testimiseks soovitame tellida testkaardi, mida väljastab SK ID Solutions AS.

Juhime tähelepanu, et testkeskkonnas autentimiseks ja allkirjastamiseks tuleb ID-kaardi isikutuvastamise ja allkirjastamise sertifikaadid laadida ülesse SK demokeskkonda ​https://demo.sk.ee/upload_cert/

Web-eid paigalduse õnnestumise testimine

  1. Ava uuesti https://web-eid.eu/ leht
  2. Soorita isikutuvastus/autentimine päris ID-kaardiga
  3. Allkirjasta näidistekst päris ID-kaardiga
  4. Laadi alla allkirjastatud konteiner
  5. Kontrolli allkirjastatud konteinerit DigiDoc4 kliendiga

Millised testid tuleks teha?

Kui olete Web eID lahenduse enda e-teenusesse integreerinud, siis tuleks lahendust ka testida.

Positiivse kasutuskogemuse testimiseks peab olema kasutaja arvutisse paigaldatud Web eID tarkvara.

Autentimine e-teenuses

E-teenuses autentimise testimiseks tuleks teha:

  1. Edukas autentimine
  2. Autentimine tühistatud või peatatud sertifikaatidega
  3. Autentimise katkestamine
  4. Autentimise katkemine (kasutaja eemaldab kaardi lugejast)
  5. PIN lukustumine (3x vale PIN sisestamine)

Allkirjastamine e-teenuses

E-teenuses allkirjastamise testimiseks tuleks teha:

  1. Edukas allkirjastamine
  2. Allkirjastamine tühistatud või peatatud sertifikaatidega
  3. Loodud konteinerite valideerimine
  4. Allkirjastamise katkestamine
  5. Allkirjastamise katkemine (kasutaja eemaldab kaardi lugejast)
  6. Kaardi lukustumine (3x vale PIN sisestamine)
  7. Allkirjastajaks autenditust erinev isik (kasutaja vahetab autentimise ja allkirjastamise vahel lugejas kaardi)

Veebiteenust satuvad suure tõenäosusega kasutama ka sellised kasutajad, kelle arvutis on vanem ID-tarkvara versioon või puudub tarkvara sootuks. Ka selline stsenaarium oleks mõistlik veebiteenuse poolt ära lahendada ning suunata kasutaja paigaldama Web eID toega ID-tarkvara.

  1. Autentimiskatse e-teenuses vanema ID-tarkvara versiooniga
  2. Autentimiskatse e-teenuses ilma ID-tarkvarata
  3. Allkirjastamise katse e-teenuses vanema ID-tarkvara versiooniga (võimalik vaid juhul, kui enne allkirjastamist kasutajat ei autendita)
  4. Allkirjastamise katse e-teenuses ilma ID-tarkvarata (võimalik vaid juhul, kui enne allkirjastamist kasutajat ei autendita)

Soovituslik on eduka autentimise ja allkirjastamise testid läbida kõigi ID-tarkvaras toetatud veebilehitsejatega vähemalt ühel Windowsi, macOSi ning Ubuntu operatsioonisüsteemiga arvutil.

Lähtuvalt konkreetse e-teenuse poolt pakutavast funktsionaalsusest võib olla vajalik veel täiendavate testide tegemine.

Teadaolevad puudused ja planeeritavad täiendused

Tööde nimekiri on leitav siit (täiendame nimekirja jooksvalt): https://github.com/orgs/web-eid/projects/2

Tagasiside ja arendusettepanekute andmine – help@ria.ee.

KKK

Kus ma saan lugeda Web eID turvalisusest?

Web eID lahenduse turvaanalüüsi koostas Cybernetica AS. Turvaanalüüsiga saab tutvuda siin: https://web-eid.gitlab.io/analysis/webextensions-main.pdf

Sessiooni kaaperdamise rünnaku ja vahendusründe riskist saab lugeda täiendavalt siin: https://www.id.ee/artikkel/sessiooni-kaaperdamise-runnaku-ja-vahendusrunde-risk-web-eid-s/

Mis erinevus on Open eID’l ja Web eID’l?

Open eID alla on koondatud kõik elektroonilise identiteedi projektid ja lahendused ning jääb kasutusele ka edaspidi.

Web eID on uue arhitektuuriga lahendus veebis autentimiseks ja allkirjastamiseks, mille komponendid avalikustatakse Githubis eraldiseisvas repositooriumis.

Kuidas saavad kasutajad Web eID komponendid?

Web eID komponendid kavatseme lisada 2021 sügisel avalikustatavasse ID-tarkvara paigalduspaketti. Uued komponendid jõuvad kasutajale läbi ID-tarkvara uuenduse või eraldiseisvalt id.ee lehelt alla laadides.

Kas Web eID lahendus mõjutab ka ID-kaardiga isikutuvastust Windows domeenis?

Web eID lahendus ei mõjuta ID-kaardiga isikutuvastust Windows domeenis. Muudatus puudutab vaid veebipõhist autentimist ja allkirjastamist.

Minu e-teenuses saavad kasutajad enda isikut tuvastada ID-kaardiga, kas pean ka muudatused tegema?

Jah, muudatus puudutab veebipõhist autentimist ning on vaja teostada e-teenuse poolel täiendavad arendused Web eID kasutuselevõtuks. Loe rohkem siit.

Minu e-teenuses suunatakse kasutajad ID-kaardiga autentima riiklikusse autentimisteenusesse (TARA), kas pean ka muudatused tegema?

E-teenuse poolel arendustöid tegema ei pea, kuna vajalikud muudatused teostatakse riiklikus autentimisteenuses (TARA). Täpsema informatsiooni leitab ajakavast.

Minu e-teenuses saavad kasutajad dokumente allkirjastada ID-kaardiga, kas pean ka muudatused tegema?

Jah, muudatus puudutab veebipõhist allkirjastamist ning on vaja teostada e-teenuse poolel täiendavad arendused Web eID kasutuselevõtuks. Loe rohkem siit.

Minu e-teenuses valideeritakse allkirjastatud dokumente valideerimisteenuses (SiVa), kas pean ka muudatusi tegema?

E-teenuse poolel arendustöid tegema ei pea. Muudatus puudutab vaid veebipõhist autentimist ja allkirjastamist.

Kasutame DigiDoc4 klienti ja/või RIA Digidoc mobiilirakendust dokumentide allkirjastamiseks ja valideerimiseks, kas pean ka muudatusi tegema?

Arendustöid teostama ei pea. Muudatus puudutab vaid veebipõhist autentimist ja allkirjastamist.

Kas Web eID’s on toetatud Chromiumi veebilehitseja?

Chromiumi veebilehitseja ei ole toetatud. Loe rohkem siit.

Soovin anda tagasisidet, kuhu pean teada andma?

Tagasisidet ja arendusettepanekud saab saata – help@ria.ee.