| < draft-ietf-ipsec-isakmp-03.txt | draft-ietf-ipsec-isakmp-04.txt > | |||
|---|---|---|---|---|
| IPSEC Working Group Douglas Maughan, Mark Schertler | IPSEC Working Group Douglas Maughan, Mark Schertler | |||
| INTERNET-DRAFT National Security Agency | INTERNET-DRAFT National Security Agency | |||
| draft-ietf-ipsec-isakmp-03.txt, .ps November 21, 1995 | draft-ietf-ipsec-isakmp-04.txt, .ps February 21, 1996 | |||
| Internet Security Association and Key Management Protocol (ISAKMP) | Internet Security Association and Key Management Protocol (ISAKMP) | |||
| Abstract | Abstract | |||
| This memo describes a protocol utilizing security concepts | This memo describes a protocol utilizing security concepts | |||
| necessary for establishing Security Associations (SA) and crypto- | necessary for establishing Security Associations (SA) and crypto- | |||
| graphic keys in an Internet environment. A Security Association | graphic keys in an Internet environment. A Security Association | |||
| protocol that negotiates, establishes, modifies and deletes | protocol that negotiates, establishes, modifies and deletes | |||
| Security Associations and their attributes is required for an | Security Associations and their attributes is required for an | |||
| skipping to change at page 3, line 14 ¶ | skipping to change at page 3, line 14 ¶ | |||
| Contents | Contents | |||
| 1 Introduction 5 | 1 Introduction 5 | |||
| 1.1 Authentication . . . . . . . . . . . . . . . . . . . . . . . . . 6 | 1.1 Authentication . . . . . . . . . . . . . . . . . . . . . . . . . 6 | |||
| 1.1.1Certificate Authorities . . . . . . . . . . . . . . . . . . . 6 | 1.1.1Certificate Authorities . . . . . . . . . . . . . . . . . . . 6 | |||
| 1.1.2Entity Naming . . . . . . . . . . . . . . . . . . . . . . . . 7 | 1.1.2Entity Naming . . . . . . . . . . . . . . . . . . . . . . . . 7 | |||
| 1.1.3ISAKMP Requirements . . . . . . . . . . . . . . . . . . . . . 7 | 1.1.3ISAKMP Requirements . . . . . . . . . . . . . . . . . . . . . 7 | |||
| 1.2 Security Associations and Management . . . . . . . . . . . . . . 8 | 1.2 Security Associations and Management . . . . . . . . . . . . . . 8 | |||
| 1.2.1Security Associations and Registration . . . . . . . . . . . . 8 | 1.2.1Security Associations and Registration . . . . . . . . . . . . 8 | |||
| 1.2.2ISAKMP Requirements . . . . . . . . . . . . . . . . . . . . . 8 | 1.2.2ISAKMP Requirements . . . . . . . . . . . . . . . . . . . . . 9 | |||
| 1.3 Public Key Cryptography . . . . . . . . . . . . . . . . . . . . . 9 | 1.3 Public Key Cryptography . . . . . . . . . . . . . . . . . . . . . 9 | |||
| 1.3.1Key Exchange Properties . . . . . . . . . . . . . . . . . . . 9 | 1.3.1Key Exchange Properties . . . . . . . . . . . . . . . . . . . 9 | |||
| 1.3.2ISAKMP Requirements . . . . . . . . . . . . . . . . . . . . . 11 | 1.3.2ISAKMP Requirements . . . . . . . . . . . . . . . . . . . . . 11 | |||
| 1.4 ISAKMP Protection . . . . . . . . . . . . . . . . . . . . . . . . 11 | 1.4 ISAKMP Protection . . . . . . . . . . . . . . . . . . . . . . . . 11 | |||
| 1.4.1Anti-Clogging (Denial of Service) . . . . . . . . . . . . . . 11 | 1.4.1Anti-Clogging (Denial of Service) . . . . . . . . . . . . . . 11 | |||
| 1.4.2Connection Hijacking . . . . . . . . . . . . . . . . . . . . . 11 | 1.4.2Connection Hijacking . . . . . . . . . . . . . . . . . . . . . 11 | |||
| 1.4.3Man-in-the-Middle Attacks . . . . . . . . . . . . . . . . . . 11 | 1.4.3Man-in-the-Middle Attacks . . . . . . . . . . . . . . . . . . 12 | |||
| 1.5 Multicast Communications . . . . . . . . . . . . . . . . . . . . 12 | 1.5 Multicast Communications . . . . . . . . . . . . . . . . . . . . 12 | |||
| 2 Description of the Protocol 12 | 2 Description of the Protocol 13 | |||
| 2.1 ISAKMP Header Format . . . . . . . . . . . . . . . . . . . . . . 13 | 2.1 ISAKMP Architecture . . . . . . . . . . . . . . . . . . . . . . . 13 | |||
| 2.1.1General Message Processing . . . . . . . . . . . . . . . . . . 15 | 2.2 ISAKMP Packet Exchanges . . . . . . . . . . . . . . . . . . . . . 14 | |||
| 2.2 ISAKMP Packet Exchanges . . . . . . . . . . . . . . . . . . . . . 17 | 2.2.1Base Exchange . . . . . . . . . . . . . . . . . . . . . . . . 14 | |||
| 2.2.1Base Exchange . . . . . . . . . . . . . . . . . . . . . . . . 17 | 2.2.2Identity Protection Exchange . . . . . . . . . . . . . . . . . 14 | |||
| 2.2.2Identity Protection Exchange . . . . . . . . . . . . . . . . . 17 | 2.2.3Authentication Only Exchange . . . . . . . . . . . . . . . . . 15 | |||
| 2.2.3Authentication Only Exchange . . . . . . . . . . . . . . . . . 18 | 2.3 ISAKMP Details . . . . . . . . . . . . . . . . . . . . . . . . . 16 | |||
| 2.3 ISAKMP Details . . . . . . . . . . . . . . . . . . . . . . . . . 19 | 2.3.1Basic ISAKMP Concepts . . . . . . . . . . . . . . . . . . . . 16 | |||
| 2.3.1Security Association Attributes . . . . . . . . . . . . . . . 19 | 2.3.2ISAKMP Header Format . . . . . . . . . . . . . . . . . . . . . 17 | |||
| 2.3.2Transport Protocol . . . . . . . . . . . . . . . . . . . . . . 21 | 2.3.3SPI Usage . . . . . . . . . . . . . . . . . . . . . . . . . . 20 | |||
| 2.3.3RESERVED Fields . . . . . . . . . . . . . . . . . . . . . . . 21 | 2.3.4General Message Processing . . . . . . . . . . . . . . . . . . 21 | |||
| 2.3.4Anti-Clogging Token (``Cookie'') Creation . . . . . . . . . . 21 | 2.3.5Transport Protocol . . . . . . . . . . . . . . . . . . . . . . 23 | |||
| 2.3.5SA Flags Field . . . . . . . . . . . . . . . . . . . . . . . . 22 | 2.3.6RESERVED Fields . . . . . . . . . . . . . . . . . . . . . . . 23 | |||
| 3 Security Association Establishment 22 | 2.3.7Anti-Clogging Token (``Cookie'') Creation . . . . . . . . . . 23 | |||
| 3.1 Security Association Initialization . . . . . . . . . . . . . . . 22 | 3 Security Association Establishment 25 | |||
| 3.1.1SA Initialization Procedures . . . . . . . . . . . . . . . . . 24 | 3.1 Security Association Initialization . . . . . . . . . . . . . . . 25 | |||
| 3.2 Authentication and Key Exchange . . . . . . . . . . . . . . . . . 25 | 3.1.1SA Initialization Procedures . . . . . . . . . . . . . . . . . 26 | |||
| 3.2.1Authentication Payload Format . . . . . . . . . . . . . . . . 26 | 3.2 Authentication and Key Exchange . . . . . . . . . . . . . . . . . 28 | |||
| 3.2.2Key Exchange Payload Format . . . . . . . . . . . . . . . . . 28 | 3.2.1Authentication Payload Format . . . . . . . . . . . . . . . . 28 | |||
| 3.2.3Authentication and Key Exchange Procedures . . . . . . . . . . 29 | 3.2.2Key Exchange Payload Format . . . . . . . . . . . . . . . . . 29 | |||
| 3.3 Security Association Negotiation . . . . . . . . . . . . . . . . 30 | 3.2.3Authentication and Key Exchange Procedures . . . . . . . . . . 30 | |||
| 3.3.1SA Negotiation Procedures . . . . . . . . . . . . . . . . . . 31 | 3.3 Security Association Negotiation . . . . . . . . . . . . . . . . 32 | |||
| 3.4 SA Negotiation Conclusion . . . . . . . . . . . . . . . . . . . . 34 | 3.3.1SA Negotiation Procedures . . . . . . . . . . . . . . . . . . 32 | |||
| 3.4.1SA Negotiation Conclusion Procedures . . . . . . . . . . . . . 34 | ||||
| 4 Security Association Modification 36 | ||||
| 4.1 Modification Procedures . . . . . . . . . . . . . . . . . . . . . 36 | ||||
| 5 Security Association Deletion 36 | ||||
| 5.1 Deletion Procedures . . . . . . . . . . . . . . . . . . . . . . . 37 | ||||
| 6 Notification Message 39 | 4 Security Association Modification 38 | |||
| 6.1 Notification Procedures . . . . . . . . . . . . . . . . . . . . . 40 | 4.1 Modification Procedures . . . . . . . . . . . . . . . . . . . . . 38 | |||
| 5 Security Association Deletion 38 | ||||
| 5.1 Deletion Procedures . . . . . . . . . . . . . . . . . . . . . . . 39 | ||||
| 7 Conclusions 41 | 6 Notification Message 41 | |||
| 6.1 Notify Message Types . . . . . . . . . . . . . . . . . . . . . . 42 | ||||
| 6.2 Notification Procedures . . . . . . . . . . . . . . . . . . . . . 42 | ||||
| A ISAKMP Scenarios 43 | 7 Conclusions 44 | |||
| A.1 Initial ISAKMP Daemon Scenerio . . . . . . . . . . . . . . . . . 43 | ||||
| A.2 Virtual Private Network Scenario . . . . . . . . . . . . . . . . 44 | ||||
| B Security Association Attributes 47 | ||||
| C Security Association Examples 51 | A IP Security DOI 45 | |||
| C.1 ISAKMP SA Definition . . . . . . . . . . . . . . . . . . . . . . 51 | A.1 IP Security Proposal Formats . . . . . . . . . . . . . . . . . . 45 | |||
| C.1.1ISAKMP SA Examples . . . . . . . . . . . . . . . . . . . . . . 52 | A.2 ESP SA and AH SA Proposals . . . . . . . . . . . . . . . . . . . 48 | |||
| C.2 ESP SA and AH SA Definitions . . . . . . . . . . . . . . . . . . 53 | A.3 Oakley Proposal . . . . . . . . . . . . . . . . . . . . . . . . . 51 | |||
| C.2.1ESP and AH SA Examples . . . . . . . . . . . . . . . . . . . . 54 | A.4 Attribute Class Assigned Numbers . . . . . . . . . . . . . . . . 53 | |||
| C.2.2Fortezza SA Examples . . . . . . . . . . . . . . . . . . . . . 55 | A.5 Attribute Value Assigned Numbers . . . . . . . . . . . . . . . . 54 | |||
| A.5.1Sensitivity Level Assigned Numbers . . . . . . . . . . . . . . 54 | ||||
| A.5.2Key Exchange Identifiers (KEI) Assigned Numbers . . . . . . . 54 | ||||
| A.5.3Encryption Transform Assigned Numbers . . . . . . . . . . . . 54 | ||||
| B ISAKMP Scenarios 55 | ||||
| B.1 Oakley Scenario . . . . . . . . . . . . . . . . . . . . . . . . . 55 | ||||
| B.2 Virtual Private Network Scenario . . . . . . . . . . . . . . . . 57 | ||||
| C Security Association Attributes 60 | ||||
| 1 Introduction | 1 Introduction | |||
| This document describes an Internet Security Association and Key Manage- | This document describes an Internet Security Association and Key Manage- | |||
| ment Protocol (ISAKMP). ISAKMP combines the security concepts of authen- | ment Protocol (ISAKMP). ISAKMP combines the security concepts of authen- | |||
| tication, key management, and security associations to establish the re- | tication, key management, and security associations to establish the re- | |||
| quired security for government, commercial, and private communications on | quired security for government, commercial, and private communications on | |||
| the Internet. ISAKMP extends the assertion in [DOW92] that authentica- | the Internet. ISAKMP extends the assertion in [DOW92] that authentica- | |||
| tion and key exchanges must be combined for better security to include se- | tion and key exchanges must be combined for better security to include se- | |||
| curity association exchanges. The security required for communications | curity association exchanges. The security required for communications | |||
| depends on the individual network configurations and environments. Orga- | depends on the individual network configurations and environments. Orga- | |||
| skipping to change at page 6, line 30 ¶ | skipping to change at page 6, line 30 ¶ | |||
| Digital signatures, such as the Digital Signature Standard (DSS) and the | Digital signatures, such as the Digital Signature Standard (DSS) and the | |||
| Rivest-Shamir-Adleman (RSA) signature, are public key based strong authen- | Rivest-Shamir-Adleman (RSA) signature, are public key based strong authen- | |||
| tication mechanisms. When using digital signatures each entity requires a | tication mechanisms. When using digital signatures each entity requires a | |||
| public and a private key. Certificates are an essential part of a digital | public and a private key. Certificates are an essential part of a digital | |||
| signature authentication mechanism. Certificates bind a specific enti- | signature authentication mechanism. Certificates bind a specific enti- | |||
| ties identity (be it host, network, user, or application) to its public | ties identity (be it host, network, user, or application) to its public | |||
| keys and possibly other security-related information such as privileges, | keys and possibly other security-related information such as privileges, | |||
| clearances, and compartments. Authentication based on digital signatures | clearances, and compartments. Authentication based on digital signatures | |||
| requires a trusted third party or certificate authority to create, sign | requires a trusted third party or certificate authority to create, sign | |||
| and properly distribute certificates. For more detailed information on | and properly distribute certificates. For more detailed information on | |||
| digital signatures, such as DSS and RSA, and certificates see [Schn94]. | digital signatures, such as DSS and RSA, and certificates see [Schneier]. | |||
| 1.1.1 Certificate Authorities | 1.1.1 Certificate Authorities | |||
| Certificates require an infrastructure for generation, verification, man- | Certificates require an infrastructure for generation, verification, man- | |||
| agement and distribution. The Internet Policy Registration Authority | agement and distribution. The Internet Policy Registration Authority | |||
| (IPRA) [RFC-1422] has been established to direct this infrastructure for | (IPRA) [RFC-1422] has been established to direct this infrastructure for | |||
| the IETF. The IPRA certifies Policy Certification Authorities (PCA). PCAs | the IETF. The IPRA certifies Policy Certification Authorities (PCA). PCAs | |||
| control Certificate Authorities (CA) which certify users and subordinate | control Certificate Authorities (CA) which certify users and subordi- | |||
| entities. Current certificate related work includes the Domain Name Sys- | nate entities. Current certificate related work includes the Domain Name | |||
| tem (DNS) Security Extensions [EK94] which will provide signed entity keys | System (DNS) Security Extensions [DNSSEC] which will provide signed en- | |||
| in the DNS. The Public Key Infrastucture (PKIX) working group is speci- | tity keys in the DNS. The Public Key Infrastucture (PKIX) working group | |||
| fying an Internet profile for X.509 certificates. There is also work go- | is specifying an Internet profile for X.509 certificates. There is also | |||
| ing on in industry to develop X.500 Directory Services which would provide | work going on in industry to develop X.500 Directory Services which would | |||
| X.509 certificates to users. The U.S. Post Office is developing a (CA) | provide X.509 certificates to users. The U.S. Post Office is developing | |||
| hierarchy. The NIST Public Key Infrastructure Working Group has also been | a (CA) hierarchy. The NIST Public Key Infrastructure Working Group has | |||
| doing work in this area. The DOD Multi Level Information System Security | also been doing work in this area. The DOD Multi Level Information System | |||
| Initiative (MISSI) program has begun deploying a certificate infrastruc- | Security Initiative (MISSI) program has begun deploying a certificate in- | |||
| ture for the U.S. Government. Alternatively, if no infrastructure exists, | frastructure for the U.S. Government. Alternatively, if no infrastructure | |||
| the PGP Web of Trust certificates can be used to provide user authentica- | exists, the PGP Web of Trust certificates can be used to provide user au- | |||
| tion and privacy in a community of users who know and trust each other. | thentication and privacy in a community of users who know and trust each | |||
| other. | ||||
| 1.1.2 Entity Naming | 1.1.2 Entity Naming | |||
| An entity's name is its identity and is bound to its public keys in cer- | An entity's name is its identity and is bound to its public keys in cer- | |||
| tificates. The CA MUST define the naming semantics for the certificates | tificates. The CA MUST define the naming semantics for the certificates | |||
| it issues. See the UNINETT PCA Policy Statements [Berg] for an example | it issues. See the UNINETT PCA Policy Statements [Berge] for an example | |||
| of how a CA defines its naming policy. When the certificate is verified, | of how a CA defines its naming policy. When the certificate is verified, | |||
| the name is verified and that name will have meaning within the realm of | the name is verified and that name will have meaning within the realm of | |||
| that CA. An example is the DNS security extensions which make DNS servers | that CA. An example is the DNS security extensions which make DNS servers | |||
| CAs for the zones and nodes they serve. Resource records are provided for | CAs for the zones and nodes they serve. Resource records are provided for | |||
| public keys and signatures on those keys. The names associatied with the | public keys and signatures on those keys. The names associatied with the | |||
| keys are IP addresses and domain names which have meaning to entities ac- | keys are IP addresses and domain names which have meaning to entities ac- | |||
| cessing the DNS for this information. A Web of Trust is another example. | cessing the DNS for this information. A Web of Trust is another example. | |||
| When webs of trust are set up, names are bound with the public keys. In | When webs of trust are set up, names are bound with the public keys. In | |||
| PGP the name is usaully the entities e-mail address which has meaning to | PGP the name is usaully the entities e-mail address which has meaning to | |||
| those, and only those, who understand e-mail (Do MCI and AOL e-mail ad- | those, and only those, who understand e-mail. Another web of trust could | |||
| dresses tell the casual e-mailer anything about identity?). Another web | use an entirely different naming scheme. | |||
| could use an entirely different naming scheme. | ||||
| 1.1.3 ISAKMP Requirements | 1.1.3 ISAKMP Requirements | |||
| Strong authentication MUST be provided on ISAKMP exchanges. Without being | Strong authentication MUST be provided on ISAKMP exchanges. Without being | |||
| able to authenticate the entity at the other end, the Security Association | able to authenticate the entity at the other end, the Security Association | |||
| (SA) and session key established are suspect. Without authentication you | (SA) and session key established are suspect. Without authentication you | |||
| are unable to trust an entity's identification, this makes access control | are unable to trust an entity's identification, this makes access control | |||
| questionable. Encryption (e.g. ESP) and integrity (e.g. AH) will pro- | questionable. Encryption (e.g. ESP) and integrity (e.g. AH) will pro- | |||
| tect subsequent communications from passive eavesdroppers, but the SA and | tect subsequent communications from passive eavesdroppers, but the SA and | |||
| key may be established with an adversary who performed an active man-in- | key may be established with an adversary who performed an active man-in- | |||
| the-middle attack and is now stealing all your personnal data. | the-middle attack and is now stealing all your personnal data. | |||
| A digital signature algorithm MUST be used within ISAKMP's authentication | A digital signature algorithm MUST be used within ISAKMP's authentication | |||
| component. However, ISAKMP does not mandate a specific mechanism. ISAKMP | component. However, ISAKMP does not mandate a specific signature algo- | |||
| allows an entity initiating communications to indicate which signature al- | rithm or certificate authority (CA). ISAKMP allows an entity initiating | |||
| gorithms it supports. After selection of a common algorithm, the protocol | communications to indicate which CAs it supports. After selection of a | |||
| provides the messages required to support the actual authentication ex- | CA, the protocol provides the messages required to support the actual au- | |||
| change. As an example, if the DSA is selected as the signature algorithm, | thentication exchange. The protocol provides a facility for identifica- | |||
| then the protocol provides a facility for identification of different cer- | tion of different certificate authorities, certificate types (e.g. X.509, | |||
| tificate authorities, certificate types (e.g. X.509v1 certificates, PKCS | PKCS #7, PGP, DNS SIG and KEY records), and the exchange of the certifi- | |||
| #7), and the exchange of the certificates identified. | cates identified. | |||
| ISAKMP utilizes digital signatures, based on public cryptography, for au- | ISAKMP utilizes digital signatures, based on public cryptography, for au- | |||
| thentication. There are other strong authentication systems available, | thentication. There are other strong authentication systems available, | |||
| which could be specified as additional optional authentication mechanisms | which could be specified as additional optional authentication mechanisms | |||
| for ISAKMP. Some of these authentication systems rely on a trusted third | for ISAKMP. Some of these authentication systems rely on a trusted third | |||
| party called a key distribution center (KDC) to distribute secret session | party called a key distribution center (KDC) to distribute secret session | |||
| keys. An example is Kerberos, where the trusted third party is the Ker- | keys. An example is Kerberos, where the trusted third party is the Ker- | |||
| beros server, which holds secret keys for all clients and servers within | beros server, which holds secret keys for all clients and servers within | |||
| it's network domain. A clients proof it holds it's secret key provides | it's network domain. A clients proof it holds it's secret key provides | |||
| its authenticaton to a server. | its authenticaton to a server. | |||
| skipping to change at page 8, line 23 ¶ | skipping to change at page 8, line 25 ¶ | |||
| that describes how the entities will utilize security services to communi- | that describes how the entities will utilize security services to communi- | |||
| cate securely. This relationship is represented by a set of information | cate securely. This relationship is represented by a set of information | |||
| that can be considered a contract between the entities. The information | that can be considered a contract between the entities. The information | |||
| must be agreed upon and shared between all the entities. Sometimes the | must be agreed upon and shared between all the entities. Sometimes the | |||
| information alone is referred to as an SA, but this is just a physical in- | information alone is referred to as an SA, but this is just a physical in- | |||
| stantiation of the existing relationship. The existence of this relation- | stantiation of the existing relationship. The existence of this relation- | |||
| ship, represented by the information, is what provides the agreed upon se- | ship, represented by the information, is what provides the agreed upon se- | |||
| curity information needed by entities to securely interoperate. All enti- | curity information needed by entities to securely interoperate. All enti- | |||
| ties must adhere to the SA for secure communications to be possible. When | ties must adhere to the SA for secure communications to be possible. When | |||
| accessing SA attributes, entities use a pointer or identifier refered to | accessing SA attributes, entities use a pointer or identifier refered to | |||
| as the Security Parameter Index (SPI). | as the Security Parameter Index (SPI). See [RFC-1825] for details on IP | |||
| Security SAs and SPIs definitions. | ||||
| 1.2.1 Security Associations and Registration | 1.2.1 Security Associations and Registration | |||
| The SA attributes required and recommended for the IP Security (AH, ESP) | The SA attributes required and recommended for the IP Security (AH, ESP) | |||
| are defined in [RFC-1825]. The attributes specified for an IP Security SA | are defined in [RFC-1825]. The attributes specified for an IP Security SA | |||
| include, but are not limited to, authentication mechanism, cryptographic | include, but are not limited to, authentication mechanism, cryptographic | |||
| algorithm, algorithm mode, key length, and Initialization Vector (IV). | algorithm, algorithm mode, key length, and Initialization Vector (IV). | |||
| Other protocols that provide algorithm and mechanism independent security | Other protocols that provide algorithm and mechanism independent security | |||
| MUST define their SA attributes requirements. The separation of ISAKMP | MUST define their SA attributes requirements. The separation of ISAKMP | |||
| from a specific SA definition is important to ensure ISAKMP can establish | from a specific SA definition is important to ensure ISAKMP can establish | |||
| SAs for all possible security protocols and applications. | SAs for all possible security protocols and applications. | |||
| NOTE: See Appendix B for a discussion of SA attributes that should be con- | NOTE: See Appendix C for a discussion of SA attributes that should be con- | |||
| sidered when defining a security protocol or application. | sidered when defining a security protocol or application. | |||
| In order to facilitate easy identification of specific attributes (e.g. | In order to facilitate easy identification of specific attributes (e.g. | |||
| a specific encryption algorithm) among different network entites the at- | a specific encryption algorithm) among different network entites the at- | |||
| tributes must be assigned identifiers and these identifiers must be reg- | tributes must be assigned identifiers and these identifiers must be reg- | |||
| istered by a central authority. The Internet Assigned Numbers Authority | istered by a central authority. The Internet Assigned Numbers Authority | |||
| (IANA) provides this function for the Internet. | (IANA) provides this function for the Internet. | |||
| 1.2.2 ISAKMP Requirements | 1.2.2 ISAKMP Requirements | |||
| skipping to change at page 9, line 22 ¶ | skipping to change at page 9, line 28 ¶ | |||
| tion for subsequent ISAKMP exchanges. It also indicates the authentica- | tion for subsequent ISAKMP exchanges. It also indicates the authentica- | |||
| tion method and key exchange that will be performed as part of the ISAKMP | tion method and key exchange that will be performed as part of the ISAKMP | |||
| protocol. If a basic set of security attributes is already in place on | protocol. If a basic set of security attributes is already in place on | |||
| the communicating entities the initial ISAKMP exchange may be skipped and | the communicating entities the initial ISAKMP exchange may be skipped and | |||
| the key and authentication exchanges issued directly. After the basic set | the key and authentication exchanges issued directly. After the basic set | |||
| of security attributes has been agreed upon, initial identity authenti- | of security attributes has been agreed upon, initial identity authenti- | |||
| cated, and required keys generated, another security attribute exchange | cated, and required keys generated, another security attribute exchange | |||
| takes place to establish the complete SA which will be used for subsequent | takes place to establish the complete SA which will be used for subsequent | |||
| communications by the entity that invoked ISAKMP. The basic set of SA at- | communications by the entity that invoked ISAKMP. The basic set of SA at- | |||
| tributes that MUST be implemented to provide ISAKMP interoperability are | tributes that MUST be implemented to provide ISAKMP interoperability are | |||
| defined in Appendix C. *These atributes will be moved to a separate docu- | defined in Appendix A. *These atributes will be moved to a separate docu- | |||
| ment to maintain separation of protocol and attributes.* | ment to maintain separation of protocol and attributes.* | |||
| 1.3 Public Key Cryptography | 1.3 Public Key Cryptography | |||
| Public key cryptography is the most flexible, scalable, and efficient way | Public key cryptography is the most flexible, scalable, and efficient way | |||
| for users to obtain the shared secrets and session keys needed to support | for users to obtain the shared secrets and session keys needed to support | |||
| the large number of ways Internet users will interoperate. Many key gen- | the large number of ways Internet users will interoperate. Many key gen- | |||
| eration algorithms, that have different properties, are available to users | eration algorithms, that have different properties, are available to users | |||
| (see [DOW92] and [ANSI94]). Properties of key exchange protocols include | (see [DOW92] and [ANSI]). Properties of key exchange protocols include | |||
| the key establishment method, authentication, symmetry, perfect forward | the key establishment method, authentication, symmetry, perfect forward | |||
| secrecy, and back traffic protection. | secrecy, and back traffic protection. | |||
| 1.3.1 Key Exchange Properties | 1.3.1 Key Exchange Properties | |||
| Key Establishment (Key Generation / Key Transport) The two common methods | Key Establishment (Key Generation / Key Transport) The two common methods | |||
| of using public key cryptography for key establishment are key transport | of using public key cryptography for key establishment are key transport | |||
| and key generation. An example of key transport is the use of the RSA al- | and key generation. An example of key transport is the use of the RSA al- | |||
| gorithm to encrypt a randomly generated session key (for encrypting subse- | gorithm to encrypt a randomly generated session key (for encrypting subse- | |||
| quent communications) with the recipient's public key. The encrypted ran- | quent communications) with the recipient's public key. The encrypted ran- | |||
| dom key is then sent to the recipient, who decrypts it using his private | dom key is then sent to the recipient, who decrypts it using his private | |||
| key. At this point both sides have the same session key, however it was | key. At this point both sides have the same session key, however it was | |||
| created based on input from only one side of the communications. The ben- | created based on input from only one side of the communications. The ben- | |||
| efit of the key transport method is that it has less computational over- | efit of the key transport method is that it has less computational over- | |||
| head then the following method. The Diffie-Hellman (D-H) algorithm illus- | head then the following method. The Diffie-Hellman (D-H) algorithm il- | |||
| trates key generation using public key cryptography. The D-H algorithm is | lustrates key generation using public key cryptography. The D-H algorithm | |||
| begun by two users exchanging public information. Each user then mathe- | is begun by two users exchanging public information. Each user then math- | |||
| matically combines the other's public information along with their own se- | ematically combines the other's public information along with their own | |||
| cret information to compute a shared secret value. This secret value can | secret information to compute a shared secret value. This secret value | |||
| be used as a session key or as a key encryption key for encrypting a ran- | can be used as a session key or as a key encryption key for encrypting | |||
| domly generated session key. This method generates a session key based on | a randomly generated session key. This method generates a session key | |||
| public and secret information held by both users. The benefit of the D-H | based on public and secret information held by both users. The benefit | |||
| algorithm is that the key used for encrypting messages is based on infor- | of the D-H algorithm is that the key used for encrypting messages is based | |||
| mation held by both users. Assuming checks for weak values neither party | on information held by both users. Assuming checks for weak values nei- | |||
| can force the session key to a predetermined value. Detailed descrip- | ther party can force the session key to a predetermined value. Detailed | |||
| tions of these algorithms can be found in [Schn94]. There are a number | descriptions of these algorithms can be found in [Schneier]. There are a | |||
| of variations on these two key generation schemes and these variations do | number of variations on these two key generation schemes and these varia- | |||
| not necessarily interoperate. | tions do not necessarily interoperate. | |||
| Key Exchange Authentication Key exchanges may be authenticated during the | Key Exchange Authentication Key exchanges may be authenticated during the | |||
| protocol or after protocol completion. Authentication of the key exchange | protocol or after protocol completion. Authentication of the key exchange | |||
| during the protocol is provide when each party provides proof it has the | during the protocol is provided when each party provides proof it has the | |||
| secret session key before the end of the protocol. Proof can be provided | secret session key before the end of the protocol. Proof can be provided | |||
| by encrypting known data in the secret session key during the protocol ex- | by encrypting known data in the secret session key during the protocol ex- | |||
| change. Authentication after the protocol must occur in subsequent commu- | change. Authentication after the protocol must occur in subsequent commu- | |||
| nications. Authentication during the protocol is preferred so subsequent | nications. Authentication during the protocol is preferred so subsequent | |||
| communications are not initiated if the secret session key is not estab- | communications are not initiated if the secret session key is not estab- | |||
| lished with the desired party. | lished with the desired party. | |||
| Key Exchange Symmetry A key exchange provides symmetry if either party can | Key Exchange Symmetry A key exchange provides symmetry if either party can | |||
| initiate the exchange and exchanged messages can cross in transit with- | initiate the exchange and exchanged messages can cross in transit with- | |||
| out effecting the key that is generated. This is desirable so that com- | out effecting the key that is generated. This is desirable so that com- | |||
| skipping to change at page 10, line 38 ¶ | skipping to change at page 10, line 44 ¶ | |||
| the exchange. While key exchange symmetry is desirable, symmetry in the | the exchange. While key exchange symmetry is desirable, symmetry in the | |||
| entire KMP may provide a vulnerablity to reflection attacks. The entire | entire KMP may provide a vulnerablity to reflection attacks. The entire | |||
| ISAKMP SA establishment is asymetrical. | ISAKMP SA establishment is asymetrical. | |||
| Back Traffic Protection / Perfect Forward Secrecy Perfect forward secrecy | Back Traffic Protection / Perfect Forward Secrecy Perfect forward secrecy | |||
| is provided by a key exchange protocol if disclosure of long-term cryp- | is provided by a key exchange protocol if disclosure of long-term cryp- | |||
| tographic keying material (e.g. public signature keys) does not compro- | tographic keying material (e.g. public signature keys) does not compro- | |||
| mise previously generated keys. Back traffic protection is provided by | mise previously generated keys. Back traffic protection is provided by | |||
| the independent generation of each key such that subsequent keys are not | the independent generation of each key such that subsequent keys are not | |||
| dependent on any previous key. There is a subtle difference. Past ses- | dependent on any previous key. There is a subtle difference. Past ses- | |||
| sion keys will NOT be obtainable is the long-term key is compromised in | sion keys will NOT be obtainable if the long-term key is compromised in | |||
| perfect forward secrecy; Past session keys will NOT be obtainable if the | perfect forward secrecy; Past session keys will NOT be obtainable if the | |||
| current session key is compromised in back traffic protecion. | current session key is compromised in back traffic protecion. | |||
| The difficulty of numerical factoring of large numbers has proven that | The difficulty of numerical factoring of large numbers has proven that | |||
| cryptographic keys can protect information for a considerable length of | cryptographic keys can protect information for a considerable length of | |||
| time. However, this is based on the assumption that keys used for protec- | time. However, this is based on the assumption that keys used for protec- | |||
| tion of communications are destroyed after use and not kept for any rea- | tion of communications are destroyed after use and not kept for any rea- | |||
| son. | son. | |||
| 1.3.2 ISAKMP Requirements | 1.3.2 ISAKMP Requirements | |||
| skipping to change at page 11, line 22 ¶ | skipping to change at page 11, line 23 ¶ | |||
| secrecy, back traffic protection, computational overhead, key escrow, and | secrecy, back traffic protection, computational overhead, key escrow, and | |||
| key strength. Based on user requirements, ISAKMP allows an entity initi- | key strength. Based on user requirements, ISAKMP allows an entity initi- | |||
| ating communications to indicate which key exchanges it supports. After | ating communications to indicate which key exchanges it supports. After | |||
| selection of a key exchange, the protocol provides the messages required | selection of a key exchange, the protocol provides the messages required | |||
| to support the actual key establishment. | to support the actual key establishment. | |||
| 1.4 ISAKMP Protection | 1.4 ISAKMP Protection | |||
| 1.4.1 Anti-Clogging (Denial of Service) | 1.4.1 Anti-Clogging (Denial of Service) | |||
| Of the numerous security services available, protection against denial | Of the numerous security services available, protection against denial of | |||
| of service always seems to be one of the most difficult to address. Phil | service always seems to be one of the most difficult to address. Phil | |||
| Karn in his Internet-Draft [Karn95] has introduced a mechanism to provide | Karn in his Internet-Draft [Karn] has introduced a mechanism to provide | |||
| a measure of denial of service protection through the use of a ``cookie'' | a measure of denial of service protection through the use of a ``cookie'' | |||
| exchange. This anti-clogging token (ACT) is aimed at protecting the com- | exchange. This anti-clogging token (ACT) is aimed at protecting the com- | |||
| puting resources from attack without spending excessive CPU resources to | puting resources from attack without spending excessive CPU resources to | |||
| determine its authenticity. As described in [Karn95], an exchange prior | determine its authenticity. As described in [Karn], an exchange prior to | |||
| to CPU-intensive public key operations can thwart some denial of service | CPU-intensive public key operations can thwart some denial of service at- | |||
| attempts (e.g. simple flooding with bogus IP source addresses). As noted | tempts (e.g. simple flooding with bogus IP source addresses). As noted | |||
| by Karn, absolute protection against denial of service is impossible, but | by Karn, absolute protection against denial of service is impossible, but | |||
| this anti-clogging token provides a technique for making it easier to han- | this anti-clogging token provides a technique for making it easier to han- | |||
| dle. | dle. | |||
| 1.4.2 Connection Hijacking | 1.4.2 Connection Hijacking | |||
| ISAKMP prevents connection hijacking by linking the authentication, key | ISAKMP prevents connection hijacking by linking the authentication, key | |||
| exchange and security association exchanges. This linking prevent an at- | exchange and security association exchanges. This linking prevents an | |||
| tacker from allowing the authentication to complete and then jumping in | attacker from allowing the authentication to complete and then jumping | |||
| and impersonating one entity to the other during the key and security as- | in and impersonating one entity to the other during the key and security | |||
| sociation exchanges. | association exchanges. | |||
| 1.4.3 Man-in-the-Middle Attacks | 1.4.3 Man-in-the-Middle Attacks | |||
| Man-in-the-Middle attacks include interception, insertion, deletion, and | Man-in-the-Middle attacks include interception, insertion, deletion, and | |||
| modification of messages, reflecting messages back at the sender, re- | modification of messages, reflecting messages back at the sender, re- | |||
| playing old messages and redirecting messages. ISAKMP features prevent | playing old messages and redirecting messages. ISAKMP features prevent | |||
| these types of attacks from being successful. The linking of the ISAKMP | these types of attacks from being successful. The linking of the ISAKMP | |||
| exchanges prevents the insertion of messages in the protocol exchange. | exchanges prevents the insertion of messages in the protocol exchange. | |||
| The ISAKMP protocol state machine is defined so deleted messages will not | The ISAKMP protocol state machine is defined so deleted messages will not | |||
| cause a partial SA to be created, the state machine will clear all state | cause a partial SA to be created, the state machine will clear all state | |||
| skipping to change at page 12, line 26 ¶ | skipping to change at page 12, line 32 ¶ | |||
| ing the appropriate party of this abnormality. | ing the appropriate party of this abnormality. | |||
| 1.5 Multicast Communications | 1.5 Multicast Communications | |||
| While future Internet communications will increasingly be of a multicast | While future Internet communications will increasingly be of a multicast | |||
| nature, this document is presenting a security association and key man- | nature, this document is presenting a security association and key man- | |||
| agement protocol from the unicast point of view. It is expected that mul- | agement protocol from the unicast point of view. It is expected that mul- | |||
| ticast communications will require the same security services as unicast | ticast communications will require the same security services as unicast | |||
| communications and may introduce the need for additional security ser- | communications and may introduce the need for additional security ser- | |||
| vices. The issues of distributing SPIs for multicast traffic are pre- | vices. The issues of distributing SPIs for multicast traffic are pre- | |||
| sented in [RFC-1825]. Upon agreement and implementation of a security | sented in [RFC-1825]. Multicast security issues are also discussed in | |||
| association protocol for the Internet unicast environment, we fully intend | [BC]. Upon agreement and implementation of a security association pro- | |||
| to examine any additional security requirements for multicast communica- | tocol for the Internet unicast environment, we fully intend to examine any | |||
| tions. For an introduction to the issues related to multicast security | additional security requirements for multicast communications. For an in- | |||
| consult the Internet Drafts, [Spar94a] and [Spar94b], describing Sparta's | troduction to the issues related to multicast security consult the Inter- | |||
| research in this area. | net Drafts, [Spar94a] and [Spar94b], describing Sparta's research in this | |||
| area. | ||||
| 2 Description of the Protocol | 2 Description of the Protocol | |||
| The Internet Security Association and Key Management Protocol (ISAKMP) de- | The Internet Security Association and Key Management Protocol (ISAKMP) de- | |||
| fines procedures and packet formats to establish, negotiate, modify and | fines procedures and packet formats to establish, negotiate, modify and | |||
| delete Security Associations (SA). SAs contain all the information re- | delete Security Associations (SA). SAs contain all the information re- | |||
| quired for execution of IP security services, such as the IP Authentica- | quired for execution of IP security services, such as the IP Authentica- | |||
| tion Header (AH), the IP Encapsulating Security Payload (ESP), and routing | tion Header (AH), the IP Encapsulating Security Payload (ESP), and routing | |||
| protocol authentication mechanisms. ISAKMP includes packet formats for | protocol authentication mechanisms. ISAKMP includes packet formats for | |||
| exchanging key generation and authentication data. These formats provide | exchanging key generation and authentication data. These formats provide | |||
| a consistent method of transferring key and authentication data that is | a consistent method of transferring key and authentication data that is | |||
| independent of the key generation technique, encryption algorithm or au- | independent of the key generation technique, encryption algorithm or au- | |||
| thentication mechanism. | thentication mechanism. | |||
| The following sections contain the details of ISAKMP. Sections 2.1 through | 2.1 ISAKMP Architecture | |||
| 2.3 cover details that are pertinent to the entire protocol. Sections 3 | ||||
| through 6 define the establishment, modification, and deletion services, | ||||
| defined as exchanges, offered by the protocol. The appendices provide | ||||
| examples of SAs and key exchanges. | ||||
| 2.1 ISAKMP Header Format | The following figure is a high level view of the placement of ISAKMP in a | |||
| network architecture. | ||||
| ISAKMP has a fixed header format (shown in Figure 1) followed by a vari- | +-------------+ +--------------+ | |||
| ! Negotiation ! Situation ! Application ! | ||||
| ! Server !<---- ! Process ! | ||||
| +-------------+ ! +--------------+ | ||||
| ! ISAKMP ! ! ! Appl Protocol! | ||||
| +-------------+ ! SPI +--------------+ | ||||
| ! v ! | ||||
| +---------------------------------------------+ | ||||
| ! Sockets ! | ||||
| +---------------------------------------------+ | ||||
| ! Transport Protocol (TCP / UDP) ! | ||||
| +---------------------------------------------+ | ||||
| ! IP ! | ||||
| +---------------------------------------------+ | ||||
| ! Link Layer Protocol ! | ||||
| +---------------------------------------------+ | ||||
| Figure 1: ISAKMP Relationships | ||||
| The negotiation server is an application process which interfaces with the | ||||
| different policy databases (security, network access, cryptographic, au- | ||||
| thentication, etc.) that a system may require. It calls upon ISAKMP to | ||||
| deliver the data required to establish an SA and key and authenticate the | ||||
| exchange. The negotiation server can be invoked manually by a user or au- | ||||
| tomatically by an up-call from a security protocol when it requires an SA. | ||||
| The situation contains the identification and credential information re- | ||||
| quired by the negotiation server to make policy decisions. The negotia- | ||||
| tion server returns a SPI when an SA is established. | ||||
| 2.2 ISAKMP Packet Exchanges | ||||
| The Exchange field in the ISAKMP header currently has three values de- | ||||
| fined: the base exchange, the identity protection exchange, and the au- | ||||
| thentication only exchange. These exchanges define the flow of the ISAKMP | ||||
| packets during SA establishment. The diagrams in 2.2.1, 2.2.2, and 2.2.3 | ||||
| show the packet exchange ordering for each exchange type and provide ba- | ||||
| sic notes describing what has happened after each packet exchange. These | ||||
| exchanges are a high level summary of the packet flow, they do not show | ||||
| processing or error handling. Detailed connection establishment process- | ||||
| ing is defined in sections 3 through 6. | ||||
| 2.2.1 Base Exchange | ||||
| Sections 3.1 through 3.3 describe the three basic phases: SA Initial- | ||||
| ization, Key Exchange and Authentication, and SA Negotiation, that com- | ||||
| prise the base exchange. The base exchange contains the minimum number of | ||||
| packet exchanges in order to reduce latency associated with SA establish- | ||||
| ment. | ||||
| Base Exchange | ||||
| ___Initiator_____Direction____Responder_____ Note | ||||
| ISA_INIT_REQ => | ||||
| <= ISA_INIT_RESP | ||||
| Basic SA selected | ||||
| ISA_AUTH&KE_REQ => | ||||
| <= ISA_AUTH&KE_RESP | ||||
| Identity Verified | ||||
| Key Generated | ||||
| Encryption Begun | ||||
| ISA_NEG_REQ => | ||||
| <= ISA_NEG_RESP SA Completed | ||||
| 2.2.2 Identity Protection Exchange | ||||
| The identity protection exchange starts and ends the same as the base ex- | ||||
| change, but separates the key exchange payload and the authentication pay- | ||||
| loads into separate packets. In this exchange, the key exchange is trans- | ||||
| mitted first followed by the strong authentication exchange. The benefit | ||||
| of this exchange is the ability to communicate with a person without dis- | ||||
| closing either party's identity to passive attackers on the network. | ||||
| The ISA_KE_REQ and ISA_KE_RESP packets used for the key exchange portion of | ||||
| this exchange contain an ISAKMP header followed by the key exchange pay- | ||||
| load. The ISA_AUTH_REQ and ISA_AUTH_RESP packet used for the authentication | ||||
| portion of this exchange contain an ISAKMP header followed by the authen- | ||||
| tication payload. | ||||
| Identity Protection Exchange | ||||
| __Initiator___Direction___Responder___ Note | ||||
| ISA_INIT_REQ => | ||||
| <= ISA_INIT_RESP | ||||
| Basic SA selected | ||||
| ISA_KE_REQ => | ||||
| <= ISA_KE_RESP | ||||
| Key Generated | ||||
| Encryption Begun | ||||
| ISA_AUTH_REQ => | ||||
| <= ISA_AUTH_RESP | ||||
| Identity Verified | ||||
| ISA_NEG_REQ => | ||||
| <= ISA_NEG_RESP SA Completed | ||||
| 2.2.3 Authentication Only Exchange | ||||
| The authentication only exchange starts and ends the same as the base ex- | ||||
| change. In this exchange, the authentication information is the only in- | ||||
| formation transmitted. The benefit of this exchange is the ability to | ||||
| perform only an authentication exchange without the computational expense | ||||
| of computing keys. Using this exchange, none of the transmitted informa- | ||||
| tion will be encrypted. | ||||
| The ISA_AUTH_REQ and ISA_AUTH_RESP packet used for the authentication only | ||||
| exchange contain an ISAKMP header followed by the authentication payload. | ||||
| Authentication Only Exchange | ||||
| __Initiator___Direction___Responder___ Note | ||||
| ISA_INIT_REQ => | ||||
| <= ISA_INIT_RESP | ||||
| Basic SA selected | ||||
| ISA_AUTH_REQ => | ||||
| <= ISA_AUTH_RESP | ||||
| Identity Verified | ||||
| ISA_NEG_REQ => | ||||
| <= ISA_NEG_RESP SA Completed | ||||
| 2.3 ISAKMP Details | ||||
| The following sections contain the details of ISAKMP. Sections 2.3.1 | ||||
| through 2.3.7 cover details that are pertinent to the entire protocol. | ||||
| Sections 3 through 6 define the establishment, modification, and deletion | ||||
| services, defined as exchanges, offered by the protocol. The appendices | ||||
| provide examples of SAs and key exchanges. | ||||
| 2.3.1 Basic ISAKMP Concepts | ||||
| Domain of Interpretation The Domain of Interpretation (DOI) identifier is | ||||
| used to interpret the payloads of ISAKMP payloads. The concept of a DOI | ||||
| is based on previous work by the IETF CIPSO Working Group, but extended | ||||
| beyond security label interpretation to include naming and interpretation | ||||
| of security services. The DOI defines: | ||||
| o The set of information that will be used to determine the required | ||||
| security services (this information is called a situation). | ||||
| o The set of security policies that must be supported. | ||||
| o Syntax rules for the specification of proposed security services. A | ||||
| set of security services is called a protection suite. | ||||
| o A common scheme for identifying cryptographic mechansisms, including | ||||
| encryption algorithms, key exchange algorithms, and certificate | ||||
| authorities. | ||||
| o A naming scheme for the cryptographic algorithms supported within the | ||||
| domain, and for common Key Exchange Identifiers. | ||||
| Specifications of the rules for individual DOIs will be presented in sep- | ||||
| arate documents. The rules for the Internet Security DOI is contained in | ||||
| Appendix A. | ||||
| A system may support multiple Domains of Interpretation. All systems MUST | ||||
| support the Internet Security DOI. | ||||
| Situation A situation contains all of the security-relevant information | ||||
| that a system considers necessary to decide the security services required | ||||
| to protect the session being negotiated. For example, in the Internet | ||||
| Security DOI (see Appendix A), the situation consists of only the address | ||||
| of the peer being contacted. In other DOIs, the situation may include | ||||
| security classifications, modes of operation (normal vs. emergency), etc. | ||||
| Protection Suite A protection suite is a list of the security services | ||||
| that must be applied at various security protocols. For example, a pro- | ||||
| tection suite may consist of DES encryption in IP ESP, and keyed MD5 in | ||||
| IP AH. All of the protections in a suite must be treated as a single unit. | ||||
| This is because security services in different security protocols can have | ||||
| subtle interactions, and the effects of a suite must be analyzed and veri- | ||||
| fied as a whole. | ||||
| Proposal A proposal is a list, in decreasing order of preference, of the | ||||
| protection suites that a system considers acceptable to protect traffic | ||||
| under a given situation. | ||||
| 2.3.2 ISAKMP Header Format | ||||
| ISAKMP has a fixed header format (shown in Figure 2) followed by a vari- | ||||
| able length payload, optional digital signature, and optional padding. A | able length payload, optional digital signature, and optional padding. A | |||
| fixed header simplifies parsing, providing the benefit of protocol parsing | fixed header simplifies parsing, providing the benefit of protocol parsing | |||
| software that is less complex and easier to implement. The fixed header | software that is less complex and easier to implement. The fixed header | |||
| contains the information required by the protocol to maintain state, pro- | contains the information required by the protocol to maintain state, pro- | |||
| cess payloads and prevent attacks (e.g. denial of service and replay). | cess payloads and prevent attacks (e.g. denial of service and replay). | |||
| Based on the message type, each header is followed by a payload specific | Based on the message type, each header is followed by a payload specific | |||
| to the message type. The payload for each message is defined in sections | to the message type. The payload for each message is defined in sections | |||
| 3 through 6. Following the payload portion of the ISAKMP packet is a dig- | 3 through 6. Following the payload portion of the ISAKMP packet is a dig- | |||
| ital signature. This field is dependent on the negotiation of Security | ital signature. This field is dependent on the negotiation of Security | |||
| Association attributes and may not be present. | Association attributes and may not be present. | |||
| 1 2 3 | 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 | 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 | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| ! Message Type ! Exch ! Vers ! Length ! | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| ! Security Parameter Index (SPI) ! | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| ! ! | ! ! | |||
| ~ Initiator-Cookie ~ | ~ Initiator-Cookie ~ | |||
| ! ! | ! ! | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| ! ! | ! ! | |||
| ~ Responder-Cookie ~ | ~ Responder-Cookie ~ | |||
| ! ! | ! ! | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| ! ! | ! Message Type ! Exch ! Vers ! Length ! | |||
| ~ Payload ~ | ||||
| ! ! | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| ! ! | ! Security Parameter Index (SPI) ! | |||
| ~ Digital Signature ~ | ||||
| ! ! | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| ! ! | ! Auxillary (SPI) ! | |||
| ~ Padding ~ | ||||
| ! ! | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Figure 1: ISAKMP Header Format | Figure 2: ISAKMP Header Format | |||
| o Message Type (1 octet) - Indicates the type of message. A suffix of | o Message Type (1 octet) - Indicates the type of message. A suffix of | |||
| REQ denotes a Request message type and an RESP suffix denotes a | REQ denotes a Request message type and an RESP suffix denotes a | |||
| Response message type. The format and processing for each message is | Response message type. The format and processing for each message is | |||
| defined in sections 3 through 6. | defined in sections 3 through 6. | |||
| __ISAKMP_Message__Message_Type_ | __ISAKMP_Message___Message_Type_ | |||
| RESERVED 0 | RESERVED 0 | |||
| ISA_INIT_REQ 1 | ISA_INIT_REQ 1 | |||
| ISA_INIT_RESP 2 | ISA_INIT_RESP 2 | |||
| ISA_KE_REQ 3 | ISA_KE_REQ 3 | |||
| ISA_KE_RESP 4 | ISA_KE_RESP 4 | |||
| ISA_AUTH_REQ 5 | ISA_AUTH_REQ 5 | |||
| ISA_AUTH_RESP 6 | ISA_AUTH_RESP 6 | |||
| ISA_AUTH&KE_REQ 7 | ISA_AUTH&KE_REQ 7 | |||
| ISA_AUTH&KE_RESP 8 | ISA_AUTH&KE_RESP 8 | |||
| ISA_NEG_REQ 9 | ISA_NEG_REQ 9 | |||
| ISA_NEG_RESP 10 | ISA_NEG_RESP 10 | |||
| ISA_MODIFY_REQ 11 | ISA_MODIFY_REQ 11 | |||
| ISA_MODIFY_RESP 12 | ISA_MODIFY_RESP 12 | |||
| ISA_NOTIFY 13 | ISA_NOTIFY 13 | |||
| ISA_DELETE 14 | ISA_DELETE 14 | |||
| ISA_COMMIT 15 | ISA_NEW_GROUP_REQ 15 | |||
| IANA Use 16-127 | ISA_NEW_GROUP_RESP 16 | |||
| Future Use 128-255 | IANA Use 17-127 | |||
| Future Use 128-255 | ||||
| o Exchange (4 bits) - indicates the type of exchange, see section 2.2 | o Exchange (4 bits) - indicates the type of exchange, see section 2.2 | |||
| for a description of the Message Types exchanged in each of these | for a description of the Message Types exchanged in each of these | |||
| Exchange Types. | Exchange Types. | |||
| ___ISAKMP_Exchange___Exchange_Type__ | ___ISAKMP_Exchange___Exchange_Type__ | |||
| RESERVED 0 | RESERVED 0 | |||
| Base 1 | Base 1 | |||
| Identity Protection 2 | Identity Protection 2 | |||
| Authentication Only 3 | Authentication Only 3 | |||
| Future Use 4 - 15 | Future Use 4 - 15 | |||
| o Version (4 bits) - indicates the version of the ISAKMP protocol in | o Version (4 bits) - indicates the version of the ISAKMP protocol in | |||
| use. | use. | |||
| o Length (2 octets) - Length of total message (header + payload) in | o Length (2 octets) - Length of total message (header + payload) in | |||
| octets. | octets. | |||
| o SPI (4 octets) - Security Parameter Index. The receiving entity's | o SPI (4 octets) - Security Parameter Index. The receiving entity's | |||
| SPI is always in this field, except for the ISA_INIT packets. The | SPI is always in this field, except for the ISA_INIT packets. The use | |||
| ISA_INIT packets contain the SPI the initiator expects to receive in | of the SPI field is described in Section 2.3.3 | |||
| all subsequent packets. | ||||
| o Initiator Cookie (16 octets) - Cookie of entity that initiated SA | o Auxillary SPI (4 octets) - The use of the Auxiliary SPI field is | |||
| described in 2.3.3 | ||||
| o Initiator Cookie (8 octets) - Cookie of entity that initiated SA | ||||
| establishment, SA modify or SA delete. | establishment, SA modify or SA delete. | |||
| o Responder Cookie (16 octets) - Cookie of entity that is responding to | o Responder Cookie (8 octets) - Cookie of entity that is responding to | |||
| an SA establishment, SA modify or SA delete request. | an SA establishment, SA modify or SA delete request. | |||
| o Payload (variable) - The format of the payload is based on the | 2.3.3 SPI Usage | |||
| message type. These are defined in sections 3 through 6. | ||||
| o Signature - The digital signature of the initiator of the ISAKMP | While bootstrapping secure channels between systems, ISAKMP cannot assume | |||
| message. This field will not be included on all packets and will be | the existence of security services, and must provide some protections for | |||
| determined by the negotiated SA attributes. | itself. Therefore, ISAKMP distinguishes two different types of SPIs. The | |||
| first type of SPI, called a negotiation SPI, refers to a ``local'' secu- | ||||
| rity association, implemented by the ISAKMP service itself. The second | ||||
| type is called a protection SPI, and is used to refer to the SA being de- | ||||
| veloped on behalf of other security protocols. Negotiation SPIs are mean- | ||||
| ingless outside of the negotiation server, while protection SPIs will be | ||||
| used by protocols such as AH and ESP. | ||||
| o Padding - This is an optional field that may be added depending on | Although SPIs are classified two different ways, all SPIs must be selected | |||
| the type of encryption algorithm. If the encryption mechanism is | from the same SPI-space, so that the ISAKMP service can uniquely identify | |||
| based on block encryption, then this field may be necessary to ensure | an SA based on a SPI. | |||
| the packet is a specific size. | ||||
| 2.1.1 General Message Processing | In general, the SPI field in the ISAKMP header contains the receiving en- | |||
| tity's negotiation SPI. The only exception to this is the ISA_INIT_REQUEST | ||||
| message, because the receiver has not yet established a reciving SPI for | ||||
| the session. In the ISA_INIT_REQUEST message, the the SPI field contains | ||||
| the SPI that the sender will be using for the session. | ||||
| The Auxiliary SPI field is necessary because ISAKMP needs both a handle on | ||||
| the internal ``negotiation SA'', in order to protect or unprotect messages | ||||
| from ISAKMP peers, as well as a handle for the protection SA that is being | ||||
| developed. | ||||
| The following table describes the contents of the two SPI fields for each | ||||
| of the message types: | ||||
| __ISAKMP_Message_______SPI_____Auxiliary_SPI__ | ||||
| ISA_INIT_REQ REQ NEG SPI 0 | ||||
| ISA_INIT_RESP REQ NEG SPI REC NEG SPI | ||||
| ISA_KE_REQ REC NEG SPI REQ SPI | ||||
| ISA_KE_RESP REQ NEG SPI REC SPI | ||||
| ISA_AUTH_REQ REC NEG SPI REQ NEG SPI | ||||
| ISA_AUTH_RESP REQ NEG SPI REC NEG SPI | ||||
| ISA_AUTH&KE_REQ REC NEG SPI REQ NEG SPI | ||||
| ISA_AUTH&KE_RESP REQ NEG SPI REC NEG SPI | ||||
| ISA_NEG_REQ REC NEG SPI REQ PROT SPI | ||||
| ISA_NEG_RESP REC NEG SPI REC PROT SPI | ||||
| ISA_MODIFY_REQ REC NEG SPI REC SPI | ||||
| ISA_MODIFY_RESP REQ NEG SPI REQ SPI | ||||
| ISA_NOTIFY REC NEG SPI REC SPI | ||||
| ISA_DELETE REQ NEG SPI REQ SPI | ||||
| ISA_NEW_GROUP_REQ REC NEG SPI 0 | ||||
| ISA_NEW_GROUP_RESPREQ NEG SPI 0 | ||||
| Notes: | ||||
| REQ NEG SPI = Requestor's negotiation SPI | ||||
| REC NEG SPI = Receiver's negotiation SPI | ||||
| REQ PROT SPI = Requestor's protection SPI | ||||
| REC PROT SPI = Receiver's protection SPI | ||||
| REQ SPI = Requestor's SPI (either negotiation or protection) | ||||
| REC SPI = Receiver's SPI (either negotiation or protection) | ||||
| For KE messages: if the messages are establishing keys for a negotiation | ||||
| session, the SPI is a negotiation SPI. Otherwise, the Auxiliary SPI is a | ||||
| protection SPI. | ||||
| For MODIFY, NOTIFY, and DELETE messages: the Auxiliary SPI can refer to | ||||
| either type of SPI. | ||||
| 2.3.4 General Message Processing | ||||
| Every ISAKMP message has basic processing applied to insure protocol re- | Every ISAKMP message has basic processing applied to insure protocol re- | |||
| liability, and to minimize threats, such as denial of service and replay | liability, and to minimize threats, such as denial of service and replay | |||
| attacks. | attacks. | |||
| When transmitting an ISAKMP packet, the transmitting entity (initiator or | When transmitting an ISAKMP packet, the transmitting entity (initiator or | |||
| responder) does the following: | responder) does the following: | |||
| 1. Sets a timer and initializes a retry counter. | 1. Sets a timer and initializes a retry counter. | |||
| skipping to change at page 17, line 5 ¶ | skipping to change at page 23, line 22 ¶ | |||
| (b) No response is sent to the initiating entity. This will cause | (b) No response is sent to the initiating entity. This will cause | |||
| the transmission timer of the initiating entity to expire and | the transmission timer of the initiating entity to expire and | |||
| force retransmission of the message. | force retransmission of the message. | |||
| 5. The message payload is processed. Individual message processing is | 5. The message payload is processed. Individual message processing is | |||
| described in sections 3 through 6. Depending on the Message Type, a | described in sections 3 through 6. Depending on the Message Type, a | |||
| valid message results in a response being sent to the transmitting | valid message results in a response being sent to the transmitting | |||
| entity (message originator). The procedures for sending these | entity (message originator). The procedures for sending these | |||
| responses are also outline in sections 3 through 6. | responses are also outline in sections 3 through 6. | |||
| 2.2 ISAKMP Packet Exchanges | 2.3.5 Transport Protocol | |||
| The Exchange field in the ISAKMP header currently has three values de- | ||||
| fined: the base exchange, the identity protection exchange, and the au- | ||||
| thentication only exchange. These exchanges define the flow of the ISAKMP | ||||
| packets during SA establishment. The diagrams in 2.2.1, 2.2.2, and 2.2.3 | ||||
| show the packet exchange ordering for each exchange type and provide basic | ||||
| notes describing what has happened after each packet exchange. | ||||
| 2.2.1 Base Exchange | ||||
| Sections 3.1 through 3.3 describe the three basic phases: SA Initial- | ||||
| ization, Key Exchange and Authentication, and SA Negotiation, that com- | ||||
| prise the base exchange. The base exchange contains the minimum number of | ||||
| packet exchanges in order to reduce latency associated with SA establish- | ||||
| ment. | ||||
| Base Exchange | ||||
| ____Initiator____Direction_____Responder____ Note | ||||
| ISA_INIT_REQ => | ||||
| <= ISA_INIT_RESP | ||||
| Basic SA selected | ||||
| ISA_AUTH&KE_REQ => | ||||
| <= ISA_AUTH&KE_RESP | ||||
| Identity Verified | ||||
| Key Generated | ||||
| Encryption Begun | ||||
| ISA_NEG_REQ => | ||||
| <= ISA_NEG_RESP SA Completed | ||||
| (optional) ISA_COMMIT => | ||||
| 2.2.2 Identity Protection Exchange | ||||
| The identity protection exchange starts and ends the same as the base ex- | ||||
| change, but separates the key exchange payload and the authentication pay- | ||||
| loads into separate packets. In this exchange, the key exchange is trans- | ||||
| mitted first followed by the strong authentication exchange. The benefit | ||||
| of this exchange is the ability to communicate with a person without dis- | ||||
| closing either party's identity to passive attackers on the network. | ||||
| The ISA_KE_REQ and ISA_KE_RESP packets used for the key exchange portion of | ||||
| this exchange contain an ISAKMP header followed by the key exchange pay- | ||||
| load. The ISA_AUTH_REQ and ISA_AUTH_RESP packet used for the authentication | ||||
| portion of this exchange contain an ISAKMP header followed by the authen- | ||||
| tication payload. | ||||
| Identity Protection Exchange | ||||
| __Initiator___Direction___Responder___ Note | ||||
| ISA_INIT_REQ => | ||||
| <= ISA_INIT_RESP | ||||
| Basic SA selected | ||||
| ISA_KE_REQ => | ||||
| <= ISA_KE_RESP | ||||
| Key Generated | ||||
| Encryption Begun | ||||
| ISA_AUTH_REQ => | ||||
| <= ISA_AUTH_RESP | ||||
| Identity Verified | ||||
| ISA_NEG_REQ => | ||||
| <= ISA_NEG_RESP SA Completed | ||||
| (optional) ISA_COMMIT => | ||||
| 2.2.3 Authentication Only Exchange | ||||
| The authentication only exchange starts and ends the same as the base ex- | ||||
| change. In this exchange, the authentication information is the only in- | ||||
| formation transmitted. The benefit of this exchange is the ability to | ||||
| perform only an authentication exchange without the computational expense | ||||
| of computing keys. Using this exchange, none of the transmitted informa- | ||||
| tion will be encrypted. | ||||
| The ISA_AUTH_REQ and ISA_AUTH_RESP packet used for the authentication only | ||||
| exchange contain an ISAKMP header followed by the authentication payload. | ||||
| Identity Protection Exchange | ||||
| __Initiator___Direction___Responder___ Note | ||||
| ISA_INIT_REQ => | ||||
| <= ISA_INIT_RESP | ||||
| Basic SA selected | ||||
| ISA_AUTH_REQ => | ||||
| <= ISA_AUTH_RESP | ||||
| Identity Verified | ||||
| ISA_NEG_REQ => | ||||
| <= ISA_NEG_RESP SA Completed | ||||
| (optional) ISA_COMMIT => | ||||
| 2.3 ISAKMP Details | ||||
| 2.3.1 Security Association Attributes | ||||
| A Security Association (SA) is a relationship between two entities that | ||||
| describes how they will utilize security services. This relationship is | ||||
| represented by a collection of security related information. The SA At- | ||||
| tributes are the individual elements that comprise all security relevant | ||||
| information necessary to form the SA. | ||||
| The following syntax defines the security attributes to be exchanged by | ||||
| ISAKMP. This syntax is used in the ISA_INIT_REQ, ISA_INIT_RESP, ISA_NEG_REQ, | ||||
| ISA_NEG_RESP, ISA_MOD_REQ, and ISA_MOD_RESP messages. The syntax groups se- | ||||
| curity attributes needed to perform a security function into either an SA | ||||
| set or SA list format. The set format MUST be supported by ISAKMP imple- | ||||
| mentations. The list format is an optional format. | ||||
| Security Associations Sets The set format groups all necessary attributes | ||||
| together. Each set has a unique identifier (Set Number), supported secu- | ||||
| rity service (Supports), such as IP AH, IP ESP, OSPF authentication, and | ||||
| a list of Attribute Classes and Attribute Types. The Attribute Class is | ||||
| the broad category of Attribute Type, such as encryption algorithms. At- | ||||
| tribute Type is a specific attribute identifier. DES is an example of an | ||||
| attribute type for the encryption algorithm attribute class. A set has | ||||
| only one instance of an Attribute Class and one type for that class. This | ||||
| syntax maintains flexibility by allowing many different (and some still | ||||
| undefined) types of SA attributes to be exchanged. | ||||
| Figure 2 depicts the syntax for exchanging security attributes using | ||||
| the set format. It shows a single set from which multiple sets would be | ||||
| grouped for a specific message type. | ||||
| 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 | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| ! Set Number ! Supports ! Num of Attr ! | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| ! Attribute Class ! Attribute Type ! | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| ~ ..... ~ | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| ! Attribute Class ! Attribute Type ! | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| Figure 2: Generic Set Exchange Format | ||||
| o Set number (1 octet) - Unique identifier for each proposed set | ||||
| o Supports (2 octets) - Security service proposed set supports. | ||||
| Examples are IP AH, IP ESP, and OSPF authentication | ||||
| o Number of Attributes (1 octet) - Number of attribute classes | ||||
| contained in the proposed set | ||||
| o Attribute Class (2 octets) - examples are Encryption Algorithms, Key | ||||
| Exchange Algorithms, Authentication Mechanisms | ||||
| o Attribute Type (2 octets) - examples of attribute types for the | ||||
| encryption algorithms attribute class are DES, Triple DES, and IDEA. | ||||
| The size of a set formatted exchange is 4 octets + (Number of Attribute | ||||
| Classes * 4 octets). Computing the size of a particular set allows the | ||||
| determination of the beginning of the next set without completely parsing | ||||
| the current set. This is necessary when it is determined that the current | ||||
| set is not an acceptable SA set. This will improve the performance of SA | ||||
| Attribute determination. | ||||
| Security Association Lists The SA list format presents several attribute | ||||
| types for an attribute class. Each type within the class is then ordered | ||||
| to indicate its precedence. Specifically, the first attribute type is the | ||||
| highest priority type, followed by other choices. Each subsequent choice | ||||
| is listed in descending priority order. An attribute type must be chosen | ||||
| for each attribute class to establish a complete SA. | ||||
| Figure 3 shows the syntax for the optional list exchange format. The num- | ||||
| ber of types is determined by the Count field. The number of Attribute | ||||
| Types within an Attribute Class will depend on what is supported by the | ||||
| local machine. | ||||
| 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 | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| ! Attribute Class ! Count ! | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| ! Attribute Type ! Attribute Type ! | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| ~ ~ | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| ! Attribute Type ! Attribute Type ! | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| Figure 3: Generic List Exchange Format | ||||
| o Attribute Class (2 octets) - Examples are Encryption Algorithms, Key | ||||
| Exchange Algorithms | ||||
| o Count - Number of proposed Attribute Types for the given Attribute | ||||
| Class | ||||
| o Attribute Type (2 octets) - Presented in descending priority order | ||||
| Appendix B presents an outline containing a comprehensive listing of SA | ||||
| attributes. This listing of attributes are initial definitions and are | ||||
| presented to stimulate thought and discussion on SAs. The final SA for | ||||
| a protocol SHOULD be defined in that protocol so additions or modifica- | ||||
| tions to the attributes do not require a modification to the Internet Key | ||||
| Management Protocol (IKMP) RFC and vice versa. For example, Appendix C | ||||
| describes the sample security associations for ISAKMP and IPSP ESP and AH. | ||||
| 2.3.2 Transport Protocol | ||||
| The User Datagram Protocol (UDP) is the transport protocol for ISAKMP. UDP | ISAKMP can be implemented over any transport protocol or IP itself. The | |||
| checksumming discards UDP packets with an incorrect or zero (0) checksum. | User Datagram Protocol (UDP) is minimum requirement for interoperability. | |||
| ISAKMP is unaware of the discard, but will resend the packet when its re- | The ISAKMP well-known port is TBD. | |||
| send timer expires. | ||||
| 2.3.3 RESERVED Fields | 2.3.6 RESERVED Fields | |||
| The existence of RESERVED fields are strictly used to preserve byte | The existence of RESERVED fields are strictly used to preserve byte align- | |||
| alignement. All RESERVED fields in the ISAKMP protocol MUST be set to | ment. All RESERVED fields in the ISAKMP protocol MUST be set to zero (0) | |||
| zero (0) when a packet is issued. The receiver SHOULD check the RESERVED | when a packet is issued. The receiver SHOULD check the RESERVED fields | |||
| fields for zero (0) and discard the packet if other values are found. | for zero (0) and discard the packet if other values are found. | |||
| 2.3.4 Anti-Clogging Token (``Cookie'') Creation | 2.3.7 Anti-Clogging Token (``Cookie'') Creation | |||
| Phil Karn's Internet Draft [Karn95] states that cookie generation is im- | Phil Karn's Internet Draft [Karn] states that cookie generation is imple- | |||
| plementation dependent, but must satisfy some basic requirements: | mentation dependent, but must satisfy some basic requirements: | |||
| 1. The cookie must depend on the specific parties. This prevents | 1. The cookie must depend on the specific parties. This prevents | |||
| an attacker from obtaining a cookie using a real IP address and | an attacker from obtaining a cookie using a real IP address and | |||
| UDP port, and then using it to swamp the victim with Diffie- | UDP port, and then using it to swamp the victim with Diffie- | |||
| Hellman requests from randomly chosen IP addresses or ports. | Hellman requests from randomly chosen IP addresses or ports. | |||
| 2. It must not be possible for anyone other than the issuing | 2. It must not be possible for anyone other than the issuing | |||
| entity to generate cookies that will be accepted by that | entity to generate cookies that will be accepted by that | |||
| entity. This implies that the issuing entity must use local | entity. This implies that the issuing entity must use local | |||
| secret information in the generation and subsequent | secret information in the generation and subsequent | |||
| skipping to change at page 22, line 19 ¶ | skipping to change at page 25, line 5 ¶ | |||
| 3. The cookie generation function must be fast to thwart attacks | 3. The cookie generation function must be fast to thwart attacks | |||
| intended to sabotage CPU resources. | intended to sabotage CPU resources. | |||
| Karn's suggested method for creating the cookie is to perform a fast hash | Karn's suggested method for creating the cookie is to perform a fast hash | |||
| (e.g. MD5) over the IP Source and Destination Address, the UDP Source and | (e.g. MD5) over the IP Source and Destination Address, the UDP Source and | |||
| Destination Ports and a locally generated secret random value. ISAKMP | Destination Ports and a locally generated secret random value. ISAKMP | |||
| requires that the cookie be unique for each SA establishment, SA modify | requires that the cookie be unique for each SA establishment, SA modify | |||
| and SA delete to help prevent replay attacks, therefore the date and time | and SA delete to help prevent replay attacks, therefore the date and time | |||
| MUST be added to the information hashed. | MUST be added to the information hashed. | |||
| 2.3.5 SA Flags Field | ||||
| The SA Flags field may be set by the entity that initiated the negotia- | ||||
| tion to indicate that the ISA_COMMIT packet will follow the completion of | ||||
| the protocol exchange. The SA Flags field exists only in the ISA_INIT and | ||||
| ISA_NEG packets. If the initiating entity sets the flag, the responding | ||||
| entity cannot reset it. If the initiating entity does not set the flag, | ||||
| the responding entity may set it, thereby, forcing the initiating entity | ||||
| to issue an ISA_COMMIT packet. If neither entity sets the flag, then the | ||||
| ISA_COMMIT packet will not be issued. To set the flag the Least Signifi- | ||||
| cant Bit (LSB) in the SA Flags field is set to one (1) . All other bits | ||||
| in the SA Flags field are zero (0). | ||||
| 3 Security Association Establishment | 3 Security Association Establishment | |||
| Security Association (SA) Establishment is the process of agreeing upon | Security Association (SA) Establishment is the process of agreeing upon | |||
| and exchanging all the security information that is required in an SA. The | and exchanging all the security information that is required in an SA. The | |||
| following sections, 3.1 to 3.3, describe the three basic phases that com- | following sections, 3.1 to 3.3, describe the three basic phases that com- | |||
| prise SA Establishment: SA Initialization, Key and Authentication infor- | prise SA Establishment: SA Initialization, Key and Authentication infor- | |||
| mation exchange, and SA Negotiation. | mation exchange, and SA Negotiation. | |||
| 3.1 Security Association Initialization | 3.1 Security Association Initialization | |||
| The initialization exchange of SA establishment is composed of the | The initialization exchange of SA establishment is composed of the | |||
| ISA_INIT_REQ and ISA_INIT_RESP packets shown in figure 4. The ISA_INIT pack- | ISA_INIT_REQ and ISA_INIT_RESP packets shown in figure 3. The ISA_INIT pack- | |||
| ets exchange ``cookies'', and options for a key generation technique, an | ets exchange ``cookies'', and options for a key generation technique, an | |||
| encryption algorithm and an authentication mechanism. The ``cookies'' | encryption algorithm and an authentication mechanism. The ``cookies'' | |||
| are used to prevent replay and denial of service attacks. Authentication | are used to prevent replay and denial of service attacks. Authentication | |||
| and encryption for the ISAKMP exchanges are provided by the authentication | and encryption for the ISAKMP exchanges are provided by the authentication | |||
| mechanism and encryption algorithm selected. The key generation technique | mechanism and encryption algorithm selected. The key generation technique | |||
| selected creates keys for use by the authentication mechanism and encryp- | selected creates keys for use by the authentication mechanism and encryp- | |||
| tion algorithm. The keys may also be used as any of the following: ac- | tion algorithm. The keys may also be used as any of the following: ac- | |||
| tual session keys, to create the session keys, or to protect the exchange | tual session keys, to create the session keys, or to protect the exchange | |||
| of the actual session keys for the SA. If the key, encryption algorithm, | of the actual session keys for the SA. If the key, encryption algorithm, | |||
| and authentication mechanism are only used to protect ISAKMP exchanges, | and authentication mechanism are only used to protect ISAKMP exchanges, | |||
| then new options can be picked during the negotiation phase (described in | then new options can be picked during the negotiation phase (described in | |||
| Section 3.3) for use in protecting the actual data communications. If en- | Section 3.3) for use in protecting the actual data communications. If en- | |||
| cryption is not required for the SA, the encryption algorithm options are | cryption is not required for the SA, the encryption algorithm options are | |||
| not exchanged. | not exchanged. | |||
| 1 2 3 | o ISAKMP Header - Described in Section 2.3.2 | |||
| 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 | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| ~ ISAKMP Header ~ | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| ! SA Syntax Type! SA Flags ! # Sets/Lists ! RESERVED ! | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| ~ SA Attribute Set/List #1 ~ | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| ~ SA Attribute Set/List #2 ~ | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| ~ ... ~ | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| ~ SA Attribute Set/List #N ~ | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| Figure 4: ISA_INIT_REQ and ISA_INIT_RESP Packet Format | ||||
| o ISAKMP Header - Described in Section 2.1 | o Next Payload (1 octet) - Identifies the next payload in an ISAKMP | |||
| message if more then one is carried in a message. | ||||
| o SA Syntax Type (1 octet) - Presentation format of SAs | o Payload Length (1 octet) - Specifies the payload length in 4-octet | |||
| units. | ||||
| _SA_Syntax__SA_Syntax_Type_ | o Situation - Variable length field containing the situation for an SA | |||
| RESERVED 0 | (described in section 2.3.1). | |||
| Set 1 | ||||
| List 2 | ||||
| o SA Flags (1 octet) - Flags specific to an SA service. See section | o Proposal - Variable length field containing a list of proposed | |||
| 2.3.5 for details. | protection suites for an SA (described in section 2.3.1). | |||
| o Number of Sets (1 octet) - Number of SA Attribute Sets being proposed | The format and content of both the situation and proposal is DOI-specific. | |||
| o SA Attributes (variable) - A list of SA Attributes. The SA Attribute | The format of the Internet Security situation and proposal is described in | |||
| specifications are discussed in Section 2.3.1. | Appendix A. | |||
| 3.1.1 SA Initialization Procedures | 3.1.1 SA Initialization Procedures | |||
| When issuing an ISA_INIT_REQ message, the initiating entity does the fol- | When issuing an ISA_INIT_REQ message, the initiating entity does the fol- | |||
| lowing: | lowing: | |||
| 1. Create initiator cookie. See Section 2.3.4 for details. | 1. Create initiator cookie. See Section 2.3.7 for details. | |||
| 2. Generate a unique pseudo-random SPI. See Section 2.1 for details. | 2. Generate a unique pseudo-random negotiation SPI. See Section 2.3.2 | |||
| for details. | ||||
| 3. Construct an ISA_INIT_REQ packet. If the initiator will send an | 3. Determine the relevant security characteristics of the session (the | |||
| ISA_COMMIT message upon completion of the SA establishment, then the | situation). | |||
| SA Flags field MUST be set (see section 2.3.5 and 3.4). | ||||
| 4. Transmit the packet to the destination host as described in Section | 4. Generate a proposal for protecting a session under that situation. | |||
| 2.1.1. | ||||
| 5. Construct an ISA_INIT_REQ packet. | ||||
| 6. Transmit the packet to the destination host as described in Section | ||||
| 2.3.4. | ||||
| When an ISA_INIT_REQ message is received, the receiving entity does the | When an ISA_INIT_REQ message is received, the receiving entity does the | |||
| following: | following: | |||
| 1. Check the ISAKMP header as described in Section 2.1.1. | 1. Check the ISAKMP header as described in Section 2.3.4. | |||
| 2. Unpack the ISA_INIT_REQ payload and determine the highest priority | 2. Unpack the ISA_INIT_REQ payload. | |||
| attribute set (or attribute list) supported. If the proposed | ||||
| attribute set (or list) is rejected, then the protocol machine must | ||||
| clear all state and return to IDLE. | ||||
| 3. Create responder cookie. See Section 2.3.4 for details. | 3. Determine if the given situation can be protected. If not, the pro- | |||
| tocol machine must send a rejection notification and return to IDLE. | ||||
| 4. Generate a unique pseudo-random SPI. See Section 2.1 for details. | 4. Determine if it can use any of the proposed protection suites to | |||
| protect the session. If none of the proposed suites are acceptable, | ||||
| then the protocol machine must send a rejection notification, clear | ||||
| all state and return to IDLE. | ||||
| 5. Construct an ISA_INIT_RESP packet. If the responder wants to request | 5. Create responder cookie. See Section 2.3.7 for details. | |||
| that an ISA_COMMIT message be sent upon completion of the SA | ||||
| establishment, then the SA Flags field MUST be set (see section 2.3.5 | ||||
| and 3.4). | ||||
| 6. Transmit the packet to the initiating host as described in Section | 6. Generate a unique pseudo-random SPI. See Section 2.3.2 for details. | |||
| 2.1.1. | ||||
| 7. Construct an ISA_INIT_RESP packet containing the situation and the | ||||
| chosen protection suite. | ||||
| 8. Transmit the packet to the initiating host as described in Section | ||||
| 2.3.4. | ||||
| When an ISA_INIT_RESP message is received, the receiving entity (original | When an ISA_INIT_RESP message is received, the receiving entity (original | |||
| initiator) does the following: | initiator) does the following: | |||
| 1. Check the ISAKMP header as described in Section 2.1.1. | 1. Check the ISAKMP header as described in Section 2.3.4. | |||
| 2. Unpack the ISA_INIT_RESP payload. | 2. Unpack the ISA_INIT_RESP payload. | |||
| 3. Determine if the attribute set (or list) selected by the responder is | 3. Determine that the situation returned is the same as the one sent. | |||
| valid. If the attribute set (or list) is invalid or the responder | If not, the protocol machine must send a rejection notification and | |||
| rejected all proposed attribute sets (or lists), the receiving entity | possibly resend the ISA_INIT_REQ message. | |||
| does the following: | ||||
| 4. Determine if the returned protection suite is among the set of valid | ||||
| choices. If the entire proposal was rejected, the event | ||||
| PROPOSAL_REJECTED is logged to the appropriate audit file. If an | ||||
| invalid protection suite was returned, the receiving entity does the | ||||
| following: | ||||
| (a) The event, INVALID ATTRIBUTES, is logged in the appropriate | (a) The event, INVALID ATTRIBUTES, is logged in the appropriate | |||
| system audit file. | system audit file. | |||
| (b) Clear all state and return to IDLE. Any further communication | (b) Clear all state and return to IDLE. Any further communication | |||
| must start the SA initialization procedures from the beginning. | must start the SA initialization procedures from the beginning. | |||
| If the attribute set (or list) is valid, the receiving entity does | If a valid protection suite was selected, the receiving entity does | |||
| the following: | the following: | |||
| (a) Configure protocol machine based on attribute set selected. | (a) Configure protocol machine based on protection suite selected. | |||
| (b) Transition to Authentication and Key Exchange (see Section 3.2). | (b) Transition to Authentication and Key Exchange (see Section 3.2). | |||
| 3.2 Authentication and Key Exchange | 3.2 Authentication and Key Exchange | |||
| During the authentication and key exchange phase, information required to | During the authentication and key exchange phase, information required to | |||
| confirm the identities of the parties wishing to establish the SA and es- | confirm the identities of the parties wishing to establish the SA and es- | |||
| tablish a session key for use during the SA establishment is exchanged. | tablish session keys for use during the SA establishment is exchanged. | |||
| Depending on the key exchange algorithm, the original key may be used dur- | Depending on the key exchange algorithms, the original key may be used | |||
| ing data communications or a new one may be created and exchanged during | during data communications or a new one may be created and exchanged dur- | |||
| the negotiation phase (described in section 3.3). This original or new | ing the negotiation phase (described in section 3.3). This original or | |||
| key would be used in protecting the actual data communications. | new key would be used in protecting the actual data communications. | |||
| The packets that carry the authentication and key exchange payloads have | The packets that carry the authentication and key exchange payloads have | |||
| the format shown in Figure 5. When the ISA_AUTH&KE_REQ and ISA_AUTH&KE_RESP | the format shown in Figure 4. When the ISA_AUTH&KE_REQ and ISA_AUTH&KE_RESP | |||
| packets are used, the Authentication Payload SHOULD be processed first to | packets are used, the Authentication Payload SHOULD be processed first to | |||
| strongly authenticate the packet issuer, followed by the processing of | strongly authenticate the packet issuer, followed by the processing of the | |||
| the Key Exchange Payload. The authentication and key exchange payloads | Key Exchange Payload. The authentication and key exchange payloads (shown | |||
| (shown in Figures 6 and 7) are general formats which support many types | in Figures 5 and 6) are general formats which support many types of au- | |||
| of authentication and key exchange mechanisms. The detailed specification | thentication and key exchange mechanisms. The detailed specification of | |||
| of these fields will be specified in companion RFCs. These companion RFCs | these fields will be specified in companion RFCs. These companion RFCs | |||
| will define the standard authentication and key exchange mechanisms that | will define the standard authentication and key exchange mechanisms that | |||
| need to be implemented to assure compliance with this specification. | need to be implemented to assure compliance with this specification. The | |||
| format for the Internet Security DOI key exchange and authentication pay- | ||||
| 1 2 3 | loads is described in A | |||
| 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 | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| ~ ISAKMP Header ~ | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| ~ ~ | ||||
| ! Authentication Payload ! | ||||
| ~ ~ | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| ~ ~ | ||||
| ! Key Exchange Payload ! | ||||
| ~ ~ | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| Figure 5: ISA_AUTH&KE_REQ and ISA_AUTH&KE_RESP Packet Format | ||||
| 3.2.1 Authentication Payload Format | 3.2.1 Authentication Payload Format | |||
| This section specifies the encoding of the authentication payload for the | This section specifies the encoding of the authentication payload for the | |||
| ISA_AUTH_REQ, ISA_AUTH_RESP, ISA_AUTH&KE_REQ, and ISA_AUTH&KE_RESP messages. | ISA_AUTH_REQ, ISA_AUTH_RESP, ISA_AUTH&KE_REQ, and ISA_AUTH&KE_RESP messages. | |||
| As described in section 2.2.3, when the ISA_AUTH_REQ and ISA_AUTH_RESP pack- | As described in section 2.2.3, when the ISA_AUTH_REQ and ISA_AUTH_RESP pack- | |||
| ets are transmitted alone, the key exchange payload is not present. The | ets are transmitted alone, the key exchange payload is not present. The | |||
| format of these messages is shown in Figure 6. | format of these messages is shown in Figure 5. | |||
| 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 | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| ! Authentication Authority ! Reserved ! | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| ! Authentication Type ! Length ! | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| ~ ~ | ||||
| ! Authentication Data ! | ||||
| ~ ~ | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| Figure 6: Authentication Payload Format | ||||
| o Authentication Authority (2 octets) - This field identifies the party | o Authentication Authority (2 octets) - This field identifies the party | |||
| that generated the certificates used for authentication. Authorities | that generated the certificates used for authentication. Authorities | |||
| must be assigned an identifier by the Internet Assigned Numbers | must be assigned an identifier by the Internet Assigned Numbers | |||
| Authority (IANA). Before being assigned an identifier, an authority | Authority (IANA). Before being assigned an identifier, an authority | |||
| must publish an RFC defining the authority's domain. [RFC-1422] | must publish an RFC defining the authority's domain. [RFC-1422] | |||
| describes the Internet Policy Registration Authority (IPRA) and the | describes the Internet Policy Registration Authority (IPRA) and the | |||
| procedures for achieving this registration. | procedures for achieving this registration. | |||
| If PGP certificates, based on the ``web of trust'', are carried in | If PGP certificates, based on the ``web of trust'', are carried in | |||
| skipping to change at page 27, line 34 ¶ | skipping to change at page 29, line 22 ¶ | |||
| -- U.S. Postal Service. | -- U.S. Postal Service. | |||
| o Authentication Type (2 octets) - This field indicates the | o Authentication Type (2 octets) - This field indicates the | |||
| authentication payload format. This field is used by authentication | authentication payload format. This field is used by authentication | |||
| authorities that support more than one certificate type. The | authorities that support more than one certificate type. The | |||
| authentication types supported by an authentication authority must be | authentication types supported by an authentication authority must be | |||
| defined in the RFC required for authentication authority | defined in the RFC required for authentication authority | |||
| registration. Examples are: | registration. Examples are: | |||
| -- RSA certificates | -- PKCS #7 certificates | |||
| -- PGP certificates | -- PGP certificates | |||
| -- DSS certificates | ||||
| -- DNS Signed Keys | -- DNS Signed Keys | |||
| -- Kerberos Tokens | -- Kerberos Tokens | |||
| -- X.509 certificates | -- X.509 certificates | |||
| o Length (2 octets) - Length of the Authentication Data field in | o Length (2 octets) - Length of the Authentication Data field in | |||
| octets. | octets. | |||
| o Authentication Data (variable) - Actual authentication data. The | o Authentication Data (variable) - Actual authentication data. The | |||
| type of certificate is indicated by the Authentication Type field. | type of certificate is indicated by the Authentication Type field. | |||
| 3.2.2 Key Exchange Payload Format | 3.2.2 Key Exchange Payload Format | |||
| A variety of key exchanges can be supported in the key exchange phase. | A variety of key exchanges can be supported in the key exchange phase. | |||
| Some examples of key exchanges which may be used in this protocol are | Some examples of key exchanges which may be used in this protocol are Oak- | |||
| Diffie-Hellman, the enhanced Diffie-Hellman key exchange described in | ley [Oakley], Diffie-Hellman, the enhanced Diffie-Hellman key exchange de- | |||
| X9.42 [ANSI94], the key exchange on the FORTEZZA card, and the RSA-based | scribed in X9.42 [ANSI], the Key Exchange Algorithm (KEA) on the FORTEZZA | |||
| key exchange used by PGP. This protocol will also support key exchanges | card, and the RSA-based key exchange used by PGP. This protocol will also | |||
| that include key escrow or data recovery techniques, but does not mandate | support key exchanges that include key escrow or data recovery techniques, | |||
| their use. | but does not mandate their use. | |||
| The encoding of the key exchange payload is dependent on the specific key | ||||
| exchange and, therefore, is not specified in this Internet draft. Each | ||||
| key exchange must define the following information: (a) System parame- | ||||
| ters, (b) Key establishment algorithm, and (c) Key derivation procedure | ||||
| (dependent on key exchange type). | ||||
| There can be both public and private key generation techniques. Both | ISAKMP supports both public and private key generation techniques. Both | |||
| types must register with IANA to obtain a Key Exchange Identifier (KEI). | types must register with IANA to obtain a Key Exchange Identifier (KEI). | |||
| Before published public key exchanges can obtain a KEI, an RFC defining | Before published public key exchanges can obtain a KEI, an RFC defining | |||
| the key exchange payload format and key generation procedures MUST be sub- | the key exchange payload format and key generation procedures MUST be sub- | |||
| mitted. Private key exchanges SHOULD be documented in an RFC when regis- | mitted. Private key exchanges SHOULD be documented in an RFC when regis- | |||
| tering for a KEI. | tering for a KEI. | |||
| The encoding of the key exchange payload is dependent on the specific key | ||||
| exchange and, therefore, is not specified in this Internet draft. Each | ||||
| key exchange must define the following information: (a) System parame- | ||||
| ters, (b) Key establishment algorithm, and (c) Key derivation procedure | ||||
| (dependent on key exchange type). See [Oakley] for an example of a key | ||||
| exchange that can be executed during the ISAKMP key exchange phase. | ||||
| As described in section 2.2.2, when the ISA_KE_REQ and ISA_KE_RESP packets | As described in section 2.2.2, when the ISA_KE_REQ and ISA_KE_RESP packets | |||
| are transmitted alone, the authentication payload is not present. Once | are transmitted alone, the authentication payload is not present. Once | |||
| the key exchange is completed, then the authentication payload is sent | the key exchange is completed, then the authentication payload is sent | |||
| separately using the format described in section 3.2.1 | separately using the format described in section 3.2.1 | |||
| 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 | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| ! KEI ! Length ! | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| ~ ~ | ||||
| ! Key Exchange Payload ! | ||||
| ~ ~ | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| Figure 7: Key Exchange Payload Format | ||||
| o KEI (2 octets) - Key Exchange Identifier | ||||
| o Length (2 octets) - Length of payload in octets | ||||
| o Key Exchange Payload (variable) - Data (i.e. public values) required | ||||
| to create session key. | ||||
| 3.2.3 Authentication and Key Exchange Procedures | 3.2.3 Authentication and Key Exchange Procedures | |||
| When issuing an ISA_AUTH&KE_REQ packet, the initiating entity will do the | When issuing an ISA_AUTH&KE_REQ packet, the initiating entity will do the | |||
| following: | following: | |||
| 1. Create the ISAKMP Header. | 1. Create the ISAKMP Header. | |||
| 2. Create the authentication payload. | 2. Create the authentication payload. | |||
| 3. Create the key exchange payload based on KEI. | 3. Create the key exchange payload based on KEI. | |||
| 4. Construct an ISA_AUTH&KE_REQ packet. | 4. Construct an ISA_AUTH&KE_REQ packet. | |||
| 5. Generate an authentication signature using the authentication | 5. Generate an authentication signature using the authentication | |||
| attributes and options selected in the initialization phase. | attributes and options selected in the initialization phase. | |||
| 6. Transmit the packet to the responding host as described in Section | 6. Transmit the packet to the responding host as described in Section | |||
| 2.1.1. | 2.3.4. | |||
| When an ISA_AUTH&KE_REQ packet is received, the receiving entity will do | When an ISA_AUTH&KE_REQ packet is received, the receiving entity will do | |||
| the following: | the following: | |||
| 1. Check the ISAKMP header as described in Section 2.1.1. | 1. Check the ISAKMP header as described in Section 2.3.4. | |||
| 2. Verify the initiator's signature. The ISA_AUTH&KE_REQ packet is | 2. Verify the initiator's signature. The ISA_AUTH&KE_REQ packet is | |||
| processed and the calculated signature is compared to the signature | processed and the calculated signature is compared to the signature | |||
| contained in the ISA_AUTH&KE_REQ packet. If these signatures are not | contained in the ISA_AUTH&KE_REQ packet. If these signatures are not | |||
| identical, the message is discarded and the following actions are | identical, the message is discarded and the following actions are | |||
| taken: | taken: | |||
| (a) The event, INVALID SIGNATURE, is logged in the appropriate system | (a) The event, INVALID SIGNATURE, is logged in the appropriate system | |||
| audit file. | audit file. | |||
| skipping to change at page 30, line 11 ¶ | skipping to change at page 31, line 26 ¶ | |||
| 5. Create the authentication payload. | 5. Create the authentication payload. | |||
| 6. Create the key exchange payload based on KEI. | 6. Create the key exchange payload based on KEI. | |||
| 7. Construct an ISA_AUTH&KE_RESP packet. | 7. Construct an ISA_AUTH&KE_RESP packet. | |||
| 8. Generate an authentication signature, to authenticate responder to | 8. Generate an authentication signature, to authenticate responder to | |||
| initiator, using the authentication attributes and options selected. | initiator, using the authentication attributes and options selected. | |||
| 9. Transmit the packet to the initiating host as described in Section | 9. Transmit the packet to the initiating host as described in Section | |||
| 2.1.1. | 2.3.4. | |||
| 10. Begin key calculation in the background, if necessary. | 10. Begin key calculation in the background, if necessary. | |||
| When an ISA_AUTH&KE_RESP message is received, the receiving entity (origi- | When an ISA_AUTH&KE_RESP message is received, the receiving entity (origi- | |||
| nal initiator) will do the following: | nal initiator) will do the following: | |||
| 1. Check the ISAKMP header as described in Section 2.1.1. | 1. Check the ISAKMP header as described in Section 2.3.4. | |||
| 2. Verify the initiator's signature. The ISA_AUTH&KE_RESP packet is | 2. Verify the initiator's signature. The ISA_AUTH&KE_RESP packet is | |||
| processed and the calculated signature is compared to the signature | processed and the calculated signature is compared to the signature | |||
| contained in the ISA_AUTH&KE_RESP packet. If these signatures are not | contained in the ISA_AUTH&KE_RESP packet. If these signatures are not | |||
| identical, the message is discarded and the following actions are | identical, the message is discarded and the following actions are | |||
| taken: | taken: | |||
| (a) The event, INVALID SIGNATURE, is logged in the appropriate system | (a) The event, INVALID SIGNATURE, is logged in the appropriate system | |||
| audit file. | audit file. | |||
| skipping to change at page 30, line 47 ¶ | skipping to change at page 32, line 15 ¶ | |||
| 3.3 Security Association Negotiation | 3.3 Security Association Negotiation | |||
| The SA Negotiation phase allows the initiating entity to present SA at- | The SA Negotiation phase allows the initiating entity to present SA at- | |||
| tributes that it wishes to use for secure communications to a respond- | tributes that it wishes to use for secure communications to a respond- | |||
| ing entity. These SA attributes may include additional options for the | ing entity. These SA attributes may include additional options for the | |||
| attributes agreed upon during the initialization phase, as well as ad- | attributes agreed upon during the initialization phase, as well as ad- | |||
| ditional attributes required for an SA. As an example, the SA parame- | ditional attributes required for an SA. As an example, the SA parame- | |||
| ters for the IP AH and IP ESP security mechanisms are cited in the Secu- | ters for the IP AH and IP ESP security mechanisms are cited in the Secu- | |||
| rity Architecture for the Internet Protocol [RFC-1825]. The format for | rity Architecture for the Internet Protocol [RFC-1825]. The format for | |||
| the ISA_NEG_REQ and ISA_NEG_RESP packets is the same as the ISA_INIT_REQ and | the ISA_NEG_REQ and ISA_NEG_RESP packets is the same as the ISA_INIT_REQ and | |||
| ISA_INIT_RESP shown in Figure 4. All fields shown in Figure 4 exist for | ISA_INIT_RESP shown in Figure 3. All fields shown in Figure 3 exist for | |||
| the ISA_NEG_REQ and ISA_NEG_RESP packets. | the ISA_NEG_REQ and ISA_NEG_RESP packets. | |||
| 3.3.1 SA Negotiation Procedures | 3.3.1 SA Negotiation Procedures | |||
| When issuing an ISA_NEG_REQ packet, the initiating entity does the follow- | When issuing an ISA_NEG_REQ packet, the initiating entity does the follow- | |||
| ing: | ing: | |||
| 1. Determine SA attributes to be negotiated. This may include changing | 1. Determine SA attributes to be negotiated. This may include changing | |||
| some attributes from the original SA initialization. | some attributes from the original SA initialization. | |||
| 2. Construct an ISA_NEG_REQ packet. If the initiator will send an | 2. Construct an ISA_NEG_REQ packet. | |||
| ISA_COMMIT message upon completion of the SA establishment, then the | ||||
| SA Flags field MUST be set (see section 2.3.5 and 3.4). | ||||
| 3. Depending on the SA Attributes established in the SA initialization | 3. Depending on the SA Attributes established in the SA initialization | |||
| phase, apply the agreed upon security services. | phase, apply the agreed upon security services. | |||
| (a) If the SA requires authentication, the ISA_NEG_REQ packet is pro- | (a) If the SA requires authentication, the ISA_NEG_REQ packet is pro- | |||
| cessed (or signed) and the signature placed as noted in Figure 1. | cessed (or signed) and the signature placed as noted in Figure 2. | |||
| (b) If the SA requires encryption and the encryption algorithm is a | (b) If the SA requires encryption and the encryption algorithm is a | |||
| block encryption algorithm, then padding up to the block size | block encryption algorithm, then padding up to the block size | |||
| MUST be placed as noted in Figure 1. | MUST be placed as noted in Figure 2. | |||
| (c) If the SA requires encryption, the ISA_NEG_REQ payload and | (c) If the SA requires encryption, the ISA_NEG_REQ payload and | |||
| Signature are encrypted. | Signature are encrypted. | |||
| 4. Transmit the packet to the responding host as described in Section | 4. Transmit the packet to the responding host as described in Section | |||
| 2.1.1. | 2.3.4. | |||
| When an ISA_NEG_REQ packet is received, the receiving entity does the fol- | When an ISA_NEG_REQ packet is received, the receiving entity does the fol- | |||
| lowing: | lowing: | |||
| 1. Check the ISAKMP header as described in Section 2.1.1. | 1. Check the ISAKMP header as described in Section 2.3.4. | |||
| 2. Depending on the SA Attributes, apply the agreed upon security | 2. Depending on the SA Attributes, apply the agreed upon security | |||
| services. | services. | |||
| (a) If the SA requires encryption, decrypt the ISA_NEG_REQ payload and | (a) If the SA requires encryption, decrypt the ISA_NEG_REQ payload and | |||
| Signature. If the decryption fails, the message is discarded and | Signature. If the decryption fails, the message is discarded and | |||
| the following actions are taken: | the following actions are taken: | |||
| i. The event, DECRYPTION FAILED, is logged in the appropriate | i. The event, DECRYPTION FAILED, is logged in the appropriate | |||
| system audit file. | system audit file. | |||
| skipping to change at page 32, line 31 ¶ | skipping to change at page 33, line 41 ¶ | |||
| 3. Unpack the ISA_NEG_REQ packet payload and determine the highest | 3. Unpack the ISA_NEG_REQ packet payload and determine the highest | |||
| priority SA attributes supported. If none of the SA attribute | priority SA attributes supported. If none of the SA attribute | |||
| options are supported, the ISA_NEG_RESP packet will have the value zero | options are supported, the ISA_NEG_RESP packet will have the value zero | |||
| (0) in the Number of Sets field and an SA will not be established. | (0) in the Number of Sets field and an SA will not be established. | |||
| 4. If the SA negotiation is requesting a key change or new | 4. If the SA negotiation is requesting a key change or new | |||
| authentication mechanism, then generate the appropriate information | authentication mechanism, then generate the appropriate information | |||
| and include it as an attribute in the ISA_NEG_RESP payload. | and include it as an attribute in the ISA_NEG_RESP payload. | |||
| 5. Construct an ISA_NEG_RESP packet. If the responder wants to request | 5. Construct an ISA_NEG_RESP packet. | |||
| that an ISA_COMMIT message be sent upon completion of the SA | ||||
| establishment, then the SA Flags field MUST be set (see section 2.3.5 | ||||
| and 3.4). | ||||
| 6. Depending on the SA Attributes, apply the agreed upon security | 6. Depending on the SA Attributes, apply the agreed upon security | |||
| services. | services. | |||
| (a) If the SA requires authentication, the ISA_NEG_RESP packet is | (a) If the SA requires authentication, the ISA_NEG_RESP packet is | |||
| processed and the signature placed as noted in Figure 1. | processed and the signature placed as noted in Figure 2. | |||
| (b) If the SA requires encryption and the encryption algorithm is a | (b) If the SA requires encryption and the encryption algorithm is a | |||
| block encryption algorithm, then padding up to the block size | block encryption algorithm, then padding up to the block size | |||
| MUST be placed as noted in Figure 1. | MUST be placed as noted in Figure 2. | |||
| (c) If the SA requires encryption, the ISA_NEG_RESP payload and | (c) If the SA requires encryption, the ISA_NEG_RESP payload and | |||
| Signature are encrypted. | Signature are encrypted. | |||
| 7. Transmit the packet to the initiating host as described in Section | 7. Transmit the packet to the initiating host as described in Section | |||
| 2.1.1. | 2.3.4. | |||
| 8. If required, begin calculation of the new session key in the | 8. If required, begin calculation of the new session key in the | |||
| background. | background. | |||
| 9. Transition to SA Negotation Conclusion (see Section 3.4). | 9. Return appropriate data (i.e. SA, SPI) to negotiation server, clear | |||
| all state, and return to IDLE. | ||||
| When an ISA_NEG_RESP message is received, the receiving entity (original | When an ISA_NEG_RESP message is received, the receiving entity (original | |||
| initiator) does the following: | initiator) does the following: | |||
| 1. Check the ISAKMP header as described in Section 2.1.1. | 1. Check the ISAKMP header as described in Section 2.3.4. | |||
| 2. Depending on the SA Attributes, apply the agreed upon security | 2. Depending on the SA Attributes, apply the agreed upon security | |||
| services. | services. | |||
| (a) If the SA requires encryption, decrypt the ISA_NEG_RESP payload and | (a) If the SA requires encryption, decrypt the ISA_NEG_RESP payload and | |||
| Signature. If the decryption fails, the message is discarded and | Signature. If the decryption fails, the message is discarded and | |||
| the following actions are taken: | the following actions are taken: | |||
| i. The event, DECRYPTION FAILED, is logged in the appropriate | i. The event, DECRYPTION FAILED, is logged in the appropriate | |||
| system audit file. | system audit file. | |||
| skipping to change at page 34, line 19 ¶ | skipping to change at page 35, line 28 ¶ | |||
| If the attribute set (or list) is valid, the receiving entity does | If the attribute set (or list) is valid, the receiving entity does | |||
| the following: | the following: | |||
| (a) Configure the protocol machine based on the attribute set (or | (a) Configure the protocol machine based on the attribute set (or | |||
| list) selected. | list) selected. | |||
| 4. If required, begin calculation of the new session key in the | 4. If required, begin calculation of the new session key in the | |||
| background. | background. | |||
| 5. Transition to SA Negotiation Conclusion (see Section 3.4). | 5. Return appropriate data (i.e. SA, SPI) to negotiation server, clear | |||
| all state, and return to IDLE. | ||||
| 3.4 SA Negotiation Conclusion | ||||
| The SA negotiation concludes with the transmittal of the optional | ||||
| SA_COMMIT packet. This is determined by the setting of the SA Flags | ||||
| field. The SA_COMMIT message allows the initiating entity to inform the | ||||
| responding party that it has completed the processing required to set-up | ||||
| the SA and therefore, secure communications may begin. If the entity ini- | ||||
| tiating the SA establishment does not have the ability to queue incoming | ||||
| data it may receive prior to its completion of SA establishment process- | ||||
| ing, then it requires the responding entity to wait for an SA_COMMIT mes- | ||||
| sage before sending data. The transmittal of the ISA_COMMIT packet is op- | ||||
| tional and determined by the policy of the parties establishing the SA. | ||||
| All implementations MUST be able to generate, transmit, and receive this | ||||
| message. | ||||
| The ISA_COMMIT packet is the ISAKMP header, described in section 2.1, with | ||||
| no payload. | ||||
| 3.4.1 SA Negotiation Conclusion Procedures | ||||
| When issuing an ISA_COMMIT packet, the initiating entity does the follow- | ||||
| ing: | ||||
| 1. Construct an ISA_COMMIT packet (ISAKMP Header). | ||||
| 2. Depending on the SA Attributes established in the SA initialization | ||||
| phase, apply the agreed upon security services. | ||||
| (a) If the SA requires authentication, the ISA_COMMIT packet is pro- | ||||
| cessed (or signed) and the signature placed as noted in Figure 1. | ||||
| (b) If the SA requires encryption and the encryption algorithm is a | ||||
| block encryption algorithm, then padding up to the block size | ||||
| MUST be placed as noted in Figure 1. | ||||
| (c) If the SA requires encryption, the ISA_COMMIT Signature is | ||||
| encrypted. | ||||
| 3. Transmit the packet to the responding host as described in Section | ||||
| 2.1.1. | ||||
| 4. Clear all state and return to IDLE. | ||||
| When an ISA_COMMIT packet is received, the receiving entity does the fol- | 1 2 3 | |||
| lowing: | 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 | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| ~ ISAKMP Header ~ | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| ! Next Payload ! Payload Len ! RESERVED ! | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| ! Domain of Interpretation ! | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| ! ! | ||||
| ~ Situation ~ | ||||
| ! ! | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| ! ! | ||||
| ~ Proposal ~ | ||||
| ! ! | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| 1. Check the ISAKMP header as described in section 2.1.1. | Figure 3: ISA_INIT_REQ and ISA_INIT_RESP Packet Format | |||
| 2. Depending on the SA Attributes, apply the agreed upon security | 1 2 3 | |||
| services. | 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 | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| ~ ISAKMP Header ~ | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| ! Next Payload ! Payload Len ! RESERVED ! | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| ~ ~ | ||||
| ! Authentication Payload ! | ||||
| ~ ~ | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| ! Next Payload ! Payload Len ! RESERVED ! | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| ~ ~ | ||||
| ! Key Exchange Payload ! | ||||
| ~ ~ | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| (a) If the SA requires encryption, decrypt the ISA_COMMIT Signature. | Figure 4: ISA_AUTH&KE_REQ and ISA_AUTH&KE_RESP Packet Format | |||
| If the decryption fails, the message is discarded and the | 1 2 3 | |||
| following actions are taken: | 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 ! Payload Len ! RESERVED ! | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| ! Authentication Authority ! Reserved ! | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| ! Authentication Type ! Length ! | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| ~ ~ | ||||
| ! Authentication Data ! | ||||
| ~ ~ | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| i. The event, DECRYPTION FAILED, is logged in the appropriate | Figure 5: Authentication Payload Format | |||
| system audit file. | ||||
| ii. Because the ISA_COMMIT packet is a unidirectional message a | 1 2 3 | |||
| retransmission will not be performed. Because the SA is | 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 | |||
| established, we recommend that communications can proceed, | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| however, the local security policy will dictate the | ! Next Payload ! Payload Len ! RESERVED ! | |||
| procedures for continuing. We recommend that an ISA_NOTIFY | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| packet with an Error Message Type (see Section 6) be sent to | ! KEI ! Length ! | |||
| the originator of the ISA_COMMIT packet. | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| ~ ~ | ||||
| ! Key Exchange Data ! | ||||
| ~ ~ | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| (b) If the SA requires authentication, the ISA_COMMIT packet is | Figure 6: Key Exchange Payload Format | |||
| processed and the calculated signature is compared to the | ||||
| signature contained in the ISA_COMMIT packet. If these signatures | ||||
| are not identical, the message is discarded and the following | ||||
| actions are taken: | ||||
| i. The event, INVALID SIGNATURE, is logged in the appropriate | o KEI (2 octets) - Key Exchange Identifier | |||
| system audit file. | ||||
| ii. Because the ISA_COMMIT packet is a unidirectional message a | o Length (2 octets) - Length of payload in octets | |||
| retransmission will not be performed. Because the SA is | ||||
| established, we recommend that communications can proceed, | ||||
| however, the local security policy will dictate the | ||||
| procedures for continuing. We recommend that an ISA_NOTIFY | ||||
| packet with an Error Message Type (see Section 6) be sent to | ||||
| the originator of the ISA_COMMIT packet. | ||||
| 3. Clear all state and return to IDLE. | o Key Exchange Data (variable) - Data (i.e. public values) required to | |||
| create session key. | ||||
| 4 Security Association Modification | 4 Security Association Modification | |||
| Security Association modification provides the ability to update security | Security Association modification provides the ability to update security | |||
| association attributes and parameters within an existing SA without having | association attributes and parameters within an existing SA without having | |||
| to establish a new SA. The use of this exchange can provide performance | to establish a new SA. The use of this exchange can provide performance | |||
| benefits without sacrificing the security of the existing communication. | benefits without sacrificing the security of the existing communication. | |||
| The most common use of this exchange will be to re-key an existing SA. | The most common use of this exchange will be to re-key an existing SA. | |||
| The format for the ISA_MODIFY packet is the same as the ISA_INIT_REQ and | The format for the ISA_MODIFY packet is the same as the ISA_INIT_REQ and | |||
| ISA_INIT_RESP shown in Figure 4. All fields shown in Figure 4 exist for | ISA_INIT_RESP shown in Figure 3. | |||
| the ISA_MODIFY packets. | ||||
| 4.1 Modification Procedures | 4.1 Modification Procedures | |||
| The procedure for exchanging information to modify an SA are similiar to | The procedure for exchanging information to modify an SA are similiar to | |||
| the SA negotiation exchange. The details of SA modification will be de- | the SA negotiation exchange. The details of SA modification will be de- | |||
| scribed in this section as they are solidified during prototype develop- | scribed in this section as they are solidified during prototype develop- | |||
| ment. | ment. | |||
| 5 Security Association Deletion | 5 Security Association Deletion | |||
| During communications it is possible that hosts may be compromised or that | During communications it is possible that hosts may be compromised or that | |||
| information may be intercepted during transmission. Determining whether | information may be intercepted during transmission. Determining whether | |||
| this has occurred is not an easy task and is outside the scope of this | this has occurred is not an easy task and is outside the scope of this | |||
| Internet-Draft. However, if it is discovered that transmissions are being | Internet-Draft. However, if it is discovered that transmissions are being | |||
| compromised, then it is necessary to delete the current SA and establish a | compromised, then it is necessary to delete the current SA and establish a | |||
| new SA. | new SA. | |||
| The ISA_DELETE packet (shown in Figure 8) provides a controlled method of | The ISA_DELETE packet (shown in Figure 7) provides a controlled method of | |||
| informing a peer entity that the initiating entity has deleted an SA(s). | informing a peer entity that the initiating entity has deleted an SA(s). | |||
| The ISA_DELETE packet allows for the deletion of any number of SAs with | The ISA_DELETE packet allows for the deletion of any number of SAs with | |||
| a single message. The receiving entity SHOULD clean up its local SA | a single message. The receiving entity SHOULD clean up its local SA | |||
| database. The receiving entity may be using the SA for secure communi- | database. The receiving entity may be using the SA for secure communi- | |||
| cations with more than one party and would not want to actually delete the | cations with more than one party and would not want to actually delete the | |||
| SA from its database in this case. However, upon receipt of an ISA_DELETE | SA from its database in this case. However, upon receipt of an ISA_DELETE | |||
| packet the SAs listed in the SPIs field of the packet cannot be used with | packet the SAs listed in the SPIs field of the packet cannot be used with | |||
| the initiating entity. The SA Establishment procedure must be invoked to | the initiating entity. The SA Establishment procedure must be invoked to | |||
| re-establish secure communications. | re-establish secure communications. | |||
| 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 | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| ~ ISAKMP Header ~ | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| ! SPI Count ! Length ! | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| ~ ~ | ||||
| ! SPIs ! | ||||
| ~ ~ | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| Figure 8: SA Delete Payload Format | ||||
| o SPI Count - Number of security associations to be deleted | o SPI Count - Number of security associations to be deleted | |||
| o Length - length of payload in octets | o Length - length of payload in octets | |||
| o SPIs - Initiator's Security Parameter Index(s) to be deleted | o SPIs - Initiator's Security Parameter Index(s) to be deleted | |||
| 5.1 Deletion Procedures | 5.1 Deletion Procedures | |||
| When issuing an ISA_DELETE packet, the issuing entity (initiator or re- | When issuing an ISA_DELETE packet, the issuing entity (initiator or re- | |||
| sponder) does the following: | sponder) does the following: | |||
| 1. Create initiator cookie. See Section 2.3.4 for details. | 1. Create initiator cookie. See Section 2.3.7 for details. | |||
| 2. Determine SPI of receiving entity. | 2. Determine SPI of receiving entity. | |||
| 3. Construct the ISA_DELETE packet. | 3. Construct the ISA_DELETE packet. | |||
| 4. Depending on the SA Attributes, apply the agreed upon security | 4. Depending on the SA Attributes, apply the agreed upon security | |||
| services. | services. | |||
| (a) If the SA requires authentication, the ISA_DELETE packet is | (a) If the SA requires authentication, the ISA_DELETE packet is | |||
| processed and the signature placed as noted in Figure 1. | processed and the signature placed as noted in Figure 2. | |||
| (b) If the SA requires encryption, the ISA_DELETE payload and | (b) If the SA requires encryption, the ISA_DELETE payload and | |||
| Signature are encrypted. | Signature are encrypted. | |||
| 5. Transmit the packet to the destination host as described in Section | 5. Transmit the packet to the destination host as described in Section | |||
| 2.1.1. | 2.3.4. | |||
| 6. Update the local SA database to reflect the SPI deletions. | 6. Update the local SA database to reflect the SPI deletions. | |||
| Upon receipt of an ISA_DELETE packet, the receiving entity (initiator or | Upon receipt of an ISA_DELETE packet, the receiving entity (initiator or | |||
| responder) does the following: | responder) does the following: | |||
| 1. Check the ISAKMP header as described in Section 2.1.1. | 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 | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| ~ ISAKMP Header ~ | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| ! SPI Count ! Length ! | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| ~ ~ | ||||
| ! SPIs ! | ||||
| ~ ~ | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| Figure 7: SA Delete Payload Format | ||||
| 1. Check the ISAKMP header as described in Section 2.3.4. | ||||
| 2. Depending on the SA Attributes, apply the agreed upon security | 2. Depending on the SA Attributes, apply the agreed upon security | |||
| services in the following order. | services in the following order. | |||
| (a) If the SA requires encryption, decrypt the ISA_DELETE payload and | (a) If the SA requires encryption, decrypt the ISA_DELETE payload and | |||
| Signature. If the decryption fails, the message is discarded and | Signature. If the decryption fails, the message is discarded and | |||
| the following actions are taken: | the following actions are taken: | |||
| i. The event is logged in the appropriate system audit file. | i. The event is logged in the appropriate system audit file. | |||
| skipping to change at page 39, line 23 ¶ | skipping to change at page 41, line 12 ¶ | |||
| 4. Update the local SA database to reflect the SPI deletions. | 4. Update the local SA database to reflect the SPI deletions. | |||
| 6 Notification Message | 6 Notification Message | |||
| The ISAKMP ISA_NOTIFY packet contains information one party wants to send | The ISAKMP ISA_NOTIFY packet contains information one party wants to send | |||
| to another. Notification information can be error messages specifying | to another. Notification information can be error messages specifying | |||
| why a SA could not be established. It can also be status data that a | why a SA could not be established. It can also be status data that a | |||
| process managing an SA database wishes to communicate with a peer pro- | process managing an SA database wishes to communicate with a peer pro- | |||
| cess. For example, a secure front end or security gateway may use the | cess. For example, a secure front end or security gateway may use the | |||
| ISA_NOTIFY message to synchronize SA communication (see Appendix A.2). | ISA_NOTIFY message to synchronize SA communication (see Appendix B.2). | |||
| The ISA_NOTIFY packet is unidirectional. | The ISA_NOTIFY packet is unidirectional. | |||
| 1 2 3 | 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 | 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 | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| ~ ISAKMP Header ~ | ~ ISAKMP Header ~ | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| ! Notify Message Type ! Length ! | ! Notify Message Type ! Length ! | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| ~ ~ | ~ ~ | |||
| ! Notify Payload ! | ! Notify Payload ! | |||
| ~ ~ | ~ ~ | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Figure 9: ISA NOTIFY Payload Format | Figure 8: ISA NOTIFY Payload Format | |||
| o Notify Message Type (2 octets) | o Notify Message Type (2 octets) | |||
| _Notification__Notify_Message_Type_ | ______Notification_______Notify_Message_Type__ | |||
| Error 1 | RESERVED 0 | |||
| Status 2 | Error 1-16383 | |||
| Reserved for Future Use 16384-32767 | ||||
| Status 32768-49151 | ||||
| DOI Specific 49152-65536 | ||||
| o Length (2 octets) - length of payload in octets | o Length (2 octets) - length of payload in octets | |||
| o Notify Payload (variable) - Value dependent on the Notify Message | o Notify Payload (variable) - Value dependent on the Notify Message | |||
| Type | Type | |||
| 6.1 Notification Procedures | 6.1 Notify Message Types | |||
| Notify Messages - Errors Types | ||||
| __________Errors___________Value_Payload__ | ||||
| DOI-NOT-SUPPORTED 1 | ||||
| SITUATION-NOT-SUPPORTED 2 | ||||
| INVALID-COOKIE 3 | ||||
| INVALID-VERSION-NO 4 | ||||
| INVALID-MESSAGE-TYPE 5 | ||||
| INVALID-EXCHANGE-TYPE 6 | ||||
| INVALID-SPI 7 | ||||
| ATTRIBUTES-NOT-SUPPORTED 8 | ||||
| NO-PROPOSAL-CHOOSEN 9 | ||||
| BAD-PROPOSAL-SYNTAX 10 | ||||
| ATTRIBUTES-NOT-SUPPORTED 11 | ||||
| INVALID-SIGNATURE 12 | ||||
| DECRYPTION-FAILED 13 | ||||
| Notify Messages - Status Types | ||||
| __Status____Value____Payload____ | ||||
| CONNECTED 32769 | ||||
| 6.2 Notification Procedures | ||||
| When issuing an ISA_NOTIFY message, the issuing entity (initiator or re- | When issuing an ISA_NOTIFY message, the issuing entity (initiator or re- | |||
| sponder) does the following: | sponder) does the following: | |||
| 1. Create initiator cookie. See Section 2.3.4 for details. | 1. Create initiator cookie. See Section 2.3.7 for details. | |||
| 2. Determine SPI of receiving entity. | 2. Determine SPI of receiving entity. | |||
| 3. Construct ISA_NOTIFY packet. | 3. Construct ISA_NOTIFY packet. | |||
| 4. Depending on the SA Attributes, apply the agreed upon security | 4. Depending on the SA Attributes, apply the agreed upon security | |||
| services. | services. | |||
| (a) If the SA requires authentication, the ISA_NOTIFY packet is | (a) If the SA requires authentication, the ISA_NOTIFY packet is | |||
| processed and the signature placed as noted in Figure 1. | processed and the signature placed as noted in Figure 2. | |||
| (b) If the SA requires encryption, the ISA_NOTIFY payload and | (b) If the SA requires encryption, the ISA_NOTIFY payload and | |||
| Signature are encrypted. | Signature are encrypted. | |||
| 5. Transmit the packet to the destination host as described in Section | 5. Transmit the packet to the destination host as described in Section | |||
| 2.1.1. | 2.3.4. | |||
| Upon receipt of an ISA_NOTIFY message, the receiving entity (initiator or | Upon receipt of an ISA_NOTIFY message, the receiving entity (initiator or | |||
| responder) does the following: | responder) does the following: | |||
| 1. Check the ISAKMP header as described in Section 2.1.1. | 1. Check the ISAKMP header as described in Section 2.3.4. | |||
| 2. Depending on the SA Attributes, apply the agreed upon security | 2. Depending on the SA Attributes, apply the agreed upon security | |||
| services in the following order. | services in the following order. | |||
| (a) If the SA requires encryption, decrypt the ISA_NOTIFY payload and | (a) If the SA requires encryption, decrypt the ISA_NOTIFY payload and | |||
| Signature. If the decryption fails, the message is discarded and | Signature. If the decryption fails, the message is discarded and | |||
| the following actions are taken: | the following actions are taken: | |||
| i. The event is logged in the appropriate system audit file. | i. The event is logged in the appropriate system audit file. | |||
| skipping to change at page 42, line 8 ¶ | skipping to change at page 44, line 8 ¶ | |||
| policy will dictate the procedures for continuing. | policy will dictate the procedures for continuing. | |||
| 3. Unpack the ISA_NOTIFY payload. | 3. Unpack the ISA_NOTIFY payload. | |||
| 4. Depending on the Notify Message Type, additional processing may be | 4. Depending on the Notify Message Type, additional processing may be | |||
| necessary. | necessary. | |||
| 7 Conclusions | 7 Conclusions | |||
| The Internet Security Association and Key Management Protocol (ISAKMP) is | The Internet Security Association and Key Management Protocol (ISAKMP) is | |||
| a well designed protocol aimed at the Internet of the future. The massive | a well designed protocol aimed at the Internet of the future. The mas- | |||
| growth of the Internet will lead to great diversity in network utiliza- | sive growth of the Internet will lead to great diversity in network uti- | |||
| tion, communications, and security requirements. ISAKMP contains all the | lization, communications, security requirements, and security mechanisms. | |||
| features that will be needed for this dynamic and expanding communications | ISAKMP contains all the features that will be needed for this dynamic and | |||
| environment. | expanding communications environment. | |||
| ISAKMP's Security Association (SA) feature coupled with authentication | ISAKMP's Security Association (SA) feature coupled with authentication | |||
| and key establishment provides the security and flexibility that will be | and key establishment provides the security and flexibility that will be | |||
| needed for future growth and diversity. This security diversity of multi- | needed for future growth and diversity. This security diversity of multi- | |||
| ple key exchange techniques, encryption algorithms, authentication mecha- | ple key exchange techniques, encryption algorithms, authentication mecha- | |||
| nisms, security services, and security attributes will allow users to se- | nisms, security services, and security attributes will allow users to se- | |||
| lect the appropriate security for their network, communications, and secu- | lect the appropriate security for their network, communications, and secu- | |||
| rity needs. The SA feature allows users to specify and negotiate security | rity needs. The SA feature allows users to specify and negotiate security | |||
| requirements with other users. An additional benefit of supporting multi- | requirements with other users. An additional benefit of supporting multi- | |||
| ple techniques in a single protocol is that as new techniques are devel- | ple techniques in a single protocol is that as new techniques are devel- | |||
| skipping to change at page 43, line 5 ¶ | skipping to change at page 45, line 5 ¶ | |||
| tion provides the assurance that the SAs and keys established are with the | tion provides the assurance that the SAs and keys established are with the | |||
| desired party and not with an attacker. | desired party and not with an attacker. | |||
| ISAKMP also follows good protocol design principles. Protocol specific | ISAKMP also follows good protocol design principles. Protocol specific | |||
| information only is in the protocol header, following the design prin- | information only is in the protocol header, following the design prin- | |||
| ciples of IPv6. The data transported by the protocol is separated into | ciples of IPv6. The data transported by the protocol is separated into | |||
| functional payloads. As the Internet grows and evolves, new payloads to | functional payloads. As the Internet grows and evolves, new payloads to | |||
| support new security functionality can be added without modifying the en- | support new security functionality can be added without modifying the en- | |||
| tire protocol. | tire protocol. | |||
| A ISAKMP Scenarios | A IP Security DOI | |||
| Examples scenerios are are presented to help illustrate the ISAKMP's abil- | The IP Security DOI Assigned Number for IPv4 is one (1). The situation | |||
| ity to support multiple authentication methods and key exchanges. | for DOI 1 is an IPv4 address. The IP Security DOI Assigned Number for | |||
| IPv6 is two (2). The situation for DOI 2 is an IPv6 address. | ||||
| A.1 Initial ISAKMP Daemon Scenerio | A.1 IP Security Proposal Formats | |||
| This example steps through two ISAKMP daemons establishing an SA between | This section defines the IP Security syntax for SA proposals and secu- | |||
| themselves. This SA uses DNS Security Extentions [EK94] for authentica- | rity attributes. The SA proposals for a security protocol (i.e. ESP) are | |||
| tion and a Photuris [Karn95] compliant key exchange. Following the SA es- | carried in an SA payload. The SA payload is sent in the following mes- | |||
| tablishment between the daemons, SAs are established for ESP and AH commu- | sages: ISA_INIT_REQ, ISA_INIT_RESP, ISA_NEG_REQ, ISA_NEG_RESP, ISA_MOD_REQ, | |||
| nications between user processes. | and | |||
| ISA_MOD_RESP. This syntax groups the security attributes needed to perform | ||||
| a security function together. The proposal and attribute formats are de- | ||||
| fined so additions or modifications to the proposals or attributes do not | ||||
| require a modification to the protocol. | ||||
| 1. The initiating daemon sends an ISA_INIT_REQ messages with ISAKMP SA #3, | Figure 9 shows the SA proposal format which contains the SA attributes. | |||
| #2, and #1 (in priority order). These SAs are defined in C.1.1. | There can be one or more SA attribute in each SA proposal. There can one | |||
| or more SA proposals sent for each security protocol, but only one re- | ||||
| sponse per security protocol is allowed. A negative response, such as: | ||||
| IMPROPER SA PROPOSAL FORMAT, is returned in an ISA_NOTIFY message. | ||||
| 2. The responding daemon sends an ISA_INIT_RESP message indicating that | 1 2 3 | |||
| ISAKMP SA #2 was selected, which requires DNS Signature and Key | 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 | |||
| Records and a Photuris compliant key exchange [DOW92]. | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| ! Protocol # ! Proposal # ! Proposal Len ! RESERVED ! | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| ! ! | ||||
| + + | ||||
| . . | ||||
| . SA Attributes . | ||||
| . . | ||||
| + + | ||||
| ! ! | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| 3. The initiating daemon sends an ISA_KE_REQ packet with an index into | Figure 9: SA Proposal Format | |||
| well-known table of generator / prime pairs and it's public value. | ||||
| 4. Upon receipt of ISA_KE_REQ packet the responding daemon computes the | o Protocol Number (1 octet) - Identifies the security protocol | |||
| shared secret and session key. | requiring the SA attributes proposed. Uses the same values as the | |||
| IPv4 Protocol field [RFC-1700]. | ||||
| 5. The responding daemon sends an ISA_KE_RESP packet with an its public | o Proposal Number (1 octet) - Unique proposal identifier for the given | |||
| value and both the initiator and responders public values signed | security protocol. | |||
| using its Private (Signature) Key and encrypted in the session key | ||||
| created. | ||||
| 6. Upon receipt of ISA_KE_REQ packet the initiating daemon computes the | o Proposal Length (1 octet) - Specifies the proposal length in 4-octet | |||
| shared secret and session key. | units. Each IP Security proposal is an integer multiple of 4 octets | |||
| long. | ||||
| 7. The initiating daemon sends an ISA_AUTH_REQ packet with both the | o SA Attributes - Variable length field containing the attributes for | |||
| initiator and responders public values signed using its Private | an SA. | |||
| (Signature) Key and it's DNS name and Public (Verification) Key | ||||
| signed by it nameserver. All encrypted in the session key created. | ||||
| 8. The responding daemon sends an ISA_AUTH_RESP packet with it's DNS name | Figure 10 shows the SA attribute format. The most significant bit of the | |||
| and Public (Verification) signed by it Secure DNS nameserver and | Attribute Class defines a grouping of attributes within a proposal. The | |||
| encrypted in the session key created. | second most significant bit indicates whether the attribute is of type | |||
| basic or variable percision integer (VPI). Negative responses, such as: | ||||
| UNKNOWN SA ATTRIBUTE, are returned in an ISA_NOTIFY message. | ||||
| 9. The initiating daemon sends an ISA_NEG_REQ packet with ESP SA #2, ESP | o Attribute Class (2 octets) - Unique identifier for each general class | |||
| SA #1, AH SA #1, and AH SA #2. These SAs are defined in C.2.1. | of attribute type. ENCRYPTION ALGORITHM is an example of an | |||
| attribute class. (See A.4 for the assigned attribute class values | ||||
| for ESP, AH, and Oakley.) | ||||
| 10. The responding daemon sends an ISA_NEG_RESP packet indicating that ESP | The most significant bit (SET) of the Attribute Class is for indicating | |||
| SA #2, and AH SA #1 was selected. | a grouping of attributes within a proposal. If the SET bit is one (1) | |||
| the following attribute belongs with the current attribute. There can be | ||||
| two or more attributes in a group. If the SET bit is zero (0) either the | ||||
| 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 | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| !S!T! ! TYP=0 VPI Length ! | ||||
| !E!Y! Attribute Class ! TYP=1 SA Attribute Value ! | ||||
| !T!P! ! ! | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| . . | ||||
| . TYP=0 VPI Present . | ||||
| . . | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| A.2 Virtual Private Network Scenario | Figure 10: Attribute Format | |||
| This scenario show how ISAKMP can be used in a Virtual Public Network | attribute is the last in a set or is an individual attribute. Attributes | |||
| should be grouped together when a security policy decision must be made | ||||
| based on how attributes relate to each other, in addition to individual | ||||
| meaning. | ||||
| The second most significant bit (TYP) of the Attribute Class is for indi- | ||||
| cating whether the attribute is a basic type or a variable percision inte- | ||||
| ger (VPI). If the TYP bit is a zero (0) then the attribute is a VPI type. | ||||
| If the TYP bit is a one (1) then the attribute is a basic type. | ||||
| Figure 11 shows the basic SA attribute format and Figure 12 shows the VPI | ||||
| SA attribute format. | ||||
| 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 | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| !S!1! Attribute Class ! SA Attribute Value ! | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| Figure 11: Basic Attribute Format | ||||
| o Value (2 octets) - The value of the SA attribute as defined by the | ||||
| Attribute class. (See A.5 for the assigned attribute values for IP | ||||
| Security.) | ||||
| 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 | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| !S!0! Attribute Class ! VPI Length ! | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| . . | ||||
| . VPI . | ||||
| . . | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| Figure 12: VPI Attribute Format | ||||
| o VPI Length (2 octets) - Specifies the VPI's length in 4-octet units. | ||||
| Each VPI is an integer multiple of 4 octets long. | ||||
| o VPI - Variable Percision Integer. The field is aligned so the most | ||||
| significant bit is in the first 4-octet word following the VPI | ||||
| Length. | ||||
| A.2 ESP SA and AH SA Proposals | ||||
| The ESP and AH SAs are defined in [RFC-1825]. This section defines the | ||||
| format for the ESP and AH SA proposals. The attribute class fields are | ||||
| as they would appear in an ESP or AH SA Proposal. The attribute value and | ||||
| VPI fields contain examples of the information they would contain. | ||||
| Note: The Lifetime fields (Key and SA) can be either basic or VPI at- | ||||
| tributes. Therefore when parsing the Attribute Class, the TYP bit must | ||||
| always be checked. | ||||
| 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 | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| ! AH ! Proposal # ! Proposal Len ! RESERVED ! | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| !1!1! Authentication Alg ! MD5 ! | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| !0!1! Authentication Mode ! KEYED ! | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| !0!1! Auth Key Exch Id ! Oakley New Group Mode ! | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| !0!0! Key Lifetime ! 1! | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| ! Time (in seconds) ! | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| !0!0! SA Lifetime ! 1! | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| ! Time (in seconds) ! | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| !0!0! IP Source Address(es) ! 1! | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| ! IPv4 Address ! | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| !0!1! Sensitivity Level ! SECRET ! | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| Figure 13: AH Proposal Format | ||||
| 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 | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| ! ESP ! Proposal # ! Proposal Len ! RESERVED ! | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| !1!1! Encryption Algorithm ! DES ! | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| !0!1! Encryption Mode ! CBC ! | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| !0!1! Encryption Transform ! RFC-1828 ! | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| !0!1! Enc Key Exch Id ! Oakley EXTERNAL KEY MODE ! | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| !0!0! Crypotgraphic Synch ! Length ! | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| ! MPI ! | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| !0!1! Replay Protection ! Present / Absent ! | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| !1!1! Authentication Alg ! MD5 ! | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| !0!1! Authentication Mode ! KEYED ! | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| !0!1! Auth Key Exch Id ! Oakley PRIVATE GROUP MODE ! | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| !0!1! Key Lifetime ! Time (in seconds) ! | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| !0!0! SA Lifetime ! 1! | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| ! Time (in seconds) ! | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| !0!0! IP Source Address(es) ! 4! | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| ! IPv6 Address ! | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| !0!1! Sensitivity Level ! SECRET ! | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| Figure 14: ESP Proposal Format | ||||
| A.3 Oakley Proposal | ||||
| The Oakley proposal format contains the SA attributes that are exchanged | ||||
| in the ISA_INIT messages in order to establish the required security at- | ||||
| tributes for the key and authentication exchange. See [Oakley] for fur- | ||||
| ther details. | ||||
| Note: The three figures 15, 16, and 17 are all combine to make one pro- | ||||
| posal. They are shown seperately for reading and formatting ease. | ||||
| 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 | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| ! Oakley ! Proposal # ! Proposal Len ! RESERVED ! | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| ! EHA Format ! | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| ! Group Format ! | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| Figure 15: Oakley Proposal Format | ||||
| 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 | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| !0!1! Auth / Priv Flag ! PRIV ! | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| !0!1! Encryption Algorithm ! DES ! | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| !0!1! Hash Algorithm ! MD5 ! | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| !1!1! Authentication Alg ! RSA ! | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| !0!1! Authentication Mode ! KEYED ! | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| Figure 16: Oakley Proposal - EHA Format | ||||
| 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 | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| !1!1! Group Description ! MODP ! | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| !1!0! Field Size ! Length ! | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| ! MPI ! | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| !1!0! Prime ! Length ! | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| ! MPI ! | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| !1!0! Generator1 ! Length ! | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| ! MPI ! | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| !1!0! Generator2 ! Length ! | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| ! MPI ! | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| !1!0! Curve-p1 ! Length ! | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| ! MPI ! | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| !1!0! Curve-p2 ! Length ! | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| ! MPI ! | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| !1!0! Largest Prime Factor ! Length ! | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| ! MPI ! | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| !1!0! Order of Group ! Length ! | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| ! MPI ! | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| !0!0! Strength of Group ! Length ! | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| ! MPI ! | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| Figure 17: Oakley Proposal - Group Format | ||||
| A.4 Attribute Class Assigned Numbers | ||||
| Values for attribute classes are specified in the most recent ``Assigned | ||||
| Numbers'' RFC [RFC-1700]. Presented in the following tables are the val- | ||||
| ues for ESP, AH, and Oakley SAs. In the Attribute Type Column, a ``B'' | ||||
| means basic encoding and ``V'' mean Variable Percision Integer. | ||||
| AH and ESP Attribute Classes | ||||
| ___________________Class_____________________Assigned_Value__Attribute_Type__ | ||||
| RESERVED 0 x | ||||
| RESERVED 1 x | ||||
| Authentication Algorithm 2 B | ||||
| Authentication Mode 3 B | ||||
| Authentication KEI(s) 4 B | ||||
| Encryption Algorithm 5 B | ||||
| Encryption Mode 6 B | ||||
| Encryption Transform 7 B | ||||
| Encyption KEI(s) 8 B | ||||
| Size of cryptographic synchronization or IV 9 B/V | ||||
| Replay Protection 10 B | ||||
| Key Lifetime 11 B/V | ||||
| Rekey Value 12 B/V | ||||
| SA Lifetime 13 B/V | ||||
| IP Source Address(es) 14 V | ||||
| Sensitivity Level 15 B | ||||
| Oakley Attributes Classes | ||||
| __________________Class____________________Assigned_Value__Attribute_Type__ | ||||
| Auth / Private Flag 16 B | ||||
| Hash Algorithm 17 B | ||||
| Group Description 18 B | ||||
| Group Type 19 B | ||||
| Field Element Size 20 V | ||||
| Print (P) or Irreducible Field Polynomial 21 V | ||||
| Generator (1 or 2 values) 22 V | ||||
| Curve Parameters (2 values) 23 V | ||||
| Largest Prime Factor of the Group Size 24 V | ||||
| Order of the Group 25 V | ||||
| Strength of Group 26 V | ||||
| Attribute class values 27-1024 are reserved for IANA Use. Attribute | ||||
| class values 1025-15360 are reserved for future use. Attribute class val- | ||||
| ues 15360-16384 are reserved for private use. | ||||
| A.5 Attribute Value Assigned Numbers | ||||
| A.5.1 Sensitivity Level Assigned Numbers | ||||
| Sensitivity Level | ||||
| _____Level_____Assigned_Value | ||||
| Not In Use 0 | ||||
| Unclassified 1 | ||||
| FOUO 2 | ||||
| Undefined 3 | ||||
| Confidential 4 | ||||
| Secret 5 | ||||
| Top Secret 6 | ||||
| Sensitivity values 7-1024 are reserved for IANA Use. Values 1025-15360 | ||||
| are reserved for future use. Values 15360-16384 are reserved for private | ||||
| use. | ||||
| A.5.2 Key Exchange Identifiers (KEI) Assigned Numbers | ||||
| Key Exchange Identifiers (KEI) | ||||
| _____Key_Exchange_____Assigned_Value_ | ||||
| Reserved 0 | ||||
| Oakley Main Mode 1 | ||||
| Oakley ISAKMP Mode 2 | ||||
| Oakley Quick Mode 3 | ||||
| Oakley External Mode 4 | ||||
| KEI values 5-1024 are reserved for IANA Use. Values 1025-15360 are re- | ||||
| served for future use. Values 15360-16384 are reserved for private use. | ||||
| A.5.3 Encryption Transform Assigned Numbers | ||||
| Encryption Transforms | ||||
| _____Transform_____Assigned_Value | ||||
| Reserved 0 | ||||
| RFC-1829 1 | ||||
| DES-CBC w/Replay 2 | ||||
| Encryption Transform values 3-1024 are reserved for IANA Use. Values | ||||
| 1025-15360 are reserved for future use. Values 15360-16384 are reserved | ||||
| for private use. | ||||
| B ISAKMP Scenarios | ||||
| Examples scenerios are are presented to help illustrate the ISAKMP's abil- | ||||
| ity to support multiple authentication methods and key exchanges. | ||||
| B.1 Oakley Scenario | ||||
| ___________|_______________Oakley_Scenario_____________________________Entity | ||||
| N#1SI#1NTERNETNSE#2ntity #2 | ||||
| _______|| _______|| | ||||
| | | Establish Initial SA Between NSs| | | ||||
| | | | | | ||||
| | | ISA_INIT_REQ | | | ||||
| | | ============> | | | ||||
| | | ISA_INIT_RESP | | | ||||
| | | <============ | | | ||||
| | | | | | ||||
| | | Oakley Key Exchange Between NSs | | | ||||
| | | | | | ||||
| | | ISA_KE_REQ | | | ||||
| | | ==============> | | | ||||
| | | ISA_KE_RESP | | | ||||
| | | <=============== | | | ||||
| | | | | | ||||
| | | Oakley Authentication Exchange | | | ||||
| | | | | | ||||
| | | ISA_AUTH_REQ | | | ||||
| | | ==============> | | | ||||
| | | ISA_AUTH_RESP | | | ||||
| | | <=============== | | | ||||
| | | ISA_AUTH_REQ | | | ||||
| | | ==============> | | | ||||
| | | ISA_AUTH_RESP | | | ||||
| | | <=============== | | | ||||
| | | | | | ||||
| | | Protected Traffic | | | ||||
| | | NS#1 to NS#2 | | | ||||
| |_____|_ |______| | ||||
| ___________|_________Oakley_Scenario_continued______________________EntityN# | ||||
| 1SI#1NTERNETNSE#2ntity #2 | ||||
| _______|| _______|| | ||||
| | | SA Established NS#1 to NS#2 | | | ||||
| | | | | | ||||
| | |Establish SA Between Entities | | | ||||
| | | | | | ||||
| | | ISA_NEG_REQ | | | ||||
| | | ============> | | | ||||
| | | ISA_NEG_RESP | | | ||||
| | | <============ | | | ||||
| | | | | | ||||
| | | Oakley External Key Exchange | | | ||||
| | | Between Entities | | | ||||
| | | | | | ||||
| | | ISA_KE_REQ | | | ||||
| | | ==============> | | | ||||
| | | ISA_KE_RESP | | | ||||
| | | <=============== | | | ||||
| | | ISA_KE_REQ | | | ||||
| | | ==============> | | | ||||
| | | | | | ||||
| | | | | | ||||
| | | Protected Traffic | | | ||||
| | | Entity#1 to Entity#2 | | | ||||
| |______| <==============> |______| | ||||
| The diagrams above only shows ISAKMP messages exchanges. Shown are the | ||||
| exchanges to initiate SAs between entities and negotiation servers and | ||||
| the exchanges for the Oakley key exchange and authentication. The formats | ||||
| and contents of the messages can be found in [Oakley] and Appendix A. See | ||||
| Section 2.1 for the relationship of ISAKMP to the protocol stack. | ||||
| When an entity, which can be a process, application, security protocol, | ||||
| etc., wishes to establish communications with a peer entity a call is made | ||||
| to the negotiation server (NS). NS#1 checks the local security policy to | ||||
| determine if an SA is required. If an SA is required, then NS#1 checks | ||||
| if it has the appropriate SAs established with the peer NS (NS#2). If a | ||||
| negotiation SA (NS-to-NS SA) is exists, NS#1 can proceed to the start of | ||||
| the second diagram. If a negotiation SA needs to be established, the NSs | ||||
| exchange ISA_INIT messages to determine the security attributes, key ex- | ||||
| change, and authentication to be used for the negotiation SA. In our exam- | ||||
| ple the Oakley key exchange and authentication is choosen. The ISA_KE and | ||||
| ISA_AUTH messages are exchanged according to the rules defined in the key | ||||
| exchange. Oakley requires two key exchange messages and four authentica- | ||||
| tion messages. Once these exchanges are complete a negotiation SA between | ||||
| NSs is established. In the second diagram the negotiation SA is used to | ||||
| protect the remaining exchanges shown. The NSs now exchange ISA_NEG mes- | ||||
| sages to create a SA for the entity itself. In our example an Oakley Ex- | ||||
| ternal Key Exchange is now performed to establish a new key for the entity | ||||
| to entity SA. Once this SA is established, protected communications takes | ||||
| place. | ||||
| B.2 Virtual Private Network Scenario | ||||
| This scenario shows how ISAKMP can be used in a Virtual Public Network | ||||
| (VPN). The ability to establish SAs for more than just ESP and AH and one | (VPN). The ability to establish SAs for more than just ESP and AH and one | |||
| of the uses of the ISA_NOTIFY message are also illustrated. | of the uses of the ISA_NOTIFY message are also illustrated. | |||
| ___________________________Virtual_Public_Network_Scenario_______________________ | __________________|_________Virtual_Public_Network_Scenario____________________ | |||
| End System#1 SFE#1 INTERNET SFE#2 End System #2 | ____________EndSSystemF#1EI#1NTERNETSFEE#2nd System #2 | |||
| _______ _______ | ________|| ________|| | |||
| Establish ES#1 To | | | | | Establish ES#1 To | | | | | |||
| SFE#1 Connection | | | | | SFE#1 Connection | | | | | |||
| SYN | | | | | SYN | | | | | |||
| ===> | | | | | ===> | | | | | |||
| | |Establish Connection Between SFEs | | | | |Establish Connection Between SFEs | | | |||
| | | | | | | | | | | |||
| | | SYN | | | | | SYN | | | |||
| | | ===> | | | | | ===> | | | |||
| | | SYN, ACK | | | | | SYN, ACK | | | |||
| | | <======= | | | | | <======= | | | |||
| | | ACK | | | | | ACK | | | |||
| | | ===> | | | | | ===> | | | |||
| | | | | | | | | | | |||
| | | Establish SA Between SFEs | | | | | Establish SA Between SFEs | | | |||
| | | | | | | | | | | |||
| | | ISA_INIT_REQ | | | | | ISA_INIT_REQ | | | |||
| | | ============> | | | | | ============> | | | |||
| | | ISA_INIT_RESP | | | | | ISA_INIT_RESP | | | |||
| | | <============ | | | | | <============ | | | |||
| | | ISA_KE&AUTH_REQ | | | | | ISA_KE&AUTH_REQ | | | |||
| | | ==============> | | | | | ==============> | | | |||
| | | ISA_KE&AUTH_RESP | | | | | ISA_KE&AUTH_RESP | | | |||
| | | <=============== | | | | | <=============== | | | |||
| | | Secure Connection | |Establish SFE#2 | | | Secure Connection | | |||
| | | Between SFEs | |to ES#2 Connection | |Establish SFE#2 | |||
| | | Between SFEs | |to ES#2 | ||||
| Connection | ||||
| | | | | | | | | | | |||
| | | | |SYN | | | | |SYN | |||
| | | | |===> | | | | |===> | |||
| | | | |SYN, ACK | | | | |SYN, ACK | |||
| | | | |<======= | | | | |<======= | |||
| | | | |ACK | | | | |ACK | |||
| | | | |===> | | | | |===> | |||
| | | ISA_NOTIFY(Status == Connected) | | | | | ISA_NOTIFY(Status == Connected) | | | |||
| SYN, ACK | | <==================== | | | SYN, ACK | | <==================== | | | |||
| <======= | | | | | <======= | | | | | |||
| ACK | | | | | ACK | | | | | |||
| ===> | | | | | ===> | | | | | |||
| | | | | | | | | | | |||
| | | Protected Traffic | | | | | Protected Traffic | | | |||
| | | ES#1 to ES#2 | | | | | ES#1 to ES#2 | | | |||
| |_______| <==============> |_______| | |_______| <==============> |_______| | |||
| The diagram shows an End System (ES) using a connection oriented proto- | The diagram shows an End System (ES) using a connection oriented proto- | |||
| col (we use TCP as an example) establishing a connection with another ES. | col (we use TCP as an example) establishing a connection with another ES. | |||
| Both ES are behind Secure Front Ends (SFE) (e.g. firewalls). The connec- | Both ES are behind Secure Front Ends (SFE) (e.g. firewalls). The connec- | |||
| tion establishment from End System #1 (ES#1) is intercepted by its Secure | tion establishment from End System #1 (ES#1) is intercepted by its Secure | |||
| Front End (SFE #1). SFE#1 establishes a connection and then a Security | Front End (SFE #1). SFE#1 establishes a connection and then a Security | |||
| Association (SA), using normal ISAKMP SA establishment procedures, with | Association (SA), using normal ISAKMP SA establishment procedures, with | |||
| SFE #2. Next SFE #2 establishes a connection with ES #2. Upon successful | SFE #2. Next SFE #2 establishes a connection with ES #2. Upon successful | |||
| completion SFE #2 sends an SA_NOTIFY with Status equal Connected. SFE #1 | completion SFE #2 sends an ISA_NOTIFY with Status equal Connected. SFE #1 | |||
| completes it's connection with ES #1 and normal end to end communications | completes it's connection with ES #1 and normal end to end communications | |||
| takes place secured between SFE #1 and SFE #2. If SFE #2 had been unable | takes place secured between SFE #1 and SFE #2. If SFE #2 had been unable | |||
| to establish a connection with ES #2 it would have returned an SA_NOTIFY | to establish a connection with ES #2 it would have returned an ISA_NOTIFY | |||
| with Status equal Not Connected with an optional reason code. | with Status equal Not Connected with an optional reason code. | |||
| B Security Association Attributes | C Security Association Attributes | |||
| This appendix contains a list of security attributes that should be con- | This appendix contains a list of security attributes that should be con- | |||
| sidered when defining a Security Association (SA) for a security proto- | sidered when defining a Security Association (SA) for a security proto- | |||
| col or application. As an example, the security attributes culled from | col or application. As an example, the security attributes culled from | |||
| this list and required for an IP Security (AH, ESP) SA are defined in | this list and required for an IP Security (AH, ESP) SA are defined in | |||
| [RFC-1825]. The separation of ISAKMP from a specific SA definition is im- | [RFC-1825]. The separation of ISAKMP from a specific SA definition is im- | |||
| portant to ensure ISAKMP can establish SAs for all possible security func- | portant to ensure ISAKMP can establish SAs for all possible security func- | |||
| tionality. Each security function will be required to maintain a database | tionality. Each security function will be required to maintain a database | |||
| of current SAs. This list is based upon an e-mail message [Kent94] to the | of current SAs. This list is based upon an e-mail message [Kent94] to the | |||
| IPSEC mail list from Steve Kent. | IPSEC mail list from Steve Kent. | |||
| skipping to change at page 51, line 5 ¶ | skipping to change at page 64, line 5 ¶ | |||
| i. ENABLE | i. ENABLE | |||
| ii. PACKET-COUNT.INBOUND | ii. PACKET-COUNT.INBOUND | |||
| iii. PACKET-COUNT.OUTBOUND | iii. PACKET-COUNT.OUTBOUND | |||
| iv. TRIGGER.INBOUND | iv. TRIGGER.INBOUND | |||
| v. TRIGGER.OUTBOUND | v. TRIGGER.OUTBOUND | |||
| C Security Association Examples | ||||
| C.1 ISAKMP SA Definition | ||||
| The ISAKMP SA contains the SA attributes that are exchanged in the | ||||
| ISA_INIT messages. | ||||
| ISAKMP Security Association | ||||
| _______________________SA_Attributes_______________________Requirement__ | ||||
| Peer ISAKMP Daemon Address REQUIRED | ||||
| Security Association Lifetime REQUIRED | ||||
| Certificate Authority REQUIRED | ||||
| Digital Signature Algorithm REQUIRED | ||||
| Signature Key(s) REQUIRED | ||||
| Security Association Lifetime REQUIRED | ||||
| Key Establishment Algorithm REQUIRED | ||||
| Cookie Generation Algorithm REQUIRED | ||||
| Sensitivity Level (e.g. Secret, Unclassified) RECOMMENDED | ||||
| Encryption Algorithm RECOMMENDED | ||||
| Encryption Mode RECOMMENDED | ||||
| Encryption Transform RECOMMENDED | ||||
| Encryption Key(s) RECOMMENDED | ||||
| Key Lifetime or Key Rollover RECOMMENDED | ||||
| Presence / Absence of cryptographic synchronization or IV RECOMMENDED | ||||
| Size of cryptographic synchronization or IV RECOMMENDED | ||||
| C.1.1 ISAKMP SA Examples | ||||
| ISAKMP SA #1 | ||||
| _________________________SA_Class_________________________________SA_Type_________ | ||||
| Peer ISAKMP Daemon Address N/A | ||||
| Security Association Lifetime 86400 seconds (1day) | ||||
| Certificate Authority DMS Root CAW | ||||
| Certificate Type X.509v1m | ||||
| Digital Signature Algorithm DSA | ||||
| Signature Key(s) N/A | ||||
| Security Association Lifetime 86400 seconds (1day) | ||||
| Key Establishment Algorithm Fortezza KEA | ||||
| Cookie Generation Algorithm SHA_1 | ||||
| Sensitivity Level (e.g. Secret, Unclassified) Unclassified | ||||
| Encryption Algorithm Skipjack | ||||
| Encryption Mode CDC | ||||
| Encryption Transform NULL | ||||
| Encryption Key(s) N/A | ||||
| Key Lifetime or Key Rollover 3600 seconds (1 hour) | ||||
| Presence / Absence of cryptographic synchronization or IV Present | ||||
| Size of cryptographic synchronization or IV 64 bits | ||||
| ISAKMP SA #2 | ||||
| _________________________SA_Class___________________________________SA_Type__________ | ||||
| Peer ISAKMP Daemon Address N/A | ||||
| Security Association Lifetime 86400 seconds (1day) | ||||
| Certificate Authority DNSSEC janeway.ncsc.mil | ||||
| Certificate Type RR | ||||
| Digital Signature Algorithm RSA | ||||
| Signature Key(s) N/A | ||||
| Security Association Lifetime 86400 seconds (1day) | ||||
| Key Establishment Algorithm X9.42_STS | ||||
| Cookie Generation Algorithm MD5 | ||||
| Sensitivity Level (e.g. Secret, Unclassified) N/A | ||||
| Encryption Algorithm DES | ||||
| Encryption Mode CDC | ||||
| Encryption Transform RFC-1829 | ||||
| Encryption Key(s) N/A | ||||
| Key Lifetime or Key Rollover 600 seconds (10 minutes) | ||||
| Presence / Absence of cryptographic synchronization or IV Present | ||||
| Size of cryptographic synchronization or IV 64 bits | ||||
| ISAKMP SA #3 | ||||
| _________________________SA_Class___________________________________SA_Type__________ | ||||
| Peer ISAKMP Daemon Address N/A | ||||
| Security Association Lifetime 86400 seconds (1day) | ||||
| Certificate Authority IPRA PCA UNINETT | ||||
| Certificate Type X.509v1 | ||||
| Digital Signature Algorithm RSA | ||||
| Signature Key(s) N/A | ||||
| Security Association Lifetime 86400 seconds (1day) | ||||
| Key Establishment Algorithm STS | ||||
| Cookie Generation Algorithm MD5 | ||||
| Sensitivity Level (e.g. Secret, Unclassified) N/A | ||||
| Encryption Algorithm DES | ||||
| Encryption Mode CDC | ||||
| Encryption Transform RFC-1829 | ||||
| Encryption Key(s) N/A | ||||
| Key Lifetime or Key Rollover 600 seconds (10 minutes) | ||||
| Presence / Absence of cryptographic synchronization or IV Present | ||||
| Size of cryptographic synchronization or IV 64 bits | ||||
| C.2 ESP SA and AH SA Definitions | ||||
| The following SAs are defined in [RFC-1825] and are presented here for | ||||
| comparative and completeness purposes. | ||||
| AH Security Association | ||||
| __________________SA_Attributes__________________Requirement_ | ||||
| Authentication Algorithm REQUIRED | ||||
| Authentication Mode REQUIRED | ||||
| Authentication Key(s) REQUIRED | ||||
| Key Lifetime or Key Rollover RECOMMENDED | ||||
| Security Association Lifetime RECOMMENDED | ||||
| Sensitivity Level (e.g. Secret, Unclassified) RECOMMENDED | ||||
| ESP Security Association | ||||
| _______________________SA_Attributes_______________________Requirement__ | ||||
| Encryption Algorithm REQUIRED | ||||
| Encryption Mode REQUIRED | ||||
| Encryption Transform REQUIRED | ||||
| Encryption Key(s) REQUIRED | ||||
| Presence / Absence of cryptographic synchronization or IV REQUIRED | ||||
| Size of cryptographic synchronization or IV REQUIRED | ||||
| Authentication Algorithm RECOMMENDED | ||||
| Authentication Mode RECOMMENDED | ||||
| Authentication Key(s) RECOMMENDED | ||||
| Key Lifetime or Key Rollover RECOMMENDED | ||||
| Security Association Lifetime RECOMMENDED | ||||
| Sensitivity Level (e.g. Secret, Unclassified) RECOMMENDED | ||||
| C.2.1 ESP and AH SA Examples | ||||
| AH SA #1 | ||||
| ____________________SA_Class_____________________________SA_Type__________ | ||||
| Authentication Algorithm MD5 | ||||
| Authentication Mode Keyed | ||||
| Authentication Key(s) Photuris | ||||
| Key Lifetime or Key Rollover 600 seconds (10 minutes) | ||||
| Security Association Lifetime 3600 seconds (1 hour) | ||||
| Sensitivity Level (e.g. Secret, Unclassified) N/A | ||||
| AH SA #2 | ||||
| ____________________SA_Class_____________________________SA_Type__________ | ||||
| Authentication Algorithm SHA | ||||
| Authentication Mode NULL | ||||
| Authentication Key(s) NULL | ||||
| Key Lifetime or Key Rollover 600 seconds (10 minutes) | ||||
| Security Association Lifetime 3600 seconds (1 hour) | ||||
| Sensitivity Level (e.g. Secret, Unclassified) N/A | ||||
| ESP SA #1 | ||||
| _________________________SA_Class___________________________________SA_Type__________ | ||||
| Encryption Algorithm DES | ||||
| Encryption Mode CBC | ||||
| Encryption Transform RFC-1829 | ||||
| Encryption Key(s) Phutoris Generated | ||||
| Presence / Absence of cryptographic synchronization or IV Present | ||||
| Size of cryptographic synchronization or IV 64 bits | ||||
| Authentication Algorithm NULL | ||||
| Authentication Mode NULL | ||||
| Authentication Key(s) NULL | ||||
| Key Lifetime or Key Rollover 600 seconds (10 minutes) | ||||
| Security Association Lifetime 3600 seconds (1 hour) | ||||
| Sensitivity Level (e.g. Secret, Unclassified) N/A | ||||
| ESP SA #2 | ||||
| _________________________SA_Class___________________________________SA_Type__________ | ||||
| Encryption Algorithm DES | ||||
| Encryption Mode CBC | ||||
| Encryption Transform RFC-1829 | ||||
| Encryption Key(s) X9.42_DH Generated | ||||
| Presence / Absence of cryptographic synchronization or IV Present | ||||
| Size of cryptographic synchronization or IV 64 bits | ||||
| Authentication Algorithm NULL | ||||
| Authentication Mode NULL | ||||
| Authentication Key(s) NULL | ||||
| Key Lifetime or Key Rollover 600 seconds (10 minutes) | ||||
| Security Association Lifetime 3600 seconds (1 hour) | ||||
| Sensitivity Level (e.g. Secret, Unclassified) N/A | ||||
| C.2.2 Fortezza SA Examples | ||||
| Fortezza AH SA | ||||
| ____________________SA_Class___________________________SA_Type________ | ||||
| Authentication Algorithm SHA | ||||
| Authentication Mode NULL | ||||
| Authentication Key(s) DMS Root CAW | ||||
| Key Lifetime or Key Rollover 86400 seconds (1day) | ||||
| Security Association Lifetime 86400 seconds (1day) | ||||
| Sensitivity Level (e.g. Secret, Unclassified) N/A | ||||
| Fortezza ESP SA | ||||
| _________________________SA_Class__________________________________SA_Type_________ | ||||
| Encryption Algorithm Skipjack | ||||
| Encryption Mode CBC | ||||
| Encryption Transform NULL | ||||
| Encryption Key(s) Fortezza KEA Generated | ||||
| Presence / Absence of cryptographic synchronization or IV Present | ||||
| Size of cryptographic synchronization or IV 64 bits | ||||
| Authentication Algorithm DSA | ||||
| Authentication Mode NULL | ||||
| Authentication Key(s) DMS Root CAW | ||||
| Key Lifetime or Key Rollover 3600 seconds (1 hour) | ||||
| Security Association Lifetime 86400 seconds (1day) | ||||
| Sensitivity Level (e.g. Secret, Unclassified) Unclassified | ||||
| Security Considerations | Security Considerations | |||
| Cryptographic analysis techniques are improving at a steady pace. The | Cryptographic analysis techniques are improving at a steady pace. The | |||
| continuing improvement in processing power makes once computational pro- | continuing improvement in processing power makes once computational pro- | |||
| hibitive cryptographic attacks more realistic. New cryptographic algo- | hibitive cryptographic attacks more realistic. New cryptographic algo- | |||
| rithms and public key generation techniques are also being developed at a | rithms and public key generation techniques are also being developed at a | |||
| steady pace. New security services and mechanisms are being developed at | steady pace. New security services and mechanisms are being developed at | |||
| an accelerated pace. A consistent method of choosing from a variety of | an accelerated pace. A consistent method of choosing from a variety of | |||
| security services and mechanisms and to exchange attributes required by | security services and mechanisms and to exchange attributes required by | |||
| the mechanisms is important to security in the complex structure of the | the mechanisms is important to security in the complex structure of the | |||
| skipping to change at page 57, line 40 ¶ | skipping to change at page 64, line 41 ¶ | |||
| [RFC-1825]. One bares repeating. Once a private session key is created | [RFC-1825]. One bares repeating. Once a private session key is created | |||
| it must be safely stored. Failure to properly protect the private key | it must be safely stored. Failure to properly protect the private key | |||
| from access both internal and external to the system completely nullifies | from access both internal and external to the system completely nullifies | |||
| any protect provided by the IP Security services. | any protect provided by the IP Security services. | |||
| Acknowledgements | Acknowledgements | |||
| Marsha Gross, Bill Kutz, Mike Oehler, Mark Schneider, and Pete Sell pro- | Marsha Gross, Bill Kutz, Mike Oehler, Mark Schneider, and Pete Sell pro- | |||
| vided significant input and review to this document. | vided significant input and review to this document. | |||
| Scott Carlson ported the TIS DNSSEC prototype to FreeBSD for use with the | ||||
| ISAKMP prototype. | ||||
| Jeff Turner and Steve Smalley have contributed to the prototype develop- | ||||
| ment and integration with ESP and AH. | ||||
| Thanks to Carl Muckenhirn of SPARTA, Inc. for his assistance with LaTeX. | Thanks to Carl Muckenhirn of SPARTA, Inc. for his assistance with LaTeX. | |||
| References | References | |||
| [ANSI94] ANSI, X9.42: Public Key Cryptography for the Financial Services | [ANSI] ANSI, X9.42: Public Key Cryptography for the Financial Services | |||
| Industry -- Establishment of Symmetric Algorithm Keys Using | Industry -- Establishment of Symmetric Algorithm Keys Using | |||
| Diffie-Hellman, Working Draft, October 26, 1995. | Diffie-Hellman, Working Draft, October 26, 1995. | |||
| [DOW92] W. Diffie, M.Wiener, P. Van Oorschot, Authtication and | [RFC-1825] Randall Atkinson, Security Architecture for the Internet | |||
| Protocol, RFC-1825, August, 1995. | ||||
| [BC] Ballarie, A. and J. Crowcroft, Multicast-specific Security Threats | ||||
| and Countermeasures, Proceedings of 1995 ISOC Symposium on Networks | ||||
| & Distributed Systems Security, pp. 17-30, Internet Society, San | ||||
| Diego, CA, February 1995. | ||||
| [Berge] Berge, N.H., UNINETT PCA Policy Statements, Internet-Draft, work | ||||
| in progress, November, 1995. | ||||
| [DOW92] W. Diffie, M.Wiener, P. Van Oorschot, Authentication and | ||||
| Authenticated Key Exchanges, Designs, Codes, and Cryptography, 2, | Authenticated Key Exchanges, Designs, Codes, and Cryptography, 2, | |||
| 107-125, Kluwer Academic Publishers, 1992. | 107-125, Kluwer Academic Publishers, 1992. | |||
| [Berg] Berge, N.H., UNINETT PCA Policy Statements, Internet-Draft, work | [DNSSEC] Eastlake III, D. and C. Kaufman, Domain Name System Protocol | |||
| in progress, November, 1995. | Security Extensions, Internet-Draft, work in progress, Feb, 1996. | |||
| [EK94] Eastlake III, D. and C. Kaufman, Domain Name System Protocol | [Karn] Karn P. and B. Simpson, The Photuris Key Management Protocol, | |||
| Security Extensions, Internet-Draft, work in progress, Oct, 1995. | Internet-Draft, work in progress, February, 1996. | |||
| [Karn95] Karn P. and B. Simpson, The Photuris Key Management Protocol, | [RFC-1422] Steve Kent, Privacy Enhancement for Internet Electronic Mail: | |||
| Internet-Draft, work in progress, November, 1995. | Part II: Certificate-Based Key Management, RFC-1422, February 1993. | |||
| [Kent94] Steve Kent, IPSEC SMIB, e-mail to ipsec@ans.net, August 10, | [Kent94] Steve Kent, IPSEC SMIB, e-mail to ipsec@ans.net, August 10, | |||
| 1994. | 1994. | |||
| [RFC-1155] Rose M. and K. McCloghrie, Structure and Identification of | ||||
| Management Information for TCP/IP-based Internets, RFC-1155, May, | ||||
| 1990. | ||||
| [RFC-1212] McCloghrie K. and M. Rose, Concise MIB Definitions, RFC-1212, | [RFC-1212] McCloghrie K. and M. Rose, Concise MIB Definitions, RFC-1212, | |||
| March 26, 1991. | March 26, 1991. | |||
| [RFC-1213] McCloghrie K. and M. Rose, Management Information Base for | [RFC-1213] McCloghrie K. and M. Rose, Management Information Base for | |||
| Network Management of TCP/IP-based Internets: MIB-II, RFC-1213, | Network Management of TCP/IP-based Internets: MIB-II, RFC-1213, | |||
| March 26, 1991. | March 26, 1991. | |||
| [RFC-1422] Steve Kent, Privacy Enhancement for Internet Electronic Mail: | [Oakley] H. K. Orman, The Oakley Key Determination Protocol, | |||
| Part II: Certificate-Based Key Management, RFC-1422, February 1993. | Internet-Draft, work in progress, February, 1996. | |||
| [RFC-1825] Randell Atkinson, Security Architecture for the Internet | [RFC-1700] Reynolds, J. and J. Postel, Assigned Numbers, STD 2, RFC-1700, | |||
| Protocol, RFC-1825, August, 1995. | October, 1994. | |||
| [RFC-1155] Rose M. and K. McCloghrie, Structure and Identification of | ||||
| Management Information for TCP/IP-based Internets, RFC-1155, May, | ||||
| 1990. | ||||
| [Secu] SECUREWARE INC., Peer Authentication and Key Management Protocol | [Secu] SECUREWARE INC., Peer Authentication and Key Management Protocol | |||
| Specification, Version 2.2, October 27, 1995. | Specification, Version 2.2, October 27, 1995. | |||
| [Schn94] Bruce Schneier, Applied Cryptography - Protocols, Algorithms, | [Schneier] Bruce Schneier, Applied Cryptography - Protocols, Algorithms, | |||
| and Source Code in C, John Wiley & Sons, Inc., 1994. | and Source Code in C, John Wiley & Sons, Inc., 1994. | |||
| [Spar94a] Harney H., C. Muckenhirn, and T. Rivers, Group Key Management | [Spar94a] Harney H., C. Muckenhirn, and T. Rivers, Group Key Management | |||
| (GKMP) Architecture, SPARTA, Inc., Internet-Draft, September, 1994. | (GKMP) Architecture, SPARTA, Inc., Internet-Draft, September, 1994. | |||
| [Spar94b] Harney H., C. Muckenhirn, and T. Rivers, Group Key Management | [Spar94b] Harney H., C. Muckenhirn, and T. Rivers, Group Key Management | |||
| (GKMP) Specification, SPARTA, Inc., Internet-Draft, September, 1994. | (GKMP) Specification, SPARTA, Inc., Internet-Draft, September, 1994. | |||
| Addresses of Authors | Addresses of Authors | |||
| End of changes. 161 change blocks. | ||||
| 906 lines changed or deleted | 1126 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||