IKEv2 Configuration Payload

advertisement
IKEv2
Configuration Payload Integration
http://www.vpnc.org/temp-draft-lebovitz-ipsec-scalable-ikev2cp-00.txt
Full presentation - http://www.employees.org/~ddukes
Darren Dukes, ddukes@cisco.com
Gregory Lebovitz, gregory@netscreen.com
Agenda
•
•
•
•
•
IRAC Configuration Problem
The Configuration Payload
Private Pools
DHCP Assigned Addresses
RADIUS Assigned Addresses
The IRAC Configuration
Problem
• IPsec Remote Access Clients (IRACs) need
to have a private IP address in order to
specify TSi before creating CHILD-SAs.
• How do we assign a unique IP address to
the client before creating CHILD-SAs?
The Configuration Payload
• Allows an IRAC to acquire bootstrapping
configuration within IKEv2 IKE_AUTH exchange
• No extension of the IKE_AUTH exchange or new
exchange (no “phase 1.5”)
• A generic mechanism to pass minimal
bootstrapping parameters for CHILD-SA creation
• May be used with any configuration server, such
as DHCP, RADIUS, LDAP, etc.
IP Address Bootstrapping
• CP(CFG_REQUEST) is sent by an IRAC in
IKE_AUTH to request an IP address from an
IPsec Remote Access Server (IRAS)
• IRAS processes the CP(CFG_REQUEST) and
assigns an address to the IRAC from internal or
external configuration servers
• IRAS sends a CP(CFG_REPLY) to IRAC with
minimal IP address configuration so a CHILD-SA
can establish.
CP and Private Pools
IKE Gtwy
IRAC (IKE-client)
IRAS
IKEv2 Message 1
HDR, SAi1, KEi, Ni
IKEv2 Message 2
HDR, SAr1, KEr, Nr, [CERTREQ]
IKEv2 Message 3
HDR, SK {IDi, [CERT,]
[CERTREQ,] [IDr,] CP(CFG_REQUEST),
SAi2, TSi, TSr}
IKEv2 Message 4
HDR, SK {IDr, [CERT,]
AUTH, CP(CFG_REPLY),
SAr2, TSi, TSr }
CFG_REPLY:
Internal_IP4_ADDR
Internal_IP4_NETMASK
Internal_IP4_DNS
Internal_IP4_NBNS
On-IRAS Pools
• A private pool of addresses may be
configured locally on an IRAS and assigned
to requesting IRACs
• Works for very small deployments
• Won’t scale well for larger deployments.
OFF-IRAS Pools
RADIUS
Database
IRAC (IKE-client)
DHCP
Server
IKE Gateway
IRAS
IRAS proxies the IRAC
CP(CFG_REQUEST) for an IP address
to an external configuration server
Other
Configuration
Server
Must be able to satisfy CP via
DHCP
• DHCP is widely deployed for address
assignment in LANs
• DHCP has many options that may be useful
for an IRAC to retrieve
DHCP Assigned Addresses
• A DHCP server may be used to assign addresses to
the IRAS on behalf of an IRAC
• IRAS is responsible for requesting IP addresses on
a per-IRAC basis from the DHCP server when it
receives a CP(CFG_REQUEST)
• IRAS sends the IP address and other minimal
configuration to the IRAC via a CP(CFG_REPLY)
once an address is retrieved
CP and DHCP
IKE Gtwy
IRAC (IKE-client)
DHCP
Server
IRAS
IKEv2 Message 1
HDR, SAi1, KEi, Ni
IKEv2 Message 2
HDR, SAr1, KEr, Nr, [CERTREQ]
IKEv2 Message 3
Request address
HDR, SK {IDi, [CERT,]
from DHCP
[CERTREQ,] [IDr,] CP(CFG_REQUEST),
Server
SAi2, TSi, TSr}
DHCPDISCOVER
DHCPOFFER
CP and DHCP
IKE Gtwy
IRAC (IKE-client)
DHCP
Server
IRAS
DHCPREQUEST
Convert DHCP
options to CP Attr
IKEv2 Message 4
HDR, SK {IDr, [CERT,]
AUTH, CP(CFG_REPLY),
SAr2, TSi, TSr }
DHCPACK
CFG_REPLY:
Internal_IP4_ADDR
Internal_IP4_NETMASK
Internal_IP4_DNS
Internal_IP4_NBNS
Internal_IP4_DHCP
DHCPINFORM
• Further configuration may be requested
from a DHCP server via the CHILD-SA
IKE Gtwy
IRAC (IKE-client)
DHCP
Server
IRAS
DHCPINFORM
DHCPACK
EAP + CP
Initiator
----------HDR, SAi1, KEi, Ni
Responder
-----------
-->
<--
HDR, SAr1, KEr, Nr, [CERTREQ]
HDR, SK {IDi, [CERTREQ,] [IDr,]
[CP], SAi2, TSi, TSr}
-->
<--
HDR, SK {EAP, [AUTH] }
HDR, SK {IDr, [CERT,] AUTH,
EAP }
-->
<--
HDR, SK {EAP, [AUTH],
[CP], SAr2, TSi, TSr }
MUST be able to satisfy CP
via RADIUS
• Mature as a client configuration mechanism
• Widely implemented
• Predominant client configuration
mechanism in use by ISPs and large
enterprises today
CP w/ RADIUS needs EAP
• RADIUS is very user/pass centric. Needs
them to perform db lookup. RFC 2865:
– SHOULD send User-Name
– MUST send Password (User or CHAP)
• User entry in db contains list of
requirements, and optional attributes.
• RADIUS attributes map to CP attributes
Host Configuration Attributes
• Radius [RFC 2865] defines many attributes.
• Attributes extensible via Vendor Specific
Attributes (VSAs)
• Attributes relative to CP:
Pre-Defined
- IP address
- Netmask
- Session Timeout
VSA
- Prim/Secondary DNS
- Prim/Secondary WINS
* List not exhaustive
Example: ACCEPT
• Accept shown next
• Reject is easy
• Challenge is mutation of Accept, but pretty
close. (see the document for details).
ACCEPT
IKE Gtwy
IRAC (IKE-client)
IRAS
IKEv2 Message 1
HDR, SAi1, KEi, Ni
IKEv2 Message 2
HDR, SAr1, KEr, Nr, [CERTREQ]
IKEv2 Message 3
HDR, SK {IDi, [CERTREQ,]
[IDr,] [CP(CFG_REQUEST)],
SAi2, TSi, TSr}
IKEv2 Message 4
HDR, SK {IDr, [CERT,] AUTH,
EAP }
RADIUS
Database
ACCEPT
IKE Gtwy
IRAC (IKE-client)
IRAS
RADIUS
Database
IKEv2 Message 5
HDR, SK {EAP, [AUTH] }
Parse Usr/Pass
From EAP, Map
To RADIUS attr
RADIUS Access-Request
Usr, Pass
RADIUS Access-Accept
Framed-IP, Framed-Netmask,
VSA(1), …, VSA(n)
Convert RADIUS
Attr to CP Attr
ACCEPT
IKE Gtwy
IRAC (IKE-client)
IRAS
RADIUS
Database
RADIUS
Accounting-Request
START
IKEv2 Message 6
HDR, SK {EAP, [AUTH],
[CP(CFG_REPLY)],
SAr2, TSi, TSr }
CFG_REPLY:
Internal_IPv4_ADDR
Internal_IP4_Netmask
Internal_IP4_DNS
Internal_IP4_NBNS
Upon Deletion
Of IKE/CHILD
SA’s…
RADIUS Accounting-Request
STOP
Release IP
Back to Pool
Advancement
• Become WG document?
• If so, how to proceed?
Volunteers??
• Section for LDAP
• Section for DHCPv6.
Download