Hoppa till innehållet

Host Identity Protocol

Från Wikipedia

Host Identity Protocol (HIP) är ett protokoll för verifiering av mottagare och nyckelutbyte för symmetrisk kryptering i datornätverk, exempelvis över IPInternet. HIP introducerar Host Identity (HI) som baseras på asymmetrisk kryptering och används för att identifiera en mottagare i nätet. HIP tillhör transportskiktet men kan kombineras med andra transportprotokoll, till exempel TCP eller UDP.

På internet används IP-adresser både för att identifikation och lokalisering av en mottagare. HIP tar över IP-adressens roll som identifikation för en mottagare och lämnar adressen till att enbart beskriva mottagarens position i nätet. Denna separation gör det möjligt att upprätthålla en förbindelse mellan sändare och mottagare även om den ena skulle byta plats/IP-adress i nätet. Exempel på när detta kan uppstå är en mobiltelefon som till en början är ansluten till mobilnätet men sedan kopplar upp sig på ett lokalt trådlöst nätverk.[1]

Tekniska detaljer

[redigera | redigera wikitext]

HIP använder sig av en 4-vägs handskakning för att upprätta en förbindelse mellan två parter. Handskakningen verifierar bägge parters Host Identity och genomför Diffie-Hellmans nyckelöverföring. Datautbyte påbörjas först efter det 4:e paketet i handskakningen även om både 3:e och 4:e paketet i praktiken skulle kunna bära data.

Host Identity Protocol Version 2 (HIPv2)

[redigera | redigera wikitext]

Host Identity Protocol version 2 (HIPv2) är en uppdaterad version av det ursprungliga Host Identity Protocol (HIP), utvecklat för att hantera moderna internetutmaningar. Genom att introducera en unik kryptografisk identitet för varje enhet förbättrar HIPv2 säkerhet, mobilitet och hantering av nätverksidentiteter. Detta gör det möjligt att bibehålla anslutningar även vid nätverksändringar, vilket är särskilt användbart i miljöer som kräver hög säkerhet, mobila anslutningar och multihoming.

HIPv2 är designat för att motverka attacker som man-in-the-middle (MITM) och IP-spoofing, vilket gör det särskilt relevant i en värld där mobilitet och Internet of Things (IoT) blir allt vanligare. Det bidrar till bättre hantering av adressändringar, vilket är av stor vikt för användare som rör sig mellan olika nätverk, exempelvis inom transportsektorn, uppkopplade fordon och molnbaserade applikationer.[1]

Historik och utveckling

[redigera | redigera wikitext]

HIP utvecklades för att åtgärda bristerna i den traditionella internetarkitekturen, där IP-adresser fungerar både som identifierare och lokalisatorer. HIP introducerades i RFC 4423 och vidareutvecklades i RFC 7401 som HIPv2. Version 2 förbättrade säkerheten, effektiviteten vid hantering av sessioner och stöd för NAT-traversering.[2]

Med HIPv2 förbättrades stödet för IPv6 och säkerhetsfunktionerna, vilket gör protokollet mer relevant för framtidens internetutveckling. Även om adoptionen har varit begränsad jämfört med etablerade nätverksprotokoll som TCP/IP, har intresset ökat på grund av de ökade säkerhetskraven och den ökade mobiliteten i nätverksinfrastrukturen.[3]

Användningsområden

[redigera | redigera wikitext]

HIPv2 erbjuder fördelar inom flera områden:

- Mobil kommunikation: För säker och stabil kommunikation för mobila enheter som ofta byter IP-adress, t.ex. smartphones och uppkopplade fordon.

- Internet of Things (IoT): Genom att separera identitet från lokalisering kan HIPv2 säkra kommunikation mellan IoT-enheter som använder dynamiska nätverksadresser.

- Molntjänster: För autentisering och säkerhet av molnbaserade applikationer och plattformar.

- Militära och kritiska system: HIPv2:s starka säkerhetsmodeller gör det användbart för myndigheter och försvarssektorn för att skydda mot spoofing och obehörig åtkomst.

Utmaningar och framtid

[redigera | redigera wikitext]

Trots sina fördelar möter HIPv2 vissa utmaningar:

- Komplexitet och implementeringskostnader: Att införa HIPv2 kräver anpassningar av befintliga system, vilket kan vara kostsamt och tidskrävande.

- Prestandaöverhäng: De extra kryptografiska operationerna kan innebära en prestandabelastning, särskilt i resursbegränsade miljöer.

- Kompatibilitet med existerande protokoll: Även om HIP integreras med IPsec, kan vissa funktioner kräva ytterligare anpassning.

Med fortsatt forskning och utveckling kan HIPv2 bli en nyckelkomponent i framtida nätverksarkitekturer, särskilt med integration i 5G, Zero Trust-modeller och kvantsäker kryptografi.

Tekniska detaljer och funktioner

[redigera | redigera wikitext]

Kryptografiska identiteter

[redigera | redigera wikitext]

HIPv2 använder asymmetrisk kryptering för att skapa och hantera Host Identities (HI). Varje enhet genererar ett nyckelpar där den offentliga nyckeln används som identitet och den privata nyckeln används för att signera meddelanden och autentisera enheten. Detta eliminerar behovet av att förlita sig på IP-adresser för autentisering.

HIP Base Exchange (BEX)

[redigera | redigera wikitext]

HIPv2 använder HIP Base Exchange (BEX) för att etablera en säker kommunikationskanal mellan två enheter. BEX-processen består av fyra steg:

1. Initiator Hello (I1): Initierande enhet skickar ett paket till mottagaren.

2. Responder Hello (R1): Mottagaren svarar med sin offentliga nyckel.

3. Initiator Done (I2): Initieraren signerar och skickar tillbaka sin offentliga nyckel.

4. Responder Done (R2): Mottagaren verifierar signaturen och slutför processen.

NAT-traversering och multihoming

[redigera | redigera wikitext]

HIPv2 stöder både NAT-traversering och multihoming. NAT-traversering möjliggör kommunikation mellan enheter bakom olika NAT-enheter, medan multihoming tillåter enheter att vara anslutna till flera nätverk samtidigt för att öka tillförlitligheten och prestandan.

Integrering med IPsec

[redigera | redigera wikitext]

HIPv2 kan integreras med IPsec för att säkra datapaket genom kryptering och autentisering. Denna integration ger ytterligare säkerhet genom att skydda kommunikationen mot avlyssning och manipulation.

Ytterligare användningsområden och applikationer

[redigera | redigera wikitext]

- Virtualisering och containerisering: HIPv2 kan säkra kommunikation i dynamiska miljöer där enheter och tjänster ofta byter nätverk.

- Kantdatorsystem: För att säkra kommunikation mellan edge-enheter och centrala molntjänster.

- Smarta städer och infrastruktur: För att hantera och säkra kommunikationen i stora nätverk av enheter och sensorer.

Framtida utveckling och forskning

[redigera | redigera wikitext]

Forskning pågår för att optimera HIPv2 för integration med 5G-nätverk[4] och Zero Trust-modeller[5]. Dessutom pågår forskning för att utveckla kvantsäkra versioner av HIPv2:s kryptografiska protokoll.[6]

HIPv2 erbjuder en kraftfull lösning för att säkerställa och effektivisera kommunikation i moderna nätverksarkitekturer. Genom att separera identitet från lokalisering och använda kryptografiska identiteter, är HIPv2 en robust lösning för att hantera utmaningarna i en allt mer sammankopplad och mobil värld.

Host Identity

[redigera | redigera wikitext]

Bägge parter som deltar i en handskakning måste ha en Host Identity vilket är den publika delen av det nyckelpar som parterna använder för asymmetrisk kryptering och signering av meddelanden. Flera olika typer av asymmetrisk kryptering är tillåtna; för version 1 av HIP är stöd för RSA obligatoriskt och DSA rekommenderat. Version 2 kräver stöd för RSA och ECDSA medan stöd för DSA och ECDSA_LOW (en variant av ECDSA för enheter med begränsad beräkningskraft) är rekommenderat.[7]

Host Identity Tag

[redigera | redigera wikitext]

Nyckelstorleken för olika algoritmer varierar och kan för vissa vara mycket stor. Därför används en kortare representation, Host Identity Tag (HIT), som är 128 bitar som identifikation efter det att nyckelutbytet är genomfört. Beroende på vilket asymmetriskt krypto som används beräknas HIT med någon av följande hashfunktioner: SHA-256 för RSA och DSA, SHA-384 för ECDSA och SHA-1 för ECDSA_LOW. Resultatet trunkeras till 96 bitar och kapslas in enligt ORCHIDv2 för att skapa ett 128 bitar långt id.

I enlighet med ORCHIDv2 har HIT formen av en IPv6-adress med prefixet 2001:20::/28 och kan därför användas som en sådan i överliggande transportlager och applikationslager.[7]

Handskakningen

[redigera | redigera wikitext]

Handskakning är 4-vägs och startar med att den initierande parten skickar ett första paket innehållande en lista med de kryptografiska algoritmer som stöds. Mottagaren svarar med ett andra paket innehållande sin egen lista av stödda algoritmer, ett problem med justerbar svårighet, en Diffie-Hellmanparamter samt en signatur av paketets innehåll. När den initierande parten tagit emot det andra paketet kan den avgöra om det finns någon algoritm som stöds av bägge parter och om så inte är fallet välja att starta om förbindelsen eller avsluta genom att inte skicka några fler paket. Om det finns en gemensam algoritm löser den initierande parten det mottagna pusslet och skickar lösningen tillsammans med en Diffie-Hellmanparameter och signatur till mottagaren i det tredje paketet. Om pusslet är korrekt bekräftar mottagaren att förbindelsen är öppen genom att skicka ett signerat paket tillbaka till den initierande parten, det fjärde paketet i ordningen.[8]

Skydd mot överbelastningsattacker

[redigera | redigera wikitext]

Pusslet som skickas i det andra paketet används för att förhindra överbelastningsattacker där en illasinnad initierande part öppnar fler förbindelser än den mottagande parten kan hantera. Pusslet är beräkningsintensivt och en lösning på problemet intygar att den initierande parten är villig att investera beräkningskraft för att öppna en förbindelse.[8]

  1. ^ [a b] RFC 7401
  2. ^ [IETF HIP Arbetsgrupp] https://datatracker.ietf.org/wg/hip/
  3. ^ [InfraHIP-projektarkiv] http://infrahip.hiit.fi/
  4. ^ [5G-arkitekturer och säkerhet] https://www.3gpp.org/
  5. ^ [Zero Trust-nätverksmodeller] https://www.nist.gov/zero-trust
  6. ^ [Kvantsäker kryptografi] https://csrc.nist.gov/projects/post-quantum-cryptography
  7. ^ [a b] https://tools.ietf.org/html/rfc7401#section-3, Host Identity Protocol Version 2 (HIPv2), Section 3
  8. ^ [a b] https://tools.ietf.org/html/rfc7401#section-4.1, Host Identity Protocol Version 2 (HIPv2), Section 4.1