Re: proposed IPSEC changes/extensions
Ran Atkinson <rja@cisco.com> Wed, 30 October 1996 23:23 UTC
Received: from cnri by ietf.org id aa13069; 30 Oct 96 18:23 EST
Received: from neptune.hq.tis.com by CNRI.Reston.VA.US id aa24465; 30 Oct 96 18:23 EST
Received: from neptune.tis.com by neptune.TIS.COM id aa08903; 30 Oct 96 17:43 EST
Date: Wed, 30 Oct 1996 14:21:27 -0800
From: Ran Atkinson <rja@cisco.com>
Message-Id: <199610302221.OAA03485@cornpuffs.cisco.com>
To: ipsec@tis.com
Subject: Re: proposed IPSEC changes/extensions
In-Reply-To: <9610301530.AA22586@secpwr.watson.ibm.com>
Organization: cisco Systems
Sender: ipsec-approval@neptune.tis.com
Precedence: bulk
In article <9610301530.AA22586@secpwr.watson.ibm.com> Pau-Chen wrote: [ASIDE: Pau-Chen, it would be most helpful in improving readability of your email if you would not have lines longer than ~70 characters when you send it out. :-] % My model is the policy will tell which (kind of) SA to use. So the 1st % search is done through the policy to determine which (knid of) SA, if any, % should be used. Then we go through the existing SA's to see if an SA meeting % the policy requirements exists. If one exists, then we can just uses it. If % not, one can be created. The policy will carry the notions of wildcard, % address range, protocols, port ranges, etc.(God knows what.). (Of course, a % simple mechanism is invented to define a "kind of" SA.) This is not unlike the NRL implementation, which was described in a USENIX paper last January and is freely available to all. For background, recall that the NRL code is based on 4.4 BSD and hence uses mbufs. OUTBOUND PROCESSING: ip_output() calls ipsec_output_policy() for the outbound datagram. ipsec_output_policy() decides whether IPsec is required or not and what kind of IPsec is needed (if needed). Then ipsec_output_policy() calls the Key Engine to obtain either an existing SA that conforms to policy or to have the Key Engine obtain an appropriate SA. ipsec_output_policy() has 3 possible return values to ip_output() when IPsec is needed: -- IPsec is needed and the SA data is provided in the return. -- IPsec is needed, but the SAs are not yet available. -- IPsec is needed, but the SA is not obtainable at all. In case 1, the packet goes through IPsec output processing and is sent out the interface. In case 2, the outbound packet is temporarily queued until the SAs get created by key management. In case 3, the packet is discarded and an appropriate counter is incremented. Note that none of this NRL code is specific to any particular KM protocol. Anything that can fit on PF_KEY will work just fine. Note also that ipv6_output() should be substituted for ip_output() throughout the above when IPv6 is used instead of IPv4. INPUT PROCESSING: At ip_input() time _after_ reassembly, IPsec input processing is performed if IPsec is present in the packet. If IPsec input processing completes successfully, appropriate flags are set in the incoming mbuf header. Then system policy can be applied to the incoming mbuf chain, discarding the chain if policy dictates. Further upper-layer processing occurs next. Finally, socket-specific application policy is applied and the packet is either discarded or passed to the application. NRL Source code is available within the US for examination at http://web.mit.edu/network/isakmp/ Outside the US, try looking at: ftp://ftp.ripe.net/ipv6/nrl/IPv6_domestic.tar.gz IMHO the "identity" values of an IPsec Security Association can be very important when implementing support for various policies. Examples of widely used identities are USER_FQDN (e.g. "user@full-domain"), FQDN (e.g. "fully-qualified-domain-name), CONNECTION-ID (e.g. IP address, upper-layer protocol, port number), IP ADDR (an IP address), and IP ADDR RANGE (range of IP addresses). Ran rja@cisco.com
- proposed IPSEC changes/extensions Stephen Kent
- Re: proposed IPSEC changes/extensions David Wagner
- Re: proposed IPSEC changes/extensions Ran Atkinson
- Re: proposed IPSEC changes/extensions Hilarie Orman
- Re: proposed IPSEC changes/extensions pau
- Re: proposed IPSEC changes/extensions Michael Sabin
- Re: proposed IPSEC changes/extensions Stephen Kent
- Re: proposed IPSEC changes/extensions pau
- Re: proposed IPSEC changes/extensions Bill Sommerfeld
- Re: proposed IPSEC changes/extensions pau
- Re: proposed IPSEC changes/extensions Santeri Paavolainen
- Re: proposed IPSEC changes/extensions Rodney Thayer
- Re: proposed IPSEC changes/extensions Santeri Paavolainen
- Re: proposed IPSEC changes/extensions Stephen Kent
- Re: proposed IPSEC changes/extensions David Wagner
- Re: proposed IPSEC changes/extensions Steven Bellovin
- Re: proposed IPSEC changes/extensions Michael Sabin
- Re: proposed IPSEC changes/extensions John Gilmore