Network Working Group P. Srisuresh
INTERNET-DRAFT Jasmine Networks
Expires by July 24, 2001 J. Vilhuber
Cisco Systems
January 2001
IKE extensions to support Dynamic Policies
<draft-srisuresh-ike-policy-extensions-00.txt>
Status of this Memo
This document is an Internet-Draft and is in full conformance with
all provisions of Section 10 of RFC2026. Internet-Drafts are
working documents of the Internet Engineering Task Force (IETF),
its areas, and its working groups. Note that other groups may also
distribute working documents as Internet-Drafts.
Internet-Drafts are draft documents valid for a maximum of six
months and may be updated, replaced, or obsoleted by other
documents at any time. It is inappropriate to use Internet-
Drafts as reference material or to cite them other than as
"work in progress."
To view the entire list of current Internet-Drafts, please check
the "1id-abstracts.txt" listing contained in the Internet-Drafts
Shadow Directories on ftp.is.co.za (Africa), ftp.nordu.net
(Northern Europe), ftp.nis.garr.it (Southern Europe), munnari.oz.au
(Pacific Rim), ftp.ietf.org (US East Coast), or ftp.isi.edu
(US West Coast).
The list of current Internet-Drafts can be accessed at
http://www.ietf.org/ietf/1id-abstracts.txt
The list of Internet-Draft Shadow Directories can be accessed at
http://www.ietf.org/shadow.html.
Abstract
As IPsec is widely deployed, there is increasing need to negotiate
security keys using IKE at application level granularity.
IKE, as currently proposed, has restrictions in negotiating keys
for applications with bundled sessions and complex policies.
The draft identifies the problem with IKE and suggests extensions
to make IKE application and policy friendly. The proposed solution
suggests extensions to the conceptual operation of IPsec as well as
IKE, but does not require changes to existing IKE payloads. The
document introduces a new policy payload that complements existing
IKE payloads and suggests replacing ID payload with the Policy
payload, in Quick mode.
Srisuresh & Vilhuber [Page 1]
Internet-Draft Policy extensions to IKE January 2001
1. Introduction and Overview
IP packets may be subject to IPsec security enforcement by peering
end nodes or enroute by intermediate systems. The enforcement is
policy based. As IPsec is widely deployed, there is increasing
desire to make these policies granular to a specific application
detail. The focus of the document is facilitating enforcement of
application driven dynamic policies across peering nodes, using
IKE.
IKE protocol uses part of Oakley and part of SKEME ([SKEME] in
conjunction with ISAKMP ([ISAKMP])to obtain authenticated keying
material for use with ISAKMP, and for IPsec DOI security
associations such as AH ([AH]) and ESP (ESP]. As such, any
changes and extension to IKE ([IKE]) could potentially mandate
changes to every one of the sub-components. This document
identifies extensions required of each of the sub-components to
bring about the appropriate policy extensions to IKE Phase-II
based security associations for IPsec DOI ([IPSEC-DOI).
2.0 Terms and Technical Definitions
Keywords "MUST", "MUST NOT", "REQUIRED", "SHOULD", "SHOULD NOT"
and "MAY" that appear in this document are to be interpreted as
described in [STD-KEYWORDS]. Further, the security terms
defined in [IPSEC] and keywords used in [IKE] have been used
profusely throughout the document. As such, prior understanding
of [IPSEC] and [IKE] are a requirement for reviewing this
document.
2.1 Technical Definitions
2.1.1 Security Gateway
A security gateway refers to an intermediate system that
implements IPSec protocols. For example, a router or a
firewall implementing IPSec is a security gateway.
2.1.2 Security Domain
A set of communicating entities and resources that share a
common security policy enforced at one or more enforcement
agents or at an individual host. The definition of security
domain applies to networks protected by security gateways as
well as to single hosts, since a host may be the enforcer of
its own policies. Security domains could exist inside other
security domains.
Srisuresh & Vilhuber [Page 2]
Internet-Draft Policy extensions to IKE January 2001
2.1.3 Application Level Gateway (ALG)
Application Level Gateway (ALG) is a trusted entity that has
application specific knowledge it can use to determine dynamic
security policy requirements for the application. ALG on an
IPsec enforcement node may use the information to update the
SPD of IPsec and to interface with IKE (directly or
indirectly) to enforce the policy extensions with peering
Ipsec node.
2.1.4 Dynamic Policy Agent (DPA)
Dynamic Policy Agent (DPA) is an entity that interfaces with
ALGs, IKE and IPsec-SPD to keep the applications, Ipsec security
engine and policy enforcement with peers in sync. Specifically,
the Dynamic Policy Agent interfaces with the ALGs to gather
the dynamic policy requirements of applications, exchanges the
information with peering security node and updates the
IPsec-SPD to enforce security.
2.1.5 Policy Payload
Policy Payload is a new ISAKMP payload introduced to facilitate
flexible definition of policy description and dynamic updates to
the original description.
3. Problem with dynamic policy enforcement in IPsec and IKE
We will consider the following diagram to illustrate IPsec policy
enforcement, as packets traverse the enforcement devices. For the
purposes of this document, a security gateway is an intermediate
system implementing IPSec.
An application on Host-A that needed to communicate with Host-B,
in a different administrative domain would typically cross a
minimum of two policy enforcement devices - A security gateway
local to the administrative domain and another local to the peer
node's administrative domain. Figure 3.1 below is meant to be an
example and does not cover the various configurations in which
administrative domains may be connected to each other. In
practice, there may be multiple security gateways. However,
the diagram does provide the necessary base to address policy
specific issues. Further, even though we selected a security
Gateway to illustrate, the discussion is applicable to both
transport and tunnel odes of IPsec, equally well.
Srisuresh & Vilhuber [Page 3]
Internet-Draft Policy extensions to IKE January 2001
________________
( )
+--+ ( Administrative )
|__|------( Boundary - B )
/____\ ( )
Host-B (________________)
|
+--------------------+
| Security Gateway |
| - GW-B |
+--------------------+
__________ |
( ) |
+-----------------+ ( ) +-----------------+
| Border Router-A |--( Internet )--| Border Router-B |
+-----------------+ ( ) +-----------------+
| (__________)
|
+--------------------+
| Security Gateway |
| - GW-A |
+--------------------+
|
----------------
( )
+--+ ( Administrative )
|__|------( Boundary - A )
/____\ ( )
Host-A (________________)
Figure 3.1: Security Gateways connected across the Internet.
A security gateway operating in tunnel mode may encrypt and/or
authenticate a packet and forward it through a tunnel destined to
peer security gateway. The peer gateway in turn, de-tunnels the IP
packet from the tunnel and reverse-transforms it to extract the
original packet. It then forwards it to the destination, as
specified in the original packet [Ref 8]. There is however a
pitfall for certain type of applications.
An application comprised of a session bundle may work only
partially. For example, a security Gateway cannot create an SA
(one or more) that can secure all session of the FTP application
(i.e., FTP control and data sessions), unless your policy is to
preserve all of TCP. Here is why. You could have a policy that
preserves FTP control session by selecting src or Dest TCP port
Srisuresh & Vilhuber [Page 4]
Internet-Draft Policy extensions to IKE January 2001
to be 21. But, the data session parameters set by, say PASV
response, will decide the port number used by the ensuing data
session. Only the end-nodes know the data session port numbers.
Dynamically selected ports in a session cannot not be known to
IKE or IPsec, unless IKE and Ipsec have application specific
knowledge to examine the payload. Even as applications can
notify the security Gateway of the data sessions, IKE does not
know to add or delete sessions to reuse of the same key (as
used for FTP control session) for securing data sessions.
3. Suggested changes to Security policy enforcement in IPsec and IKE
The solution we are about to propose requires changes in the way
the IPsec SPD rules are defined and accessed. A Dynamic policy
Agent (DPA) is introduced to interface with IPsec-SPD to keep
the SPD in sync with the requirements of end-to-end applications.
Further, additional changes in IKE are proposed to communicate
dynamic policy updates securely across peering security nodes.
3.1 Dynamic Policy Agent (DPA)
A new entity, labeled Dynamic Policy Agent (DPA) is envisioned to
coordinate exchange of dynamic policy updates between peering IKE
nodes, followed by an update of the same in the local IPsec SPD.
DPA uses Policy-ID to co-ordinate these policy updates.
3.2 Suggested changes to IPsec SPD
Application specific IPsec policy rules in SPD must be allowed to
be associated with an application specific ALGs. Each policy rule
in the SPD will also have a 4-octet long Policy-ID to uniquely
identify the policy within the node. These Policy rules, along
with their policy ID are exchanged with peering IKE nodes.
Specification of an ALG for a policy rule is optional. When an
ALG is specified in the policy, the ALG will become a part of
the IPsec data path. The ALGs are trusted entities by the
application and will have application specific knowledge to
determine the dynamic policy requirements of an application.
These ALGs interface with dynamic policy agent (DPA) to notify
policy updates to the existing policy rules in IPsec SPD.
Changes to IPsec data path at the enforcement points may be
captured as follows in the following two diagrams.
Srisuresh & Vilhuber [Page 5]
Internet-Draft Policy extensions to IKE January 2001
+---------+ +---------+ +------------+
| | | | | |
Outgoing |Does the | Yes |Redirect | SA |Perform | Forward
-------->|pkt match|---->|pkt to |----->|Outbound |------->
Packet |Outbound | |ALG, if | Keys |Security | Packet
|Policy? | |specified| |(ex:encrypt)|
+---------+ +---------+ +------------+
Figure 3.2.1. Operation of IPsec on outgoing packets.
+------------+ +---------+ +---------+
Incoming |Perform | Clear |Does the | Yes |Redirect | Send to
-------->|Inbound |------>|pkt match|---->|pkt to |------->
Packet |Security | Pkt |Inbound | |ALG, if | Appl.
|(ex:Decrypt)| |Policy? | |specified|
+------------+ +---------+ +---------+
Figure 3.2.2. Operation of IPsec on Incoming packets
3.3. Suggested changes to IKE
A new type of Policy payload is added to the list of ISAKMP
payloads. This payload is to be used only in IKE phase II and is
designed to be flexible, so as not to be constrained to the form of
a single rule. Each new policy will have a policy-ID associated with
it. A policy may be defined using one or more policy payloads. The
payload allows for the specification of a range of addresses and
transport ports, while also permitting selective exclusion.
3.3.1. Provide Dynamic Policy Updates(Add/Delete) to Enforcement Points
For IPsec, the end nodes should be able to influence policies
associated with an IPsec SA dynamically. This is independent of
whether the SA was between the peers directly or between 2 gateway
nodes in between. An end node should be able to add/delete policies
dynamically from an SA. Without this, application specific policies
are hard to enforce on an SA.
For instance, take a policy that mandates security for FTP
application between 2 hosts. Once a SA is established for securing
the control session of the FTP application, the end nodes ought to
be able to (a) add/delete newer policies (describing the parameters
of ensuing FTP data sessions) to the existing FTP control session SA,
or (b) create newer SAs dynamically confirming to dynamically
Srisuresh & Vilhuber [Page 6]
Internet-Draft Policy extensions to IKE January 2001
generated policy parameters.
Exchange of Dynamic policy updates in IKE phase II is made possible
with the notion of DPA. The DPA interacts with IKE locally to either
notify IKE to initiate a policy update or to confirm the validity of
a proposed update coming in from a remote node. IKE peers exchange
new policies and the policy updates securely in quick mode. The
policy updates may involve addition or subtractions to the original
policy rule. Each policy rule is uniquely identified by a Policy-ID.
Once the policy updates are securely exchanged, the DPA updates the
local SPD to reflect the changes associated with the Policy-ID.
The following diagram summarizes the role of DPA in conjunction with
IKE in dynamic policy update process.
+------+ +--------+ +---------+
| | Dynamic | | Exchange Policy | |
+-| ALGn |<------->| Dynamic|<----------------->| IKE |
| +------+ Policy | Policy | Updates (based on | Process |
+-| ...| Updates | Agent | Policy-ID handle) | |
| +------+ +--------+ +---------+
| ALG1 | | ^ |
+------+ Reflect dynamic | | |
policy updates | Security | |Negotiated
exchanged with | Policies & | |parameters,
peering IKE node| SA proposals | |SA Keys
v | v
+---------+ +---------+
| |------------------>| |
| IPsec- | | IPsec |
| SPD | | Process |
| | | |
+---------+ +---------+
Figure 3.3.3. DPA coordinating between ALGs, IKE and IPsec-SPD.
4. New Policy Payload for use in IKE phase 2
IKE uses ID payload in phase I to authenticate the peers. The ID
payload is further extended in phase II to exchange the IPsec
policies. While this reduces the number of payload types to work
with, it became a stretch to extend the ID payload to describe
IPsec policies in IKE phase 2. Policy specification using ID
payload has been rather inflexible and prone to errors. So, a
new policy payload is introduced for a policy definition that
is more flexible and less error prone.
Srisuresh & Vilhuber [Page 7]
Internet-Draft Policy extensions to IKE January 2001
4.1 IPsec Policy Payload format
The Policy Payload contains DOI-specific data used to exchange
Policy information. This information is used for exchanging the
Policies of communicating peers for which keys need to be
generated. Figure 4.1 shows the format of the Policy Payload.
The Policy Payload fields are defined as follows:
o Next Payload (1 octet) - Identifier for the payload type of the
next payload in the message. If the current payload is the last
in the message, then this field will be 0.
o Policy OpCode (1 octet) - Specifies the type of Operation
to be performed. This can be one of POLICY-OP-CREATE (0x00),
POLICY-OP-ADD (0x01) or POLICY-OP-DEL (0x02).
o Payload Length (2 octets) - Length in octets of the current
payload, including the generic payload header.
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 Payload ! Policy Opcode ! Payload Length !
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
! Policy IDentifier !
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-!
! !
~ Policy Data ~
! !
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 4.1. Policy Payload Format
o DOI Specific Policy-ID (4 octets) - Contains DOI specific
Identification data.
o Policy Data (variable length) - Contains Policy information.
Specific details for the IETF IP Security DOI Policy Data
may be specified as follows.
The payload type for the Policy Payload may be assigned a value of
fourteen (14), so as not to conflict with the definitions for
recognized ISAKMP payload types, as defined in [ISAKMP] sections
4.3 through 4.14.
Srisuresh & Vilhuber [Page 8]
Internet-Draft Policy extensions to IKE January 2001
4.2 IPsec Policy Payload Content format
The Policy Payload, used in IKE phase II, is used to ensure that a
certain security association is applied only to those packets that
confirm to the policy exchanged in conjunction with the SA
negotiation. The policy payload of the initiator SHOULD be used
by the responder to determine the correct host system security policy
requirement for the association. For example, a host might choose to
require authentication and integrity without confidentiality (AH)
from a certain set of IP addresses and full authentication with
confidentiality (ESP) from another range of IP addresses. The
policy Payload provides information that can be used by the
responder to make this decision.
The following diagram illustrates the content of the Policy Payload.
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
!P!RSRVD! IPvx !SA-Type!DA-Type!SP-type|DP-type! Protocol ID !
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
~ Src-address-Data ~
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
~ Src-Port-Data ~
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
~ Dest-address-Data ~
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
~ Dest-Port-Data ~
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
~ Optional Policy Extensions in Tag-Length-Value format ~
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 4.2. IPsec DOI Policy Data content Format
The Policy Payload fields are defined as follows:
o P (1 bit) - Polarity of the Policy. The policy must be
interpreted as outbound policy from the policy senders
view. When set to 0, the position of source and destination
fields for Address and port are interpreted as described
in the figure. When set to 1, the position of the source
and destination fields must be reversed.
o RSRVD (4 bits) - Must be set to 0.
o IPvx (4 bits) - Value describing the IP address Length.
A value of 4 refers to IPv4 and an IP address length of
4 octets. A value of 6 refers to IPv6 and an IP address
Srisuresh & Vilhuber [Page 9]
Internet-Draft Policy extensions to IKE January 2001
length of 16 octets.
o SA-Type (4 bits) - Value describing the format of
information found in the Src-Address-Data field.
o DA-Type (4 bits) - Value describing the format of
information found in the Dest-Address-Data field.
o SP-Type (4 bits) - Value describing the format of
information found in the Src-Port-Data field.
o DP-Type (4 bits) - Value describing the format of
information found in the Dest-Port-Data field.
o Protocol ID (1 octet) - Value specifying an associated IP
protocol ID (e.g. UDP/TCP). A value of zero means that the
Protocol ID field should be ignored.
o Src-address-Data, Src-Port-Data, Dest-address-Data,
Dest-Port-Data (variable length) - Value, as indicated by
the fields IPvx, SA-Type, SP-type, DA-Type and DP-type.
4.2.1 SA-Type and DA-Type Values
The following table lists the assigned values for the Address type
fields found in the Policy data.
Address Type Value
------------ -----
RESERVED 0
POLICY_ADDR_SINGLE 1
POLICY_ADDR_RANGE 2
POLICY_ADDR_SUBNET 3
POLICY_ADDR_LIST_SINGLE 9
POLICY_ADDR_LIST_RANGE 10
POLICY_ADDR_LIST_SUBNET 11
The POLICY_ADDR_SINGLE type specifies a single IP address in the
Address-Data field. This will be four (4) octets, when IPvx is
set to 4. This will be sixteen (16) octets, when IPvx is set to 6.
The POLICY_ADDR_RANGE type specifies a range of IP addresses,
represented by two four or sixteen octet values, based on whether
IPvx is set to 4 or 6. The first value is the beginning IP address
(inclusive) and the second value is the ending IP address
(inclusive). Note that all addresses falling between the two
specified addresses are considered to be within the list.
Srisuresh & Vilhuber [Page 10]
Internet-Draft Policy extensions to IKE January 2001
The POLICY_ADDR_SUBNET type specifies two IP addresses,
each represented by two four or sixteen octet values, based on
whether IPvx is set to 4 or 6. The first value is an IP address.
The second is an IP network mask. Note that ones (1s) in the
network mask indicate that the corresponding bit in the address
is fixed, while zeros (0s) indicate a "wildcard" bit.
The POLICY_ADDR_LIST_SINGLE type specifies a variable number of
individual IP addresses in the Address-Data field. The
Address-Data field will have the addresses listed as follows.
<Field size> <----List of individual IP Addresses------>
<- 2 bytes -> <- Multiples of 4(IPv4) or 16(IPv6) bytes->
The <Field size> is the sum total of octets required to specify
the address list and the 2 bytes required by the <Field Size>
field. The
The POLICY_ADDR_LIST_RANGE type specifies a variable number of
individual IP address ranges in the Address-Data field. The
Address-Data field will have the address ranges listed as
follows.
<Field size> <------List of IP Address ranges---------->
<- 2 bytes -> <- Multiples of 8(IPv4) or 32(IPv6) bytes->
The <Field size> is the sum total of octets required to specify
the address ranges and the 2 bytes required by the <Field Size>
field.
The POLICY_ADDR_LIST_SUBNET type specifies a variable number of
individual IP address subnets in the Address-Data field. The
Address-Data field will have the address subnets listed as
follows.
<Field size> <------List of IP Address subnets--------->
<- 2 bytes -> <- Multiples of 8(IPv4) or 32(IPv6) bytes->
The <Field size> is the sum total of octets required to specify
the address subnets and the 2 bytes required by the <Field Size>
field.
4.2.2 SP-Type and DP-Type Values
The following table lists the assigned values for the Port type
fields(SP-Type, DP-Type) found in the Policy data.
Srisuresh & Vilhuber [Page 11]
Internet-Draft Policy extensions to IKE January 2001
Type Value
------------ -----
POLICY_PORT_IGNORE 0
POLICY_PORT_SINGLE 1
POLICY_PORT_RANGE 2
POLICY_PORT_LIST_SINGLE 9
POLICY_PORT_LIST_RANGE 10
POLCY_PORT_IGNORE type indicates that the associated Port-Data
field should be ignored.
POLICY_PORT_SINGLE type would specify a 2 octet port-data field.
POLICY_PORT_RANGE type would specify a pair of 2-octet port
numbers in Port-Data field. The first value is the beginning port
number (inclusive) and the second value is the ending port
number (inclusive).
POLICY_PORT_LIST_SINGLE would specify a variable number of bytes
in the Port-Data field as follows. The Port-date filed will have
the variable count of port numbers listed as follows:
<Field size> <List of Protocol specific Ports>
<- 2 bytes -> <----- Multiples of 2 bytes ---->
The <Field size> is the sum total of octets required to specify
the individual ports and the 2 bytes required by the <Field Size>
field.
POLICY_PORT_LIST_RANGE would specify a variable number of bytes
in the Port-Data field as follows. The Port-date filed will have
the variable count of port ranges listed as follows:
<Field size> <List of Protocol specifc Port ranges>
<- 2 bytes -> <------ Multiples of 4 bytes -------->
The <Field size> is the sum total of octets required to specify
the individual ports and the 2 bytes required by the <Field Size>
field.
4.2.3. Optional policy extensions
Optionally, additional fields (over and above 5 tuples for address,
protocol and port numbers) may also be specified as part of the
Policy specification in Tag-Length-Value format. Existense of
additional fields in policy specification may be surmised when
the Policy payload length (refer section 4.2.1) exceeds the
five-tuple policy data.
Srisuresh & Vilhuber [Page 12]
Internet-Draft Policy extensions to IKE January 2001
For example, the Diffserv Field in IP header may be specified as
as an additional field as follows,
<Tag: 0x80 (DS-field-list)>
<Length: 6 bytes>
<Values: AF1, AF2, AF3, AF4>
The <Tag> will be specified in a single octet. <Length> field is the
sum total of bytes necessary to list the DS-fields allowed and the
two bytes necessary to specify the <Tag> and <Length> fields.
5. Modifications to IKE Phase 2 - Quick Mode
IKE Quick Mode is used to derive keying material for IPsec policies
commonly shared between the IKE peers. The information exchanged in
Quick Mode is protected by the ISAKMP SA (Phase 1).
The message ID in the ISAKMP header identifies the Quick Mode in
progress. Quick Mode is essentially a SA negotiation, IPsec policy
communication and an exchange of nonces that provides replay
protection.
The Policies for which SAs negotiated in Quick Mode are implicitly
assumed to be between the IP addresses of the ISAKMP peers, unless
policy operations are explicitly specified in Quick Mode.
With the new approach, Policy based payloads are exchanged in place
of IDci and IDcr. If the client policies are not acceptable to the
Quick Mode responder, a Notify payload with Notify Message Type
INVALID-POLICY-INFORMATION SHOULD be sent. A value of thirty one
(31) may be assigned to INVALID-POLICY-INFORMATION, so as not to
conflict with the error codes listed in 3.14.1 of [ISAKMP].
Srisuresh & Vilhuber [Page 13]
Internet-Draft Policy extensions to IKE January 2001
5.1. New Policy Exchange in Quick mode
Policy based Quick Mode may be described as follows for brand new
key generation.
Initiator Responder
----------- -----------
HDR*, HASH(1), SA, Ni
[, KE ] (, POLi)* -->
<-- HDR*, HASH(2), SA, Nr
[, KE ] (, POLr)*
HDR*, HASH(3) -->
Where:
HASH(1) is the prf over the message id (M-ID) from the ISAKMP header
concatenated with the entire message that follows the hash, including
all payload headers, but excluding any padding added for encryption.
HASH(2) is identical to HASH(1) except the initiator's nonce-- Ni,
minus the payload header-- is added after M-ID but before the
complete message. The addition of the nonce to HASH(2) is for a
liveliness proof. HASH(3)-- for liveliness-- is the prf over the
value zero represented as a single octet, followed by a concatenation
of the message id and the two nonces-- the initiator's followed by
the responder's-- minus the payload header. In other words, the
hashes for the above exchange are:
HASH(1) = prf(SKEYID_a, M-ID | SA | Ni [ | KE ] | POLi* )
HASH(2) = prf(SKEYID_a, M-ID | Ni_b | SA | Nr [ | KE ] [ | POLr* )
HASH(3) = prf(SKEYID_a, 0 | M-ID | Ni_b | Nr_b)
HASH, SA, and Nonce payloads must be sent in that order.
A single SA negotiation results in two security associations-- one
inbound and one outbound. Different SPIs for each SA (one chosen by
the initiator, the other by the responder) guarantee a different key
for each direction. The SPI chosen by the destination of the SA is
used to derive KEYMAT for that SA.
Multiple SAs and keys can be negotiated with one exchange such that
you have two keys each way for both SAs. New policy payload must be
accompanied by a SA negotiation payload.
5.2. Dynamic Policy update in Quick Mode
For exchanges that do not involve Key generation, but simply policy
updates, Updates to Policies previously negotiated may be performed
as follows. These policy updates do not mandate SA negotiation
Srisuresh & Vilhuber [Page 14]
Internet-Draft Policy extensions to IKE January 2001
payload. However, a single SA negotiation payload is optional.
Initiator Responder
----------- -----------
HDR*, HASH(1), [SA, ] Ni
, POLi (, POLi)* -->
<-- HDR*, HASH(2), [SA, ] Nr
, POLr (, POLr)*
HDR*, HASH(3) -->
Hashes for the above exchange are:
HASH(1) = prf(SKEYID_a, M-ID | [ SA |] Ni | POLi* )
HASH(2) = prf(SKEYID_a, M-ID | Ni_b | [SA |] Nr | POLr* )
HASH(3) = prf(SKEYID_a, 0 | M-ID | Ni_b | Nr_b)
When no SA is specified, the policy updates made in POLi/POLr simply
update the corresponding policy rule in SPD. Hence, the SA
associated with the POLICY-ID will be reused for the updated policy.
However, when SA payload is present, the new SA negotiation results
in two new security associations-- one inbound and one outbound for
the Policy Updates. These new SA keys will be used to secure the
policy updates exchanged.
6. Security Considerations
The document suggests a new Policy-ID payload and modifications
to IKE protocol. This however, does not jeopardize the security
provided by the base IKE protocol. Additions and deletions
pertaining to a Policy ID are communicated in a secure way
so as not to jeopardize the ability of the application to run.
7. IANA Considerations
This document proposes a new ISAKMP payload type and a new Notify
error code.
7.1. ISAKMP Policy Payload type
The ISAKMP payload types are discussed in sections 3.4 through 3.15
of [ISAKMP]. And, Section 4.6 of [IPSEC-DOI] lists the ISAKMP
payloads whose data representations are dependent on the applicable
DOI. The new ISAKMP payload type discussed in section 4.1 of this
document will be an addition to the payload types discussed in
[ISAKMP] as well as [IPSEC_DOI]. However, the ISAKMP payload types
are not listed as items to be managed by IANA in [ISAKMP]. Assuming
this to have been an omission, we propose that the new payload type
Srisuresh & Vilhuber [Page 15]
Internet-Draft Policy extensions to IKE January 2001
specified in this document be considered by IANA as an addition to
the ISAKMP payload types listed in sections 3.4 through 3.15 in
[ISAKMP].
Within the context of this new policy payload type, three sub-fields
are defined that may be assigned newer values in the future.
The following sub-section explains the criteria to be used by the
IANA to assign additional numbers as values to these sub-fields,
described in section 4.1, 4.2.1 and 4.2.2
7.1.1. Policy Opcode field
Values 0-2 of the Policy-Opcode field are defined in Section 4.1.
the remaining values [3-255] are available for assignment by the
IANA with IETF Consensus [IANA].
7.1.2. SA-Type and DA-Type fields
SA-Type and DA-type fields are 4-bits long. Values 0-3, 9-11 for
these fields are defined in Section 4.2.1. The remaining values
4-8, 12-15 are available for assignment by the IANA with
IETF Consensus [IANA]. It is recommended that values 4 through 7
be allowed to specify fixed length types and the values 8 and
12 through 15 be alowed to specify variable length types.
7.1.3. SP-Type and DP-Type fields
SP-Type and DP-Type fields are 4-bits long. Values 0-2, 9-10 for
these fields are defined in Section 4.2.2. The remaining values
3-8, 11-15 are available for assignment by the IANA with IETF
Consensus [IANA]. It is recommended that values 3 through 7
be allowed to specify fixed length types and the values 8 and
11 through 15 be alowed to specify variable length types.
7.2. ISAKMP Notify payload error message type
Section 3.14.1 of [ISAKMP] lists the Notification error codes in the
range of 1-30. Error codes 31-8191 are reserved for future use and
error codes 8192-16383 are set aside for private use. Of these,
error code 8192 is reserved by the IPSEC-DOI in section 4.6.3 of
[IPSEC-DOI]. We define a new INVALID-POLICY-INFORMATION error code
31 in section 5.0.
Once again, the error codes lised for use within the Notify
payload in [ISAKMP] are not listed as items to be managed by IANA
in [ISAKMP]. Assuming this to have been an omission, we propose
that the error code specified in this document be considered by
IANA as an addition to the Notify payload error codes listed in
Srisuresh & Vilhuber [Page 16]
Internet-Draft Policy extensions to IKE January 2001
3.14.1 of [ISAKMP].
REFERENCES
[STD-KEYWORDS] Bradner, S., "Key Words for use in RFCs to indicate
Requirement Levels", RFC2119, March 1997.
[IPSEC] S. Kent, R. Atkinson, "Security Architecture for the
Internet Protocol", RFC 2401.
[AH] S. Kent, R. Atkinson, "IP Authentication Header", RFC 2402
[ESP] S. Kent, R. Atkinson, "IP Encapsulating Security Payload
(ESP)", RFC 2406.
[IPSEC-DOI] D. Piper, "The Internet IP Security Domain of
Interpretation for ISAKMP", RFC 2407.
[SKEME] Krawczyk, H., "SKEME: A Versatile Secure Key Exchange
Mechanism for Internet", from IEEE Proceedings of the 1996
Symposium on Network and Distributed Systems Security.
[ISAKMP] Maughhan, D., Schertler, M., Schneider, M., and J. Turner,
"Internet Security Association and Key Management Protocol
(ISAKMP)", RFC 2408, November 1998.
[OAKLEY] Orman, H., "The Oakley Key Determination Protocol",
RFC 2412.
[CRYPTO] Schneier, B., "Applied Cryptography, Protocols,
Algorithms, and Source Code in C", 2nd edition.
[IKE] Harkins, D., Carrel, D.,"The Internet Key Exchange (IKE)",
RFC 2409.
[IANA] Narten, T. and H. Alvestrand, "Guidelines for writing an
IANA Considerations Section in RFCs", BCP 26, RFC 2434,
October 1998.
Authors' Address:
Pyda Srisuresh
Jasmine Networks, Inc.
3061 Zanker Road, Suite B
San Jose, CA 95134
U.S.A.
Srisuresh & Vilhuber [Page 17]
Internet-Draft Policy extensions to IKE January 2001
Voice: (408) 895-5032
EMail: srisuresh@yahoo.com
Jan Vilhuber
Cisco Systems
170 West Tasman Drive
San Jose, CA 95134
U.S.A.
E-mail: vilhuber@cisco.com
Srisuresh & Vilhuber [Page 18]