In IPv6 worden de specificaties van het IPsec (Secure Architecture for IP) opgenomen. Dit voorstel voorziet in een beveiligingsarchitectuur die ook in IPv4 kan toegepast worden (RFC 2401).
IPsec bestaat uit vier belangrijke stukken:
IPsec werkt in een beveiligde omgeving, en kan plaatsvinden in een end-to-end communicatie (tussen twee hosts) of in tussenliggende nodes (gateways), of tussen een combinatie van beide. De beveiliging die geboden wordt, is gebaseerd op een Security Policy Database (SPD) die door een gebruiker of systeembeheerder wordt opgesteld en beheerd.
IPsec biedt volgende beveiligingsdiensten: het selecteren van het vereiste veiligheidsprotocol, het vastleggen van de te gebruiken algoritmes en het voorzien van cryptografische sleutels. IPsec voorziet in twee gebruiksmodi: normale transportmodus (d.w.z. end-to-end communicatie tussen twee hosts) of tunnel-modus (bv. alle transport tussen twee gateways kan geëncrypteerd worden).
Fundamenteel aan IPsec is de notie Security Association, die doelt op het geheel van beveiligingsdiensten bij een enkelvoudige (simplex) connectie tussen twee nodes (end-to-end of tunnel). Elke Security Association bestaat uit de volgende elementen: een Security Parameter Index (SPI), het IP-destination adres en het veiligheidsprotocol. De SPI is eenvoudig gesteld een cijfer dat moet toelaten om onderscheid te maken tussen verschillende SA's naar dezelfde bestemming met hetzelfde protocol. Het toestaan van een bepaalde SA is afhankelijk van de regels die de Security Policy Database dicteert.
Host 1 --- Security ---- Internet -- Security --- Host 2
| Gwy 1 Gwy 2 |
| | | |
| --Security Assoc 1 (tunnel)- |
| |
-----------Security Association 2 (tunnel)-----------
Host 1 --- Security ---- Internet -- Security --- Host 2
| | Gwy 1 Gwy 2 | |
| | | |
| -----Security Association 1 (ESP transport)------- |
| |
-------Security Association 2 (AH transport)----------
IPsec schrijft niet alleen de mechanismen voor die tot een beveiligde IP-omgeving moeten leiden, maar ook de algoritmes die minimaal aanwezig moeten zijn in een IPsec-implementatie. Men moet echter opmerken dat IPsec gebaseerd is op "gedeelde geheimen", i.c. cryptografische sleutels. Deze kunnen manueel uitgewisseld worden, of men kan gebruik maken van IKE (Internet Key Exchange) om automatisch sleutels te kunnen uitwisselen.
IPsec voorziet in twee belangrijke veiligheidsprotocols, die elk over een bijhorende header beschikken:
De authentication header voorziet in een mogelijkheid om te checken:
De authenticatie is gebaseerd op het gebruik van een hash-functie en wederzijds gekende geheime sleutels. Een hash-functie is een functie die een unieke en reproduceerbare waarde genereert voor een blok gegevens.
A.d.h.v. de gegenereerde waarde kan de ontvanger nagaan of het pakket niet gewijzigd is tijdens de transmissie: hij berekent gewoon terug de hash-waarde. Het achterhalen van de oorsprong van de data kan doordat deze hash-waarde niet eenvoudigweg wordt berekend op de te versturen data, maar op basis van een combinatie van de data en een wederzijds bekende sleutel.
De Authentication Header beschermt niet alleen de data, maar ook de header.
IPsec legt niet alleen het authenticatie-mechanisme vast maar ook welke hash-algoritmes elke implementatie moet ondersteunen: MD5 en SHA-1 (Secure Hash Algoritm 1).
Authenticatie werkt als volgt:
+-------------+- ~~ -- ~~ -+------------ ~~ -----------+
| IPv6 Header | Ext. Hdrs. | Data |
+-------------+- ~~ -- ~~ -+------------ ~~ -----------+
+-----------------------+ +-----+ | gewijzigd IP-pakket | + | Key | ============> hash-value +-----------------------+ +-----+ hash-algoritm
+-------------+- ~~ -+-------------------+- ~~ -+--- ~~ ---+ | IPv6 Header | E.H. | AH [+ hash-value] | E.H. | Data | +-------------+- ~~ -+-------------------+- ~~ -+--- ~~ ---+
+-----------------------+ +-----+ | gewijzigd IP-pakket | + | Key | ============> hash-value-2 +-----------------------+ +-----+ hash-algoritm
IP-authenticatie biedt de mogelijkheid om afkomst en integriteit van data te checken, maar niet om de inhoud van de communicatie af te schermen voor buitenstaanders.
Hiervoor zorgt ESP: de bijgestuurde data worden geëncrypteerd via een symmetrisch encryptie-algoritme. IPsec stelt dat iedere implementatie minimaal het DES-CBC (Cypher Block Chain) algoritme moet ondersteuenen.
Encryptie kan gebeuren in twee modi: transport en tunnel modus. Transport-modus doelt op het verzenden van een pakket tussen twee end-nodes. Hierbij wordt enkel de data geëncrypteerd.
<-------------- Unencrypted ---------------> <----- Encrypted ----... --------------------------------------------------------------------- | IPv6 Header | Extension Hdrs | ESP Header | Transport Hdr & Payload ---------------------------------------------------------------------
Met tunnel-modus wordt het overbrengen van gegevens tussen twee tussenliggende nodes bedoeld, waarbij de IP-pakketten omkapseld worden door een nieuwe header. Het dataverkeer tussen beide nodes wordt volledig geëncrypteerd.
<-----Unencrypted--------> <--------- Encrypted ----------------... -------------------------------------------------------------------- |IPv6 Hdr|Ext.Hdrs|ESP Hdr|IPv6 Hdr|Ext.Hdrs|ESP Hdr|Transpt/Payload -------------------------------------------------------------------- <-Encapsulating Headers--> <--------- Original Packet -------.......
De tunnelmode is uitstekend geschikt voor gebruik als Steel Pipe. Al het verkeer tussen twee netwerken door een geëcrypteerde tunnel gestuurd, waardoor het voor buitenstaanders bijzonder moeilijk wordt om de inhoud van de pakketten te bekijken. De gebruikers van de Steel Pipe merken hier niets van, voor hun lijkt het tweede netwerk direct gekoppeld aan het eerste. Het spreekt voor zich dat Steel Pipes een van de basiskenmerken van Virtual Private Networks (VPN) vormen. Met VPN wordt een netwerk bedoeld dat gebruik maakt van de Internet-infrastructuur, maar dat niet toegankelijk is voor buitenstaanders.
~~ ~~
F~ ~F
---------- i~ ---------------------- ~i ----------
| | r~ | | ~r | |
| Site 1 | e~ | Public Internet | ~e | Site 2 |
| | ---------------------------------------- | |
| <-------( - - - - - - ESP Steel Pipe - - - - - -()<----- |
| | ---------------------------------------- | |
| | w~ | | ~w | |
| | a~ | | ~a | |
| | l~ ---------------------- ~l | |
---------- l~ ~l ----------
~~ ~~