Veel TLS uuendustest

Mõned postitused tagasi kirjutasin siin TLS (Transport Layer Security) pärandversioonide hülgamisest ja TLS versiooni 1.3 kasutuselevõtust. Tänaseks on kõik sellega seotud tööd meie platvormis teostatud –
tarkvaraplatvorm toetab vaikimisi vaid parimatele praktikatele vastavaid protokolliversioone (1.2 ja 1.3), kuid oleme klientidele loonud võimaluse ajutiselt pärandversioonide (1.0 ja 1.1) tuge sisse lülitada (vt allolevat illustratsiooni 1).

Illustratsioon 1

Rõhutan siiski, et pärandversioonide kasutamine ei ole pikas perspektiivis jätkusuutlik ja põhjustab meile palju peavalu. Näiteks annavad täna mitmed infosüsteemide võrgupinu turvalisust hindavad skännerid meie klientide saitidel TLS 1.0 ja TLS 1.1 versioonide kasutamise kohta valepositiivseid hinnanguid ka siis, kui neid reaalselt ei kasutata.

Ainus pikas perspektiivis mõistlik lahendus on uuendada oma veebilehtede poole pöörduvat riist- ja tarkvara nii, et toetatud oleks ainult aktuaalsed TLS versioonid.

Veelkord ka ID-kaardiga autentimisest.

Nagu ka varem mainitud, siis TLS 1.3 kasutuselevõtuga muutus Eesti ID-kaardi autentimise kasutamine veebiserveris tehniliselt keerukamaks, sest autentimise nõudmine kataloogi tasandil ei ole enam praktiliselt võimalik.

Kuna ID-kaardi kasutuselevõtu seadistamine serveritasandil on   nüansirikkam teema, siis otsustasime selle keerukuse kasutaja eest veidi ära peita. Nii lõid meie tarkvaraarendajad Minu Zone haldusliidesesse uue “linnukese”, mille abil saab ID-kaardiga autentimise nõuet haldusliideses mõne klikiga sisse lülitada (vt ülalolevat illustratsiooni 1). Samuti on klientidel võimalik sealsamas sisse lülitada tuge tarkvaraarenduses kasutatavale testkaartidele.

Pärandversioonide juurest sujuvalt pärandteenuste juurde.

Oma esimese avaliku teenusena alustas Zone 1999. aastal tasuta veebimajutusteenuse pakkumist. Algselt said selle kasutajad endale kodulehe kujuga zone.ee/kasutajanimi, hiljem web.zone.ee/kasutajanimi.

Kasutajate nõudmiste kasvades jäi see teenus ajale jalgu ja lõime entusiastide ning õppurite jaoks hoopis Planet.ee keskkonna, mistõttu vanasse tasuta veebimajutusteenusesse kasutajate vastuvõtmine lõpetati.

Meie tehnikud otsustasid aga, et üldisele infoturbeolukorrale tuleb kasuks, kui tirime ka oma tasuta veebimajutuse pärandteenuse 21. sajandisse ja paneme selle “sõjaratsu” tööle üle turvalisema HTTPS protokolli.

Selleks tegime veelkord ühe kiire vangerduse ja võtsime HTTPS toe lubamiseks web.zone.ee nime asemel kasutusele nime webzone.ee.

Vanad aadressid suunatakse nüüd sujuvalt HTTPS ühendusele ümber.

30. juunist jõustub e-kaubanduse jaoks oluline HTTPS nõue

Käesolev blogipostitus on peatähtis läbi lugeda neil, kes tegelevad oma kodulehe vahendusel kaubandusega, kuid see on kindlasti oluline teadmiseks võtta ka teistele.

30. juunist ei luba Payment Card Industry Data Security Standard (PCI DSS) makseandmeid käsitlevate veebilehtede omanikel enam kasutada aegunud SSL/TLS turvastandardeid.

Selliste lehtede haldajad peaksid 30. juuniks veenduma, et nende HTTPS ühendused oleksid seadistatud järgmiselt:

1) SSL standardi kasutus peab olema täielikult keelatud;
2) kasutusel olev TLS protokoll peab olema vähemalt 1.1 või uuem.

Zone klientidel on hetkel seis selline:

1) SSL standardi kasutus on täielikult keelatud;
2) vaikimisi kasutusel olev TLS protokoll on 1.0 või uuem.

Rõhutan, jutt on konkreetselt SSL standardist! SSL-i terminit kasutatakse nii meil kui mujal (valesti) iseloomustamaks paljusid turvatud ühendusi, kuigi enamik neist põhineb tänapäeval juba TLS standardil.

Meie hoolsatel, turvateadlikel ja standardiga ühilduvust soovivatel klientidel on aga võimalus haldusliideses paari klikiga keelata vanemate TLS versioonide kasutamine. Selleks tuleb Virtuaalserveri haldusliideses Veebiserveri seadete alt muuta sätet “Luba aegunud TLS versioonide kasutamine”.

Võib kerkida küsimus, miks me TLS 1.0 kasutust üldiselt ära ei keela? Põhjus peitub selles, et interneti sügavustes eksisteerib veel mitu kihti internetti, üks neist on nö “asjade internet” ja teine “skriptide internet”. Need on internetikihid, millel püsib hoomamatu hulk meid ümbritsevaid protsesse ja milles iga suurem muudatus tähendab meie klientide jaoks ettearvamatuid tagajärgi.

Asjad, mis TLS 1.0 keelamisega võivad näiteks veebile ligipääsu kaotada:

* vanemad mobiiltelefonid;
* vanemad või odavamad käsiterminalid;
* vanemad või odavamad multimeediakeskused;
* vanemad operatsioonisüsteemid ja nende veebilehitsejad;
* vanemad skriptid ja programmid.

Ülevaatlikku tabelit erinevate seadmete TLS ühilduvusest üritab pakkuda muuhulgas GlobalSign.

Üks sarnane varasem iidvana protokolli toe lõpetamine on meie jaoks  näiteks lõppenud kõnega ühest logistikafirmast, mille käsiterminalid lõpetasid lennujaamas töö.

Erinevatel andmetel moodustab TLS 1.0 liiklus hetkel 5-11% kogu HTTPS-i abil turvatud ühenduste mahust.

Seetõttu oleme otsustanud, et jätame vanema TLS versiooni (TLS 1.0) kasutamise keelamise esialgu kliendi otsustada ning lükkame selle vaikimisi välja lülitamise veidi edasi, kuni teadlikkus on klientide hulgas veidi kasvanud.

Põhjus, miks PCI on otsustanud vanemate turvastandardite toetamise keelata peitub nende vanuses.

SSL (Secure Sockets Layer) on standardina olnud maha kantud juba tükk aega tagasi, kuid lühend ise elab turvatud ühendusi sümboliseeriva terminina inimeste teadvuses veel edasi. Reaalsuses lasti selle standardi viimane suurem versioon välja 1996. aastal ning aastast 2015 on selle kasutus sisuliselt keelatud (https://tools.ietf.org/html/rfc7568).

SSL-i asendas 1999. aastal standard TLS (Transport Layer Security) versiooniga 1.0 ning sellele on järgnenud versiooniuuendused 1.1 (2006 aastal) ja 1.2 (2008 aastal). 2018. aasta märtsist eksisteerib, peale pikka ja vaidlusterohket arendustööd, standardi mustandina ka TLS versioon 1.3, kuid selle laiemasse kasutusse jõudmine võtab veel veidi aega.

Mõlemad on olnud haavatavad tänu mitmetele nõrkustele, mis kandnud vahvaid nimesid nagu POODLE, BEAST, FREAK, BREACH, CRIME jt ning nende ja muude selliste aukude lappimine ei ole lihtsalt jätkusuutlik.

Chrome 56, “Not Secure” HTTP ja kuidas kolida HTTPS peale

Jaanuari lõpus jõuab kasutajateni Google Chrome brauseri versioon 56, mis hakkab parooli või krediitkaardiandmeid küsivaid veebilehti aadressribal ebaturvaliseks märkima, kui need ei kasuta HTTPSi ehk krüptitud ühendust serveri ja brauseri vahel.

Ääremärkus: See blogipostitus ja allviidatud WordPressi, Magento ja PrestaShopi kohta käivad juhised on osa “Paneks poe käima?” õpetuste sarjast millega saad liituda zone.ee esilehel või eraldi vormi kaudu.

Välja hakkab see “Not Secure” nägema nii, näidiseks on külastatud lehti HTTP://ebaturvaline.paalikas.eu ja HTTPS://turvaline.paalikas.eu mille sisuks on üks parooli-väli:

Kui arvad, et sinu veebi see ei puuduta, sest mingit kasutajate sisselogimist või ostmist ei toimu… siis tuleta korraks meelde, kuidas sa ise veebi haldamas käid. Logid ilmselt kuhugi sisse? Vahel ka mõnes kohviku-wifis olles? Tore! See “Not Secure” tähendab seda, et ka kõik sinu enda adminni-paroolid on huvilistele näha kohe, kui mõni võrguliiklust salvestav programm käima tõmmata:

Kuidas HTTPS veebiühendust kaitseb?

Kahel moel:

  1. veebibrauseri ja serveri vaheline side krüpteeritakse (šifreeritakse)
  2. enne iga ühenduse loomist kontrollib brauser, et ta suhtleks ikka õige serveriga – sest kui liiklust saab “pealt kuulata”, siis saab ilmselt ka “vahele rääkida”

Kui esimene punkt on puht-tehniline, siis teise jaoks on kasutusel brauseri poolt usaldatud osapoole kinnitus ehk sertifikaat. Pikka aega tegi HTTPSi kasutuselevõtu keeruliseks vajadus sertifikaat osta, paigaldada ja hiljem iga aasta pikendada. Eelmisel aastal käivitus aga Google jt initsiatiivil loodud Let’s Encrypt, mis pakub tasuta ning automaatselt väljastatavaid (ja pikendatavaid) sertifikaate. Tänu sellele peaks nüüd HTTPSi käima saama igaüks.

Kas Let’s Encrypt on sama hea kui tasulised sertifikaadid? Kui eesmärk on viia server HTTPS peale, siis vähemalt sama hea – Let’s Encrypt’i kasutab muuhulgas Majandus- ja Kommunikatsiooniministeeriumi veebileht (vt Let’s Encrypt nüüd “government grade” ka Eestis). Tasulist sertifikaati tasub kaaluda juhul, kui on huvi EV ehk extended validation sertifikaadi vastu – selline on kasutusel näiteks meil endal, kuvades “Secure” asemel väljastaja poolt kontrollitud ärinime.

Mida on HTTPS käimapanekuks vaja?

  • Let’s Encrypt sertifikaadi tellimine ja serveri seadistamine – üks klikk virtuaalserveri halduses
  • Lehe URLi muutmine veebitarkvaras – seda saab teha vastava tarkvara haldusliidesest
  • (vajadusel) Sisusse lisatud piltide jms URLide muutmine – saab teha pluginaga (WP puhul) või käsitsi
  • (vajadusel) Kujundusteemas kasutatud http:// URLide parandamine – võib vajada veebimeistri tuge
  • Kogu liikluse suunamine HTTPS peale – teine klikk virtuaalserveri halduses

Esimene ja viimane punkt on samad sõltumata tarkvarast, ülejäänute jaoks tegin aga lühikesed õppevideod koos kirjapandud põhipunktidega.

Proovisin need teha võimalikult lihtsad – aga kui need sinu jaoks liiga tehniliseks jäävad, siis edasta koos sooviga HTTPS kiiremas korras kasutusele võtta oma veebimeistrile, sest Chrome 56 tuleb niikuinii 😉

Juhendid

Igas juhendis on video ja lisaks ka tegevused punkt-haaval kirja pandud:

Paar märkust:

WordPressi juhend on natuke pikem, sest käsitleb ka olukorda, kui teemafailides on HTTP-viiteid piltidele – põhimõtteliselt kehtivad samad soovitused/lahendused ka teiste rakenduste jaoks.

Magento juhend on tehtud 1.9.x näitel, aga kui välja arvata seadistuse muutunud asukoht menüüs, siis peaks sobima ka 2.x jaoks.

PrestaShopi puhul juhiks tähelepanu, et Zone+ abil paigaldades tuleb see kõigepealt paigaldada HTTP peale ja siis üle viia (seotud sellega, et PrestaShopi hoiab eraldi infot URLi ja http/https kasutuse kohta).

Ja nagu ülal juba mainitud – kui on huvi rohkem tarkust saada, siis või lisa Paneks poe käima? listi mis jagab seda jupp-haaval, et oleks aega seedida ja korraga liiga targaks ei saaks 😉

PrestaShopi viimine HTTPS peale

PrestaShop jõustab seadistatud aadressi kasutamist üsna tugevalt ning kuniks haldusliideses pole SSL lubatud suunatakse kogu liiklus HTTP peale.

See võib tekitada probleeme, kui proovida .htaccess või meie “Suuna kogu liiklus HTTPS peale” väliseid reegleid kehtestada – tulemuseks on lõputu ümbersuunamiste tsükkel. Sama probleem ilmneb, kui Zone+ abil proovida PrestaShop’i installeerida HTTPS’i kasutavale serverile – lahendus on installeerida HTTP peale ja siis teha allkirjeldatud muudatus.

  1. Telli serverile Let’s Encrypt sertifikaat –  Minu Zone » Halda » Veebiserver » Let’s Encrypt, valida tuleb vaid vastava server (või alamdomeen). Sertifikaat väljastatakse nii www-ga kui ilma aadressile, samuti kõigile olemasolevatele aliastele. Kui sertifikaadi väljastamine ei õnnestu, on tõenäoliselt mingi probleem veebiserveri seadistustega, kirjuta info@zone.ee ja küsi julgelt abi.
  2. HTTPS toe käivitumine võtab kuni 10 minutit, võta üks kohv/tee/vesi.
  3. Proovi kas pood toimib HTTPS pealt sisestades aadressiribale poe URLi ette https:// – https://[firmanimi-punkt-eu]/ – tulemuseks peaks PrestaShop suunama su kohe tagasi http:// peale.
  4. Sisene haldusliidesesse ning vali peamenüüst Eelistused » Üldine. Kui Lülita SSL sisse järel on nupu asemel link “Kliki siia, et kontrollida”… siis kliki – admin avatakse https:// ühendusel. Seejärel lülita SSL sisse, Salvesta ja pane lisaks ka Luba SSL kõikidel lehtedel juurde Jah – ning salvesta veelkord.
  5. Kontrolli, kas veeb toimib korrektselt ja kõigil lehtedel on aadressiribal näha “Secure”.
    Kui ei, siis on tõenäoliselt mõnel lehel viidatud pildile http://-ga – need tuleb ükshaaval üle käia ja muuta https://-iks
  6. On vähetõenäoline ent võimalik, et ka teemas on sarnane viga piltidele, fontidele, CSS-ile, või JavaScriptile viitamises – palu abi veebimeistrilt, kes PrestaShop’i  lähemalt tunneb.
  7. Kui kõik lõplikult korras võiks minna veelkorda Minu Zone » Halda » Veebiserver ning Seadete või Alamdomeenide all klõpsata nuppu “Suuna kogu liiklus HTTPS peale” – nii saavad kõik URLid korraliku 301-ümbersuunamise.

Magento viimine HTTPS peale

Magento e-poe viimiseks HTTPS peale tuleb tellida tasuta Let’s Encrypt sertifikaat, seadistada baas-URLid ning juhul, kui sisublokkides või CMS-lehtedel on pildid kasutusel http:// URLiga, need ümber muuta või vastava shortcode’iga asendada.

Tähelepanu vajab üks ebaloogilisena tunduv seadistus – nimelt tuleb lisaks Secure Base URL’ile ja Use Secure URLs in Frontend / Admin panna https:// ka Unsecure Base URL reale. Põhjuseks see, et osade Magento kujundusteemade tegijad pole kahe eraldi baas-URLiga arvestanud ja ostukorv ning muud JavaScriptist sõltuvad funktsionaalsused võivad töö lõpetada.

Magento 2 seadistamine käib täpselt samuti nagu videos näidatud Magento 1.9.x puhul– aga baasURLide muutmise leiab Stores » Configuration alt.

  1. Telli serverile Let’s Encrypt sertifikaat –  Minu Zone » Halda » Veebiserver » Let’s Encrypt, valida tuleb vaid vastava server (või alamdomeen). Sertifikaat väljastatakse nii www-ga kui ilma aadressile, samuti kõigile olemasolevatele aliastele. Kui sertifikaadi väljastamine ei õnnestu, on tõenäoliselt mingi probleem veebiserveri seadistustega, kirjuta info@zone.ee ja küsi julgelt abi.
  2. HTTPS toe käivitumine võtab kuni 10 minutit, võta üks kohv/tee/vesi.
  3. Proovi kas pood toimib HTTPS pealt sisestades aadressiribale poe URLi ette https:// – https://[firmanimi.eu]/ – tulemuseks peaks olema toimiv pood, kus kõik menüüd jms viited viivad tagasi http:// peale
  4. Sisene haldusliidesesse ning vali peamenüüst Configuration, seejärel vasakmenüüst Web. Ava Unsecure ja Secure valikud, kontrolli et mõlemas oleks baseURL https://-iga (vältimaks mõnede teemade probleeme) ning sea Use Secure URLs in Frontend ja Use Secure URLs in Admin väärtuseks Yes. Salvesta ja tühjenda puhver (System » Cache management » Flush Magento Cache).
  5. Kontrolli, kas veeb toimib korrektselt ja kõigil lehtedel on aadressiribal näha “Secure”.
    Kui ei, siis on tõenäoliselt mõnes lehel olevas sisublokis (sageli jaluses olevad kaardimakse-logod või CMS-lehtedel olevad pildid) viidatud pildile http://-ga – need tuleb ükshaaval üle käia ja muuta https://-iks
  6. On vähetõenäoline ent võimalik, et ka teemas on sarnane viga piltidele, fontidele, CSS-ile, või JavaScriptile viitamises – palu abi veebimeistrilt, kes Magentot lähemalt tunneb
  7. Kui kõik lõplikult korras võiks minna veelkorda Minu Zone » Halda » Veebiserver ning Seadete või Alamdomeenide all klõpsata nuppu “Suuna kogu liiklus HTTPS peale” – nii saavad kõik URLid korraliku 301-ümbersuunamise.