Istuntotunnisteet

HTTP-protokolla on tilaton, jolloin käyttäjän käyttämä selain on yksilöitävä jollain sovellustason parametrilla, ts. istuntotunnisteella. Turvallisia tapoja istuntotunnisteen välittämiseksi ovat evästeet, lomakkeiden kohdalla POST-pyynnön parametrit, ja JavaScript-kutsuissa HTTP-otsakkeet.

Mikäli käytössä on valmis ja luotettavana pidetty istuntotunnisteet hoitava sovelluskehikko, sitä tulee käyttää.

Istuntotunnisteena käytettävän tunnisteen tulee olla yksilöllinen, riittävän pitkä, ja kryptografisesti satunnainen. Suositeltu ratkaisu on käyttää vähintään 256 bittiä pitkää satunnaista tunnistetta.

Monissa tilanteissa on saatavissa UUID-tunniste. Jos käytetään UUID-tunnisteita, tulee varmistua, että käytetään UUIDv4-muotoisia tunnisteita, jotka generoidaan satunnaisesti. Tällöinkin tulee varmistua, että UUIDv4-toteutuksessa käytetään kryptografisesti vahvaa satunnaislukugeneraattoria. Tyypillisesti tämä sanotaan selvästi UUID-kirjaston dokumentaatiossa.

Istuntotunniste on luotava uudelleen aina kun käyttäjän tunnistautumisen tila tai valtuutustaso muuttuu (esimerkiksi sisäänkirjautumisessa, pääkäyttäjäksi siirtyessä tai kirjautuessa ulos). Edellisen istuntotunnisteen on tämänkaltaisissa tilanteissa vanhennuttava.

Jos sessiossa käytetään JWT:tä (JSON Web Token), sen kryptografiset vaatimukset noudattelevat TLS 1.2:n vaatimuksia soveltuvin osin (yllä).