Evästeet ( englanniksi cookie , l. - "cookie") - pieni tieto, jonka verkkopalvelin lähettää ja tallennetaan käyttäjän tietokoneelle . Web-asiakas (yleensä verkkoselain ) lähettää tämän tiedon Web-palvelimelle osana HTTP -pyyntöä aina, kun se yrittää avata sivun vastaavalla sivustolla . Sitä käytetään tietojen tallentamiseen käyttäjäpuolella, käytännössä sitä käytetään yleensä [1] :
Selaintukea evästeille (tallennettujen evästeiden hyväksyminen, tallentaminen ja myöhempi siirto palvelimelle) vaativat monet sivustot, joilla on pääsyrajoituksia, useimmat verkkokaupat [2] . Monien verkkosivustojen suunnittelun ja toiminnan mukauttaminen yksittäisten käyttäjien mieltymyksiin perustuu myös evästeisiin [1] .
Evästeet on helppo siepata ja huijata (esimerkiksi päästä tilille), jos käyttäjä käyttää salaamatonta yhteyttä palvelimeen. Vaarassa ovat käyttäjät, jotka käyttävät Internetiä julkisilla Wi-Fi- tukipisteillä eivätkä käytä mekanismeja, kuten SSL ja TLS . Salaus ratkaisee myös muut siirrettävien tietojen turvallisuuteen liittyvät ongelmat.
Useimmat nykyaikaiset selaimet antavat käyttäjien valita, hyväksyvätkö evästeet vai eivät, mutta niiden poistaminen käytöstä tekee joistakin verkkosivustoista käyttökelvottomia. Lisäksi joidenkin maiden lakien mukaan (esimerkiksi Euroopan unionin 2016 asetuksen mukaan, katso yleinen tietosuoja-asetus ) sivustojen on pyydettävä käyttäjältä suostumus ennen evästeen asettamista.
Verkkopalvelimet käyttävät evästeitä käyttäjien tunnistamiseen ja tietojen tallentamiseen.
Esimerkiksi, jos sivusto on kirjautunut sisään evästeiden avulla, silloin kun käyttäjä on syöttänyt tietonsa kirjautumissivulle, evästeiden avulla palvelin muistaa, että käyttäjä on jo tunnistettu ja että hänellä on pääsy asiaankuuluviin palveluihin ja toimintoihin [1 ] .
Monet sivustot käyttävät evästeitä myös käyttäjän asetusten tallentamiseen. Näitä asetuksia voidaan käyttää personointiin, joka sisältää ulkonäön ja toiminnallisuuden valinnan. Esimerkiksi Wikipedia sallii valtuutettujen käyttäjien valita sivuston ulkoasun . Googlen hakukoneen avulla käyttäjät (mukaan lukien ne, jotka eivät ole rekisteröityneet) voivat valita yhdellä sivulla näytettävien hakutulosten määrän [3] .
Evästeitä käytetään myös käyttäjien toiminnan seuraamiseen sivustolla. Tämä tehdään pääsääntöisesti tilastojen keräämistä varten, ja mainosyritykset muodostavat tällaisten tilastojen perusteella nimettömiä käyttäjäprofiileja mainonnan tarkempaa kohdentamista varten [4] .
Teknisesti evästeet ovat tietoja, jotka verkkopalvelin lähettää aluksi selaimeen. Jokaisella seuraavalla sivustolla käynnillä selain lähettää ne takaisin palvelimelle. Ilman evästettä jokainen verkkosivun katselu on erillinen toiminta, joka ei liity saman sivuston muiden sivujen selaamiseen, samalla evästeellä voit tunnistaa eri sivujen katselun välisen suhteen. Verkkopalvelimen lähettämisen lisäksi evästeitä voidaan luoda komentosarjakielillä , kuten JavaScriptillä , jos se on tuettu ja otettu käyttöön selaimessa.
Tekniset tiedot [5] [6] määrittelevät vähimmäismäärät, jotka selaimen on tarjottava evästeiden tallentamista varten. Näin ollen selaimen on tallennettava vähintään 300 evästettä, kukin 4096 tavua, ja vähintään 20 evästettä palvelinta tai verkkotunnusta kohti .
Suosituilla selaimilla on vastaava enimmäismäärä tallennettuja evästeitä jokaiselle verkkotunnukselle:
Käytännössä jotkin selaimet voivat asettaa rajoittavampia rajoituksia. Esimerkiksi Internet Explorer tarjoaa 4096 tavua kaikille saman toimialueen evästeille.
Evästeiden nimet eivät erota kirjainkoosta RFC 2965 :n kohdan 3.1 mukaisesti .
Evästeet voivat asettaa poistopäivämäärän, jolloin selain poistaa ne automaattisesti määritetyn ajan kuluessa. Jos poistopäivää ei ole määritetty, evästeet poistetaan heti, kun käyttäjä sulkee selaimen. Siten vanhenemispäivän määrittäminen sallii evästeiden tallentamisen useamman kuin yhden istunnon ajan, ja tällaisia evästeitä kutsutaan pysyviksi. Esimerkiksi verkkokauppa voi käyttää pysyviä evästeitä tallentaakseen koodit tuotteille, jotka käyttäjä on asettanut ostoskoriin - ja vaikka käyttäjä sulkee selaimen tekemättä ostosta, seuraavan kerran kirjautuessaan sisään hän ei saa vaunun uudelleen rakentamiseen.
Evästeiden tallennus voi myös olla rajoitettu riippuen verkkopalvelimesta, verkkotunnuksesta tai aliverkkotunnuksesta, jossa ne on luotu.
Erään version mukaan termi "evästeet" (evästeet) tulee sanasta " magic cookies " [7] - tietojoukosta, jonka ohjelma vastaanottaa ja lähettää sitten takaisin muuttumattomana. Kesäkuussa 1994 Lou Montulli keksi idean käyttää niitä verkkoyhteydessä [8] . Tuolloin hän työskenteli Netscape Communicationsissa , joka kehitti tilattua verkkokauppapakettia. Evästeistä on tullut ratkaisu virtuaalisen ostoskorin luotettavan toteutuksen ongelmaan.
John Giannandrean avulla Montulli kirjoitti alkuperäisen evästemäärittelyn samana vuonna. Mosaic Netscape 0.9beta, julkaistu 13. lokakuuta 1994 [9] [10] , tuki jo evästeitä. Evästeitä käytettiin ensin Netscape-sivuston laboratorion ulkopuolella, ja ne määrittelivät, oliko käyttäjä aiemmin käynyt sivustolla. Montulli haki patenttia vuonna 1995 ja sai sen vuonna 1998. Internet Explorer aloitti evästeiden tukemisen versiolla 2, joka julkaistiin lokakuussa 1995 [11] .
Vaikka jotkut ihmiset tiesivät evästeiden olemassaolosta jo vuoden 1995 ensimmäisellä neljänneksellä [12] , suuri yleisö huomasi ne vasta Financial Timesissa 12. helmikuuta 1996 julkaistun artikkelin jälkeen . Samana vuonna evästeet joutuivat tiedotusvälineiden huomion kohteeksi erityisesti mahdollisen yksityisyyden uhan vuoksi . Yhdysvaltain liittovaltion kauppakomissio käsitteli evästeitä kahdessa kuulemistilaisuudessa vuosina 1996 ja 1997.
Evästemäärittelyjen kehittäminen ei pysähtynyt tähän. Erityisesti ensimmäiset keskustelut virallisesta eritelmästä alkoivat huhtikuussa 1995. IETF :n yhteyteen on muodostettu tilapäinen työryhmä . Netscape-spesifikaatio valittiin lähtökohdaksi. Helmikuussa 1996 työryhmä tunnisti kolmannen osapuolen evästeet vakavaksi yksityisyyden uhkaksi. Tuloksena oleva spesifikaatio julkaistiin nimellä RFC 2109 helmikuussa 1997 . Siinä todettiin, että kolmannen osapuolen evästeet tulisi joko estää tai ne eivät ainakaan toimi oletuksena.
Mainosyritykset käyttivät jo tuolloin kolmannen osapuolen evästeitä, ja RFC 2109 -suosituksia eivät tukeneet Netscape-selaimet tai Internet Explorer. Myöhemmin lokakuussa 2000 RFC 2109 korvattiin uudella RFC 2965 -spesifikaatiolla .
Istuntoevästeet , joita kutsutaan myös väliaikaisiksi evästeiksi , ovat vain väliaikaisessa muistissa, kun käyttäjä on verkkosivuston sivulla. Selaimet yleensä poistavat istuntoevästeet sen jälkeen, kun käyttäjä sulkee selainikkunan [13] . Toisin kuin muilla evästetyypeillä, istuntoevästeillä ei ole vanhenemispäivää, ja siksi selaimet ymmärtävät ne istuntoevästeiksi.
Sen sijaan, että pysyvät evästeet poistettaisiin, kun selain suljetaan, kuten istuntoevästeet tekevät, ne poistetaan tiettynä päivänä tai tietyn ajan kuluttua. Tämä tarkoittaa, että tiedot evästeestä lähetetään palvelimelle aina, kun käyttäjä vierailee verkkosivustolla, johon eväste kuuluu. Tästä syystä pysyviä evästeitä kutsutaan joskus seurantaevästeiksi , koska mainostajat voivat käyttää niitä käyttäjien mieltymysten tallentamiseen pitkän ajan kuluessa. Niitä voidaan kuitenkin käyttää myös "rauhanomaisiin" tarkoituksiin, esimerkiksi välttämään tietojen syöttämistä uudelleen joka kerta, kun vierailet sivustolla.
Tyypillisesti evästeen domain-attribuutti on sama kuin verkkoselaimen osoiterivillä näkyvä verkkotunnus. Tätä kutsutaan ensimmäiseksi evästeeksi. Kolmannen osapuolen eväste kuuluu kuitenkin eri verkkotunnukseen kuin osoitepalkissa mainittu. Tämän tyyppiset evästeet näkyvät yleensä, kun verkkosivut sisältävät sisältöä ulkopuolisilta verkkosivustoilta, kuten bannerimainoksia. Tämä avaa mahdollisuuksia seurata käyttäjän selaushistoriaa, ja mainostajat käyttävät sitä usein tarjotakseen kullekin käyttäjälle osuvia mainoksia.
Oletetaan esimerkiksi, että käyttäjä vierailee osoitteessa www.example.org. Tämä verkkosivusto sisältää mainoksia osoitteesta ad.foxytracking.com, jotka ladatessaan asettavat mainosverkkotunnukseen (ad.foxytracking.com) kuuluvan evästeen. Tämän jälkeen käyttäjä vierailee toisella verkkosivustolla www.foo.com, joka sisältää myös mainoksia osoitteesta ad.foxytracking.com ja asettaa kyseiseen verkkotunnukseen (ad.foxytracking.com) kuuluvan evästeen. Loppujen lopuksi nämä molemmat evästeet lähetetään mainostajalle, kun hänen mainoksensa ladataan tai kun hänen verkkosivustollaan vieraillaan. Mainostaja voi sitten käyttää näitä evästeitä luodakseen käyttäjän selaushistoriaa kaikille verkkosivustoille, jotka isännöivät kyseisen mainostajan mainosta.
Vuodesta 2014 lähtien jotkin verkkosivustot asettivat lukuevästeitä yli 100 kolmannen osapuolen verkkotunnukselle [14] . Verkkosivustoa kohden asetettiin keskimäärin 10 evästettä, ja evästeiden enimmäismäärä (sekä kolmansille osapuolille että kolmansille osapuolille) ylitti 800 [15] . Useimmat nykyaikaiset verkkoselaimet sisältävät tietosuoja-asetuksia, jotka voivat estää kolmannen osapuolen evästeet.
Supereväste on eväste, jolla on ylätason verkkotunnuksen alkuperä (esim . .ru ) tai julkinen pääte (esim. .co.uk). Tavalliset evästeet puolestaan ovat peräisin tietystä verkkotunnuksesta, kuten esimerkki.com.
Superevästeet voivat olla mahdollinen tietoturvaongelma, ja siksi verkkoselaimet estävät ne usein. Jos selain poistaa haitallisen verkkosivuston eston, hyökkääjä voi asettaa superevästeen ja mahdollisesti häiritä tai esiintyä laillisina käyttäjien pyyntöinä toiselle verkkosivustolle, joka käyttää samaa ylätason verkkotunnusta tai julkista päätettä kuin haitallinen verkkosivusto. Esimerkiksi supereväste, jonka alkuperä on .com, voi haitallisesti vaikuttaa pyyntöön example.com, vaikka evästettä ei luotu osoitteesta example.com. Tätä voidaan käyttää väärentämään kirjautumisia tai muuttamaan käyttäjätietoja.
Julkinen jälkiliitteiden luettelo [16] auttaa vähentämään superevästeiden aiheuttamaa riskiä. Julkinen pääteluettelo on toimittajien välinen aloite, jonka tavoitteena on tarjota tarkka ja ajan tasalla oleva luettelo verkkotunnusten jälkiliitteistä. Selainversioiden vanhemmissa versioissa ei välttämättä ole ajan tasalla olevaa luetteloa, joten ne ovat alttiina tiettyjen verkkotunnusten superevästeille.
Termiä "supereväste" (supereväste) käytetään joskus seuraamaan tekniikoita, jotka eivät käytä HTTP-evästeitä. Elokuussa 2011 Microsoftin verkkosivustoilta löydettiin kaksi tällaista "supereväste"-mekanismia: evästeiden synkronointi, joka tuottaa MUID-evästeen (unique machine identifier) ja ETag-eväste [17] . Median huomion vuoksi Microsoft poisti myöhemmin tämän koodin käytöstä [18] .
Koska evästeet voidaan poistaa selaimesta erittäin helposti, ohjelmoijat etsivät tapoja tunnistaa käyttäjät jopa selaimen historian tyhjentämisen jälkeen. Yksi tällainen ratkaisu on zombie-evästeet (tai evercookie tai pysyvät evästeet ) - ei-poistettavat tai vaikeasti poistettavat evästeet, jotka voidaan palauttaa selaimeen JavaScriptin avulla. Tämä on mahdollista, koska sivusto käyttää samanaikaisesti kaikkia saatavilla olevia selaimen tallennustiloja evästeiden tallentamiseen ( HTTP ETag, istunnon tallennus, paikallinen tallennus, indeksoitu tietokanta ), mukaan lukien sovellustallennustilat, kuten Flash Player ( paikalliset jaetut objektit ), Microsoft Silverlight ( eristetty tallennustila ) ja Java . ( Java persistence API ). Kun ohjelma havaitsee, että selaimessa ei ole evästettä, josta on tietoa muissa kaupoissa, se palauttaa sen välittömästi paikoilleen ja tunnistaa siten sivuston käyttäjän.
RFC 6265 antaa tarkat ohjeet kunkin evästeparametrin tulkitsemiseen:
Vuonna 2015 hyväksyttiin asiakirja , jolla päivitettiin RFC 6265 -spesifikaatio , joka lisäsi joukon nimeämisrajoituksia evästeille. Lisäturvallisuuden lisäämiseksi asiantuntijat ovat ehdottaneet erityisiä nimien etuliitteitä __Secure-ja __Host-osoittaen selaimelle, että on noudatettava erityisvaatimuksia vastaanottaessaan evästeitä palvelimelta [19] .
Jos ainakin yksi luetelluista vaatimuksista rikotaan, evästeen asennus selaimeen hylätään. Etuliitetuki on toteutettu Chrome 49+, Firefox 50+ ja Opera 36+ [20] .
Jos kaikki yllä olevat vaihtoehdot ovat käytössä, pyyntö asettaa eväste palvelimelta näyttää tältä:
Set-Cookie: __Secure-name=value; max-age=31536000; domain=example.com; path=/; secure; httponly; samesite=lax
Kuten kaikki muut HTTP-otsikot, eväste on lähetettävä selaimeen ennen kuin lähetetään muita tietoja, mukaan lukien tyhjät merkkijonot ja välilyönnit (tämä on HTTP-protokollan rajoitus).
Pyydettäessä sivua selain lähettää lyhyen tekstin HTTP-pyynnön kera web-palvelimelle. Esimerkiksi sivulle http://www.example.org/index.html pääsemiseksi selain lähettää seuraavan pyynnön www.example.org-palvelimelle:1
GET /index.html HTTP/1.1 |
||
selain | → | palvelin |
Palvelin vastaa lähettämällä pyydetyn sivun sekä HTTP-vastauksen sisältävän tekstin. Se voi sisältää ohjeen selaimelle tallentaa eväste:
HTTP/1.1 200 OK |
||
selain | ← | palvelin |
Merkkijono Set-cookielähetetään vain, kun palvelin haluaa selaimen tallentavan evästeen. Tässä tapauksessa, jos selain tukee evästeitä ja niiden hyväksyminen on käytössä, selain muistaa merkkijonon name=value(nimi = arvo) ja lähettää sen takaisin palvelimelle jokaisen seuraavan pyynnön yhteydessä. Kun esimerkiksi pyydetään seuraavaa sivua http://www.example.org/spec.html, selain lähettää seuraavan pyynnön www.examle.org-palvelimelle:
GET /spec.html HTTP/1.1 |
||
selain | → | palvelin |
Tämä pyyntö eroaa ensimmäisestä pyynnöstä siinä, että se sisältää merkkijonon, jonka palvelin lähetti selaimelle aiemmin. Siten palvelin tietää, että tämä pyyntö liittyy edelliseen. Palvelin vastaa lähettämällä pyydetyn sivun ja mahdollisesti lisäämällä uusia evästeitä.
Palvelin voi muuttaa evästeen arvoa lähettämällä rivinvaihtoja Set-Cookie: name=new_value. Selain korvaa sitten vanhan evästeen samalla nimellä uudella merkkijonolla.
Evästeitä voidaan asettaa myös kielillä, kuten JavaScriptillä, sivujen tekstiin upotettuina tai vastaavilla selaimessa käynnissä olevilla skripteillä. JavaScript käyttää tähän asiakirjaobjektin evästeominaisuutta document.cookie. Se esimerkiksi document.cookie="temperature=20"luo evästeen nimeltä "lämpötila", jonka arvo on 20 [21] .
Palvelin voi käyttää evästeitä tunnistaakseen aiemmin todennetut käyttäjät. Se tapahtuu näin [22] :
Tätä menetelmää käytetään laajalti monilla sivustoilla, kuten Yahoo! , Wikipediassa ja Facebookissa .
Monet selaimet (erityisesti Opera, FireFox) voivat hallita verkkosivustojen toimintaa muokkaamalla evästeiden ominaisuuksia. Muutamalla ei-pysyvien (istunto)evästeiden vanhenemispäivää voit esimerkiksi saada muodollisesti rajoittamattoman istunnon sivuston valtuutuksen jälkeen. Mahdollisuus muokata evästeitä vakiotyökaluilla ei ole käytettävissä Internet Explorerissa. Mutta käyttämällä muita mekanismeja, kuten JavaScriptiä, käyttäjä voi muuttaa evästettä. Lisäksi istuntoevästeet on mahdollista korvata pysyvillä (vanhentumispäivämäärällä).
Palvelinohjelmisto voi kuitenkin seurata tällaisia yrityksiä. Tätä varten palvelin lähettää evästeen tietyn ajan ja kirjoittaa evästeen vanhenemispäivän itseensä tai salatussa muodossa itse evästeisiin aina, kun käyttäjä käyttää palvelinta. Jos selaimen lähettämän evästeen viimeinen voimassaolopäivä on eri kuin palvelimelle tallennetun tai evästeen sisältämä, evästeen vanhenemispäivämäärää yritetään huijata. Palvelin voi vastata esimerkiksi pyytämällä käyttäjää valtuuttamaan uudelleen.
Useimmat nykyaikaiset selaimet tukevat evästeitä [23] , ja pääsääntöisesti käyttäjä voi valita, käytetäänkö evästeitä vai ei. Yleisimmät selainasetukset ovat [24] :
Useimmat JavaScript-selaimet sallivat käyttäjän nähdä aktiiviset evästeet tietyllä sivustolla kirjoittamalla javascript:alert(document.cookie)tai javascript:prompt(document.cookie)selaimen osoiteriville [24] . Joissakin selaimissa on evästehallinta, jonka avulla käyttäjä voi valikoivasti tarkastella ja poistaa selaimeen tallennettuja evästeitä.
On olemassa harhakäsitys, että evästeet ovat ohjelmia ja voivat itsenäisesti seurata käyttäjän toimia, vaikka nämä ovat vain selaimen tietokoneelle tallentamia tietoja [25] . Amerikkalaisen Insight Expressin vuonna 2005 tekemän tutkimuksen mukaan 25 % vastaajista on varma tästä [26] .
Evästeet vaikuttavat merkittävästi Internetin käyttäjien nimettömyyteen ja käyttäjätietojen yksityisyyteen . Vaikka evästeet lähetetään vain palvelimille siinä verkkotunnuksessa, jolle ne on tarkoitettu, verkkosivu voi ladata kuvia tai muita osia muista verkkotunnuksista. Evästeitä, jotka vastaanotetaan näiden komponenttien latauksen aikana muilta verkkotunnuksilta, kutsutaan "kolmanniksi osapuoliksi" [27] .
Mainosyritykset käyttävät kolmannen osapuolen evästeitä käyttäjien liikkeiden seuraamiseen sivustoilla. Mainosyritys voi erityisesti seurata käyttäjiä kaikilla sivustoilla, joihin heidän mainosbannerit on asennettu . Kun tuntee käyttäjän vierailemat sivut, voit muuttaa mainonnan suuntaa käyttäjän mieltymysten mukaan.
Käyttäjien profilointi nähdään mahdollisena tietosuojariskinä, vaikka sitä seurataan yhdessä verkkotunnuksessa, mutta erityisesti silloin, kun sitä seurataan useilla verkkotunnuksilla käyttämällä kolmannen osapuolen evästeitä. Tästä syystä evästeitä säännellään joissakin maissa lailla.
Yhdysvaltojen hallitus sääti tiukat evästelakit vuonna 2000 sen jälkeen, kun kävi ilmi, että Yhdysvaltain huumevalvontavirasto käytti evästeitä seuratakseen käyttäjiä, jotka katsoivat heidän huumeiden vastaisia mainoksiaan verkossa. Vuonna 2002 Daniel Brandt huomasi, että CIA asetti tietokoneille pysyviä evästeitä, joiden säilytysaika on enintään 2010. Kun CIA sai tietää evästeiden laittomasta käytöstä, virasto sanoi, että se oli tahatonta ja lopetti niiden asentamisen [28] . 25. joulukuuta 2005 Brandt huomasi, että National Security Agency oli jättänyt muutaman pysyvän evästeen ohjelmistopäivityksen jälkeen. Tämän viestin jälkeen virasto poisti evästeet välittömästi käytöstä [29] .
Yksityisyyden suojaa ja sähköistä viestintää koskeva Euroopan unionin direktiivi 2002/58/EY [30] sisältää evästeiden käyttöä koskevat säännöt. Erityisesti 5 artiklan 3 kohdassa todetaan, että tietoja (mukaan lukien evästeet) voidaan tallentaa vain, jos
Vuonna 2009 direktiivillä 2009/136/EY [31] muutettiin direktiiviä 2002/58/EY, joka tuli voimaan toukokuussa 2011. Muutokset tiukensivat sivuston kävijöistä tiedonkeruun vaatimuksia. Uusien sääntöjen mukaan sivuston omistajien on hankittava vierailijoilta ennakkoon suostumus tiedon keräämiseen (mukaan lukien evästeet) ja raportoitava sivustolla toimivista tiedonkeruutyökaluista [32] .
Toukokuussa 2018 Euroopan unionissa tuli voimaan Yleinen tietosuoja-asetus , joka korvasi nykyisen direktiivin 2002/58/EY, joka koskee kaikkia Euroopan unionin sisältä vierailtuja verkkosivustoja ja joka rinnastaa useimmat evästeet muihin henkilötietoihin. Alkuperäisessä luonnoksessa ehdotettiin, että selaimen asetuksia voitaisiin pitää riittävänä todisteena käyttäjän suostumuksesta asettaa eväste [33] , ja lopullisen version mukaan evästeen asettamisesta ilmoittaminen riittää [34] .
P3P - spesifikaatio sisältää verkkopalvelimen mahdollisuuden ilmoittaa tietosuojaloukkauksesta selaimelle, mikä osoittaa kerättävien tietojen luonteen ja keräämisen tarkoituksen. Tämä sisältää evästeiden avulla hankittujen tietojen käytön. P3P-spesifikaation mukaan selain voi hyväksyä tai hylätä evästeet käyttäjän mieltymysten mukaan tai kysyä käyttäjältä.
Monet selaimet, mukaan lukien Applen Safari ja Microsoftin Internet Explorer versiot 6 ja 7, tukevat P3P-määrityksiä, joiden avulla voit määrittää, sallitaanko kolmannen osapuolen evästeet. Opera - selaimen avulla käyttäjät voivat kieltäytyä kolmannen osapuolen evästeistä ja luoda maailmanlaajuisia tai mukautettuja suojausprofiileja verkkotunnuksille [35] . Firefox 2 poisti tämän vaihtoehdon, mutta se palautettiin versioon 3.
Yksityisyysongelmien lisäksi evästeillä on joitain teknisiä haittoja, jotka liittyvät kaikkiin tietoihin. Erityisesti ne eivät aina tunnista käyttäjää tarkasti ja voivat aiheuttaa haitallisia hyökkäyksiä.
Jos tietokoneessa käytetään useampaa kuin yhtä selainta, jokaisella on yleensä erillinen evästevarasto. Siksi evästeet eivät tunnista henkilöä, vaan tilin , tietokoneen ja selaimen yhdistelmää. Näin ollen jokaisella henkilöllä, joka käyttää useita tilejä, tietokoneita tai selaimia, on useita evästesarjoja.
Normaalin toiminnan aikana evästeitä vaihdetaan jatkuvasti palvelimen ja käyttäjän selaimen välillä. Koska evästeet voivat sisältää arkaluontoisia tietoja (käyttäjänimi, käyttöehdot jne.), niiden sisältöä ei saa antaa muiden saataville. Evästeiden varkaus on teko, jossa kolmannet osapuolet sieppaavat evästeitä luvatta .
Evästeet voidaan varastaa liikenneanalyysin avulla – tätä kutsutaan istunnon kaappaamiseksi. Verkkoliikennettä voi siepata muukin kuin vain sen lähettäjä ja vastaanottaja (etenkin julkisissa Wi-Fi-verkoissa ). Tämä liikenne sisältää myös salaamattomien HTTP-istuntojen kautta lähetetyt evästeet. Jos verkkoliikennettä ei ole salattu, hyökkääjät voivat lukea verkon käyttäjien viestintää, mukaan lukien heidän evästeensä, käyttämällä ohjelmia, joita kutsutaan haistaviksi .
Evästeiden tietojen salaus palvelimen toimesta poistaa niiden tietoturvaongelman, mutta evästeiden korvaaminen hyökkääjän toimesta on mahdollista. Jotta edes salattujen evästeiden käyttö on mahdotonta, salatun yhteyden muodostaminen käyttäjän ja palvelimen välille HTTPS -protokollan avulla voi auttaa . Palvelin voi käyttää evästeitä asetettaessa myös erityistä lippua, jonka jälkeen selain lähettää ne vain luotettavan kanavan kautta, esimerkiksi SSL - yhteyden kautta [6] .
Kuitenkin suuri määrä verkkosivustoja, vaikka käyttäisikin suojattuja HTTPS-istuntoja käyttäjän todentamiseen, lähettää evästeitä ja muita tietoja yksinkertaisemman, salaamattoman HTTP-yhteyden kautta. Hyökkääjät voivat helposti siepata muiden käyttäjien evästeitä ja käyttää niitä vastaavilla verkkosivustoilla [36] .
Varmistaaksesi, että eväste lähetetään vain HTTPS-istunnon kautta, evästeellä on oltava Secure-attribuutti.
Toinen tapa varastaa evästeitä on sivustojen välinen komentosarja ja evästeiden luvaton lähettäminen palvelimille, joiden ei pitäisi vastaanottaa niitä. Nykyaikaiset selaimet voivat suorittaa palvelimelta vastaanotettuja koodinpätkiä. Jos evästeet ovat käytettävissä tämän suorituksen aikana, niiden sisältö saattaa päätyä tavalla tai toisella palvelimille, joiden ei pitäisi pystyä käyttämään niitä. Evästeen salaus ei auta tässä tapauksessa [37] .
Seuraavaa sivustojen välistä komentosarjaa käytetään yleensä sivustoilla, joissa käyttäjät voivat lähettää HTML-sisältöä sisältäviä viestejä. Lisäämällä sopivan PHP/Javascript-koodin viestiin, hyökkääjä voi saada evästeitä muilta käyttäjiltä.
Nämä hyökkäykset voidaan estää asettamalla HttpOnly-lippu [38] , mikä tekee evästeistä poissa asiakaspuolen skriptien käytettävissä. Web-kehittäjien tulisi kuitenkin harkita suojausta sivustojen välistä komentosarjaa vastaan verkkosivustoja kehitettäessä [ 39 ] .
Vaikka teoriassa evästeet tulisi säilyttää ja lähettää takaisin palvelimelle muuttumattomina, hyökkääjä voi muuttaa niiden sisältöä ennen niiden lähettämistä. Esimerkiksi evästeet voivat sisältää kokonaissumman, joka käyttäjän on maksettava ostoksistaan; muuttamalla tätä arvoa hyökkääjä voi maksaa vähemmän kuin asetettu summa. Evästeen sisällön muuttamisprosessia kutsutaan evästehuijaukseksi .
Suojautuakseen tällaisilta hyökkäyksiltä useimmat verkkosivustot tallentavat evästeeseen vain istuntotunnuksen, satunnaisesti luodun numeron tai istunnon tunnistamiseen käytetyn merkkijoukon, kun taas kaikki muut tiedot tallennetaan palvelimelle. Tässä tapauksessa evästeiden korvaaminen on paljon vaikeampaa.
Jokaisella sivustolla on oltava omat evästeensä, eikä example1.com saa muokata tai asettaa toista example2.org-evästettä. Verkkoselaimen haavoittuvuudet sallivat haitallisten sivustojen rikkoa tätä sääntöä. Tämä muistuttaa evästeiden huijausta, mutta tässä hyökkääjä hyökkää käyttäjiä vastaan haavoittuvilla selaimilla, ei suoraan sivustoa vastaan. Istuntotunnisteet voivat olla tällaisten hyökkäysten kohteena.
Suojauksen vuoksi käyttäjiä kehotetaan käyttämään uusimpia selainten versioita, jotka korjaavat tämän ongelman.
Evästeet voivat aiheuttaa ristiriitoja asiakkaan ja palvelimen välillä. Jos käyttäjä vastaanottaa evästeen ja painaa sitten selaimen Takaisin-painiketta, selaimen tila on jo erilainen kuin silloin, kun eväste vastaanotettiin. Otetaan esimerkiksi verkkokauppa, jossa on evästepohjainen ostoskori: käyttäjä lisää ostoksen ostoskoriin ja painaa sitten Takaisin-painiketta, mutta ostos jää ostoskoriin, vaikka käyttäjä olisi halunnut peruuttaa ostoksen . Tämä voi johtaa sekaannukseen ja virheisiin. Verkkokehittäjien tulee pitää tämä mielessä ja ryhtyä toimiin tällaisten tilanteiden ratkaisemiseksi.
Asiantuntijat ovat arvostelleet pysyviä evästeitä niiden pitkästä säilyvyydestä, minkä ansiosta verkkosivustot voivat seurata ja profiloida käyttäjiä ajan mittaan [40] . Myös turvallisuuskysymykset liittyvät tähän, sillä varastettuja pysyviä evästeitä voidaan käyttää huomattavan pitkän ajan.
Lisäksi hyvin suunniteltu haittaohjelma, joka voidaan käynnistää käyttäjän todennuksen jälkeen, voi siirtää istuntoevästeitä hyökkääjän tietokoneelle, mikä ensiarviossa mahdollistaa vierailun suojatulla sivustolla ilman käyttäjätunnusta ja salasanaa mielivaltaisen pitkän ajan.
Tavallisilla evästeillä on erittäin pitkä, mutta rajoitettu "elinikä", jonka jälkeen ne poistetaan. Lisäksi kaikki selaimen evästeet voidaan poistaa käyttämällä erityistä vaihtoehtoa. Tämän seurauksena selain lakkaa tunnistamasta vierailijaa, kun hän palaa sivustolle. Puolalainen asiantuntija Sammy Kamkar päätti systematisoida "selviytyvimmät" evästeet, mikä johti JavaScript-kirjastoon nimeltä Everycookie. Nämä ihmeevästeet mahdollistavat teoriassa jokaisen sivuston vierailijan tunnistamisen, kun he palaavat sivulle. Everycookie-kirjastoja käyttävä sivusto ohittaa helposti kaikki nimettömyystoimenpiteet (vaikka jotkin virustorjuntaohjelmat voivat havaita tällaiset sivustot vaarallisiksi). Suojataksesi jokaevästettä vastaan on suositeltavaa käyttää Private Browsing -tilaa tai erikoisohjelmia, kuten Mil Shield.
Evästeet otettiin alun perin käyttöön, jotta käyttäjät voivat tallentaa tuotteet, joita he haluavat ostaa, kun he liikkuvat verkkosivustolla (virtuaalinen "ostoskori" tai "ostoskori") [41] [42] . Nykyään käyttäjän ostoskorin sisältö kuitenkin yleensä tallennetaan palvelimella olevaan tietokantaan eikä asiakasta koskevaan evästeeseen. Palvelin lähettää asiakkaalle evästeen, joka sisältää yksilöllisen istuntotunnuksen (yleensä pitkän satunnaisten kirjainten ja numeroiden jonon), seuratakseen, mikä käyttäjä kuuluu mihinkin ostoskoriin. Koska evästeitä lähetetään palvelimelle jokaisesta asiakkaan pyynnöstä, tämä istuntotunnus lähetetään takaisin palvelimelle aina, kun käyttäjä vierailee verkkosivustolla uudella sivulla, jonka avulla palvelin tietää, mikä ostoskori käyttäjälle näytetään.
Toinen suosittu evästeiden käyttötapa on kirjautuminen verkkosivustoille. Kun käyttäjä vierailee verkkosivuston kirjautumissivulla, verkkopalvelin lähettää tyypillisesti asiakkaalle evästeen, joka sisältää yksilöllisen istuntotunnuksen. Kun käyttäjä kirjautuu sisään onnistuneesti, palvelin muistaa, että kyseinen istuntotunnus on todennettu ja myöntää käyttäjälle pääsyn palveluihinsa.
Koska istuntoevästeet sisältävät vain yksilöllisen istuntotunnuksen, verkkosivuston jokaisesta käyttäjästä tallennettavien henkilökohtaisten tietojen määrä on käytännössä rajaton – verkkosivustoa ei sido evästeiden kokorajoitukset. Istuntoevästeet auttavat myös lyhentämään sivun latausaikoja, koska istuntoevästeen tietomäärä on pieni ja vaatii vähän kaistanleveyttä.
Evästeitä voidaan käyttää käyttäjää koskevien tietojen muistamiseen, jotta heille voidaan näyttää ajan mittaan oleellista sisältöä. Verkkopalvelin voi esimerkiksi lähettää evästeen, joka sisältää käyttäjänimen, jota käytettiin viimeksi kirjautumiseen verkkosivustolle, jotta se voidaan täyttää automaattisesti, kun käyttäjä seuraavan kerran kirjautuu sisään.
Monet verkkosivustot käyttävät evästeitä mukauttamiseen käyttäjän mieltymysten mukaan. Käyttäjät valitsevat mieltymyksensä kirjoittamalla ne verkkolomakkeelle ja lähettämällä lomakkeen palvelimelle. Palvelin koodaa asetukset evästeeseen ja lähettää evästeen takaisin selaimeen. Siten aina, kun käyttäjä siirtyy verkkosivuston sivulle, palvelin voi mukauttaa sivua käyttäjän mieltymysten mukaan. Esimerkiksi Googlen hakukone käytti kerran evästeitä, jotta käyttäjät (jopa rekisteröitymättömät käyttäjät) voivat päättää, kuinka monta hakutulosta sivua kohden he haluavat nähdä.
Evästeitä käytetään käyttäjien selaustottumusten seuraamiseen. Tämä voidaan tehdä jossain määrin myös käyttämällä sivua pyytävän tietokoneen IP-osoitetta tai HTTP-pyynnön otsikon viitekenttää, mutta evästeet mahdollistavat suuremman tarkkuuden. Tämä voidaan osoittaa, jos käyttäjä pyytää sivua sivustolta, mutta pyyntö ei sisällä evästettä, palvelin olettaa, että tämä on ensimmäinen sivu, jolla käyttäjä on käynyt. Joten palvelin luo yksilöllisen tunnisteen (yleensä satunnaisten kirjainten ja numeroiden sarjan) ja lähettää sen evästeenä selaimeen pyydetyn sivun mukana.
Tästä eteenpäin selain lähettää evästeen automaattisesti palvelimelle aina, kun sivustolta pyydetään uutta sivua. Palvelin ei ainoastaan lähetä sivua tavalliseen tapaan, vaan myös tallentaa pyydetyn sivun URL-osoitteen, pyynnön päivämäärän/kellonajan ja evästeen lokitiedostoon.
Analysoimalla tätä lokitiedostoa voit määrittää, millä sivuilla käyttäjä vieraili, missä järjestyksessä ja kuinka kauan.
Jotkut toiminnot, joihin evästeitä käytetään, voidaan toteuttaa käyttämällä muita mekanismeja. Näillä vaihtoehdoilla on kuitenkin haittapuolensa, jotka tekevät evästeistä joskus edullisempia käytännössä. Useimmat näistä vaihtoehdoista antavat sinun seurata käyttäjää, vaikkakin vähemmän luotettavalla tavalla kuin evästeet. Tämän seurauksena tietosuoja pysyy vaarassa, vaikka selain olisi poistanut evästeet käytöstä tai palvelin ei ole asettanut niitä.
Tämä epäluotettava käyttäjien seurantamenetelmä perustuu sivuja katselevien tietokoneiden IP-osoitteiden tallentamiseen. Tämä tekniikka on ollut käytettävissä World Wide Webin alusta lähtien , ja se on edellyttänyt asiakkaan IP-osoitteen tuntemista sivun lataamiseksi. Nämä tiedot voidaan tallentaa palvelimelle riippumatta siitä, käytetäänkö evästeitä vai ei.
Tämä menetelmä on kuitenkin vähemmän turvallinen kuin evästeet, koska tietokoneita ja välityspalvelimia voidaan jakaa useiden käyttäjien kesken ja yksi tietokone voi käyttää eri IP-osoitteita eri istunnoissa (dynaaminen IP-osoite).
IP-osoitteen seuranta ei ehkä ole mahdollista, kun käytetään anonymiteetin säilytysjärjestelmiä (esimerkiksi Tor ). Tällaisissa järjestelmissä yhdellä selaimella voi olla useita IP-osoitteita ja useat käyttäjät voivat käyttää samaa IP-osoitetta, mikä tekee IP-osoitteen jäljittämisen mahdottomaksi.
Jotkut suuret Internet-palveluntarjoajat, mukaan lukien AOL , välittävät kaiken verkkoliikenteen välityspalvelimen kautta , mikä tekee myös tästä menetelmästä käyttökelvottoman.
Edistyneempi tekniikka perustuu tietojen upottamiseen URL-osoitteeseen. Tämä tehdään yleensä käyttämällä kyselymerkkijonoa, mutta myös muita URL-osoitteen osia voidaan käyttää. JavaScript ja PHP käyttävät näitä mekanismeja laajalti, kun evästeet on poistettu käytöstä.
Web-palvelin lisää kyselymerkkijonon Web-sivun linkkiin, kun se lähetetään selaimeen. Kun käyttäjä napsauttaa linkkiä, selain palauttaa kyselyn palvelimelle.
Tässä suhteessa kyselymerkkijono ja eväste ovat hyvin samankaltaisia: ne ovat selaimen palauttamia palvelintietoja. Mutta on tiettyjä eroja: koska kyselymerkkijono on osa URL-osoitetta, kun käytät tätä URL-osoitetta uudelleen, samat tiedot lähetetään palvelimelle. Jos esimerkiksi käyttäjän asetukset on koodattu URL-kyselymerkkijonoon ja käyttäjä lähettää URL-osoitteen toiselle käyttäjälle, nämä vaihtoehdot ovat voimassa myös toiselle käyttäjälle.
Lisäksi, vaikka käyttäjä käyttäisikin toistuvasti samaa sivua, ei ole takeita siitä, että kyselymerkkijono pysyy muuttumattomana. Kun esimerkiksi navigoit sivuston sisäisiltä sivuilta ja ulkoisista hakukoneista, kyselyjonot ovat erilaisia, kun taas evästeet pysyvät samoina.
Toinen kyselymerkkijonon haittapuoli tulee turvallisuusnäkökulmasta: istuntotunnuksen tallentaminen kyselymerkkijonoon helpottaa hyökkäämistä. Tunnusluvun välittäminen evästeeseen on turvallisempaa.
Yksi tapa seurata istuntoa palvelinpuolen ohjelmalla on käyttää piilotettuja kenttiä sisältäviä verkkolomakkeita. Tämä menetelmä on hyvin samanlainen kuin URL-kyselymerkkijono ja siinä on lähes samat edut ja haitat, ja jos lomakeparametrit lähetetään HTTP GET -menetelmällä, kentistä tulee itse asiassa osa URL-osoitetta, jonka selain lähettää palvelimelle. . Useimmat lomakkeet kuitenkin käsitellään HTTP POST :lla, jossa tiedot eivät ole osa URL-osoitetta tai evästettä.
Tällä lähestymistavalla on kaksi etua seurannan kannalta: Ensinnäkin tietojen liittäminen HTML-koodiin ja POST-tiedostoon, ei URL-osoitteeseen, tarkoittaa, että keskivertokäyttäjä ei yksinkertaisesti huomaa sitä, ja toiseksi istuntotietoja ei kopioida. URL-osoitteen kopioimalla (esim. kun käyttäjä lähettää linkin sähköpostitse). Tämän menetelmän haittana on se, että istuntotiedot sisältyvät HTML-koodiin, joten web-sivu on luotava joka kerta, kun sitä pyydetään, mikä lisää verkkopalvelimen kuormitusta.
HTTP-protokolla sisältää perustodennuksen ja -salauksen, jotka mahdollistavat pääsyn sivulle vain, kun käyttäjä antaa oikean käyttäjätunnuksen ja salasanan. Jos palvelin pyytää tätä, selain ottaa yhteyttä käyttäjään ja saatuaan tarvittavat tiedot tallentaa ja käyttää niitä päästäkseen muille sivuille ilman, että käyttäjän on syötettävä niitä uudelleen. Käyttäjän näkökulmasta vaikutus on sama kuin evästettä käytettäessä: käyttäjätunnus ja salasana vaaditaan vain kerran, jonka jälkeen käyttäjä pääsee sivustolle. Perustodennuksen avulla käyttäjätunnus/salasana-yhdistelmä lähetetään palvelimelle salaamattomana jokaisen selainpyynnön yhteydessä. Tämä tarkoittaa, että jos joku kaappaa liikenteen, hän voi saada nämä tiedot ja käyttää niitä myöhemmin. Salatussa todennuksen yhteydessä käyttäjätunnus ja salasana salataan palvelimen luomalla satunnaisella avaimella .
Jotkut verkkoselaimet sallivat sivun tallentaa tietoja paikallisesti myöhempää hakua varten. Internet Explorer esimerkiksi tukee tietojen tallentamista historiaan, suosikkeihin , XML -tallennustilaan tai mahdollistaa web-sivun suoran tallentamisen levylle [43] .
JSON Web Token (JWT) on itsenäinen tietopaketti, jota voidaan käyttää käyttäjän henkilöllisyyttä ja identiteettiä koskevien tietojen tallentamiseen. Tämä mahdollistaa niiden käytön istuntoevästeiden sijasta. Toisin kuin evästeet, jotka selain liittää automaattisesti jokaiseen HTTP-pyyntöön, verkkosovelluksen on liitettävä JWT:t erikseen jokaiseen HTTP-pyyntöön.
Kaikki nykyaikaiset verkkoselaimet voivat tallentaa melko suuren määrän tietoa (2-32 Mt) JavaScriptin kautta käyttämällä window.name DOM -ominaisuutta. Näitä tietoja voidaan käyttää istuntoevästeiden sijasta, ja ne ovat myös verkkotunnusten välisiä. Tekniikka voidaan yhdistää JSON/JavaScript-objekteihin monimutkaisten istuntomuuttujien joukkojen tallentamiseksi [44] asiakaspuolelle.
Verkkovälimuistiin voidaan myös tallentaa tietoja, joita voidaan käyttää yksittäisten käyttäjien seurantaan. Tämä menetelmä hyödyntää sitä tosiasiaa, että verkkoselain käyttää välimuistiin tallennettuja resursseja sen sijaan, että lataa ne verkkosivustolta, kun se määrittää, että resurssin uusin versio on jo välimuistissa.
Sivu voi esimerkiksi sisältää linkin <script type="text/javascript" src="example.js">. Skripti asettaa käyttäjälle yksilöllisen tunnisteen (esimerkiksi var userId = 3243242;). Ensimmäisen käynnin jälkeen, aina kun käyttäjä vierailee sivulla, tämä tiedosto ladataan välimuistista palvelimelta lataamisen sijaan. Siten sen sisältö ei muutu koskaan.
Tämän menetelmän ainoa etu on sivustojen välinen työ, joka mahdollistaa käyttäjän luvattoman valvonnan. Haitat - näiden tietojen ei-triviaali siirto palvelimelle ja äärimmäinen hallitsemattomuus: selain voi menettää välimuistissa olevia tietoja milloin tahansa asetuksista, muistin koosta ja levytilasta riippuen. Mozilla Firefox 85+ ei salli sivustojen välistä seurantaa välimuistin kautta [45] .
Useimmat nykyaikaiset selaimet tukevat evästeitä ja sallivat käyttäjän poistaa ne käytöstä. Seuraavat ovat yleisiä vaihtoehtoja [46] :
http | |
---|---|
Yleiset käsitteet |
|
menetelmät | |
Otsikot |
|
Tilakoodit |