Protocol type for HIP -- was -- Re: [Hipsec] Moving the base spec forward
pekka.nikander@nomadiclab.com (Pekka Nikander) Thu, 16 September 2004 02:33 UTC
From: pekka.nikander@nomadiclab.com
Date: Thu, 16 Sep 2004 02:33:00 +0000
Subject: Protocol type for HIP -- was -- Re: [Hipsec] Moving the base spec forward
In-Reply-To: <4147619C.8050602@acm.org>
References: <20040911232318.87825.qmail@web81205.mail.yahoo.com> <23ADD52E-057C-11D9-A8F6-000D9331AFB0@nomadiclab.com> <4145F2A3.5030204@acm.org> <A7D27E86-0641-11D9-82B1-000D9331AFB0@nomadiclab.com> <4147619C.8050602@acm.org>
Message-ID: <7401317C-07B3-11D9-8BA1-000D9331AFB0@nomadiclab.com>
X-Date: Thu Sep 16 02:33:00 2004
>> No, we are not achieving [demultiplexing] through SPIs. We are >> achieving [that]=A0through using the HITs in the socket and the >> pseudo-header, as >> Tom already wrote. >> >> There rest, like using SPIs as a shorthand, is details, and not >> important from the highest architectural-level point of view. > > I understand this point. And I totally agree with you that keeping > the SPI (or even HIT, if someone so wanted) in every packet is the > right architecture. What I don't agree with is that the protocol > that does the binding between the current IP address and a > corresponding HIT should also be an IP protocol type. Ok. I understand your stance, but disagree. A perhaps major source of my disagreement is that I don't consider HIP just as a binding management protocol, but as a new, full layer. But let's see... > I guess the difference in opinion is because in my mind, > multiplexing connections and managing bindings are separate > issues (and it might just be my tunnel vision). I don't quite understand what do you mean with that statement. Reading further... > To me the present HIP key-exchange is a connection oriented > protocol, unlike the traditional connectionless model of IP. Ah. But by adding replay protection to IPsec you basically make the whole IP layer to have state, i.e., connection-oriented. Apparently we need to go into fundamentals. For more on my stance on this, see Tuomas Aura and Pekka Nikander, "Stateless connections," in proceedings of International Conference on Information and Communications Security ICICS'97, Beijing, November 1997, pp. 87-97, Lecture Notes in Computer Science 1334, Springer Verlag 1997. Trying to summarize some of the thoughts in that paper, the basic difference between connection-oriented and connection-less protocols is where the state is maintained. The organization of retransmissions is less relevant, as is congestion control. They are different aspects, and almost orthogonal. In a connection-oriented protocol you keep state on both ends. (According to this classification, a bound UDP socket is connection-oriented.) In a connection-less protocol you typically keep state only at the client/initiator/whatever end, or at neither end. In the latter case the state is typically kept at the higher protocol layers. In traditional IP, all state is at upper layers. The only state that IP needs to keep is the routing state. Especially, there is no state associated with a given peer IP address. This all changes with the introduction of IPsec, and especially when you apply replay protection. Then you have to keep state per peer address, including the session keys AND the replay counter. =46rom this point of view, making the HIP control protocol something that is more or less parallel to ICMP is the right choice. (This stance is strengthened with middle-box considerations.) > So I am a little reluctant to mix the key-exchange > (ip-to-hit-binding-management) with the actual packet processing > (which I want to keep connection less). Well, that is not mixed, currently. In effect, you are now arguing that instead of allocating one protocol number, we should allocate two: one for HIP control traffic, and the other one for HIP data traffic. The fact that we are using ESP for the latter _is_ problematic, but currently it is the best we can easily do without allocating yet another protocol number. > Note that the way ESP is designed, is connection less But it is not :-) Already the keys create a kind of peer-to-peer connection, and that is made much stricter and stronger with the introduction of replay-protection counters. > (even though aalmost all key exchanges, even for Multicast, will be > connection oriented running as applications on some transport=20 > protocol). Remember my earlier comment about the relationship between a control protocol and the corresponding payload protocol? I don't want to repeat that. Think about parallels in modern design: - ICMP runs on the top of IP, which it controls. - SIP runs on the top of UDP, which it typically controls. - HTTP control is in-band. - SCTP and TCP control is in-band. - most routing protocols run on the top of IP, which they control Hence, the majority of IP world control protocols seem to run either directly on the top of the protocol that they control, or in-band. The notable exceptions are IKE and some routing protocols. In the routing protocols' case TCP is used for retransmissions. =46rom an architectural point of view, I consider the IKE case especially problematic, as it requires a specific exception to the default IPsec policies in order to allow IKE to get through. Such exceptions make any architecture less beautiful. (Read: I still think that some aspects of IKE stink, even with IKEv2.) In summary, to me it is almost impartial whether the future HIP will be based on a single protocol number, where both the control and data protocols share the same protocol number, or whether we use two protocol numbers. What I am opposing is moving the control protocol to an upper layer, where it does _not_ belong. I slightly favour two protocol numbers, as using two protocol numbers makes it easier to separate control and data traffic at middle boxes. > I would like to keep the connection-less model of IP as it is, > even after introducing the layer 3.5, and to me this means > separating the binding management from the actual packet processing. I don't have anything against separating the control protocol (your binding management) and the data protocol (your packet processing). That is what we effectively do today. What I am opposing is the idea of unnecessarily inserting another protocol between the control protocol and the data protocol. That opposition is purely architectural, as I have written a number of times. Practical matters weight otherwise, and as I have written, if people want to write a HIP-over-UDP draft, I will be in favour of accepting it as a WG item. > I think it's okay to gain experience using the present draft > (i.e., IP as MUST as you want, and UDP as SHOUD/MAY/OPTIONAL-- > pick one). We can always come back during STD track discussion. Agreed other than that if there is UDP, it should be OPTIONAL, or at most SHOULD implement, MAY use, default use being IP. > I guess the implementation viewpoint is just the reflection of > present architecture. I like the present architecture, but I > also like the ideas of HIP. And I want both. :-) You want the benefits but not the drawbacks. :-) How nice. :-) More seriously, for me the new architecture that HIP presents is much more important than the features it gives. >>>>> IKE is implemented on UDP for a good reason. >> >> Out of curiosity, what are those good reasons? > > ... I am just extrapolating what I understand ... Still, it would be nice to explicitly hear what you understand so that I can rip it down and tear in pieces :-) > Another point that Steve Deering made during the IETF plenary > session of August 2001 was to look at Internet Protocols as an > hourglass whose waistline is IP. There is advantage in keeping > that waistline thin (and straight), IMO. I was there. Many people think that it is time to move that waistline on the top of IP (or around IPsec), which is exactly what HIP is doing. (The motivation for moving the waistline up is that we currently have two waists, IPv4 and IPv6.) > My rule of thumb: if its not related to routing, don't put it > near IP (take it of leave it; I'm not going to argue either > way on this. :-) ). The current IP has much more than just routing. IPsec is a main culprit (if not the main culprit) for that. Based on your argument, we should get rid of IPsec and use TLS. The "lower" part of IP, which implements routing, fragmentation and few other things, is fine and dandy. It is the upper, host-specific part of IP which has become bloated and ugly. If I was to blame a single party, I would point to the VPN and IPsec gateway folks in the IPsec WG, and Paul Francis for inventing NAT. But that would most probably be unfair. More seriously, I think that the current situation results from too little direction from the IAB and too little architectural house-keeping from the IESG members. --Pekka
- [Hipsec] Moving the base spec forward Pekka Nikander
- [Hipsec] Re: Moving the base spec forward Gonzalo Camarillo
- [Hipsec] Moving the base spec forward Yogesh Prem Swami
- [Hipsec] Moving the base spec forward Yogesh Prem Swami
- [Hipsec] Moving the base spec forward Pekka Nikander
- [Hipsec] Moving the base spec forward Pekka Nikander
- [Hipsec] Moving the base spec forward Miika Komu
- HIP and IKE -- was -- Re: [Hipsec] Moving the bas… Yogesh Prem Swami
- Protocol type for HIP -- was -- Re: [Hipsec] Movi… Yogesh Prem Swami
- Cookie mechanism -- was -- Re: [Hipsec] Moving th… Yogesh Prem Swami
- Last e-mail in this thread -- was -- Re: [Hipsec]… Yogesh Prem Swami
- HIP and IKE -- was -- Re: [Hipsec] Moving the bas… Pekka Nikander
- Cookie mechanism -- was -- Re: [Hipsec] Moving th… Pekka Nikander
- HIP and IKE -- was -- Re: [Hipsec] Moving the bas… Jari Arkko
- Protocol type for HIP -- was -- Re: [Hipsec] Movi… Pekka Nikander
- Protocol type for HIP -- was -- Re: [Hipsec] Movi… Yogesh Prem Swami
- HIP and IKE -- was -- Re: [Hipsec] Moving the bas… Michael Richardson
- Protocol type for HIP -- was -- Re: [Hipsec] Movi… Pekka Nikander
- HIP and IKE -- was -- Re: [Hipsec] Moving the bas… Pekka Nikander
- HIP and IKE -- was -- Re: [Hipsec] Moving the bas… Yogesh Prem Swami
- HIP and IKE -- was -- Re: [Hipsec] Moving the bas… Michael Richardson
- HIP and IKE -- was -- Re: [Hipsec] Moving the bas… Michael Richardson
- HIP and IKE -- was -- Re: [Hipsec] Moving the bas… Michael Richardson
- HIP and IKE -- was -- Re: [Hipsec] Moving the bas… Michael Richardson
- HIP and IKE -- was -- Re: [Hipsec] Moving the bas… Yogesh Prem Swami
- HIP and IKE -- was -- Re: [Hipsec] Moving the bas… Petri Jokela
- HIP and IKE -- was -- Re: [Hipsec] Moving the bas… Miika Komu
- HIP and IKE -- was -- Re: [Hipsec] Moving the bas… Pekka Nikander
- HIP and IKE -- was -- Re: [Hipsec] Moving the bas… Yogesh Prem Swami
- HIP and IKE -- was -- Re: [Hipsec] Moving the bas… Pekka Nikander
- HIP and IKE -- was -- Re: [Hipsec] Moving the bas… Miika Komu
- HIP and IKE -- was -- Re: [Hipsec] Moving the bas… Miika Komu
- HIP and IKE -- was -- Re: [Hipsec] Moving the bas… Pekka Nikander
- HIP and IKE -- was -- Re: [Hipsec] Moving the bas… Yogesh Prem Swami