TLS pärandprotokollid ja TLS 1.3 mõju ID-kaardi kasutusele

Eelmises postituses kirjutasin PHP pärandvarast, täna teen juttu sarnasesse staatusesse jõudnud krüptograafilistest protokollidest. Täpsemalt tuleb jutt TLS (Transport Layer Security) protokolli versioonidest 1.0 ja 1.1, mis kinnitati standarditena vastavalt 1999. ja 2006. aastal.

Kui mäletate, siis eelmisel suvel arutasime Zone veebimajutusteenuse osas TLS versiooni 1.0 vaikimisi keelamist, kuna selle kasutamine ei vasta kehtivatele e-kaubanduse infoturbestandarditele (PCI DSS). Jätsime selle kasutamise kliendi otsustada. Järgmise sammuna lõpetame 1. aprillist 2019 oma veebimajutuses TLS versiooni 1.0 ja 1.1 vaikimisi toetamise. Lubame kliendil pärandprotokollide tuge ajutiselt ise “käsitsi” sisse lülitada.

Mõnedes ringkondades küsitakse, miks selliseid vanu krüptoprotokolle sellelgi moel veel toetada? Ka meile oleks palju lihtsam nende standardite toetamisest üldse loobuda, kuid reaalsuses sõltuvad tänagi mitmed meie kliendid seadmetest ja tarkvarast, mis valminud sajandivahetuse paiku või eelmisel aastakümnel ja nad vajavad üleminekuks aega. Samuti ei näita riskihinnangud nendes vanemates protokollides olevate nõrkuste reaalset ärakasutamist.

Globaalne progress on siiski meile ette andnud konkreetse tähtaja TLS 1.0 ja TLS 1.1 standarditest lõplikuks loobumiseks. Nimelt on suuremate veebilehitsejate arendajad teatanud, et brauseritest kaovad need versioonid lõplikult 2020. aasta märtsis. Võtame samuti selle tähtaja endale orientiiriks ja hiljemalt 2020. aasta märtsist ei saa TLS pärandversioone meie juures ka “käsitsi” sisse lülitada.

Aktuaalsete TLS versioonidena on meil täna toetatud TLS versioonid 1.2 ja osaliselt ka 1.3, mis on ametlikeks standarditeks saanud vastavalt 2008. ja 2018. aastal. Kuna viimase näol on tegemist verivärske standardiga, siis ei ole selle tugi veel kogu meie tarkvarasse jõudnud.

Mis toob mind ühe laiemalt teadvustamist vajava teema juurde. Nimelt selgus meil TLS 1.3 implementeerimise käigus huvitav asjaolu, mis võib lisaks meie klientidele mõjutada oluliselt kõiki Eesti internetikasutajaid:

TLS 1.3 standardi kasutuselevõtul lõpetab Eesti ID-kaardiga autentimine veebiserveri kataloogi tasandil töötamise!

Põhjuseks fakt, et suuremate veebilehitsejate tootjatest pole veel ükski juurutanud TLS 1.3 protokolli kätluse järgset autentimist (post-handshake authentication). Brauseritootjatel ei paista selle vastu olevat ka suuremat huvi – Chrome vastava bugiraporti leiab lehelt https://bugs.chromium.org/p/chromium/issues/detail?id=911653 ja Firefoxi oma https://bugzilla.mozilla.org/show_bug.cgi?id=1511989.

Sellest kitsaskohast saab ümber kahel moel:

• loobuda TLS 1.3 kasutamisest;
• viia ID-kaardiga autentimine kataloogi tasandilt üle veebiserveri virtuaalhosti tasandile.

Mõlemad meetodid on kirjeldatud Apache vastavas bugiraportis https://bz.apache.org/bugzilla/show_bug.cgi?id=62975.

Kuni brauseritootjad uut autentimismeetodit ei implementeeri, jääb eelpoolkirjeldatud ID-kaardi kasutusstenaarium sõltuma tänaseks kümme aastat vana TLS versiooni 1.2 edasisest püsimisest.

Omalt osalt otsustasime eeltoodu põhjal, et lubame TLS 1.3 kasutuse esialgu ainult oma uutes serverites. Nii ei tee me katki klientide olemasolevaid kasutuslugusid. Juhendame neid selle probleemiga tegelema hiljemalt siis, kui nad oma uuele serveriplatvormile üle viime.

Mis puudutab aga ID-kaarti, siis ilmselt tuleks otsustajatel Riigi Infosüsteemide Ametis (RIA) tõsiselt ja operatiivselt mõelda selle üle, kas ei oleks aeg leida veebiserveris kasutajate autentimiseks lahendusi, mis ei sõltuks ajale jalgu jäänud või tarkvaraarendajate põlualla sattunud meetoditest. Ja kui teispidi mõelda, siis oleks ju ka tore, kui meie rahvusliku PKI funktsionaalsus ei sõltuks Google Chrome arendajate suvast.

Oluline info PHP pärandvara kohta

Aasta 2019 tõi paljude jaoks endaga kaasa ebameeldiva üllatuse, 1. jaanuari seisuga muutusid pärandvaraks (“legacy”) kaks seni väga populaarset PHP versiooni 5.6 ja 7.0, mis enam arendajalt turvauuendusi ei saa.

Pärandvara kasutamine toob endaga kaasa riske, kuna see ei käi kaasas heade tavade ja praktikatega ning võib läbi paljastatud, kuid parandamata turvanõrkuste omandada ründajate kätes vaenuliku funktsiooni, pakkudes tagauksi seda kasutavatesse süsteemidesse.

Pärandvaraks muutunud tarkvaral on loomulikult muidki puuduseid kaasaegse tarkvaraga võrreldes, mida ilmestab juuresolev illustratsioon.

PHP versioone toetatakse arendaja poolt aktiivselt kaks aastat, misjärel pakutakse aasta jagu neile veel turvauuendusi.

Käesoleva aasta seisuga on arendajate poolt turvauuendustega toetatud kolm PHP versiooni:

  • 7.1 (kuni 1.12.2019)
  • 7.2 (kuni 30.11.2020)
  • 7.3 (kuni 6.12.2021).

Vanemate PHP versioonide kasutajad peaksid need vahetama mõne ülal nimetatud versiooni vastu.

Lugejale võib siinkohal tunduda, et ta ei kuule vajadusest kasutusel olevat PHP versiooni vahetada esimest korda, mis on ilmselt tõsi. Kuid sarnaselt paljudele teistele riskide maandamise vajadusest jutlustavatele epistlitele, mis räägivad näiteks vajadusest hoida piirkiirust, paigaldada suitsuandur või vahetada õigeaegselt välja talverehvid, kipuvad paljud seda sõnumit ignoreerima.

Seda ei maksa siiski teha, sest uuenenud pole mitte ainult PHP versioonid, vaid ka küberruum, kus neid rakendatakse. Hiiglaslike hüpetega arenevad nii tehnoloogilised platvormid kui ka ühiskond. Mis toob mind kahe olulise tõdemuseni:

  • esiteks, päris vanu PHP versioone ei ole Zonel peagi võimalik enam töökindlalt pakkuda, isegi kui kasutaja on valmis selleks võtma teatud turvariske nagu seni, põhjuseks on asjaolu, et teegid mida vanemad PHP versioonid vajavad kaovad järjest ajalukku;
  • teiseks, küberruumi reguleerivad üha rangemad ja spetsiifilisemad õigusaktid, mis otsesõnu nõuavad infosüsteemide omanikelt teadaolevate infoturberiskide maandamist – Euroopa Liidu tasandil on kehtestatud isikuandmete kaitse üldmäärus, kohalikul tasandil on vastu võetud küberturvalisuse seadus, peagi hakkab ilmselt kehtima e-Privaatsuse direktiiv, kuigi konkreetseid vahendeid nagu PHP nendes loomulikult ei mainita, rikub teadaolevate nõrkustega tarkvara kasutamine seaduste mõtet ja nende nõudmistele mittevastamine võib tõsisema intsidendi korral endaga kaasa tuua reaalsed, märkimisväärsed sanktsioonid.

Seega, hoiatan ette. Zone kaotab oma järgmise põlvkonna serveriplatvormist juba väga aegunud (ilmselt <= 5.5) PHP versioonide toe ära. Üleminek uuele platvormile hakkab meil juba aprillis, mil hakkame ise järgemööda võtma ühendust nende klientidega, keda see puudutab.

Lisaks võib juhtuda, et mõne tehnoloogiliselt toetatud, kuid tootja poolt juba hüljatud PHP versioonid (ilmselt <=7.0) peame määratlema pärandtarkvarana, mille teenindamisele tuleb kehtestada täiendav teenustasu, et senisest jõulisemalt suunata kliente kasutama turvalisemat, kiiremat ja efektiivsemat tarkvara; ning kompenseerida Zonele pärandtarkvara toetamisega seotud reaalsed kulud ja riskid.

Tööd saab olema paljudel. Täna kasutab veel sadu Zone kliente peagi 20 aastaseks saavat PHP 4. põhiversiooni. Turvaparandusi ei ole selle alamversioonidele välja lastud juba üle 10 aasta (sic!).

Hullem lugu on PHP 5. põhiversiooniga, mis lasti välja 2004. aastal. Selle populaarsed alamversioonid 5.2, 5.4 ja 5.6 muutusid pärandvaraks vastavalt 2011, 2015 ja 2018. Nende versioonide kasutajaid on kahjuks jätkuvalt tuhandeid.

Ülalnimetatud olukord ei ole kuidagi tekkinud Zone osavõtmatusest, oleme järjepidevalt teinud kõik uuemate PHP versioonide populariseerimiseks:

  • uued versioonid on muutunud klientidele kättesaadavaks kohe, kui nad on arendaja poolt välja lastud;
  • oleme tutvustanud oma blogis laiemale üldusele uute PHP versioonide peamiseid eeliseid;
  • avaldame serveriteenuste haldusliideses järjepidevalt meeldetuletusi klientidele, kes kasutavad PHP vanemaid versioone;
  • keelasime uutel klientidel vanemate PHP versioonide kasutuselevõtu;
  • keelasime PHP versiooni vahetajatel tagasipöördumise vanematele versioonidele;
  • oleme teostanud oma serverites löök-inventuure, mille käigus oleme PHP sätted kaasaegsemate vastu ära vahetanud nendel alam- ja põhidomeenidel, kus PHP-d parasjagu reaalselt ei kasutata;
  • jne.

Kõigel sellel on olnud mõju, kuid kahjuks mitte piisavalt suur ja see mis meid siia toonud, kahjuks edasi meid enam ei vii.