1 / 126

Host Identity Protocol M2NM, Sydney, 17 October 2007

Host Identity Protocol M2NM, Sydney, 17 October 2007. Patrik Salmela. Agenda. What is the Host Identity Protocol (HIP) What does HIP try to solve HIP basics Architecture The HIP base exchange HIP basic features Security Mobility Multi-homing HIP extensions

wayde
Download Presentation

Host Identity Protocol M2NM, Sydney, 17 October 2007

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Host Identity ProtocolM2NM, Sydney, 17 October 2007 Patrik Salmela

  2. Agenda • What is the Host Identity Protocol (HIP) • What does HIP try to solve • HIP basics • Architecture • The HIP base exchange • HIP basic features • Security • Mobility • Multi-homing • HIP extensions • SImultaneous Mulit-Access (SIMA) • Rendezvous server (IETF) • Name resolution (IETF) • NAT traversal (IETF) • HIP Mobile Router • HIP (mobile) Proxy

  3. Agenda ...continued • Mobility/HIP Mobility/Network Mobility • Different Network mobility solutions • Comparison of mobility solutions • Implementation status • Implementations • Our Implementation • Extensions • Usage of HIP today • Standardization • IETF drafts • IETF status • Possible usage of HIP • Benefits • HIP Mobile Router demo presentation • Conclusions

  4. Call room 123 @ hotel Identifier-locator split • In today’s Internet • IP address describes the topological location of the host • IP address used for identifying the host • In practice • deliver packet to entity at the destination locator • mobile host new IP address; changed locator, changed identity Room 123

  5. Identifier-locator split • In HIP • IP address describes topological location of the host • Host Identity used for identifying the host • In practice • deliver packet to, e.g., Host IdentityPatrik • mobile host new IP address; changed locator, same identity Room 123 Call Patrik @ hotel

  6. Why HIP? • HIP provides a combination of useful features: • Identifier-locator split • Security • Mobility • IPv4 and IPv6 interoperability • Multi-homing

  7. Why HIP? • They are (separately) available elsewhere but…. • IP addresses no longer work for identifying hosts • IPsec is hard to configure • Mobile IP is large and complex • Mobile IPv4 and IPv6 do not work together • No simple solutions for multi-access / multi-homing

  8. What is the Host Identity Protocol • Architectural change to the TCP/IP stack • A new layer between IP and transport • New namespace of Host Identities (HI) • HI = public key • HI presented as hash values • IPv6: Host Identity Tag (HIT), 128 bits • IPv4: Local Scope Identifier (LSI), 32 bits • Connections established between HIs

  9. Host ID Host Identity What is the Host Identity Protocol Process • The new Host Identity layer < , port> IP addr Host ID Transport • Sockets bound to HIs • IPv6: HIT • IPv4: LSI • The Host Identity Layertranslates HIs to IP addressess and vice versa IP address IP layer Link layer

  10. v4/v6 bridge Multi-homing Mobility The layering in detail Transport Layer End-to-end, HIT IP layer IPsec HIP Fragmentation Forwarding Hop-by-hop, IP address Link Layer

  11. Host identity Host identity HIP – a new waist for TCP/IP • Interoperability between IPv4 and IPv6 • IPv6 checksum, HITs as IP addresses v4 app v6 app v4 app v6 app TCPv4 TCPv6 TCPv4 TCPv6 HIT IP IPv4 IPv6 IPv4 IPv6 Link layer Link layer

  12. Host Identity ProtocolHIP packets • I1, R1, I2, R2 – Base exchange • UPDATE – change connection parameters • Rekeying (e.g. SA lifetime expires) • Setting up additional SAs • Change in locators • Deleting SAs • CLOSE, CLOSE_ACK – closing a HIP association • NOTIFY – Notification messages

  13. Host Identity ProtocolHIP packets • Packets consist of a HEADER and zero or more parameters • HIP header: 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Next Header | Payload Len | Type | VER. | RES. | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Controls | Checksum | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Sender's Host Identity Tag (HIT) | | | | | | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Receiver's Host Identity Tag (HIT) | | | | | | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | / HIP Parameters / / / | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

  14. Host Identity ProtocolParameters • Parameters are coded in Type-Length-Value format • For different purposes: • Puzzle – solution • Diffie-Hellman • Transforms • Signatures • HMACs • ...

  15. The HIP Base exchange • 4-way handshake • Creates a HIP association • Authentication of hosts • Negotiates security parameters • Diffie-Hellman • Establishes ESP security associations • Algorithms • Keys • Opportunistic mode if responder’s identity unknown • Use only destination IP address in initialization, learn HI

  16. The HIP Base exchangeDNS query – resolving the responder’s locator DNS Initiator Internet DNS query: ”Responder” DNS response: HI, IP address Responder

  17. The HIP Base exchangeI1 packet - initialization DNS Initiator Internet I1: Initialization, ”Hello, I’m here. I want to talk HIP!” Responder

  18. The HIP Base exchangeI1 packet • The HIP Initiator packet • Contains only HIP header • Opportunistic mode: Responder’s HIT unknown Header: Packet Type = 1 SRC HIT = Initiator's HIT DST HIT = Responder's HIT, or NULL

  19. The HIP Base exchangeR1 packet - Challenge DNS Initiator Internet R1: Challenge: ”Solve this puzzle” Puzzle ESP SA initialization D-H initialization HIResponder Responder

  20. The HIP Base exchangeR1 packet • 0 1 2 3 • 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 • +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ • | Type | Length | • +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ • | Reserved, 4 bytes | • +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ • | R1 generation counter, 8 bytes | • | | • +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ • 64 bits • Current generation of valid puzzles • Incremented periodically by sender • Header • Parameters [ R1_COUNTER, ] PUZZLE, DIFFIE_HELLMAN, HIP_TRANSFORM, ESP_TRANSFORM, HOST_ID, [ ECHO_REQUEST, ] HIP_SIGNATURE_2 [, ECHO_REQUEST ]

  21. The HIP Base exchangeR1 packet • 0 1 2 3 • 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 • +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ • | Type | Length | • +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ • | K, 1 byte | Lifetime | Opaque, 2 bytes | • +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ • | Random #I, 8 bytes | • | | • +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ • Random #I (64 bits) • Initiator solves #J • K lowest bits of the hash must be • zero • Header • Parameters [ R1_COUNTER, ] PUZZLE, DIFFIE_HELLMAN, HIP_TRANSFORM, ESP_TRANSFORM, HOST_ID, [ ECHO_REQUEST, ] HIP_SIGNATURE_2 [, ECHO_REQUEST ]

  22. The HIP Base exchangeR1 packet • 0 1 2 3 • 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 • +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ • | Type | Length | • +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ • | Group ID | Public value / • +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ • / | padding | • +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ • Group ID • 384-bit group 1 • OAKLEY well known group 1 2 • 1536-bit MODP group 3 • 3072-bit MODP group 4 • 6144-bit MODP group 5 • 8192-bit MODP group 6 • Public value is the Diffie-Hellman • public key generated by the sender • Initiator can calculate the shared secret • Header • Parameters [ R1_COUNTER, ] PUZZLE, DIFFIE_HELLMAN, HIP_TRANSFORM, ESP_TRANSFORM, HOST_ID, [ ECHO_REQUEST, ] HIP_SIGNATURE_2 [, ECHO_REQUEST ]

  23. The HIP Base exchangeR1 packet • 0 1 2 3 • 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 • +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ • | Type | Length | • +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ • | Transform-ID #1 | Transform-ID #2 | • +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ • | Transform-ID #n | Padding | • +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ • Proposed HIP transforms • Initiator selects one of them • Defined: • AES-CBC with HMAC-SHA1 1 • 3DES-CBC with HMAC-SHA1 2 • 3DES-CBC with HMAC-MD5 3 • BLOWFISH-CBC with HMAC-SHA1 4 • NULL-ENCRYPT with HMAC-SHA1 5 • NULL-ENCRYPT with HMAC-MD5 6 • Header • Parameters [ R1_COUNTER, ] PUZZLE, DIFFIE_HELLMAN, HIP_TRANSFORM, ESP_TRANSFORM, HOST_ID, [ ECHO_REQUEST, ] HIP_SIGNATURE_2 [, ECHO_REQUEST ]

  24. The HIP Base exchangeR1 packet • 0 1 2 3 • 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 • +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ • | Type | Length | • +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ • | Reserved |E| Suite-ID #1 | • +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ • | Suite-ID #2 | Suite-ID #3 | • +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ • | Suite-ID #n | Padding | • +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ • Proposed ESP transforms • Initiator selects one of them • Defined: • AES-CBC with HMAC-SHA1 1 • 3DES-CBC with HMAC-SHA1 2 • 3DES-CBC with HMAC-MD5 3 • BLOWFISH-CBC with HMAC-SHA1 4 • NULL-ENCRYPT with HMAC-SHA1 5 • NULL-ENCRYPT with HMAC-MD5 6 • Header • Parameters [ R1_COUNTER, ] PUZZLE, DIFFIE_HELLMAN, HIP_TRANSFORM, ESP_TRANSFORM, HOST_ID, [ ECHO_REQUEST, ] HIP_SIGNATURE_2 [, ECHO_REQUEST ]

  25. The HIP Base exchangeR1 packet • 0 1 2 3 • 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 • +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ • | Type | Length | • +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ • | HI Length |DI-type| DI Length | • +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ • | Host Identity / • +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ • / | Domain Identifier / • +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ • / | Padding | • +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ • Responder’s HI (public key) • At the moment: DSA or RSA • Domain Identifier • FQDN or NAI (login@FQDN) • Header • Parameters [ R1_COUNTER, ] PUZZLE, DIFFIE_HELLMAN, HIP_TRANSFORM, ESP_TRANSFORM, HOST_ID, [ ECHO_REQUEST, ] HIP_SIGNATURE_2 [, ECHO_REQUEST ]

  26. The HIP Base exchangeR1 packet • 0 1 2 3 • 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 • +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ • | Type | Length | • +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ • | Opaque data (variable length) | • +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ • Opaque data: must be echoed back • May be covered by signature • Header • Parameters [ R1_COUNTER, ] PUZZLE, DIFFIE_HELLMAN, HIP_TRANSFORM, ESP_TRANSFORM, HOST_ID, [ ECHO_REQUEST, ] HIP_SIGNATURE_2 [, ECHO_REQUEST ]

  27. The HIP Base exchangeR1 packet • 0 1 2 3 • 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 • +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ • | Type | Length | • +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ • | SIG alg | Signature / • +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ • / | Padding | • +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ • Signature calculated over the HIP • packet, excluding • Initiator’s HIT • checksum field • PUZZLE: opaque and #I • Any TLV after the signature TLV • Header • Parameters [ R1_COUNTER, ] PUZZLE, DIFFIE_HELLMAN, HIP_TRANSFORM, ESP_TRANSFORM, HOST_ID, [ ECHO_REQUEST, ] HIP_SIGNATURE_2 [, ECHO_REQUEST ]

  28. The HIP Base exchangeI2 packet - puzzle solution DNS Initiator • Solve puzzle • Generate keying material • Select ESP SPI Internet I2: Challenge response Puzzle solution D-H parameters HIInitiator SPIInitiator Responder

  29. The HIP Base exchangeI2 packet • Header • Parameters ESP_INFO, [ R1_COUNTER, ] SOLUTION, DIFFIE_HELLMAN, HIP_TRANSFORM, ESP_TRANSFORM, ENCRYPTED{HOST_ID}, [ ECHO_RESPONSE, ] HMAC, HIP_SIGNATURE_2 • 0 1 2 3 • 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 • +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ • | Type | Length | • +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ • | Reserved | Keymat Index | • +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ • | Old SPI | • +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ • | New SPI | • +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ • Keymat Index: tells the point from • where keys are drawn from the keying • material (zero in base exchange) • Old SPI (zero in base exchange) • New SPI; Initiator’s ESP SPI

  30. The HIP Base exchangeI2 packet • Header • Parameters ESP_INFO, [ R1_COUNTER, ] SOLUTION, DIFFIE_HELLMAN, HIP_TRANSFORM, ESP_TRANSFORM, ENCRYPTED{HOST_ID}, [ ECHO_RESPONSE, ] HMAC, HIP_SIGNATURE_2 • 0 1 2 3 • 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 • +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ • | Type | Length | • +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ • | Reserved, 4 bytes | • +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ • | R1 generation counter, 8 bytes | • | | • +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ - R1_COUNTER may be echoed back if it was in the received R1 packet

  31. The HIP Base exchangeI2 packet • Header • Parameters ESP_INFO, [ R1_COUNTER, ] SOLUTION, DIFFIE_HELLMAN, HIP_TRANSFORM, ESP_TRANSFORM, ENCRYPTED{HOST_ID}, [ ECHO_RESPONSE, ] HMAC, HIP_SIGNATURE_2 • 0 1 2 3 • 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 • +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ • | Type | Length | • +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ • | K, 1 byte | Reserved | Opaque, 2 bytes | • +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ • | Random #I, 8 bytes | • | | • +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ • | Puzzle solution #J, 8 bytes | • | | • +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ • #J: Calculated solution to the puzzle • SHA-1(I,HIT-I,HIT-R,J) • K lowest order bits must be zero

  32. The HIP Base exchangeI2 packet • Header • Parameters ESP_INFO, [ R1_COUNTER, ] SOLUTION, DIFFIE_HELLMAN, HIP_TRANSFORM, ESP_TRANSFORM, ENCRYPTED{HOST_ID}, [ ECHO_RESPONSE, ] HMAC, HIP_SIGNATURE_2 • 0 1 2 3 • 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 • +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ • | Type | Length | • +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ • | Group ID | Public value / • +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ • / | padding | • +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ • Initiator’s public D-H key value • Responder can calculate the shared secret

  33. The HIP Base exchangeI2 packet • Header • Parameters ESP_INFO, [ R1_COUNTER, ] SOLUTION, DIFFIE_HELLMAN, HIP_TRANSFORM, ESP_TRANSFORM, ENCRYPTED{HOST_ID}, [ ECHO_RESPONSE, ] HMAC, HIP_SIGNATURE_2 • 0 1 2 3 • 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 • +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ • | Type | Length | • +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ • | Transform-ID #1 | Padding | • +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ • Initiator’s selection for HIP crypto • functions • One of the proposed in R1

  34. The HIP Base exchangeI2 packet • Header • Parameters ESP_INFO, [ R1_COUNTER, ] SOLUTION, DIFFIE_HELLMAN, HIP_TRANSFORM, ESP_TRANSFORM, ENCRYPTED{HOST_ID}, [ ECHO_RESPONSE, ] HMAC, HIP_SIGNATURE_2 • 0 1 2 3 • 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 • +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ • | Type | Length | • +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ • | Reserved |E| Suite-ID #1 | • +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ • Initiator’s selection for ESP crypto • functions • One of the proposed in R1

  35. The HIP Base exchangeI2 packet • Header • Parameters ESP_INFO, [ R1_COUNTER, ] SOLUTION, DIFFIE_HELLMAN, HIP_TRANSFORM, ESP_TRANSFORM, ENCRYPTED{HOST_ID}, [ ECHO_RESPONSE, ] HMAC, HIP_SIGNATURE_2 • 0 1 2 3 • 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 • +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ • | Type | Length | • +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ • | Reserved | • +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ • | IV / • / / • / +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ • +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ / • / Encrypted data / • / / • / +-------------------------------+ • / | Padding | • +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ • Encrypted Initiator’s HI • HOST_ID TLV in ”Encrypted data” • field

  36. The HIP Base exchangeI2 packet • Header • Parameters ESP_INFO, [ R1_COUNTER, ] SOLUTION, DIFFIE_HELLMAN, HIP_TRANSFORM, ESP_TRANSFORM, ENCRYPTED{HOST_ID}, [ ECHO_RESPONSE, ] HMAC, HIP_SIGNATURE_2 • 0 1 2 3 • 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 • +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ • | Type | Length | • +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ • | Opaque data (variable length) | • +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ • If ECHO_REQUEST was present in R1, it must be echoed in a response

  37. The HIP Base exchangeI2 packet • Header • Parameters ESP_INFO, [ R1_COUNTER, ] SOLUTION, DIFFIE_HELLMAN, HIP_TRANSFORM, ESP_TRANSFORM, ENCRYPTED{HOST_ID}, [ ECHO_RESPONSE, ] HMAC, HIP_SIGNATURE_2 • 0 1 2 3 • 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 • +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ • | Type | Length | • +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ • | | • | HMAC | • | | • | | • | | • +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ • HMAC is calculated over the HIP • packet, excluding • checksum (zeroed) • TLVs following HMAC

  38. The HIP Base exchangeI2 packet • 0 1 2 3 • 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 • +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ • | Type | Length | • +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ • | SIG alg | Signature / • +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ • / | Padding | • +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ • Signature calculated over the HIP • packet, excluding • Initiator’s HIT • checksum field • PUZZLE: opaque and #I • Any TLV after the signature TLV • Header • Parameters ESP_INFO, [ R1_COUNTER, ] SOLUTION, DIFFIE_HELLMAN, HIP_TRANSFORM, ESP_TRANSFORM, ENCRYPTED{HOST_ID}, [ ECHO_RESPONSE, ] HMAC, HIP_SIGNATURE_2

  39. The HIP Base exchangeR2 packet - finalizing connection setup DNS Initiator Internet R2: Connection setup finalization SPIResponder • Verify puzzle • Generate keying material • Select ESP SPI Responder

  40. The HIP Base exchangeR2 packet • Header • Parameters ESP_INFO, HMAC_2, HIP_SIGNATURE • 0 1 2 3 • 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 • +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ • | Type | Length | • +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ • | Reserved | Keymat Index | • +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ • | Old SPI | • +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ • | New SPI | • +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ • Keymat index: tells the point where • keys are drawn from the keying • material (zero in Base exchange) • Old SPI (zero in Base exchange) • New SPI; Responder’s ESP SPI

  41. The HIP Base exchangeR2 packet • Header • Parameters ESP_INFO, HMAC_2, HIP_SIGNATURE • 0 1 2 3 • 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 • +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ • | Type | Length | • +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ • | | • | HMAC | • | | • | | • | | • +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ • HMAC over the HIP packet plus an • additional senders HOST_ID, • and excluding • checksum (zeroed) • TLVs following HMAC_2

  42. The HIP Base exchangeR2 packet • Header • Parameters ESP_INFO, HMAC_2, HIP_SIGNATURE • 0 1 2 3 • 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 • +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ • | Type | Length | • +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ • | SIG alg | Signature / • +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ • / | Padding | • +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ • signature over the HIP packet, • excluding • checksum (zeroed) • Any TLVs following the signature

  43. The HIP Base exchange DNS Initiator Internet ESP Security Association Responder

  44. R2 [HITI, HITR, authenticator] I1 HITI, HITR or NULL R1 HITI, [HITR, puzzle, DHR, HIR] I2 [HITI, HITR, solution, DHI, {HII}] User data messages ESP protected TCP/UDP, no explicit HIP header The HIP Base exchange protocol Initiator Responder solve puzzle verify, authenticate

  45. Security in HIP • The Host Identity is a public key • Prove the ownership using private key • Used for host authentication and setting up HIP association • Traffic protected with IPsec Encapsulating Security Payload (ESP) • draft-ietf-hip-esp-06 • New IPSec mode, BEET • ESP SA establishment during HIP base exchange • ESP SAs bound to HITs

  46. BEET • A Bound End-to-End Tunnel (BEET) mode for ESP • draft-nikander-esp-beet-mode-07 • BEET mode augments the existing ESP tunnel and transport modes. • end-to-end tunnels • purpose is to provide limited tunnel mode semantics without the overhead • IP addresses seen by the applications and the IP addresses used on the wire are distinct from each other • BEET mode is intended to support new uses of ESP • e.g. mobility and multi-address multi-homing

  47. BEET packet processing • In the regular transport mode the IPheader is kept intact. • In the regular tunnel mode an outer IP headeris created on output and discarded on input. • In the BEET mode the IPheader is replaced with another one on both input and output • BEET in OSs • Linux: work in progress, target 2.6.25 • FreeBSD: work in progress, target FreeBSD 7

  48. BEET packet format BEFORE APPLYING ESP ------------------------------------------ | | ext hdrs | | | | inner IP hdr | if present | TCP | Data | ------------------------------------------ AFTER APPLYING ESP, OUTER v6 ADDRESSES -------------------------------------------------------------- | outer | new ext | | dest | | | ESP | ESP | | IP hdr | hdrs. | ESP | opts.| TCP | Data | Trailer | ICV | -------------------------------------------------------------- |<---- encryption ---->| |<------- integrity ------>| AFTER APPLYING ESP, OUTER v4 ADDRESSES ---------------------------------------------------- | outer | | dest | | | ESP | ESP | | IP hdr | ESP | opts.| TCP | Data | Trailer | ICV | ---------------------------------------------------- |<------- encryption -------->| |<----------- integrity ----------->|

  49. Mobility in HIP • Connections bound to constant Host Identities (HIs) • Mobile host new locator (IP address) same connection endpoint (HI) • Connections don’t break • Peer host informed of new locator (IP addr.) • Mobility between IPv4 and IPv6 is supported

  50. Location update message: ”Hi, I’ve moved to over here” MN HIP associationestablished HIP updateLocation update Internet Can also be used for re-keying,with or without mobility CN

More Related