Näiteskript CRL-ide automaatseks uuendamiseks - Reigo Küngas
Esimese versiooni allikas: http://www.colleduc.ee/id.html, Taniel Kirikal
Kontrollitud apache 1.3.22 + mod_ssl 2.8.5 peal (alltoodud failide asukohad peaks kehtima redhat 7.x kohta)
Ülalkirjeldatud meetodi puhul kontrollitakse sertifikaatide kehtivust tühistusnimekirja regulaarse allalaadimise abil. See on kõige lihtsam meetod, millest piisab neis saitides, kus pole tegu väga oluliste tehingute tegemisega. Kuna tühistusnimekirjade uuendamise maksimaalne vahemik võib olla kuni 12 tundi, võib tekkida olukord, kus isiku sertifikaadid on juba peatatud, kuid pole veel tühistusnimekirja jõudnud.
Tühistusnimekirjadest turvalisem on teostada kehtivuse kontrolli iga päringu puhul OCSP-teenuse abil, kus on reaalajas saadaval värskeimad kehtivusandmed. Selle realiseerimine on aga hetkel veidi keeruline, kuna OpenSSL-i vastav funktsionaalsus pole veel lõppversiooni jõudnud ja on hetkel beetas. Samuti pole see veel integreeritud mod_ssl-i. Loomulikult aga võib OCSP abil kehtivuskontrolli teostada veebirakenduses endas. Juhiseid loe siit.
Juhendi autor Neeme Vool (suur tänu talle asjaliku kirjelduse eest!)
1. Installeeri IISi SSL tugi. SSL on vajalik, IIS ei aktiveeri kliendilt sertifikaatide küsimist üle HTTP.
Selleks:
a) osta, generereeri või hangi testsertifikaat. SSL sertifikaatide pakkujaid on väga palju ja hinnad on väga erinevad. Erinevused tulevad peamiselt sellest, kas SSL sertifikaadi pakkuja on kõigis enamlevinud brauserites registreeritud või mitte. Lisaks muud “äriteenused” ja “võimalused”, nagu näiteks “wildcard SSL” jms. Ise ostsin SSL sertifikaadi Thawtelt, sealtsamast saab ka 21 päeva kehtiva ajutise sertifikaadi. Thawte ostu protsess on samuti kõige arusaadavam.
b) kuidas täpselt SSL sertifikaati IISi paigaldada, võib lugeda kahte allikat kombineerides: Thawte lehelt dokumendist https://www.thawte.com/ucgi/gothawte.cgi?a=w44600158747054000 (Securing your Microsoft Internet Information Services (MS IIS) Web Server with a thawte Digital Certificate ja raamatust Microsoft IIS 6.0: Administrator’s Pocket Consultant, William R. Stanek, ISBN: 0735615608. Viimati nimetatud raamatus peatükk 8 on väga lakooniline ja samas täpne.
2. Kontrolli, et IIS suudab üle HTTPSi serveerida.
3. Lae Sertifitseerimiskeskuse lehelt alla sertifikaadid: http://www.sk.ee/pages.php/0202040501
Sul on vaja PEM formaadis sertifikaate: Juur-SK, ESTEID-SK ja ESTEID-SK 2007.
Kindlam viis on sertifikaadid installeerida Windows Serveri halduskonsoolis, selleks:
a) Start->Run, kirjuta mmc, OK. Avaneb tühi konsool.
b) konsoolis vali File->Add/Remove Snap In, avanenud aknas vajuta nuppu Add…
c) avanenud uues aknas vali nimekirjast Certificates, vajuta Add. Avaneb uus aken, kus vali Compute account. Finish, Close.
d) vajuta järelejäänud aknas OK.
e) Halduskonsooli tekitati Certificates puu, kus ava Trusted Root Certification Authorities ja parema hiire klikiga vali selle peal All Tasks -> Import. Vali JUUR-SK.PEM.cer ja impordi.
f) Impordi sertifikaatide harusse Intermediate Certification Authorities/Certificates alla ESTEID-SK.PEM.cer ja ESTEID-SK 2007.PEM.cer
4. Ava IIS halduskonsool, vali veebisaidi, millele soovid ID autentimist rakendada omadused (Properties). Kaardilt Directory Security (mis peaks juba tuttav olema, kuna sealt paigaldasid ka eelnevalt SSL sertifikaadi) vajuta osas Secure Communications nuppu Edit …
a) võid märkida valikukasti Require secure channel - kuid ID kaardiga autentimiseks ei ole see kogu saidile vajalik.
b) vali Client certificates alt vähemalt Accept client certificates (arusaadavatel põhjustel ei ole mõtet valida Ignore …)
c) Tee linnuke valikukasti Enable certificate trust list. Kui sul veel ei ole ühtki, siis vali New. Avanenud viisardis vajuta nuppu Add From Store, kus avanenud aknas lisa JUUR-SK sertifikaat.
Juhul, kui kasutad test-SSL sertifikaati, siis pead valima lisaks ka juursertifikaadi SSL jaoks (mina näiteks Thawte Test CA Root).
Certificates in the CTL ehk Certificate Trust List loetleb JUURsertifikaadid, mille sertifikaate aktsepteeritakse.
5. Edasi võid ID kaardiga autentimiseks valida mitmeid tehnikaid - kuid, sa ei pea sugugi kõiki faile tingimata kaitsma ID kaardi autentimisega. Piisab, kui su lehel leidub üks fail, nt. login.aspx, mille puhul nõutakse autentimist ja login.aspx seab püsti juba sessiooni, näiteks cookie põhise. Edasi teised failid kasutaks siis juba enda loodud sessiooni. See on otstarbekas näiteks siis, kui lehel saab mitmel moel autentida.
6. Login.aspx ID autentimist küsima panemiseks vali IIS halduskonsoolis veebisaidi failide nimekirjast Login.aspx ja parema nupuga kuva omadused ehk Properties.
a) vali File Security kaart, sealt Secure Communications osast vajuta Edit …
b) Tee linnuke valikukasti Require secure channel (SSL)
c) Client Certificates osast vali vähemalt Accept client certificates. Sa ei pea valima Require client certificates, sest juhul, kui kasutaja keeldub ID kaardiga autentimast, peaksid saama endiselt pakkuda kasutajale alternatiive, mitte keelduma näitamast login lehekülge.
7. Nüüd jääb teha veel saidipõhine autentimis- ja sessioonilahendus. Väga lihtne näide, kuidas ilma sertifikaadi aegumist kontrollimata lugeda aspx failis isikukood ja nimi:
if (Request.ClientCertificate["Subject"].Length == 0)
{
Response.Write(”Ei antud sertifikaate”);
}
else
{
String unparsed=Request.ClientCertificate["Subject"];
System.Text.RegularExpressions.Regex re = new Regex(”SERIALNUMBER=(\\d{11})”);
Response.Write(”<br/>unparsed:” + unparsed + “<br/>”);
if (re.IsMatch(unparsed))
{
String idcode = re.Match(unparsed).Groups[1].Value;
Response.Write(”Su isikukood on:” + idcode + “<br/>”);
}
System.Text.RegularExpressions.Regex rename = new Regex(”SN=(.*?),\\s+G=(.*?),”);
if (rename.IsMatch(unparsed))
{
String eesnimi = rename.Match(unparsed).Groups[1].Value;
String perenimi = rename.Match(unparsed).Groups[2].Value;
Response.Write(”Su nimi on: “+eesnimi+” ” +perenimi+”<br/>”);
}
}
Muudatused seoses ESTEID-SK 2007 väljastamisega
Vastavalt isikut tõendavate dokumentide seaduse muudatusele on alates 1. jaanuarist 2007 isikutunnistusele (ID-kaardile) väljastatud sertifikaatide kehtivusaja ülempiir 5 aastat. Kuni selle hetkeni väljastati ID-kaardile sertifikaate, mille kehtivusaja ülempiir oli 3 aastat.
Praegu väljastab isikutunnistusle sertifikaate SK hallatav sertifitseerija ESTEID-SK, mille allkirjastamisvõtme kehtivusaeg lõpeb 13. jaanuaril 2012.
Arvestades esimese lõigus toodud muudatusega, moodustas SK 3. jaanuaril kell 14.22.37 isikutunnistusele sertifikaate väljastava sertifitseerija allkirjastamisvõtme – ESTEID-SK 2007 – mille avalik võti on toodud sertifikaadis:
| Eraldusnimi | Number | Kehtivuse algus | Kehtivuse lõpp | Räsi (SHA1) |
| CN = ESTEID-SK, OU = ESTEID, O = AS Sertifitseerimiskeskus, C = EE | ‎459B
| 03.01.2007 14:22:37 | 26.08.2016 16:23:01
| 305D 9B27 3E69 8527 625B 64CC CBAF BFDB 32A6 4264 |
Uue sertifitseerija sertifikaadi saab alla laadida SK kodulehelt http://www.sk.ee/files/ESTEID-SK 2007.pem.cer.
Seoses toodud muudatustega peavad isikutunnistust toetavad veebiteenused lisama usaldatavate sertifitseerijate sertifikaatide failidesse või hoidlasse eelnimetatud ESTEID-SK 2007 sertifikaadi. Samuti peavad ID-kaardile erilahenduste tegijad arvestama toodud muudatusega. Samuti peavad toodud muudatusega arvestama kõik muud isikutunnistust toetavad rakendused.
Teenused, mis kasutavad sertifikaadi kontrollimiseks tühistusnimekirju peavad arvestama, et ESTEID-SK 2007 väljastatud tühistusnimekirjad on kättesaadavad aadressilt: http://www.sk.ee/crls/esteid/esteid2007.crl
Lisaks eeltoodud muudatusele kasutatakse ESTEID-SK 2007 väljastatud sertifikaadi eraldusnimes UTF-8 kodeeringut. Märkusena olgu toodud, et siiamaani kasutati sertifikaadi eraldusnime kodeerimisel UCS-2 kodeeringut.
Kui sertifikaatide kontrollimisel kasutatakse SK sertifikaatide kehtivuskinnitusteenust, siis peab arvestama sellega, et ESTEID-SK 2007 sertifikaatide kehtivuskinnitused allkirjastatakse võtmega, mille avalik võti on toodud sertifikaadis:
| Sertifikaadi eraldusnimi | Järjekorra number | Kehtivuse algus | Kehtivuse lõpp | Räsi (sha1) |
| CN = ESTEID-SK 2007 OCSP RESPONDER, OU = OCSP, O = ESTEID, C = EE | ‎459D1A72 | 04.01.2007 17:17:06 | 08.01.2010 | FDD7 2A93 2E8F 7B85 FCE5 6336 A109 85D7 6A2B 82BE |
Kehtivuskinnitusteenuse sertifikaadi saab alla laadida ka SK koduleheküljelt http://www.sk.ee/files/ESTEID-SK 2007 RESPONDER.pem.cer .
Kehtivuskinnituste kontrollimiseks tuleb see sertifikaat lisada digitaalallkirjastamisega seotud tarkvaradesse. Täpsem juhend on toodud SK koduleheküljel http://www.sk.ee/pages.php/0202070108,1187.
Nimetatud sertifikaatide levitamise lihtsustamiseks lisab SK need ID-kaardi installeri tarkvarasse http://installer.id.ee.
Uus sertifitseerija hakkas ID-kaardile sertifikaate väljastama 2007. a. 13. jaanuaril kell 0.00.
Seni ID-kaardile sertifikaate väljastanud sertifitseerija jätkab sertifikaatide peatamise, peatatuse lõpetamise ja kehtetuks tunnistamise päringute vastuvõttu ja tühistusnimekirjade väljastamist kuni tema poolt viimase väljastatud sertifikaadi kehtivusaja lõpuni (jaanuaris 2012).
Viimati uuendatud: 1210167452