Arkitektur
I denne artikel går vi bag om VPN-teknologien og kigger på protokollen IPSec. IPSec er en standard for sikker kommunikation over internettet, og den kan benyttes af et virtuelt privat netværk, som vi har skrevet om i en tidligere artikel. IPSec er som sagt en protokol, og den ligger på det såkaldte netværkslag i OSI-modellen.
En normal IP-header består af en IP-adresse for kilden og en for destinationen, men disse adresser kan forfalskes - dette kaldes for man-in-the-middle angreb. Selve indholdet (payload) af pakken kan være fortroligt, men er ikke normalt beskyttet. Derfor benytter man IPSec.
En IPSec-pakke består af to headere, AH (Authentication Header) og ESP (Encapsulating Security Payload Header), der tilsammen udgør en VPN-regel, der på engelsk hedder Security Associations (SA).
AH indeholder, som navnet antyder, oplysninger om hvilken autentificeringsalgoritme, der benyttes til at godkende de forskellige parter. På baggrund af headere og indhold beregnes der en såkaldt hash checksum, og denne checksum underskrives digitalt. Derfor kan både autenticitet af både kilde og destination samt indholdets integritet verificeres.
ESP indeholder oplysninger om hvilken krypteringsalgoritme, der er valgt. Begge identificeres ved en index-parameter kaldet SPI (Security Parameter Index). På baggrund af det oprindelige indhold (eller både indhold og headere) beregnes en checksum, og både indhold og headere krypteres herefter. På denne måde kan både integritet verificeres og fortrolighed sikres.
Formatet af AH og ESP bygger på standarderne RFC 2402 og RFC 2406.
To tilstande
To tilstande
IPSec kan arbejde i to forskellige tilstande, tunnel-tilstand eller host-tilstand. En tunnel-tilstand betegner tilstanden, hvor de to parter begge er firewalls (eller routere). En host-tilstand er, når den ene part er en firewall.
I tunnel-tilstanden krypteres hele den oprindelig pakke, det vil sige AH, ESP og selve indholdet af pakken. Til den krypterede pakke tilføjes der nu en ny TCP/IP-header, hvori der angives hvilken kilde og destination pakken har i form af IP-adresser. I denne tilstand kan man kun se, hvilke firewall's der kommunikerer med hinanden.
I host-tilstanden krypteres kun indholdet (payload) af den oprindelige pakke. I denne tilstand er det muligt at finde ud af præcist hvilke computere, som kommunikerer med hinanden, da disse computere ikke befinder sig i et lokalt netværk bag en firewall. Denne tilstand minder altså mere om den SSL-baserede kommunikation og er ikke lige så sikker som tunnel-tilstanden.
Fælles viden
For at to parter kan udveksle krypterede pakker, kræves det at parterne på forhånd deler en fælles viden om indholdet af SA og om hvilken krypteringsnøgle, der skal bruges. Denne viden kan udveksles på to måder, manuelt eller ved brug af protokollen IKE (Internet Key Exchange).
Ved den manuelle metode skal en administrator selv oprette identiske SA'er på samtlige firewalls og routere, som indgår i VPN.
Hvis IKE benyttes, fungerer IPSec faktisk ligesom SSL ved at der oprettes en sikker tunnel til forhandlingsprocessen, hvor SA forhandles, en sessionsnøgle udveksles og derefter nedlægges forhandlingstunnelen. Derefter oprettes der en ny krypteringstunnel på baggrund af SA og sessionsnøglen.