Hi everyone,

I am a developer from HIPL project and working on HIPv2 related functionalities under Miika's instruction. We have found some gaps in the transition process from HIPv1 to HIPv2. My question is: do we expect a smooth transition from HIPv1 to HIPv2 or we simply want to wipe out HIPv1?

No matter what the answer it will be, we think it is still worthwhile to describe those gaps we met, because we might face similar transition problems again when HIPv3 comes out. Below is the description:

In order to provide a smooth transition from HIPv1 to HIPv2, we start to prototype a dual version support HIPL, which aims to handle HIPv1 and HIPv2 association at the same time. If the version of the inbound I1 is one, the HIPL host continues a HIPv1 BEX; If the version of the inbound I1 is two, the host goes with a HIPv2 BEX.

However the new OGA bits in HIPv2 adds new gaps to this approach. The introduction of OGA bits changes the presentation of a key in HIPv1 HIT and HIPv2 HIT and a host cannot tell a HIT contains OGA bits or not solely (although there is a very low possibility that v1 HIT and v2 HIT for a same key are identical). Therefore a dual-version host is clueless on which HIP version it should use when a peer HIT is presented. For a dual-version responder, it also needs to check two kinds of new invalid requests: 1) a HIPv1 initiation to a HIT with OGA. 2) a HIPv2 initiation to a HIT without OGA.

The interoperability table below shows all possible conditions:

V1 initiator:   a host only capable of triggering HIPv1 BEX
V1 responder:   a host only capable of handling HIPv1 messages
V2 initiator:   a host only capable of triggering HIPv2 BEX
V2 responder:   a host only capable of handling HIPv2 messages
Dual initiator: a host capable of triggering both HIPv1 and HIPv2 BEX
Dual responder: a host capable of handling both HIPv1 and HIPv2 messages
HITv1:          a HIT without OGA bits owned by the host
HIT_OGA:        a HIT with OGA bits owned by the host

-------------------------------------------------------------------------------
1) V1 responder 2) V2 responder 3) Dual responder HITv1 HIT_OGA HITv1 & HIT_OGA

a) V1 initiator          v1                 no                 v1*
   HITv1

b) V2 initiator          no                 v2                 v2*
   HIT_OGA

c) Dual initiator        v1*                v2*                v1/v2*
   HITv1 & HIT_OGA
-------------------------------------------------------------------------------
                       Interoperability table

All gap cases are marked by an asterisk in the cell:

 * Cell c2, A dual-version initiator and a HIPv2-only responder: the
   initiator gets a HIT with OGA bits since the responder only support
   HIPv2. But the initiator gets stuck here because it doesn't know if
   it should choose  HIPv1 BEX or HIPv2 BEX.
 * Cell c1, similar to Cell c2.
 * Cell b3, A HIPv2-only initiator and a dual-version responder: the
   initiator knows 2 HITs (with and without OGA bits) of the peer. The
   initiator can only start a HIPv2 BEX, but it doesn't know which HIT
   contains OGA.
 * Cell a3, similar to Cell b3.
 * Cell c3, A dual-version initiator and a dual-version responder: the
   initiator has 2 HITs (with and without OGA bits) of the peer and it
   can start both HIPv1 and HIPv2 BEX, but either one requires to find
   a corresponding HIT.

To facilitate the transition process, a dual-version host needs a mechanism to detect the presence of OGA bits in a HIT, which seems to be impossible to achieve now. Perhaps changing the current HIT prefix (2001:0010::0/28) to another one can be a solution?

In addition to the issue above, the HIP DNS extension faces similar challenges since it doesn't distinguish the types of HIT (with or without OGA) in its record, while IPv4 and IPv6 does ( A record and AAAA record).

Miika also proposes a potential security vulnerability on the communication of two dual-version host with DNS. If DNS supports returning both kinds of HIT to a dual-version host, an attacker can remove the record containing OGA bits, which forces two dual-version hosts establish a HIPv1 association and use weaker ciphers.


Miika and I have been actively discussing on these issues. Hope we can also get advice from all experts here. Thanks a lot.

Best regards,
Xin Gu

_______________________________________________
Hipsec mailing list
[email protected]
https://www.ietf.org/mailman/listinfo/hipsec

Reply via email to