IPsec

IPsec (IP Security), specificerat i RFC 4301, är en uppsättning datasäkerhetsteknologier för virtuella privata nätverk (VPN). Det skapar en gräns mellan skyddade och oskyddade delar av datornätverk. Paket som passerar denna gräns behandlas på olika sätt. Paketen, beroende på hur IPsec är konfigurerat, kan passera ohindrade, kastas bort eller bli behandlade med olika tjänster.

IPsec består av en mängd protokoll som erbjuder fyra huvudsakliga tjänster:
Tillitsfullhet - Endast mottagaren kan förstå vilken data som skickats.
Integritet - Garanterar att data kommer fram oförändrad.
Autenticitet - Data signeras så att ursprunget kan verifieras.
Återuppspelningsskydd - Ett datagram bearbetas endast en gång oavsett hur många gånger det mottages.

En stor fördel med IPsec är att det arbetar på nätverksskiktet och fungerar med både IPv4 och IPv6, vilket innebär att alla befintliga transport- och applikationsprotokoll kan dra nytta av IPsec utan att behöva modifieras. Detta skiljer sig från flera andra krypterade protokoll såsom SSH vilka arbetar på applikationsskiktet.

IPsec specificerar också grundläggande brandväggsfunktionalitet men lämnar det fritt att implementera mer avancerade funktioner. De mer avancerade brandväggsfunktionerna kan sedan användas för att implementera de funktioner som IPsec specificerar.

Protokollen 
För att erbjuda de fyra tjänsterna använder IPsec två olika protokoll, nämligen Authentication Header (AH) vilket är beskrivet i RFC 4302 och Encapsulating Security Payload (ESP), beskrivet i RFC 4303.

AH tillhandahåller integritet, autentisering och återuppspelningsskydd.

ESP tillhandahåller integritet, autentisering, återuppspelningsskydd och tillförlitlighet.

En stor skillnad mellan AH och ESP är att AH kan autentisera delar av IP-headern medan ESP kan endast autentisera datan. AH används inte längre lika ofta då ESP nu även kan bidra med mer säkerhet än tidigare och används därför mer då ESP inte har samma problem med NAT som AH. AH har ytterligare ett problem och det har att göra med adress- och portöversättningar. För att autentisera ett paket bygger AH en hash som bland annat baseras på olika fält i IP-headern. Dessa fält kan förändras under transport och om detta sker blir den beräknade hashen ogiltig.

AH och ESP använder en mängd kryptografiska algoritmer för att erbjuda de olika tjänsterna. För att säkerställa interoperabiliteten mellan olika implementationer av IPsec specificerar RFC 4305 en uppsättning algoritmer vilka är obligatoriska att implementera. Dessa algoritmer är inte specificerade i IPsec för att lämna utrymme för framtida förändringar.

De obligatoriska protokollen för ESP är
Null
TripleDES-CBC
HMAC-SHA1-96

För ESP finns även tre protokoll som rekommenderas att implementera och dessa är
AES-XCBC-MAC-96
AES-CBC med 128-bitars nycklar
AES-CTR

För AH är HMAC-SHA1-96 obligatoriskt och AES-XCBC-MAC-96 är rekommenderat.

I framtiden kommer troligtvis AES-CBC med 128-bitars nycklar och AES-XCBC-MAC-96 bli obligatoriska. TripleDES-CBC kommer endast bli rekommenderad.

För att AH och ESP skall fungera krävs olika parametrar. Dessa parametrar samlas i en Security Association (SA). En SA skall vara unik för varje förbindelse så att rätt parametrar används, därför identifieras varje SA av måladressen, vilket protokoll som används och en security parameter index (SPI). Enbart måladressen och protokollet kan inte unikt identifiera en SA eftersom flera förbindelser till samma måladress över samma protokoll kan existera. För att unikt identifiera en SA krävs alltså mer information och det är här SPI spelar sin roll. Ett SPI är ett nummer som väljs så att varje SA kan identifieras. För att data ska kunna verifieras eller dekrypteras hos målet måste SA utbytas mellan målet och källan. Detta kan göras på två olika sätt
Manuellt - De inblandade systemen konfigureras manuellt med nycklar och SA-data. Detta är en enkel metod som passar bra i små, statiska miljöer. För större och mer föränderliga miljöer passar den manuella metoden sämre.
Automatiskt - Olika SA kan hanteras och förhandlas automatiskt med hjälp av IKEv2, definierat i RFC 4306. Denna metoden lämpar sig väl i stora miljöer.

De två lägena 
IPsec kan användas i två lägen:
Transportläge
Tunnelläge

I transportläget skickas IP-paket som vanligt över nätverket men med skyddad data. Detta läge används för att sammankoppla två ändpunker i nätverket. Med tunnelläget sammanlänkas två nätverk över en säker förbindelse i vilken hela IP-paket krypteras. All data som skickas mellan dessa två nätverk passerar två portaler som sköter kryptering och dekryptering och eventuellt autentisering. I tunnelläget krävs ingen ytterligare konfigurering för klienterna i nätverken. Tunnelläget används vanligtvis för att skapa olika VPN.

Förkortningar
Datorkommunikation