IPsec (forkortelse for IP-sikkerhed ) er et sæt protokoller til at sikre beskyttelsen af data, der transmitteres over internetprotokollen IP . Tillader godkendelse ( godkendelse ), integritetskontrol og/eller kryptering af IP-pakker. IPsec inkluderer også protokoller til sikker nøgleudveksling på internettet . Det bruges hovedsageligt til at organisere VPN- forbindelser.
I første omgang blev internettet skabt som et sikkert medie til transmission af data mellem militæret. Da kun en vis kreds af mennesker arbejdede med det, folk der var uddannede og havde en idé om sikkerhedspolitik, var der ikke noget åbenlyst behov for at bygge sikre protokoller. Sikkerheden var organiseret på niveau med fysisk isolering af genstande fra uautoriserede personer, og dette var berettiget, da et begrænset antal maskiner havde adgang til netværket. Men da internettet blev offentligt og aktivt begyndte at udvikle sig og vokse, dukkede et sådant behov op [1] .
Og i 1994 udgav Internet Architecture Board (IAB) rapporten "Internet Architectural Security". Det var hovedsageligt viet til metoder til beskyttelse mod uautoriseret overvågning, pakkeforfalskning og dataflowkontrol. En eller anden standard eller koncept var nødvendig for at løse dette problem. Som et resultat opstod der sikre protokolstandarder, inklusive IPsec. I første omgang omfattede det tre grundlæggende specifikationer beskrevet i dokumenterne (RFC1825, 1826 og 1827), men efterfølgende reviderede IETF IP Security Protocol arbejdsgruppen dem og foreslog nye standarder (RFC2401 - RFC2412), som stadig bruges i dag.
Konstruktionen af en sikker kommunikationskanal kan implementeres på forskellige niveauer af OSI-modellen . IPsec er implementeret på netværkslaget . Der er flere modstridende argumenter vedrørende valget af implementeringsniveauet for sikker kanal: På den ene side understøttes valget af de øvre niveauer af deres uafhængighed af transporttypen (valget af netværks- og linklagsprotokoller) på den anden side. hånd, kræver hver applikation en separat indstilling og konfiguration. Fordelen ved at vælge de nederste lag er deres alsidighed og synlighed for applikationer, ulempen er afhængigheden af valget af en bestemt protokol (for eksempel PPP eller Ethernet ). Det faktum, at IPsec ligger på netværkslaget, er et kompromis i valget af OSI-laget. IPsec bruger den mest almindelige netværkslagsprotokol - IP , som gør brugen af IPsec fleksibel - den kan bruges til at beskytte alle IP-baserede protokoller ( TCP , UDP og andre). Samtidig er den gennemsigtig for de fleste applikationer [2] .
IPsec er et sæt internetstandarder og en slags "add-on" til IP-protokollen. Dens kerne består af tre protokoller [3] :
Et af nøglebegreberne er også Security Association (SA). Faktisk er SA et sæt parametre, der karakteriserer forbindelsen. For eksempel den anvendte krypteringsalgoritme og hash-funktion , hemmelige nøgler, pakkenummer osv.
IPsec kan fungere i to tilstande: transport og tunnel.
I transporttilstand er det kun dataene i IP-pakken, der er krypteret eller signeret, den originale header bevares. Transporttilstand bruges typisk til at etablere en forbindelse mellem værter. Den kan også bruges mellem gateways til at sikre tunneler organiseret på anden måde (se f.eks. L2TP ).
I tunneltilstand krypteres hele den originale IP-pakke: data, header, routinginformation, og så indsættes den i datafeltet på en ny pakke, det vil sige, at der sker indkapsling [4] . Tunneltilstand kan bruges til at forbinde fjerncomputere til et virtuelt privat netværk eller til at organisere sikker datatransmission over åbne kommunikationskanaler (f.eks. internettet) mellem gateways for at kombinere forskellige dele af et virtuelt privat netværk .
IPsec-tilstande udelukker ikke hinanden. På den samme vært kan nogle SA'er bruge transporttilstand, mens andre kan bruge tunneltilstand.
For at begynde at udveksle data mellem to parter, skal du oprette en forbindelse, som kaldes SA (Security Association). Konceptet SA er grundlæggende for IPsec, faktisk er dets essens. Den beskriver, hvordan parterne vil bruge tjenesterne til at levere sikker kommunikation. En SA-forbindelse er simpleks (envejs), så der skal etableres to forbindelser for at parterne kan kommunikere. Det er også værd at bemærke, at IPsec-standarderne tillader sikre kanal-endepunkter at bruge både én SA til at transmittere trafik fra alle værter , der interagerer gennem denne kanal , og til at skabe et vilkårligt antal sikre tilknytninger til dette formål, for eksempel én for hver TCP-forbindelse . Dette gør det muligt at vælge det ønskede niveau af beskyttelsesdetalje. [2] Etablering af en forbindelse begynder med gensidig autentificering af parterne. Derefter vælges parametrene (om der skal udføres godkendelse, kryptering, dataintegritetstjek) og den nødvendige protokol (AH eller ESP) til dataoverførsel. Derefter vælges specifikke algoritmer (for eksempel kryptering, hash-funktion) fra flere mulige skemaer, hvoraf nogle er defineret af standarden (for kryptering - DES , for hash-funktioner - MD5 eller SHA-1 ), andre tilføjes af producenter af produkter, der bruger IPsec (f.eks. Triple DES , Blowfish , CAST ) [5] .
Alle SA'er er gemt i SAD (Security Associations Database) i IPsec-modulet. Hver SA har en unik markør bestående af tre elementer [6] :
IPsec-modulet, givet disse tre parametre, kan slå en bestemt SA-indgang op i SAD. Listen over SA-komponenter inkluderer [7] :
Serienummer En 32-bit værdi, der bruges til at danne feltet Sekvensnummer i AH- og ESP-headerne. Sekvens tæller overløb Et flag, der signalerer overløbet af sekvensnummertælleren. Genafspil angrebsundertrykkelsesvindue Bruges til at bestemme retransmission af pakker. Hvis værdien i feltet Sekvensnummer ikke falder inden for det angivne interval, bliver pakken ødelagt. AH Information den anvendte autentificeringsalgoritme, de nødvendige nøgler, nøglernes levetid og andre parametre. ESP oplysninger krypterings- og autentificeringsalgoritmer, nødvendige nøgler, initialiseringsparametre (for eksempel IV), nøglelevetid og andre parametre IPsec driftstilstand tunnel eller transport SA levetid Angivet i sekunder eller bytes af information, der passerer gennem tunnelen. Bestemmer varigheden af eksistensen af SA, når denne værdi er nået, skal den nuværende SA afslutte, om nødvendigt fortsætte forbindelsen, en ny SA etableres. MTU Den maksimale pakkestørrelse, der kan sendes over et virtuelt kredsløb uden fragmentering.Hver protokol (ESP/AH) skal have sin egen SA for hver retning, så AH+ESP kræver fire SA'er til et duplekslink . Alle disse data ligger i SAD.
SAD indeholder:
Ud over SAD-databasen understøtter IPsec-implementeringer Security Policy Database (SPD). SPD bruges til at korrelere indgående IP-pakker med behandlingsregler for dem. Records i SPD består af to felter. [8] Den første gemmer de karakteristiske træk ved pakkerne, hvorefter den ene eller anden informationsstrøm kan skelnes. Disse felter kaldes vælgere. Eksempler på vælgere, der er indeholdt i SPD [6] :
Det andet felt i SPD'en indeholder sikkerhedspolitikken forbundet med denne pakkestrøm. Vælgere bruges til at filtrere udgående pakker for at matche hver pakke til en specifik SA. Når en pakke ankommer, sammenlignes værdierne af de tilsvarende felter i pakken (selektorfelter) med dem, der er indeholdt i SPD'en. Når et match er fundet, indeholder sikkerhedspolitikfeltet information om, hvordan man håndterer denne pakke: videregive den uændret, kassere den eller behandle den. I tilfælde af behandling indeholder samme felt et link til den tilsvarende post i SAD. SA'en for pakken og dens tilhørende sikkerhedsparameterindeks (SPI) bestemmes derefter, hvorefter IPsec-operationer (AH- eller ESP-protokoloperationer) udføres. Hvis pakken kommer ind, indeholder den straks SPI - den tilsvarende behandling udføres.
forskydninger | 16. oktober | 0 | en | 2 | 3 | ||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
16. oktober | bit 10 | 0 | en | 2 | 3 | fire | 5 | 6 | 7 | otte | 9 | ti | elleve | 12 | 13 | fjorten | femten | 16 | 17 | atten | 19 | tyve | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | tredive | 31 |
0 | 0 | Næste overskrift | Nyttelast Len | Reserveret | |||||||||||||||||||||||||||||
fire | 32 | Sikkerhedsparameterindeks (SPI) | |||||||||||||||||||||||||||||||
otte | 64 | sekvensnummer | |||||||||||||||||||||||||||||||
C | 96 | Integritetstjekværdi (ICV) … | |||||||||||||||||||||||||||||||
… | … |
AH-protokollen bruges til autentificering, det vil sige for at bekræfte, at vi kommunikerer med præcis den, vi tror, vi er, og at de data, vi modtager, ikke bliver manipuleret med under transit [9] .
Hvis det transmitterende IPsec-modul bestemmer, at pakken er forbundet med en SA, der kræver AH-behandling, begynder den at behandle. Afhængigt af tilstanden (transport- eller tunneltilstand) indsætter den AH-headeren forskelligt i IP-pakken. I transporttilstand vises AH-headeren efter IP-protokolheaderen og før protokolheaderne på det øverste lag (typisk TCP eller UDP ). I tunneltilstand indrammes hele kilde-IP-pakken først med AH-headeren, derefter med IP-protokolheaderen. Sådan en header kaldes outer, og headeren på den originale IP-pakke kaldes indre. Derefter skal det transmitterende IPsec-modul generere et sekvensnummer og skrive det i feltet Sekvensnummer . Når en SA er etableret, sættes sekvensnummeret til 0 og øges med én, før hver IPsec-pakke sendes. Derudover er der et tjek for at se om tælleren er gået i cyklusser. Hvis den har nået sin maksimale værdi, sættes den tilbage til 0. Hvis gentransmissionsforebyggelsestjenesten bruges, så nulstiller det transmitterende IPsec-modul SA'en, når tælleren når sin maksimale værdi. Dette giver beskyttelse mod genafsendelse af pakker - det modtagende IPsec-modul vil kontrollere feltet Sekvensnummer og ignorere genindkommende pakker. Dernæst beregnes ICV-kontrolsummen. Det skal bemærkes, at checksummen her beregnes ved hjælp af en hemmelig nøgle, uden hvilken en angriber vil være i stand til at genberegne hashen, men uden at kende nøglen, vil han ikke være i stand til at danne den korrekte kontrolsum. De specifikke algoritmer, der bruges til at beregne ICV, kan findes i RFC 4305 . I øjeblikket kan for eksempel HMAC-SHA1-96 eller AES-XCBC-MAC-96 algoritmer bruges. AH-protokollen beregner kontrolsummen (ICV) ud fra følgende felter i IPsec-pakken [10] :
Ved modtagelse af en pakke, der indeholder en AH-protokolmeddelelse, slår det modtagende IPsec-modul op den passende SAD (Security Associations Database) sikre virtuelle forbindelse (SA) ved hjælp af destinations-IP-adressen, sikkerhedsprotokollen (AH) og SPI-indekset. Hvis der ikke findes en passende SA, kasseres pakken. Den fundne sikre virtuelle forbindelse (SA) angiver, om tjenesten bruges til at forhindre gentransmission af pakker, det vil sige behovet for at kontrollere feltet Sekvensnummer . Hvis tjenesten er i brug, er feltet markeret. Dette bruger en glidende vinduesmetode til at begrænse den bufferhukommelse, der kræves for, at protokollen kan fungere. Det modtagende IPsec-modul danner et vindue med en bredde W (normalt vælges W til 32 eller 64 pakker). Venstre kant af vinduet svarer til minimumssekvensnummeret ( sekvensnummer ) N for en korrekt modtaget pakke. En pakke med et sekvensnummerfelt , der indeholder en værdi fra N+1 til N+W, modtages korrekt. Hvis den modtagne pakke er i venstre kant af vinduet, bliver den ødelagt. Det modtagende IPsec-modul beregner derefter ICV'en ud fra de relevante felter i den modtagne pakke ved hjælp af den autentificeringsalgoritme, den lærer fra SA-posten, og sammenligner resultatet med ICV-værdien placeret i feltet "Integrity Check Value". Hvis den beregnede ICV-værdi matcher den modtagne, betragtes den indgående pakke som gyldig og accepteres til yderligere IP-behandling. Hvis kontrollen mislykkes, ødelægges den modtagne pakke [10] .
forskydninger | 16. oktober | 0 | en | 2 | 3 | ||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
16. oktober | bit 10 | 0 | en | 2 | 3 | fire | 5 | 6 | 7 | otte | 9 | ti | elleve | 12 | 13 | fjorten | femten | 16 | 17 | atten | 19 | tyve | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | tredive | 31 |
0 | 0 | Sikkerhedsparameterindeks (SPI) | |||||||||||||||||||||||||||||||
fire | 32 | sekvensnummer | |||||||||||||||||||||||||||||||
otte | 64 | nyttelast data | |||||||||||||||||||||||||||||||
… | … | ||||||||||||||||||||||||||||||||
… | … | ||||||||||||||||||||||||||||||||
… | … | Polstring (0-255 oktetter) | |||||||||||||||||||||||||||||||
… | … | Pad længde | Næste overskrift | ||||||||||||||||||||||||||||||
… | … | Integritetstjekværdi (ICV) … | |||||||||||||||||||||||||||||||
… | … |
Hvis det transmitterende IPsec-modul bestemmer, at pakken er knyttet til en SA, der kræver ESP-behandling, begynder den at behandle. Afhængig af tilstanden (transport- eller tunneltilstand) behandles den originale IP-pakke forskelligt. I transporttilstand udfører det transmitterende IPsec-modul rammeproceduren for protokollen for det øverste lag (f.eks. TCP eller UDP) ved hjælp af ESP-headeren (felterne Sikkerhedsparametre Indeks og Sekvensnummer i overskriften) og ESP-traileren (de resterende felter i overskriften efter datafeltet) for dette. - Nyttedata), uden at det påvirker overskriften på den originale IP-pakke. I tunneltilstand indrammes IP-pakken med en ESP-header og en ESP-trailer ( indkapsling ), hvorefter den indrammes med en ekstern IP-header (som muligvis ikke matcher den originale - hvis IPsec-modulet f.eks. er installeret på porten ) [8 ] . Dernæst udføres kryptering - i transporttilstand er det kun beskeden fra den øvre lags protokol, der krypteres (det vil sige alt, der var efter IP-headeren i kildepakken), i tunneltilstand - hele kilde-IP-pakken. Det transmitterende IPsec-modul fra SA-indgangen bestemmer krypteringsalgoritmen og den hemmelige nøgle . IPsec-standarderne tillader brugen af Triple DES , AES og Blowfish -krypteringsalgoritmerne, hvis begge parter understøtter dem. Ellers bruges DES som specificeret i RFC 2405 . Da størrelsen af den almindelige tekst skal være et multiplum af et vist antal bytes, for eksempel blokstørrelsen for blokalgoritmer , udføres den nødvendige tilføjelse af den krypterede meddelelse også før kryptering. Den krypterede besked placeres i feltet Nyttedata . Feltet Pad Længde indeholder længden af puden . Derefter beregnes, som i AH, Sekvensnummeret, hvorefter kontrolsummen (ICV) beregnes. Kontrolsummen, i modsætning til AH-protokollen, hvor nogle felter i IP-headeren også tages i betragtning ved beregningen af den, beregnes i ESP kun af felterne i ESP-pakken minus ICV-feltet. Inden kontrolsummen udregnes, udfyldes den med nuller. ICV-beregningsalgoritmen, som i AH-protokollen, lærer det transmitterende IPsec-modul fra posten om den SA, som den behandlede pakke er forbundet med.
Ved modtagelse af en pakke, der indeholder en ESP-protokolmeddelelse, slår det modtagende IPsec-modul op den passende sikre virtuelle forbindelse (SA) i SAD'et ved hjælp af destinations-IP-adressen, sikkerhedsprotokol (ESP) og SPI [8] -indekset . Hvis der ikke findes en passende SA, kasseres pakken. Den fundne sikre virtuelle forbindelse (SA) angiver, om pakkegentransmissionsforhindringstjenesten bliver brugt, dvs. behovet for at kontrollere feltet Sekvensnummer. Hvis tjenesten er i brug, er feltet markeret. Til dette, som i AH, bruges skydevinduemetoden. Det modtagende IPsec-modul danner et vindue med bredden W. Venstre kant af vinduet svarer til minimum sekvensnummer (sekvensnummer) N for en korrekt modtaget pakke. En pakke med et sekvensnummerfelt, der indeholder en værdi fra N+1 til N+W, modtages korrekt. Hvis den modtagne pakke er i venstre kant af vinduet, bliver den ødelagt. Derefter, hvis godkendelsestjenesten bruges, beregner det modtagende IPsec-modul ICV'en ud fra de tilsvarende felter i den modtagne pakke ved hjælp af godkendelsesalgoritmen, som den lærer fra SA-posten og sammenligner resultatet med ICV-værdien placeret i "Integrity Check Value" Mark. Hvis den beregnede ICV-værdi matcher den modtagne, anses den indgående pakke for at være gyldig. Hvis kontrollen mislykkes, kasseres den modtagende pakke. Derefter dekrypteres pakken. Det modtagende IPsec-modul lærer fra SA-indgangen, hvilken krypteringsalgoritme der bruges, og den hemmelige nøgle. Det skal bemærkes, at checksum-kontrollen og dekrypteringsproceduren ikke kun kan udføres sekventielt, men også parallelt. I sidstnævnte tilfælde skal kontrolsumverifikationsproceduren afsluttes før dekrypteringsproceduren, og hvis ICV-kontrollen mislykkes, skal dekrypteringsproceduren også afsluttes. Dette muliggør hurtigere detektion af ødelagte pakker, hvilket igen øger beskyttelsesniveauet mod lammelsesangreb ( DOS-angreb ). Yderligere transmitteres den dekrypterede meddelelse i overensstemmelse med Next Header -feltet til yderligere behandling.
IKE (udtales haik , forkortelse for Internet Key Exchange) er en protokol, der binder alle IPsec-komponenter til en fungerende helhed. Specifikt sørger IKE for den første autentificering af parterne samt deres udveksling af fælles hemmeligheder .
Det er muligt manuelt at indstille en sessionsnøgle (ikke at forveksle med foruddelt nøgle [PSK] til godkendelse). I dette tilfælde bruges IKE ikke. Denne mulighed anbefales dog ikke og bruges sjældent. Traditionelt opererer IKE på port 500 UDP .
Der er IKE og en nyere version af protokollen: IKEv2. Der er nogle forskelle i specifikationerne og driften af disse protokoller. IKEv2 etablerer forbindelsesparametre i en enkelt fase bestående af flere trin. IKE-processen kan opdeles i to faser.
IKE opretter en sikker kanal mellem to noder kaldet IKE-sikkerhedsforeningen (IKE SA). Også i denne fase bliver de to noder enige om en sessionsnøgle ved hjælp af Diffie-Hellman-algoritmen . Den første fase af IKE kan foregå i en af to tilstande [12] :
Fra et sikkerhedssynspunkt er den aggressive tilstand svagere, da deltagerne begynder at udveksle information, før de etablerer en sikker kanal, så uautoriseret aflytning af data er mulig. Denne tilstand er dog hurtigere end den primære. Ifølge IKE-standarden kræves enhver implementering for at understøtte hovedtilstanden , og det er yderst ønskeligt at understøtte den aggressive tilstand .
I fase to IKE er der kun én, hurtig tilstand. Hurtig tilstand udføres kun, efter at den sikre kanal er blevet etableret i den første fase. Den forhandler en fælles IPsec-politik, opnår delte hemmeligheder for IPsec-protokolalgoritmer (AH eller ESP), etablerer en IPsec SA. Brugen af sekventielle numre giver beskyttelse mod replay-angreb. Hurtig tilstand bruges også til at gennemgå den aktuelle IPsec SA og vælge en ny, når SA'en udløber. Som standard opdaterer hurtig tilstand de delte hemmelige nøgler ved hjælp af Diffie-Hellman-algoritmen fra den første fase.
IPsec-protokoller kan opdeles i fem trin [13] :
IPsec-protokollen bruges hovedsageligt til at organisere VPN-tunneller . I dette tilfælde fungerer ESP- og AH-protokollerne i tunneltilstand. Derudover kan protokollen bruges til at oprette en firewall ved at konfigurere sikkerhedspolitikker på en bestemt måde . Betydningen af en firewall er, at den kontrollerer og filtrerer de pakker, der passerer gennem den, i overensstemmelse med de givne regler. Et sæt regler er sat op, og skærmen ser på alle pakker, der passerer gennem det. Hvis de transmitterede pakker er underlagt disse regler, behandler firewallen dem i overensstemmelse hermed [14] . For eksempel kan den afvise visse pakker og derved afslutte usikre forbindelser. Ved at konfigurere sikkerhedspolitikken i overensstemmelse hermed kan du f.eks. nægte webtrafik. For at gøre dette er det nok at forbyde at sende pakker, der indeholder HTTP- og HTTPS -protokolmeddelelser . IPsec kan også bruges til at beskytte servere - til dette kasseres alle pakker, undtagen pakker, der er nødvendige for den korrekte udførelse af serverfunktioner. For en webserver kan du f.eks. blokere al trafik undtagen forbindelser på TCP-port 80 eller på TCP-port 443 i tilfælde, hvor HTTPS bruges .
Eksempel [15] :
IPsec giver sikker brugeradgang til serveren. Når du bruger ESP-protokollen, er alle opkald til serveren og dens svar krypteret. Der sendes dog klare beskeder bag VPN-gatewayen (i krypteringsdomænet).
Andre eksempler på brug af IPsec [16] :
Virtual Private Networks (VPN'er) | |
---|---|
Teknologi | |
Software | |
VPN-tjenester |
TCP / IP-protokoller efter lag af OSI-modellen | Grundlæggende|
---|---|
Fysisk | |
kanaliseret | |
netværk | |
Transportere | |
session | |
Repræsentation | |
Anvendt | |
Andet anvendt | |
Liste over TCP- og UDP-porte |