[Muokattu: 29.1.2017]

IPsec: ESP ja AH (3-B) [ < Verkkokerroksen... < Protokollan tot... ]

IPsecin salausprotokollan nimenä on ESP, Encapsulating Security Payload (RFC 4303 vuodelta 2005, edellinen oli RFC 2406 vuodelta 1998). Alunperin tämän protokollan tehtävänä oli vain IP-protokollan kuorman eli TCP-datan ja -otsikoiden salaaminen, mutta nykyversiossa (jo v. 1998) on samalla mahdollista toteuttaa myös autentikointia ja sen kautta saada takeet eheydestäkin: Kun kerran symmetrinen avain on käytettävissä salaamiseen, ei tarvitse kuin soveltaa sitä myös asiaankuuluvasta datasta laskettuun tiivisteeseen, ja niin vastaanottaja voi vakuuttua kyseisen datan eheydestä ja alkuperästä. "Asiaankuuluva" tarkoittaa tässä kaikkea muuta kuin paketin (ulointa) IP-otsikkoa. Tunneloitaessahan alkuperäinen IP-otsikko tulee jo salatuksi ja kuuluu niin muodoin myös "asiaan" eli ESP:n autentikoinnin piiriin.

Käytännössä tiivistefunktiona on MD5 tai SHA-1 eikä avainta sovelleta sen tulokseen vaan toisinpäin eli avain on osa syötettä, vieläpä kahteen kertaan, jolloin tuloksena on HMAC: jos k on avain ja x on viesti, niin HMAC on h( k, t1, h( k, t2, x)), missä t1 ja t2 täyttävät syötteet hash-funktion h lohkon mittaiseksi. Lopputulos vielä katkaistaan IPsec-käytössä 96 bitin mittaiseksi. Tästä juontuvat mutkikkaan oloiset nimitykset HMAC-MD5-96 ja HMAC-SHA-1-96. (HMAC-lähde: RFC 2104). Sekä MD5:ssä että SHA-1:ssä on havaittu heikkouksia, jos niitä käytetään digitaalisessa allekirjoituksessa. Niiden käyttö MAC-tarkoitukseen ei ole haavoittuva ja ne ovat edelleen mukana algortimeja määrittävässä RFC 7321:ssä vuodelta 2014, joskin MD5:stä toteamus on vain: "... it may not be urgent to remove HMAC-MD5 ...". Tärkeä uudistus tuossa RFC:ssä on se, että AES-algoritmia tulisi käyttää autentikoivassa moodissa, jolloin HMACia ei lasketa. Moodit ovat GCM ja CCM . Edellinen on "SHOULD+" ja jälkimmäinen "MAY".

Pelkkää autentikointia toteuttaa protokolla, jonka nimenä on AH, Authentication Header (RFC 4302; edellinen 2402). Nimi tulee yksinkertaisesti siitä, että protokolla laskee avaimellisen tiivisteen (siis MAC:n, ja yleensä nimenomaan HMAC:n) ja sijoittaa sen otsikkokenttään. Tiiviste lasketaan koko paketista siten, että mahdollisen tunneloinnin tuoma uusi IP-otsikko on mukana ja samoin sellaiset kentät (esim. "time to live"), jotka muuttuvat matkalla. Muuttuvat kentät ja tuleva hash-kenttä itse asetetaan laskussa ja sen tarkistuksessa nolliksi.

Sekä AH:n että ESP:n tuottama otsikkokenttä alkaa SPI:llä eli turvaparametri-indeksillä, joka yhdessä kohdeosoitteen ja "AH vai ESP"-tiedon kanssa yksilöi turva-assosiaation SA ja sitä kautta algoritmit ja avaimet (ja ne löytyvät tietokannasta SADB ). Jos käytetään sekä AH:ta että ESP:tä, tarvitaan (siis) kaksi SA:ta. Lisäksi SA on erillinen kumpaankin suuntaan (eikä toistaiseksi mahdollista muuta kuin yhden vastaanottajan). Toisena kenttänä AH:n ja ESP:n otsikossa on sarjanumero, jonka avulla voidaan vakuuttua pakettien oikeasta järjestyksestä ja erityisesti estää toistohyökkäykset.