8.2.5.IPSec-ISAKMP

advertisement
ISAKMP
●
RFC 2408
●
Internet Security Association & Key Management Protocol
●
Protocol
●
–
Establish, modify, and delete SAs
–
Negotiate crypto keys
Procedures
–
Authentication of peers
–
Threat mitigation
ISAKMP
●
●
●
●
Defines procedures and packet formats to deal with
SAs and keys
Provides a framework for secure communication on
the Internet
Does not specify algorithms, formats, or protocols
ISAKMP is a framework in which a specific secure
communication definition can be implemented
ISAKMP
●
Security Associations
●
Authentication
●
Public Key Cryptography
●
Protection
●
DoS – Anti-Clogging
●
Hijacking a connection
●
Man in the middle attacks
ISAKMP
Terminology
●
DOI – Domain Of Interpretation: defines payload
formats, exchange types, naming conventions
IISAKMP – Phases
●
●
Phase 1: Two entities agree on how to protect
further negotiation traffic. They negotiate an
ISAKMP SA for an authenticated and secure
channel
Phase 2:The phase 1 secure channel is used to
negotiate security services for IPSec.
ISAKMP
Header
Initiator Cookie
Responder Cookie
Next Payload
Major
Version
Minor
Version
Exchange Type
Message ID
Length
Flags
Header Fields
●
Initiator Cookie (8 octets) – Cookie of entity that initiated SA
establishment, notification or deletion.
●
Responder Cookie (8 octets) – Cookie of the responder
●
Next Payload (1 octet) – Type of first payload
●
Major/Minor Version (4 bits each) – Version of ISAKMP in use
●
Exchange Type (1 octet) – Type of exchange being used
●
Flags (1 octet) – More stinking flags, encrypt, commit
authentication only
●
Message ID (4 octets) – Unique ID to identify things in Phase 2
●
Length (4 octets) – Length of total message (headers + payloads)
Next Payload Types
Next Payload Type
Value
Next Payload Type
Value
NONE
0
Hash
8
SA
1
Signature
9
Proposal
2
Nonce
10
Transform
3
Notification
11
Key Exchange
4
Delete
12
Identification
5
Vendor ID
13
Certificate
6
Reserved
14 – 127
Cert Request
7
Private Use
128 - 255
Exchange Types
Exchange Type
Value
Exchange Type
Value
NONE
0
ISAKMP Future Use
6 - 31
Base
1
DOI Specific Use
32 – 127
Id Protection
2
Private Use
128 - 255
Auth Only
3
Aggressive
4
Informational
5
Generic Payload Header
Next Payload
Reserved
Payload Length
Payload Data
SA Payload
Next Payload
Reserved
Payload Length
Domain of Interpretation (DOI)
~
Situation
DOI (4 octets) – Identifies the DOI under which this negotiation is taking place. A
value of 0 (zero) during Phase 1 specifies a Generic ISAKMP SA
which can be used for any protocol during Phase 2.
Situation A DOI-specific field that identifies the situation under which this
negotiation is taking place.
Proposal Payload
Next Payload
Proposal No.
Reserved
Proposal ID
Payload Length
SPI Size
SPI (variable)
No. of Transforms
Proposal Payload
Payload Length (2 octets) – Length is octets of the entire Proposal
payload including the generic payload header, the Proposal payload,
and all Transform payloads associated with this proposal.
●
Proposal No. - Identifies the Proposal number for the current
payload.
●
Proposal ID – Specifies the protocol identifier such as IPSEC ESP,
IPSEC AH, OSPF, TLS, etc.
●
SPI Size – Length in octets of the SPI as defined by the Protocol ID.
●
No. of Transforms – Specifies the number of transforms for the
proposal.
●
SPI (variable) – The sending entity's SPI.
●
Transform Payload
Next Payload
Transform No.
~
Reserved
Payload Length
Transform ID
Reserved2
SA Attributes
Transform Payload
Payload Length (2 octets) – Length is octets of the current payload,
including the generic payload header, Transform values, and all SA
attributes
●
Transform No. - Identifies the Transform number for the current
payload.
●
Transform ID – Specifies the Transform identifier fmor the protocol
within the current proposal.
●
Reserved 2 (2 octets) – Set to zero.
●
SA Attributes (Variable length) – SA attributes should be
represented using the Data Attributes format.
●
Key Exchange Payload
Next Payload
~
Reserved
Payload Length
Key Exchange Data
Key Exchange Data (variable length) – Data required to generate a session key.
This data is specified by the DOI and the associated Key
Exchange algorithm.
Certificate Payload
Next Payload
Reserved
Payload Length
Cert Encoding
Key Exchange Data
~
Cert Encoding (1 octet) – Indicates the type of certificate contained in the
Certificate field.
Certificate Types
Certificate Type
Value
Certificate Type
Value
NONE
0
Kerberos Token
6
PKCS #7
1
Cert Revoc List
7
PGP Certificate
2
Authority Revoc List
8
DNS Signed Key
3
SPKI Cert.
9
X.509 Cert - Signature
4
X.509 Cert – Attribute
10
Reserved
11 - 255
X.509 Cert – Key Exchange
5
Other Payloads
Next Payload
~
Hash Data
Next Payload
Payload Length
Reserved
~
Signature Data
Next Payload
~
Payload Length
Reserved
Payload Length
Reserved
Nonce Data
Notification Payload
Next Payload
Payload Length
Reserved
DOI
Protocol ID
SPI Size
Notify Message Type
~
SPI
~
Notification Data
Notify Messages
Errors
INVALID-PAYLOAD-TYPE
DOI-NOT-SUPPORTED
SITUATION-NOT-SUPPORTED
INVALID-COOKIE
INVALID-MAJOR-VERSION
INVALID-MINOR-VERSION
INVALID-EXCHANGE-TYPE
INVALID-FLAGS
INVALID-MESSAGE-ID
INVALID-PROTOCOL-ID
INVALID-SPI
INVALID-TRANSFORM-ID
ATTRIBUTES-NOT-SUPPORTED
NO-PROPOSAL-CHOSEN
BAD-PROPOSAL-SYNTAX
Value
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Errors
PAYLOAD-MALFORMED
INVALID-KEY-INFORMATION
INVALID-ID-INFORMATION
INVALID-CERT-ENCODING
INVALID-CERTIFICATE
CERT-TYPE-UNSUPPORTED
INVALID-CERT-AUTHORITY
INVALID-HASH-INFORMATION
AUTHENTICATION-FAILED
INVALID-SIGNATURE
ADDRESS-NOTIFICATION
NOTIFY-SA-LIFETIME
CERTIFICATE-UNAVAILABLE
UNSUPPORTED-EXCHANGE-TYPE
UNEQUAL-PAYLOAD-LENGTHS
RESERVED (Future Use)
Private Use
Value
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31 - 8191
8192 – 16383
ISAKMP Message Construction
Initiator Cookie
Responder Cookie
NP = KE
Major
Version
Minor
Version
Exchange Type
Flags
Message ID
Total Message Length
NP = Nonce
KE Payload Length
Reserved
Key Exchange Data
NP = 0
Reserved
Nonce Payload Length
Nonce Data
Proposal Syntax
Proposal #
Transform #
Transform #
Proposal #
Transform #
Proposals with the same Proposal
number are taken as a logical AND.
Proposals with different numbers are
taken as a logical OR.
Different Transform within a proposal
are taken as a logical OR.
Proposal Example
Proposal 1: AH
Transform 1: HMAC-SHA
Transform 2: HMAC-MD5
Proposal 2: ESP
Transform 1: 3DES with HMAC-SHA
Transform 2: 3DES with HMAC-MD5
Transform 3: AES with HMAC-SHA-256
Proposal 3: ESP
Transform 1: 3DES with HMAC-SHA
Proposal 4: PCP
Transform 1: LZS
Exchange Types
Exchange Type
Value
Exchange Type
Value
NONE
0
ISAKMP Future Use
6 - 31
Base
1
DOI Specific Use
32 – 127
Id Protection
2
Private Use
128 - 255
Auth Only
3
Aggressive
4
Informational
5
Base Exchange
Initiator
Direction
Header, SA, Nonce
negotiation
=>
<=
Responder
Note
Begin ISAKMP-SA
HDR, SA, Nonce
Basic SA agreed
upon
Header, KE, Idii, Auth
=>
Key generated by responder
Initiator Ident verified
<=
HDR, KE, Idir, Auth
Responder Ident verified
Initiator key generated, SA
est.
Download