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 ning .NET platvormidele. Valideerimisteegi arendused PHP platvormile on töös. Teiste platvormide tugi on planeerimisel vastavalt tagasisidele. 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 ning .NET platvormidele. Valideerimisteegi arendused PHP platvormile on töös. Teiste platvormide tugi on planeerimisel vastavalt tagasisidele.

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 .NET 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 .NET teeki web-eid-authtoken-validation-dotnet. Kasutuselevõtu juhised: https://github.com/web-eid/web-eid-authtoken-validation-dotnet#quickstart
  3. Allkirjastamiseks tuleb back-end’is kasutada mõnda XAdES teeki. .NET platvormil soovitame kasutada libdigidocpp teeki. Kasutuselevõtu juhised: https://github.com/open-eid/libdigidocpp/wiki#how-to-use-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 Java ja .NET platvormidele. Valideerimisteegi arendused PHP platvormile on töös. 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 saab alla laadida siit: https://web-eid.eu/. Safari jaoks tuleb laiendus paigaldada App Storest.
Pärast tarkvara paigaldamist tuleb veebilehitsejas Web eID laiendus käsitsi aktiveerida.

Web eID komponendid on lisatud ID-tarkvara paigalduspaketti, mis on kasutajate jaoks kättesaadav www.id.ee veebilehelt.

Toetatud veebilehitsejad ja ID-kaardid

Toetatud veebilehitsejad:

  • Google Chrome
  • Mozilla Firefox
  • Edge Chromium
  • Safari

Web eID tulekuga ei toetata enam Internet Explorer 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 laiendus toetab üleminekuperioodil e-teenuseid, mis kasutavad allkirjastamiseks praegu olemasolevat lahendust (hwcrypto.js) või uuemat Web eID lahendust (web-eid.js).

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

Praegu kasutusel olevat allkirjastamise laiendust (Token Signing) ei ole võimalik kasutada e-teenustes, 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.

Kasutaja arvutisse paigaldatud tarkvara Veebirakenduses kasutatav lahendus Mis juhtub
ID-tarkvara versioon (2021.06 või vanem), mis sisaldab Token Signing komponente. – Autentimiseks kasutatakse TLS-CCA lahendust.
– Allkirjastamiseks kasutatakse hwcrypto.js teeki.
– Kasutaja autenditakse teenuses läbi operatsioonisüsteemi poolt toetatud komponentide või PKCS#11 draiveri.
– Allkirjastamisel kasutatakse Token Signing komponenti.
ID-tarkvara versioon (2021.06 või vanem), mis sisaldab Token Signing komponente. Autentimiseks ja allkirjastamiseks kasutatakse Web eID lahendust. – Autentimine ebaõnnestub
– Allkirjastamine ebaõnnestub.
ID-tarkvara versioon 2022.01, mis sisaldab Web eID komponente. – Autentimiseks kasutatakse TLS-CCA lahendust.
– Allkirjastamiseks kasutatakse hwcrypto.js teeki.
– Kasutaja autenditakse teenuses läbi operatsioonisüsteemi poolt toetatud komponentide või PKCS#11 draiveri.
– Allkirjastamiseks kasutatakse Web eID brauserilaiendust ja omarakendust (native app).
ID-tarkvara versioon 2022.01, mis sisaldab Web eID komponente. – Autentimiseks ja allkirjastamiseks kasutatakse Web eID lahendust. ID-kaardiga autentimiseks ja allkirjastamiseks kasutatakse Web eID brauseri laiendust ja omarakendust (native app).

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 avalikustatud 27.07.2021

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

Web eID v1.0.2 avalikustatud – 21.10.2021

  • Safari tugi

Web eID v2.0 avalikustatud – 21.01.2022

  • Muudatus formaadis
  • Uue disaini IV etapp
  • Täiendused ja muudatused tõlgetes
  • PinPad erijuhud
  • Läti, Leedu ja Soome kaartide täiendused
  • Täiendavad parendused/parandused

ID-tarkvara reliis kasutajatele avalikustatud – 15.03.2022

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

Näidis .NET platvormile avalikustatud – 19.05.2022

Web eID autentimistõendi valideerimisteek PHP platvormile – III kvartal 2022

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

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 – 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 paigalduse kohta leiad rohkem infot siit.

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.

KKK

Kus ma saan lugeda Web eID turvalisusest?

Web eID lahenduse turvaanalüüsi koostas Cybernetica AS. Turvaanalüüsiga saab tutvuda siin: https://web-eid.github.io/web-eid-cybernetica-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 on lisatud 2022 märtsis avalikustatud ID-tarkvara paigalduspaketti, mis on kasutajate jaoks kättesaadav www.id.ee veebilehelt.

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 leiab 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 – [email protected].