# Host Identity Protocol

Das Host Identity Protocol (HIP) ist ein von der IETF standardisiertes Protokoll, das Benutzern von Mobilgeräten (z. B. Notebooks) den Wechsel zwischen verschiedenen IP-Netzwerken (Roaming) erleichtern soll, indem es das hierbei notwendige Wechseln der IP-Adresse vor den Anwendungsprogrammen und der Transportschicht verbirgt.

## Motivation

Beim ursprünglichen Entwurf des Internets und somit auch von IP ging man davon aus, dass angeschlossene Rechnersysteme ihre Position im Netzwerk gar nicht oder nur höchst selten ändern. Insofern stellte es damals kein Problem dar, dass IP-Adressen sowohl zur eindeutigen Identifikation eines Endgerätes als auch zur Lokalisierung seines Aufenthaltsortes innerhalb der Netzwerktopologie verwendet wurden. Mit dem Aufkommen von Laptops, Smartphones und anderen Mobilgeräten hat sich dieses Bild gewandelt, doch aufgrund der nicht auf Mobilität ausgelegten Architektur des Internets muss beim Wechsel in ein anderes Zugangsnetzwerk (z. B. von einem WLAN zum anderen) dem betroffenen Endgerät technisch bedingt jedes Mal eine neue IP-Adresse zugewiesen werden, wodurch es unter seiner bis dahin genutzten IP-Adresse in der Regel nicht mehr länger erreichbar sein kann. Dies hat insbesondere zur Folge, dass sämtliche zum Zeitpunkt des Wechsels bestehenden TCP- und UDP-Verbindungen (z. B. POP3-Verbindungen für E-Mail-Empfang, Instant-Messaging-Dienste, VoIP-Telefonate) abreißen, was für den Endanwender unangenehm ist.
Aufgrund der zunehmenden Verbreitung von Mobilgeräten wurden verschiedene Lösungen für dieses Problem entwickelt; zu nennen sind hier insbesondere Mobile IP und eben HIP.

## Funktionsweise

HIP löst das Problem, indem die beiden Aufgaben Identifikation und Lokalisierung voneinander getrennt werden („Locator/ID split“). Hierzu wird HIP als neue Zwischenschicht zwischen Schicht 3 (IP) und Schicht 4 (TCP, UDP usw.) eingefügt. Die bei einem Netzwerkwechsel nach wie vor wechselnden IP-Adressen werden zwar beibehalten, dienen ab jetzt aber nur noch der Lokalisierung des Endgerätes, also zum Routing der Datenpakete zum Endgerät. Die Identifikation des Endgerätes, z. B. als Endpunkt einer TCP-Verbindung, wird dagegen nicht mehr von der IP-Adresse, sondern von einem sogenannten Host Identity Tag (deutsch ungefähr „Rechner-Identifikations-Etikett“) übernommen. Durch dieses Konzept wird ermöglicht, beispielsweise eine bestehende TCP-Verbindung aufrechtzuerhalten, auch wenn sich die IP-Adresse des Endgerätes ändert, da die TCP-Verbindung nicht mehr an die IP-Adresse, sondern an das Host Identity Tag gebunden ist.

## Sicherheit

Die Host Identity Tags sind keine zufällig gewählten oder vom Benutzer vorgegebenen Zahlen, sondern sie sind öffentliche Schlüssel (genauer: Hashwerte öffentlicher Schlüssel als deren Fingerabdrücke) eines Schlüsselpaares. Wenn zwei Endsysteme miteinander über HIP kommunizieren möchten, überprüfen sie zunächst mit Hilfe des Diffie-Hellman-Schlüsselaustauschverfahrens, ob die Gegenseite auch wirklich den passenden privaten Schlüssel zum von ihr geführten Host Identity Tag (=öffentlicher Schlüssel) besitzt. Eine Überprüfung kann dann auch beim Wechsel der IP-Adresse eines Kommunikationspartners erfolgen. Dadurch wird verhindert, dass sich ein Angreifer durch Fälschen des Host Identity Tags und Vorspiegelung einer IP-Adressänderung als einer der beteiligten Kommunikationspartner ausgeben und so einfach die Verbindung an sich reißen kann.

## Vor- und Nachteile

Nachteilig ist, dass durch das Diffie-Hellman-Verfahren zwangsläufig zwei RTTs (Round Trip Time) benötigt werden, bis die ersten Daten übertragen werden können; im Fall von TCP kommen hier noch weitere 1½ RTTs für den SYN-/ACK-Verbindungsaufbau hinzu. Der Vorteil des Diffie-Hellman-Verfahrens liegt jedoch darin, dass die beiden Kommunikationspartner ihre Schlüssel nicht zuvor ausgetauscht haben müssen oder auf die Hilfe einer Trusted Third Party, z. B. einer CA, angewiesen sind.
Ein weiterer Nachteil gegenüber beispielsweise Mobile IP ist die Tatsache, dass das Einführen von HIP als einer zusätzlichen Zwischenschicht alles andere als eine triviale Aufgabe ist: Zum einen müssen die Betriebssysteme beider Kommunikationspartner HIP unterstützen, zum anderen dürfen eventuell zwischengeschaltete Firewalls oder sonstige Filtermaßnahmen die HIP-Pakete nicht verwerfen, was in der Praxis eher unwahrscheinlich ist. Der Vorteil von HIP ist jedoch, dass die ausgetauschten Datenpakete zwischen den Kommunikationspartnern immer über normale, von IP vorgegebenen Routen gehen, und nicht wie beispielsweise bei Mobile IP oder VPN-Tunneln über eine Zwischenstation umgeleitet werden müssen.

## Spezifikationen

* RFC 5201 – Host Identity Protocol base. (englisch).
* RFC 5202 – Using the Encapsulating Security Payload (ESP) Transport Format with the Host Identity Protocol (HIP). (englisch).
* RFC 5203 – Host Identity Protocol (HIP) Registration Extension. (englisch).
* RFC 5204 – Host Identity Protocol (HIP) Rendezvous Extension. (englisch).
* RFC 5205 – Host Identity Protocol (HIP) Domain Name System (DNS) Extension. (englisch).
* RFC 5206 – End-Host Mobility and Multihoming with the Host Identity Protocol. (englisch).
* RFC 5207 – NAT and Firewall Traversal Issues of Host Identity Protocol (HIP) Communication. (englisch).