permalink |
---|
Usaldustoimingud |
Märkus. Töödokument, mida ei ole kinnitatud. {:.teade}
{: .no_toc} v 0.1, 08.02.2018
- TOC {:toc}
Käesolev spetsifikatsioon määratleb usaldus- ja võtmehalduse tehnilise lahenduse eIDAS konnektorteenuse siseriiklikes liidestes.
Spetsifikatsioon on kaasdokumendiks eIDAS siseriiklikele usaldus- ja krüptonõuetele. Spetsifikatsiooni stabiliseerudes dokumendid liidetakse.
Süsteemis on vaja lahendada võtmehalduse (Key Management) ja "usaldusehalduse" (Trust Management) korraldus. Lahendus peab olema:
- piisavalt turvaline
- dokumenteeritud
- osapooltele kommunikeeritud
- tarkvaras teostatav.
- usaldushaldus, Trust Management - sõnumivahetuse autentsuse saavutamisele suunatud toimingud, nii konnektorteenuse osutaja (RIA) kui ka teenusekasutaja (asutuse) poolel. Seotud, kuid mitte võrdne võtmehaldusega
- võtmehaldus, Key Management - krüptograafiliste võtmetega seotud toimingud: loomine, edastamine, kasutamine jm - võtme kogu elukaare ulatuses
- asutus - asutus, kelle süsteem konnektorteenust tarbib; kitsamalt - asutuse süsteemihaldur
- RIA - siin: RIA süsteemihaldur vm töötaja, kes on volitatud paigaldustoiminguid tegema
- konnektorteenus - RIA taristus paigaldatud tarkvarasüsteem, kuulub eIDAS Node koosseisu
- teenusepakkuja süsteem (Service Provider, SP) - asutuse süsteem, mis tarbib konnektorteenust ja osutab e-teenust kasutajale
- usaldushoidla - RIA konnektorteenuse juures peetav usaldatavate sertide. Tehniliselt teostatud Java Keystore, failisüsteemi vms abil
- sõnum - teenusepakkuja süsteemi poolt konnektorteenusele saadetav SAML sõnum; sisaldab autentimispäringut
- allkirja valideerimine - sisaldab kolme sammu:
- allkirja vormingu valideerimine. Kontroll, et allkiri vastab XML ja SAML-allkirja vormingule.
- krüptograafiline valideerimine. Kasutades allkirja juures olevat serti, kontrollitakse, et allkiri on tõepoolest moodustatud serdis sisalduvale avalikule võtmele vastava privaatvõtmega. Sellega saadakse kindlus, et allkirjastatud sõnumit ei ole muudetud. Krüptograafilisest valideerimisest ei piisa, vt usaldatavuse kontrollimine.
- usaldatavuse kontrollimine. Kontrollitakse, et allkirjastamisel kasutatud võti on usaldatav.
Olulised piirangud:
- eIDAS Node-i tarkvara ümbertegemist või täiendamist tahame võimalikult vältida.
- Märkus. Põhimõtteliselt on see võimalik, mingist hetkest võib-olla ka vältimatu. Kuid fork-i tegemine tõstaks hüppeliselt tarkvara hoolduskulusid.
- eIDAS Node-i tarkvaras praegu ei ole teostatud usaldusahela kontrolli.
- Kontrollitakse, kas sert sisaldub usaldushoidlas ja see on kõik.
- eIDAS Node-is võtme- ja usaldushaldusega tegelevaid komponente saab sõlmede omavaheliseks ja siseriiklikuks suhtluseks erinevalt seadistada ainult piiratud ulatuses.
- Eraldi võtmehalduslahenduse tegemine siseriiklikuks ja Node-to-Node suhtluseks tähendaks Node-i tarkvara olulist muutmist.
Piirangutest ja vajadustest lähtuv lahendus koosneb järgmistest toimingutest. Toimingud peavad olema:
- teostatud tarkvaras
- Liidestatava süsteemi tarkvara peab toetama toiminguid 5-6, 9-11.
- Konnektorteenuse seadistus peab toetama toiminguid 8, 12-17.
- reguleeritud sisemiste kordadega (protseduuridega) nii RIA kui ka asutuse poolel.
Kõik toimingud tehakse eIDAS siseriiklikes usaldus- ja krüptonõuetes määratud krüptoalgoritme ja võtmepikkusi kasutades.
Ülevaade toimingutest on esitatud joonisel 1.
Usaldusankur seatakse toiminguga 8.
Joonis 1
nr | Osapool | Tegevus | Selgitus
1 | Asutus | Moodustab metateabe allkirjastamise võtmepaari |
2 | Asutus | Moodustab metateabe allkirjastamise serdi | CN
väärtuseks märgib Asutuse nime (kuid konnektorteenuse tarkvara ei kasuta seda teavet). Võib olla self-signed
3 | Asutus | Moodustab sõnumi allkirjastamise võtmepaari |
4 | Asutus | Moodustab sõnumi allkirjastamise serdi | CN
väärtuseks märgib Asutuse nime (kuid konnektorteenus ei kasuta seda teavet). Võib olla self-signed
5 | Asutus | Lisab moodustatud serdid oma süsteemi seadistusse |
6 | Teenusepakkuja süsteem | Genereerib seadistuse põhjal metateabe | SAML-vomingus XML-fail on teenusepakkuja metateabe otspunktist kättesaadav
7 | Asutus | Edastab metateabe allkirjastamise serdi RIA-le | Edastatakse turvalise out of band kanali kaudu. Edastuse korraldus lepitakse kokku otsesuhtluses RIA ja Asutuse vahel
8 | RIA | Lisab metateabe allkirjastamise serdi usaldushoidlasse | Enne kontrollib, kas CN
väärtuseks on Asutuse nimi. See on vajalik sertide eristamiseks võtmete väljavahetamisel
| | LÕPP. Tegevusi korratakse sertide aegumisel | Key Roll-over-i e dünaamilise võtmeuuenduse teostamine nõuab arendust ainult teenusepakkuja süsteemis.
nr | Osapool | Tegevus | Selgitus
9 | Teenusepakkuja süsteem | Koostab sõnumi | Lisab sõnumisse (Issuer
elementi) metateabe otspunkti URL-i
10 | Teenusepakkuja süsteem | Allkirjastab sõnumi. Allkirjale lisab allkirjastamise võtmepaari avaliku võtme | Sõnumi allkirjastamisel kasutab privaatvõtit
11 | Teenusepakkuja süsteem | Edastab allkirjastatud sõnumi konnektorteenusele |
12 | Konnektorteenus | Teeb sõnumi krüptograafilise valideerimise | Dekrüpteerib räsi, võrdleb seda selgeteksti põhjal arvutatuga. Saab kindluse, et allkirjastatud sõnumit ei ole muudetud
13 | Konnektorteenus | Võtab sõnumist teenusepakkuja metateabe URL-i ja laeb alla metateabe | Kasutades puhverdamist. Puhverdamist tüüritakse konnektorteenuse seadistusparameetriga nonDistributedMetadata.retention
ja teenusepakkuja metateabe parameetriga validUntil
14 | Konnektorteenus | Teeb metateabe krüptograafilise valideerimise | Saab kindluse, et allkirjastatud metateavet ei ole muudetud
15 | Konnektorteenus | Kontrollib metateabe allkirjastamisel kasutatud võtme usaldatavust | Võrdleb metateabe allkirjaga kaasasolevat avalikku võtit usaldushoidla sertides olevate võtmetega. Allkirjastamise avalik võti peab sisalduma usaldushoidla mõnes serdis
16 | Konnektorteenus | Võtab metateabest sõnumi allkirjastamise serdi | Võib puhverdada
17 | Konnektorteenus | Kontrollib sõnumi allkirjastamisel kasutatud võtme usaldatavust | Võrdleb sõnumi allkirjaga kaasasolevat avalikku võtit eelmisel sammul saadud serdis sisalduva võtmega. Võtmed peavad ühtima
| | LÕPP. Sõnumi usaldatavus on kontrollitud |
Tehakse toimingud 3-6. Seejuures uue serdi lisamisel teenusepakkuja süsteemi seadistusse (toiming 5) vana sert eemaldatakse.
Uus võti hakkab toimima hetkest, kui konnektorteenuses metateabe uuendamise puhver aegub (ja konnektorteenus pöördub uuesti teenusepakkuja metateabe otspunkti poole). Seetõttu on soovitatav võtme väljavahetamise ajaks seada teenusepakkuja süsteemis validUntil
periood lühikeseks.
Tehakse toimingud 1-2, 5-8. Uus võti hakkab toimima kohe.
(usalduse kaotusel teenusepakkuja võtme korrumpeerumise vm põhjusel)
nr | Osapool | Tegevus | Selgitus 18 | RIA | Eemaldab teenusepakkuja serdi usaldushoidlast | | | LÕPP. Konnektorteenus ei võta enam teenusepakkuja süsteemist sõnumeid vastu | Jõustub hetkest, kus konnektorteenuse metateabepuhver aegub
Metoodika. Teatud (üpris üldisi) juhiseid saab väljaannetest:
- NIST 800-130 (2013) A Framework for Designing Cryptographic Key Management Systems
- NIST 800-57 Key Management Guidelines (2016)
- vt ka A Profile for U.S. Federal Cryptographic Key Management Systems
Sõnumit loeme usaldusväärseks, kui toimingutest saab loogiliselt järeldada, et sõnumi saatja valdab mõnda usaldushoidlasse paigaldatud avalikku võtit.
Konnektorteenus,
saades sõnumi
S, URL, Ka, {H(S, URL, Ka)}Ks
kus
S - autentimissõnum
URL - metateabe otspunkti aadress
Ka - sõnumi allkirja avalik võti
Ks - sõnumi allkirja privaatvõti
{H(S, URL, Ka)}Ks - allkiri
teeb allkirja valideerimisega (dekrüpteerib allkirja Ka-ga ja
võrdleb H(S, URL, Ka)-ga) kindlaks, et URL-i on saatnud Ks valdaja
URL-lt saab metateabe - C, Ma, {H(C, Ma)}Ms
kus
C - sõnumi allkirjastamise sert
Ma - metateabe allkirja avalik võti
Ms - metateabe allkirja salajane võti
{H(C, Ma)}Ms - allkiri
teeb allkirja valideerimisega kindlaks, et C, Ma on saatnud Ms valdaja
teeb kindlaks, et Ma sisaldub usaldushoidlas (mõnes serdis)
järelikult Ms valdaja on usaldatav
järelikult on ka Ms valdaja saadetud C usaldatav
järelikult on ka C-s sisalduv avalik võti usaldatav
kontrollib, kas C-s sisalduv avalik võti = Ka
kui on, siis Ks-i valdaja on usaldatav
ja tema saadetud sõnum S on usaldatav.