| < draft-ietf-abfab-arch-07.txt | draft-ietf-abfab-arch-08.txt > | |||
|---|---|---|---|---|
| ABFAB J. Howlett | ABFAB J. Howlett | |||
| Internet-Draft JANET(UK) | Internet-Draft JANET(UK) | |||
| Intended status: Informational S. Hartman | Intended status: Informational S. Hartman | |||
| Expires: January 31, 2014 Painless Security | Expires: May 7, 2014 Painless Security | |||
| H. Tschofenig | H. Tschofenig | |||
| Nokia Siemens Networks | Nokia Siemens Networks | |||
| E. Lear | E. Lear | |||
| Cisco Systems GmbH | Cisco Systems GmbH | |||
| J. Schaad | J. Schaad | |||
| Soaring Hawk Consulting | Soaring Hawk Consulting | |||
| July 30, 2013 | November 3, 2013 | |||
| Application Bridging for Federated Access Beyond Web (ABFAB) | Application Bridging for Federated Access Beyond Web (ABFAB) | |||
| Architecture | Architecture | |||
| draft-ietf-abfab-arch-07.txt | draft-ietf-abfab-arch-08.txt | |||
| Abstract | Abstract | |||
| Over the last decade a substantial amount of work has occurred in the | Over the last decade a substantial amount of work has occurred in the | |||
| space of federated access management. Most of this effort has | space of federated access management. Most of this effort has | |||
| focused on two use cases: network access and web-based access. | focused on two use cases: network access and web-based access. | |||
| However, the solutions to these use cases that have been proposed and | However, the solutions to these use cases that have been proposed and | |||
| deployed tend to have few common building blocks in common. | deployed tend to have few common building blocks in common. | |||
| This memo describes an architecture that makes use of extensions to | This memo describes an architecture that makes use of extensions to | |||
| skipping to change at page 2, line 10 ¶ | skipping to change at page 2, line 10 ¶ | |||
| Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
| Task Force (IETF). Note that other groups may also distribute | Task Force (IETF). Note that other groups may also distribute | |||
| working documents as Internet-Drafts. The list of current Internet- | working documents as Internet-Drafts. The list of current Internet- | |||
| Drafts is at http://datatracker.ietf.org/drafts/current/. | Drafts is at http://datatracker.ietf.org/drafts/current/. | |||
| Internet-Drafts are draft documents valid for a maximum of six months | Internet-Drafts are draft documents valid for a maximum of six months | |||
| and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
| time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
| material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
| This Internet-Draft will expire on January 31, 2014. | This Internet-Draft will expire on May 7, 2014. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2013 IETF Trust and the persons identified as the | Copyright (c) 2013 IETF Trust and the persons identified as the | |||
| document authors. All rights reserved. | document authors. All rights reserved. | |||
| This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
| Provisions Relating to IETF Documents | Provisions Relating to IETF Documents | |||
| (http://trustee.ietf.org/license-info) in effect on the date of | (http://trustee.ietf.org/license-info) in effect on the date of | |||
| publication of this document. Please review these documents | publication of this document. Please review these documents | |||
| skipping to change at page 2, line 33 ¶ | skipping to change at page 2, line 33 ¶ | |||
| include Simplified BSD License text as described in Section 4.e of | include Simplified BSD License text as described in Section 4.e of | |||
| the Trust Legal Provisions and are provided without warranty as | the Trust Legal Provisions and are provided without warranty as | |||
| described in the Simplified BSD License. | described in the Simplified BSD License. | |||
| Table of Contents | Table of Contents | |||
| 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
| 1.1. Terminology . . . . . . . . . . . . . . . . . . . . . . . 5 | 1.1. Terminology . . . . . . . . . . . . . . . . . . . . . . . 5 | |||
| 1.1.1. Channel Binding . . . . . . . . . . . . . . . . . . . 6 | 1.1.1. Channel Binding . . . . . . . . . . . . . . . . . . . 6 | |||
| 1.2. An Overview of Federation . . . . . . . . . . . . . . . . 7 | 1.2. An Overview of Federation . . . . . . . . . . . . . . . . 7 | |||
| 1.3. Challenges for Contemporary Federation . . . . . . . . . 10 | 1.3. Challenges for Contemporary Federation . . . . . . . . . 11 | |||
| 1.4. An Overview of ABFAB-based Federation . . . . . . . . . . 11 | 1.4. An Overview of ABFAB-based Federation . . . . . . . . . . 11 | |||
| 1.5. Design Goals . . . . . . . . . . . . . . . . . . . . . . 14 | 1.5. Design Goals . . . . . . . . . . . . . . . . . . . . . . 14 | |||
| 2. Architecture . . . . . . . . . . . . . . . . . . . . . . . . 14 | 2. Architecture . . . . . . . . . . . . . . . . . . . . . . . . 15 | |||
| 2.1. Relying Party to Identity Provider . . . . . . . . . . . 16 | 2.1. Relying Party to Identity Provider . . . . . . . . . . . 16 | |||
| 2.1.1. AAA, RADIUS and Diameter . . . . . . . . . . . . . . 17 | 2.1.1. AAA, RADIUS and Diameter . . . . . . . . . . . . . . 17 | |||
| 2.1.2. Discovery and Rules Determination . . . . . . . . . . 18 | 2.1.2. Discovery and Rules Determination . . . . . . . . . . 18 | |||
| 2.1.3. Routing and Technical Trust . . . . . . . . . . . . . 19 | 2.1.3. Routing and Technical Trust . . . . . . . . . . . . . 19 | |||
| 2.1.4. AAA Security . . . . . . . . . . . . . . . . . . . . 20 | 2.1.4. AAA Security . . . . . . . . . . . . . . . . . . . . 21 | |||
| 2.1.5. SAML Assertions . . . . . . . . . . . . . . . . . . . 21 | 2.1.5. SAML Assertions . . . . . . . . . . . . . . . . . . . 21 | |||
| 2.2. Client To Identity Provider . . . . . . . . . . . . . . . 23 | 2.2. Client To Identity Provider . . . . . . . . . . . . . . . 23 | |||
| 2.2.1. Extensible Authentication Protocol (EAP) . . . . . . 23 | 2.2.1. Extensible Authentication Protocol (EAP) . . . . . . 24 | |||
| 2.2.2. EAP Channel Binding . . . . . . . . . . . . . . . . . 25 | 2.2.2. EAP Channel Binding . . . . . . . . . . . . . . . . . 25 | |||
| 2.3. Client to Relying Party . . . . . . . . . . . . . . . . . 25 | 2.3. Client to Relying Party . . . . . . . . . . . . . . . . . 26 | |||
| 2.3.1. GSS-API . . . . . . . . . . . . . . . . . . . . . . . 26 | 2.3.1. GSS-API . . . . . . . . . . . . . . . . . . . . . . . 26 | |||
| 2.3.2. Protocol Transport . . . . . . . . . . . . . . . . . 27 | 2.3.2. Protocol Transport . . . . . . . . . . . . . . . . . 28 | |||
| 2.3.3. Reauthentication . . . . . . . . . . . . . . . . . . 27 | 2.3.3. Reauthentication . . . . . . . . . . . . . . . . . . 28 | |||
| 3. Application Security Services . . . . . . . . . . . . . . . . 28 | 3. Application Security Services . . . . . . . . . . . . . . . . 28 | |||
| 3.1. Authentication . . . . . . . . . . . . . . . . . . . . . 28 | 3.1. Authentication . . . . . . . . . . . . . . . . . . . . . 29 | |||
| 3.2. GSS-API Channel Binding . . . . . . . . . . . . . . . . . 29 | 3.2. GSS-API Channel Binding . . . . . . . . . . . . . . . . . 30 | |||
| 3.3. Host-Based Service Names . . . . . . . . . . . . . . . . 30 | 3.3. Host-Based Service Names . . . . . . . . . . . . . . . . 31 | |||
| 3.4. Additional GSS-API Services . . . . . . . . . . . . . . . 32 | 3.4. Additional GSS-API Services . . . . . . . . . . . . . . . 33 | |||
| 4. Privacy Considerations . . . . . . . . . . . . . . . . . . . 32 | 4. Privacy Considerations . . . . . . . . . . . . . . . . . . . 33 | |||
| 4.1. Entities and their roles . . . . . . . . . . . . . . . . 33 | 4.1. Entities and their roles . . . . . . . . . . . . . . . . 34 | |||
| 4.2. Privacy Aspects of ABFAB Communication Flows . . . . . . 34 | 4.2. Privacy Aspects of ABFAB Communication Flows . . . . . . 35 | |||
| 4.2.1. Client to RP . . . . . . . . . . . . . . . . . . . . 34 | 4.2.1. Client to RP . . . . . . . . . . . . . . . . . . . . 35 | |||
| 4.2.2. Client to IdP (via Federation Substrate) . . . . . . 35 | 4.2.2. Client to IdP (via Federation Substrate) . . . . . . 36 | |||
| 4.2.3. IdP to RP (via Federation Substrate) . . . . . . . . 36 | 4.2.3. IdP to RP (via Federation Substrate) . . . . . . . . 37 | |||
| 4.3. Relationship between User and Entities . . . . . . . . . 37 | 4.3. Relationship between User and Entities . . . . . . . . . 38 | |||
| 4.4. Accounting Information . . . . . . . . . . . . . . . . . 37 | 4.4. Accounting Information . . . . . . . . . . . . . . . . . 38 | |||
| 4.5. Collection and retention of data and identifiers . . . . 37 | 4.5. Collection and retention of data and identifiers . . . . 38 | |||
| 4.6. User Participation . . . . . . . . . . . . . . . . . . . 38 | 4.6. User Participation . . . . . . . . . . . . . . . . . . . 39 | |||
| 5. Security Considerations . . . . . . . . . . . . . . . . . . . 38 | 5. Security Considerations . . . . . . . . . . . . . . . . . . . 39 | |||
| 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 39 | 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 40 | |||
| 7. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 39 | 7. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 40 | |||
| 8. References . . . . . . . . . . . . . . . . . . . . . . . . . 40 | 8. References . . . . . . . . . . . . . . . . . . . . . . . . . 41 | |||
| 8.1. Normative References . . . . . . . . . . . . . . . . . . 40 | 8.1. Normative References . . . . . . . . . . . . . . . . . . 41 | |||
| 8.2. Informative References . . . . . . . . . . . . . . . . . 41 | 8.2. Informative References . . . . . . . . . . . . . . . . . 42 | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 43 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 44 | |||
| 1. Introduction | 1. Introduction | |||
| The Internet uses numerous security mechanisms to manage access to | The Internet uses numerous security mechanisms to manage access to | |||
| various resources. These mechanisms have been generalized and scaled | various resources. These mechanisms have been generalized and scaled | |||
| over the last decade through mechanisms such as Simple Authentication | over the last decade through mechanisms such as Simple Authentication | |||
| and Security Layer (SASL) with the Generic Security Server | and Security Layer (SASL) with the Generic Security Server | |||
| Application Program Interface (GSS-API) (known as the GS2 family) | Application Program Interface (GSS-API) (known as the GS2 family) | |||
| [RFC5801], Security Assertion Markup Language (SAML) | [RFC5801], Security Assertion Markup Language (SAML) | |||
| [OASIS.saml-core-2.0-os], and the Authentication, Authorization, and | [OASIS.saml-core-2.0-os], and the Authentication, Authorization, and | |||
| skipping to change at page 4, line 23 ¶ | skipping to change at page 4, line 23 ¶ | |||
| associated responsibilities such as identity management and | associated responsibilities such as identity management and | |||
| credentialing, to an organization that already has a long-term | credentialing, to an organization that already has a long-term | |||
| relationship with the Client. This is often attractive as Relying | relationship with the Client. This is often attractive as Relying | |||
| Parties frequently do not want these responsibilities. The Client | Parties frequently do not want these responsibilities. The Client | |||
| also requires fewer credentials, which is also desirable. | also requires fewer credentials, which is also desirable. | |||
| Data Minimization and User Participation: | Data Minimization and User Participation: | |||
| Often a Relying Party does not need to know the identity of a | Often a Relying Party does not need to know the identity of a | |||
| Client to reach an access management decision. It is frequently | Client to reach an access management decision. It is frequently | |||
| only necessary for the Relying Party know specific attributes | only necessary for the Relying Party to know specific attributes | |||
| about the client, for example, that the client is affiliated with | about the client, for example, that the client is affiliated with | |||
| a particular organization or has a certain role or entitlement. | a particular organization or has a certain role or entitlement. | |||
| Sometimes the RP only needs to know a pseudonym of the client. | Sometimes the RP only needs to know a pseudonym of the client. | |||
| Prior to the release of attributes to the RP from the IdP, the IdP | Prior to the release of attributes to the RP from the IdP, the IdP | |||
| will check configuration and policy to determine if the attributes | will check configuration and policy to determine if the attributes | |||
| are to be released. There is currently no direct client | are to be released. There is currently no direct client | |||
| participation in this decision. | participation in this decision. | |||
| Provisioning: | Provisioning: | |||
| skipping to change at page 5, line 25 ¶ | skipping to change at page 5, line 25 ¶ | |||
| This document uses the term Network Access Identifier (NAI), as | This document uses the term Network Access Identifier (NAI), as | |||
| defined in [I-D.ietf-radext-nai]. An NAI consists of a realm | defined in [I-D.ietf-radext-nai]. An NAI consists of a realm | |||
| identifier, which is associated with an IdP and a username which is | identifier, which is associated with an IdP and a username which is | |||
| associated with a specific client of the IdP. | associated with a specific client of the IdP. | |||
| One of the problems people will find with reading this document is | One of the problems people will find with reading this document is | |||
| that the terminology sometimes appears to be inconsistent. This is | that the terminology sometimes appears to be inconsistent. This is | |||
| due the fact that the terms used by the different standards we are | due the fact that the terms used by the different standards we are | |||
| referencing are not consistent. In general the document uses either | referencing are not consistent. In general the document uses either | |||
| a the ABFAB term or the term associated with the standard under | the ABFAB term or the term associated with the standard under | |||
| discussion as appropriate. For reference we include this table which | discussion as appropriate. For reference we include this table which | |||
| maps the different terms into a single table. | maps the different terms into a single table. | |||
| +--------------+--------------+-----------------+-------------------+ | +------------+-------------+---------------------+------------------+ | |||
| | Protocol | Client | Relying Party | Identity Provider | | | Protocol | Client | Relying Party | Identity | | |||
| +--------------+--------------+-----------------+-------------------+ | | | | | Provider | | |||
| | ABFAB | Client | Relying Party | Identity Provider | | +------------+-------------+---------------------+------------------+ | |||
| | | | (RP) | (IdP) | | | ABFAB | Client | Relying Party (RP) | Identity | | |||
| | | | | | | | | | | Provider (IdP) | | |||
| | | Initiator | Acceptor | | | | | | | | | |||
| | | | | | | | | Initiator | Acceptor | | | |||
| | | | Server | | | | | | | | | |||
| | | | | | | | | | Server | | | |||
| | SAML | Subject | Service | Issuer | | | | | | | | |||
| | | | Provider | | | | SAML | Subject | Service Provider | Issuer | | |||
| | | | | | | | | | | | | |||
| | GSS-API | Initiator | Acceptor | | | | GSS-API | Initiator | Acceptor | | | |||
| | | | | | | | | | | | | |||
| | EAP | EAP peer | | EAP server | | | EAP | EAP peer | EAP Authenticator | EAP server | | |||
| | | | | | | | | | | | | |||
| | AAA | | AAA Client | AAA server | | | AAA | | AAA Client | AAA server | | |||
| | | | | | | | | | | | | |||
| | RADIUS | user | NAS | RADIUS server | | | RADIUS | user | NAS | RADIUS server | | |||
| | | | | | | | | | | | | |||
| | | | RADIUS client | | | | | | RADIUS client | | | |||
| +--------------+--------------+-----------------+-------------------+ | +------------+-------------+---------------------+------------------+ | |||
| Table 1. Terminology | ||||
| Note that in some cases a cell has been left empty; in these cases | Note that in some cases a cell has been left empty; in these cases | |||
| there is no name that represents the entity. | there is no name that represents the entity. | |||
| 1.1.1. Channel Binding | 1.1.1. Channel Binding | |||
| This document uses the term channel binding with two different | This document uses the term channel binding with two different | |||
| meanings. | meanings. | |||
| EAP channel binding is used to provide GSS-API naming semantics. | EAP channel binding is used to provide GSS-API naming semantics. EAP | |||
| Channel binding sends a set of attributes from the peer to the EAP | channel binding sends a set of attributes from the peer to the EAP | |||
| server either as part of the EAP conversation or as part of a secure | server either as part of the EAP conversation or as part of a secure | |||
| association protocol. In addition, attributes are sent in the | association protocol. In addition, attributes are sent in the | |||
| backend protocol from the authenticator to the EAP server. The EAP | backend protocol from the EAP authenticator to the EAP server. The | |||
| server confirms the consistency of these attributes and provides the | EAP server confirms the consistency of these attributes and provides | |||
| confirmation back to the peer. In this document, channel binding | the confirmation back to the peer. In this document, channel binding | |||
| without qualification refers to EAP channel binding. | without qualification refers to EAP channel binding. | |||
| GSS-API channel binding provides protection against man-in-the-middle | GSS-API channel binding provides protection against man-in-the-middle | |||
| attacks when GSS-API is used for authentication inside of some | attacks when GSS-API is used for authentication inside of some | |||
| tunnel; it is similar to a facility called cryptographic binding in | tunnel; it is similar to a facility called cryptographic binding in | |||
| EAP. The binding works by each side deriving a cryptographic value | EAP. The binding works by each side deriving a cryptographic value | |||
| from the tunnel itself and then using that cryptographic value to | from the tunnel itself and then using that cryptographic value to | |||
| prove to the other side that it knows the value. | prove to the other side that it knows the value. | |||
| See [RFC5056] for a discussion of the differences between these two | See [RFC5056] for a discussion of the differences between these two | |||
| facilities. However, the difference can be summarized as GSS-API | facilities. However, the difference can be summarized as GSS-API | |||
| channel binding says that there is nobody between the client and the | channel binding says that there is nobody between the client and the | |||
| authenticator while EAP channel binding allows the client to have | EAP authenticator while EAP channel binding allows the client to have | |||
| knowledge about attributes of the authenticator (such as it's name). | knowledge about attributes of the EAP authenticator (such as its | |||
| name). | ||||
| Typically when considering channel binding, people think of channel | Typically when considering both EAP and GSS-API channel binding, | |||
| binding in combination with mutual authentication. This is | people think of channel binding in combination with mutual | |||
| sufficiently common that without additional qualification channel | authentication. This is sufficiently common that without additional | |||
| binding should be assumed to imply mutual authentication. Without | qualification channel binding should be assumed to imply mutual | |||
| mutual authentication, only one party knows that the endpoints are | authentication. In GSS-API, without mutualtion only the acceptor has | |||
| correct. That's sometimes useful. Consider for example a user who | authenticated the initator. Similarly in EAP, only the EAP server | |||
| wishes to access a protected resource from a shared whiteboard in a | has authenticated the peer. That's sometimes useful. Consider for | |||
| conference room. The whiteboard is the initiator; it does not need | example a user who wishes to access a protected resource for a shared | |||
| to actually authenticate that it is talking to the correct resource | whiteboard in a conference room. The whiteboard is the acceptor; it | |||
| because the user will be able to recognize whether the displayed | knows that the initiator is authorized to give it a presentation and | |||
| content is correct. If channel binding is used without mutual | the user can validate the whitebord got the correct presentation by | |||
| authentication, it is effectively a request to disclose the resource | visual means. (The presention should not be confiduatal in this | |||
| in the context of a particular channel. Such an authentication would | case.) If channel binding is used without mutual authentication, it | |||
| be similar in concept to a holder-of-key SAML assertion. However, | is effectively a request to disclose the resource in the context of a | |||
| also note that while it is not happening in the protocol, mutual | particular channel. Such an authentication would be similar in | |||
| authentication is happening in the overall system: the user is able | concept to a holder-of-key SAML assertion. However, also note that | |||
| to visually authenticate the content. This is consistent with all | while it is not happening in the protocol, mutual authentication is | |||
| uses of channel binding without protocol level mutual authentication | happening in the overall system: the user is able to visually | |||
| found so far. | authenticate the content. This is consistent with all uses of | |||
| channel binding without protocol level mutual authentication found so | ||||
| far. | ||||
| 1.2. An Overview of Federation | 1.2. An Overview of Federation | |||
| In the previous section we introduced the following entities: | In the previous section we introduced the following entities: | |||
| o the Client, | o the Client, | |||
| o the Identity Provider, and | o the Identity Provider, and | |||
| o the Relying Party. | o the Relying Party. | |||
| skipping to change at page 8, line 27 ¶ | skipping to change at page 8, line 42 ¶ | |||
| The relationships between the entities in Figure 1 are: | The relationships between the entities in Figure 1 are: | |||
| Federation | Federation | |||
| The Identity Provider and the Relying Parties are part of a | The Identity Provider and the Relying Parties are part of a | |||
| Federation. The relationship may be direct (they have an explicit | Federation. The relationship may be direct (they have an explicit | |||
| trust relationship) or transitive (the trust relationship is | trust relationship) or transitive (the trust relationship is | |||
| mediated by one or more entities). The federation relationship is | mediated by one or more entities). The federation relationship is | |||
| governed by a federation agreement. Within a single federation, | governed by a federation agreement. Within a single federation, | |||
| there may be multiple Identity Providers as well as multiple | there may be multiple Identity Providers as well as multiple | |||
| Relying Parties. A federation is governed by a federation | Relying Parties. | |||
| agreement. | ||||
| Authentication | Authentication | |||
| There is a direct relationship between the Client and the Identity | There is a direct relationship between the Client and the Identity | |||
| Provider by which the entities trust and can securely authenticate | Provider by which the entities trust and can securely authenticate | |||
| each other. | each other. | |||
| A federation agreement typically encompasses operational | A federation agreement typically encompasses operational | |||
| specifications and legal rules: | specifications and legal rules: | |||
| skipping to change at page 11, line 15 ¶ | skipping to change at page 11, line 36 ¶ | |||
| 1.4. An Overview of ABFAB-based Federation | 1.4. An Overview of ABFAB-based Federation | |||
| The previous section described the general model of federation, and | The previous section described the general model of federation, and | |||
| the application of access management within the federation. This | the application of access management within the federation. This | |||
| section provides a brief overview of ABFAB in the context of this | section provides a brief overview of ABFAB in the context of this | |||
| model. | model. | |||
| In this example, a client is attempting to connect to a server in | In this example, a client is attempting to connect to a server in | |||
| order to either get access to some data or perform some type of | order to either get access to some data or perform some type of | |||
| transaction. In order for the client to mutually authenticate with | transaction. In order for the client to mutually authenticate with | |||
| the server, the following steps are taken in an ABFAB federated | the server, the following steps are taken in an ABFAB architecture: | |||
| architecture: | ||||
| 1. Client Configuration: The Client Application is configured with | 1. Client Configuration: The Client Application is configured with | |||
| an NAI assigned by the IdP. It is also configured with any | an NAI assigned by the IdP. It is also configured with any | |||
| keys, certificates, passwords or other secret and public | keys, certificates, passwords or other secret and public | |||
| information needed to run the EAP protocols between it and the | information needed to run the EAP protocols between it and the | |||
| IdP. | IdP. | |||
| 2. Authentication mechanism selection: The GSS-EAP GSS-API | 2. Authentication mechanism selection: The GSS-EAP GSS-API | |||
| mechanism is selected for authentication/authorization. | mechanism is selected for authentication/authorization. | |||
| skipping to change at page 11, line 44 ¶ | skipping to change at page 12, line 15 ¶ | |||
| 4. Discovery of federated IdP: The RP uses pre-configured | 4. Discovery of federated IdP: The RP uses pre-configured | |||
| information or a federation proxy to determine what IdP to use | information or a federation proxy to determine what IdP to use | |||
| based on policy and the realm portion of the provided Client | based on policy and the realm portion of the provided Client | |||
| NAI. This is discussed in detail below (Section 2.1.2). | NAI. This is discussed in detail below (Section 2.1.2). | |||
| 5. Request from Relying Party to IdP: Once the RP knows who the IdP | 5. Request from Relying Party to IdP: Once the RP knows who the IdP | |||
| is, it (or its agent) will send a RADIUS/Diameter request to the | is, it (or its agent) will send a RADIUS/Diameter request to the | |||
| IdP. The RADIUS/Diameter access request encapsulates the EAP | IdP. The RADIUS/Diameter access request encapsulates the EAP | |||
| response. At this stage, the RP will likely have no idea who | response. At this stage, the RP will likely have no idea who | |||
| the client is. The RP sends its identity to the IdP in AAA | the client is. The RP sends its identity to the IdP in AAA | |||
| attributes, and it may send a SAML Attribute Requests in a AAA | attributes, and it may send a SAML Attribute Request in a AAA | |||
| attribute. The AAA network checks that the identity claimed by | attribute. The AAA network checks that the identity claimed by | |||
| the RP is valid. | the RP is valid. | |||
| 6. IdP begins EAP with the client: The IdP sends an EAP message to | 6. IdP begins EAP with the client: The IdP sends an EAP message to | |||
| the client with an EAP method to be used. The IdP SHOULD NOT | the client with an EAP method to be used. The IdP SHOULD NOT | |||
| re-request the clients name in this message, but clients need to | re-request the clients name in this message, but clients need to | |||
| be able to handle it. In this case the IdP MUST accept a realm | be able to handle it. In this case the IdP MUST accept a realm | |||
| only in order to protect the client's name from the RP. The | only in order to protect the client's name from the RP. The | |||
| available and appropriate methods are discussed below in this | available and appropriate methods are discussed below in this | |||
| memo (Section 2.2.1). | memo (Section 2.2.1). | |||
| 7. The EAP protocol is run: A bunch of EAP messages are passed | 7. The EAP protocol is run: A bunch of EAP messages are passed | |||
| between the client (EAP peer) and the IdP (EAP server), until | between the client (EAP peer) and the IdP (EAP server), until | |||
| the result of the authentication protocol is determined. The | the result of the authentication protocol is determined. The | |||
| number and content of those messages depends on the EAP method | number and content of those messages depends on the EAP method | |||
| selected. If the IdP is unable to authenticate the client, the | selected. If the IdP is unable to authenticate the client, the | |||
| IdP sends a EAP failure message to the RP. As part of the EAP | IdP sends an EAP failure message to the RP. As part of the EAP | |||
| protocol, the client sends a channel bindings EAP message to the | protocol, the client sends a channel bindings EAP message to the | |||
| IdP (Section 2.2.2). In the channel binding message the client | IdP (Section 2.2.2). In the channel binding message the client | |||
| identifies, among other things, the RP to which it is attempting | identifies, among other things, the RP to which it is attempting | |||
| to authenticate. The IdP checks the channel binding data from | to authenticate. The IdP checks the channel binding data from | |||
| the client with that provided by the RP via the AAA protocol. | the client with that provided by the RP via the AAA protocol. | |||
| If the bindings do not match the IdP sends an EAP failure | If the bindings do not match the IdP sends an EAP failure | |||
| message to the RP. | message to the RP. | |||
| 8. Successful EAP Authentication: At this point, the IdP (EAP | 8. Successful EAP Authentication: At this point, the IdP (EAP | |||
| server) and client (EAP peer) have mutually authenticated each | server) and client (EAP peer) have mutually authenticated each | |||
| skipping to change at page 12, line 38 ¶ | skipping to change at page 13, line 9 ¶ | |||
| and from the client (by the channel binding data). | and from the client (by the channel binding data). | |||
| 9. Local IdP Policy Check: At this stage, the IdP checks local | 9. Local IdP Policy Check: At this stage, the IdP checks local | |||
| policy to determine whether the RP and client are authorized for | policy to determine whether the RP and client are authorized for | |||
| a given transaction/service, and if so, what if any, attributes | a given transaction/service, and if so, what if any, attributes | |||
| will be released to the RP. If the IdP gets a policy failure, | will be released to the RP. If the IdP gets a policy failure, | |||
| it sends an EAP failure message to the RP.[[Should this be an | it sends an EAP failure message to the RP.[[Should this be an | |||
| EAP failure to the client as well?]] (The RP will have done its | EAP failure to the client as well?]] (The RP will have done its | |||
| policy checks during the discovery process.) | policy checks during the discovery process.) | |||
| 10. IdP provide the RP with the MSK: The IdP sends a positive result | 10. IdP provides the RP with the MSK: The IdP sends a positive | |||
| EAP to the RP, along with an optional set of AAA attributes | result EAP to the RP, along with an optional set of AAA | |||
| associated with the client (usually as one or more SAML | attributes associated with the client (usually as one or more | |||
| assertions). In addition, the EAP MSK is returned to the RP. | SAML assertions). In addition, the EAP MSK is returned to the | |||
| RP. | ||||
| 11. RP Processes Results: When the RP receives the result from the | 11. RP Processes Results: When the RP receives the result from the | |||
| IdP, it should have enough information to either grant or refuse | IdP, it should have enough information to either grant or refuse | |||
| a resource access request. It may have information that | a resource access request. It may have information that | |||
| associates the client with specific authorization identities. | associates the client with specific authorization identities. | |||
| If additional attributes are needed from the IdP the RP may make | If additional attributes are needed from the IdP the RP may make | |||
| a new SAML Request to the IdP. It will apply these results in | a new SAML Request to the IdP. It will apply these results in | |||
| an application-specific way. | an application-specific way. | |||
| 12. RP returns results to client: Once the RP has a response it must | 12. RP returns results to client: Once the RP has a response it must | |||
| skipping to change at page 19, line 29 ¶ | skipping to change at page 19, line 43 ¶ | |||
| manual configuration. | manual configuration. | |||
| 2.1.3. Routing and Technical Trust | 2.1.3. Routing and Technical Trust | |||
| Several approaches to having messages routed through the federation | Several approaches to having messages routed through the federation | |||
| substrate are possible. These routing methods can most easily be | substrate are possible. These routing methods can most easily be | |||
| classified based on the mechanism for technical trust that is used. | classified based on the mechanism for technical trust that is used. | |||
| The choice of technical trust mechanism constrains how rules | The choice of technical trust mechanism constrains how rules | |||
| determination is implemented. Regardless of what deployment strategy | determination is implemented. Regardless of what deployment strategy | |||
| is chosen, it is important that the technical trust mechanism be able | is chosen, it is important that the technical trust mechanism be able | |||
| to validate theg identities of both parties to the exchange. The | to validate the identities of both parties to the exchange. The | |||
| trust mechanism must to ensure that the entity acting as IdP for a | trust mechanism must ensure that the entity acting as IdP for a given | |||
| given NAI is permitted to be the IdP for that realm, and that any | NAI is permitted to be the IdP for that realm, and that any service | |||
| service name claimed by the RP is permitted to be claimed by that | name claimed by the RP is permitted to be claimed by that entity. | |||
| entity. Here are the categories of technical trust determination: | Here are the categories of technical trust determination: | |||
| AAA Proxy: | AAA Proxy: | |||
| The simplest model is that an RP is an AAA client and can send the | The simplest model is that an RP is an AAA client and can send the | |||
| request directly to an AAA proxy. The hop-by-hop integrity | request directly to an AAA proxy. The hop-by-hop integrity | |||
| protection of the AAA fabric provides technical trust. An RP can | protection of the AAA fabric provides technical trust. An RP can | |||
| submit a request directly to a federation. Alternatively, a | submit a request directly to the correct federation. | |||
| federation disambiguation fabric can be used. Such a fabric takes | Alternatively, a federation disambiguation fabric can be used. | |||
| information about what federations the RP is part of and what | Such a fabric takes information about what federations the RP is | |||
| federations the IdP is part of and routes a message to the | part of and what federations the IdP is part of and routes a | |||
| appropriate federation. The routing of messages across the fabric | message to the appropriate federation. The routing of messages | |||
| plus attributes added to requests and responses provides rules | across the fabric plus attributes added to requests and responses | |||
| determination. For example, when a disambiguation fabric routes a | provides rules determination. For example, when a disambiguation | |||
| message to a given federation, that federation's rules are chosen. | fabric routes a message to a given federation, that federation's | |||
| Name validation is enforced as messages travel across the fabric. | rules are chosen. Name validation is enforced as messages travel | |||
| The entities near the RP confirm its identity and validate names | across the fabric. The entities near the RP confirm its identity | |||
| it claims. The fabric routes the message towards the appropriate | and validate names it claims. The fabric routes the message | |||
| IdP, validating the IdP's name in the process. The routing can be | towards the appropriate IdP, validating the name of the IdP in the | |||
| statically configured. Alternatively a routing protocol could be | process. The routing can be statically configured. Alternatively | |||
| developed to exchange reachability information about given a IdP | a routing protocol could be developed to exchange reachability | |||
| and to apply policy across the AAA fabric. Such a routing | information about a given IdP and to apply policy across the AAA | |||
| protocol could flood naming constraints to the appropriate points | fabric. Such a routing protocol could flood naming constraints to | |||
| in the fabric. | the appropriate points in the fabric. | |||
| Trust Broker: | Trust Broker: | |||
| Instead of routing messages through AAA proxies, some trust broker | Instead of routing messages through AAA proxies, some trust broker | |||
| could establish keys between entities near the RP and entities | could establish keys between entities near the RP and entities | |||
| near the IdP. The advantage of this approach is efficiency of | near the IdP. The advantage of this approach is efficiency of | |||
| message handling. Fewer entities are needed to be involved for | message handling. Fewer entities are needed to be involved for | |||
| each message. Security may be improved by sending individual | each message. Security may be improved by sending individual | |||
| messages over fewer hops. Rules determination involves decisions | messages over fewer hops. Rules determination involves decisions | |||
| made by trust brokers about what keys to grant. Also, associated | made by trust brokers about what keys to grant. Also, associated | |||
| with each credential is context about rules and about other | with each credential is context about rules and about other | |||
| skipping to change at page 22, line 34 ¶ | skipping to change at page 23, line 14 ¶ | |||
| namespace, naming and semantic mappings as the assertion crosses the | namespace, naming and semantic mappings as the assertion crosses the | |||
| different boundaries in the federation. If the proxies are modifying | different boundaries in the federation. If the proxies are modifying | |||
| the SAML Assertion, then they will obviously remove any signatures as | the SAML Assertion, then they will obviously remove any signatures as | |||
| they would no longer validate. In this case the technical trust is | they would no longer validate. In this case the technical trust is | |||
| the required mechanism for validating the integrity of the assertion. | the required mechanism for validating the integrity of the assertion. | |||
| Finally, the attributes may still be in the namespace of the | Finally, the attributes may still be in the namespace of the | |||
| originating IdP. When this occurs the RP will need to get the | originating IdP. When this occurs the RP will need to get the | |||
| required mapping operations from the federation agreements and do the | required mapping operations from the federation agreements and do the | |||
| appropriate mappings itself. | appropriate mappings itself. | |||
| The RADIUS SAML RFC [I-D.ietf-abfab-aaa-saml] has define a new SAML | The RADIUS SAML RFC [I-D.ietf-abfab-aaa-saml] has defined a new SAML | |||
| name format that corresponds to the NAI name form defined by RFC XXXX | name format that corresponds to the NAI name form defined by RFC XXXX | |||
| [I-D.ietf-radext-nai]. This allows for easy name matching in many | [I-D.ietf-radext-nai]. This allows for easy name matching in many | |||
| cases as the name form in the SAML statement and the name form used | cases as the name form in the SAML statement and the name form used | |||
| in RADIUS or Diameter will be the same. In addition to the NAI name | in RADIUS or Diameter will be the same. In addition to the NAI name | |||
| form, the document also defines a pair of implicit name forms | form, the document also defines a pair of implicit name forms | |||
| corresponding to the Client and the Client's machine. These implicit | corresponding to the Client and the Client's machine. These implicit | |||
| name forms are based on the Identity-Type enumeration defined in TEAP | name forms are based on the Identity-Type enumeration defined in TEAP | |||
| [I-D.ietf-emu-eap-tunnel-method]. If the name form returned in a | [I-D.ietf-emu-eap-tunnel-method]. If the name form returned in a | |||
| SAML statement is not based on the NAI, then it is a requirement on | SAML statement is not based on the NAI, then it is a requirement on | |||
| the EAP server that it validate that the subject of the SAML | the EAP server that it validate that the subject of the SAML | |||
| skipping to change at page 24, line 32 ¶ | skipping to change at page 25, line 13 ¶ | |||
| tokens while others use passwords. A service provider wants to | tokens while others use passwords. A service provider wants to | |||
| provide support for both authentication methods, and other methods | provide support for both authentication methods, and other methods | |||
| from IdPs not yet seen. | from IdPs not yet seen. | |||
| These requirements can be met by utilizing standardized and | These requirements can be met by utilizing standardized and | |||
| successfully deployed technology, namely by the Extensible | successfully deployed technology, namely by the Extensible | |||
| Authentication Protocol (EAP) framework [RFC3748]. Figure 2 | Authentication Protocol (EAP) framework [RFC3748]. Figure 2 | |||
| illustrates the integration graphically. | illustrates the integration graphically. | |||
| EAP is an end-to-end framework; it provides for two-way communication | EAP is an end-to-end framework; it provides for two-way communication | |||
| between a peer (i.e. client or individual) through the authenticator | between a peer (i.e. client or individual) through the EAP | |||
| (i.e., relying party) to the back-end (i.e., identity provider). | authenticator (i.e., relying party) to the back-end (i.e., identity | |||
| Conveniently, this is precisely the communication path that is needed | provider). Conveniently, this is precisely the communication path | |||
| for federated identity. Although EAP support is already integrated | that is needed for federated identity. Although EAP support is | |||
| in AAA systems (see [RFC3579] and [RFC4072]) several challenges | already integrated in AAA systems (see [RFC3579] and [RFC4072]) | |||
| remain: | several challenges remain: | |||
| o The first is how to carry EAP payloads from the end host to the | o The first is how to carry EAP payloads from the end host to the | |||
| relying party. | relying party. | |||
| o Another is to verify statements the relying party has made to the | o Another is to verify statements the relying party has made to the | |||
| client, confirm these statements are consistent with statements | client, confirm these statements are consistent with statements | |||
| made to the identity provider and confirm all the above are | made to the identity provider and confirm all of the above are | |||
| consistent with the federation and any federation-specific policy | consistent with the federation and any federation-specific policy | |||
| or configuration. | or configuration. | |||
| o Another challenge is choosing which identity provider to use for | o Another challenge is choosing which identity provider to use for | |||
| which service. | which service. | |||
| The EAP method used for ABFAB needs to meet the following | The EAP method used for ABFAB needs to meet the following | |||
| requirements: | requirements: | |||
| o It needs to provide mutual authentication of the client and IdP. | o It needs to provide mutual authentication of the client and IdP. | |||
| skipping to change at page 25, line 24 ¶ | skipping to change at page 25, line 51 ¶ | |||
| certificates are used) or with an inner EAP method that does mutual | certificates are used) or with an inner EAP method that does mutual | |||
| authentication. | authentication. | |||
| 2.2.2. EAP Channel Binding | 2.2.2. EAP Channel Binding | |||
| EAP channel binding is easily confused with a facility in GSS-API | EAP channel binding is easily confused with a facility in GSS-API | |||
| also called channel binding. GSS-API channel binding provides | also called channel binding. GSS-API channel binding provides | |||
| protection against man-in-the-middle attacks when GSS-API is used as | protection against man-in-the-middle attacks when GSS-API is used as | |||
| authentication inside some tunnel; it is similar to a facility called | authentication inside some tunnel; it is similar to a facility called | |||
| cryptographic binding in EAP. See [RFC5056] for a discussion of the | cryptographic binding in EAP. See [RFC5056] for a discussion of the | |||
| differences between these two facilities and Section 6.1 for how GSS- | differences between these two facilities. | |||
| API channel binding is handled in this mechanism. | ||||
| The client knows, in theory, the name of the RP that it attempted to | The client knows, in theory, the name of the RP that it attempted to | |||
| connect to, however in the event that an attacker has intercepted the | connect to, however in the event that an attacker has intercepted the | |||
| protocol, the client and the IdP need to be able to detect this | protocol, the client and the IdP need to be able to detect this | |||
| situation. A general overview of the problem along with a | situation. A general overview of the problem along with a | |||
| recommended way to deal with the channel binding issues can be found | recommended way to deal with the channel binding issues can be found | |||
| in RFC 6677 [RFC6677]. | in RFC 6677 [RFC6677]. | |||
| Since that document was published, a number of possible attacks were | Since that document was published, a number of possible attacks were | |||
| found and methods to address these attacks have been outlined in | found and methods to address these attacks have been outlined in | |||
| [I-D.ietf-emu-crypto-bind]. | [I-D.ietf-emu-crypto-bind]. | |||
| 2.3. Client to Relying Party | 2.3. Client to Relying Party | |||
| The final set of interactions between parties to consider are those | The final set of interactions between the parties to consider are | |||
| between the client and the RP. In some ways this is the most complex | those between the client and the RP. In some ways this is the most | |||
| set since at least part of it is outside the scope of the ABFAB work. | complex set since at least part of it is outside the scope of the | |||
| The interactions between these parties include: | ABFAB work. The interactions between these parties include: | |||
| o Running the protocol that implements the service that is provided | o Running the protocol that implements the service that is provided | |||
| by the RP and desired by the client. | by the RP and desired by the client. | |||
| o Authenticating the client to the RP and the RP to the client. | o Authenticating the client to the RP and the RP to the client. | |||
| o Providing the necessary security services to the service protocol | o Providing the necessary security services to the service protocol | |||
| that it needs beyond authentication. | that it needs beyond authentication. | |||
| o Deal with client re-authentication where desired. | o Deal with client re-authentication where desired. | |||
| skipping to change at page 27, line 15 ¶ | skipping to change at page 27, line 42 ¶ | |||
| For example, this work focuses on privacy; an application that | For example, this work focuses on privacy; an application that | |||
| assumes it will always obtain an identifier for the client will need | assumes it will always obtain an identifier for the client will need | |||
| to be modified to support anonymity, unlinkability or pseudonymity. | to be modified to support anonymity, unlinkability or pseudonymity. | |||
| So, we use GSS-API and SASL because a number of the application | So, we use GSS-API and SASL because a number of the application | |||
| protocols we wish to federate support these strategies for security | protocols we wish to federate support these strategies for security | |||
| integration. What does this mean from a protocol standpoint and how | integration. What does this mean from a protocol standpoint and how | |||
| does this relate to other layers? This means we need to design a | does this relate to other layers? This means we need to design a | |||
| concrete GSS-API mechanism. We have chosen to use a GSS-API | concrete GSS-API mechanism. We have chosen to use a GSS-API | |||
| mechanism that encapsulates EAP authentication. So, GSS-API (and | mechanism that encapsulates EAP authentication. So, GSS-API (and | |||
| SASL) encapsulate EAP between the end-host and the service. The AAA | SASL) encapsulates EAP between the end-host and the service. The AAA | |||
| framework encapsulates EAP between the relying party and the identity | framework encapsulates EAP between the relying party and the identity | |||
| provider. The GSS-API mechanism includes rules about how initiators | provider. The GSS-API mechanism includes rules about how initiators | |||
| and services are named as well as per-message security and other | and services are named as well as per-message security and other | |||
| facilities required by the applications we wish to support. | facilities required by the applications we wish to support. | |||
| 2.3.2. Protocol Transport | 2.3.2. Protocol Transport | |||
| The transport of data between the client and the relying party is not | The transport of data between the client and the relying party is not | |||
| provided by GSS-API. GSS-API creates and consumes messages, but it | provided by GSS-API. GSS-API creates and consumes messages, but it | |||
| does not provide the transport itself, instead the protocol using | does not provide the transport itself, instead the protocol using | |||
| skipping to change at page 27, line 50 ¶ | skipping to change at page 28, line 34 ¶ | |||
| o The transport needs to ensure that tokens are delivered in order | o The transport needs to ensure that tokens are delivered in order | |||
| during the negotiation process. | during the negotiation process. | |||
| o GSS-API messages need to be delivered atomically. If the | o GSS-API messages need to be delivered atomically. If the | |||
| transport breaks up a message it must also reassemble the message | transport breaks up a message it must also reassemble the message | |||
| before delivery. | before delivery. | |||
| 2.3.3. Reauthentication | 2.3.3. Reauthentication | |||
| TBD. | There are circumstances where the server will want to have the client | |||
| reauthenticate itself. These include very long sessions, where the | ||||
| original authentication is time limited or cases where in order to | ||||
| complete an operation a different authentication is required. GSS- | ||||
| EAP does not have any mechanism for the server to initiate a | ||||
| reauthentication as all authentication operations start from the | ||||
| client. If a protocol using GSS-EAP needs to support | ||||
| reauthentication that is initiated by the server, then a request from | ||||
| the server to the client for the reauthentiction to start needs to be | ||||
| placed in the protocol. | ||||
| Clients can re-use the existing secure connection established by GSS- | ||||
| API to run the new authentication in by calling GSS_Init_sec_context. | ||||
| At this point a full reauthentication will be done. | ||||
| 3. Application Security Services | 3. Application Security Services | |||
| One of the key goals is to integrate federated authentication into | One of the key goals is to integrate federated authentication into | |||
| existing application protocols and where possible, existing | existing application protocols and where possible, existing | |||
| implementations of these protocols. Another goal is to perform this | implementations of these protocols. Another goal is to perform this | |||
| integration while meeting the best security practices of the | integration while meeting the best security practices of the | |||
| technologies used to perform the integration. This section describes | technologies used to perform the integration. This section describes | |||
| security services and properties required by the EAP GSS-API | security services and properties required by the EAP GSS-API | |||
| mechanism in order to meet these goals. This information could be | mechanism in order to meet these goals. This information could be | |||
| skipping to change at page 30, line 9 ¶ | skipping to change at page 31, line 13 ¶ | |||
| found in RFC 5056 [RFC5056]. | found in RFC 5056 [RFC5056]. | |||
| The use of TLS can provide both encryption and integrity on the | The use of TLS can provide both encryption and integrity on the | |||
| channel. It is common to provide SASL and GSS-API with these other | channel. It is common to provide SASL and GSS-API with these other | |||
| security services. | security services. | |||
| One of the benefits that the use of TLS provides, is that client has | One of the benefits that the use of TLS provides, is that client has | |||
| the ability to validate the name of the server. However this | the ability to validate the name of the server. However this | |||
| validation is predicated on a couple of things. The TLS sessions | validation is predicated on a couple of things. The TLS sessions | |||
| needs to be using certificates and not be an anonymous session. The | needs to be using certificates and not be an anonymous session. The | |||
| client and the TLS need to share a common trust point for the | client and the TLS server need to share a common trust point for the | |||
| certificate used in validating the server. TLS provides its own | certificate used in validating the server. TLS provides its own | |||
| server authentication. However there are a variety of situations | server authentication. However there are a variety of situations | |||
| where this authentication is not checked for policy or usability | where this authentication is not checked for policy or usability | |||
| reasons. Even when it is checked, if the trust infrastructure behind | reasons. When the TLS authentication is checked, if the trust | |||
| the TLS authentication is different from the trust infrastructure | infrastructure behind the TLS authentication is different from the | |||
| behind the GSS-API mutual authentication then confirming the end- | trust infrastructure behind the GSS-API mutual authentication then | |||
| points using both trust infrastructures is likely to enhance | confirming the end-points using both trust infrastructures is likely | |||
| security. If the endpoints of the GSS-API authentication are | to enhance security. If the endpoints of the GSS-API authentication | |||
| different than the endpoints of the lower layer, this is a strong | are different than the endpoints of the lower layer, this is a strong | |||
| indication of a problem such as a man-in-the-middle attack. Channel | indication of a problem such as a man-in-the-middle attack. Channel | |||
| binding provides a facility to determine whether these endpoints are | binding provides a facility to determine whether these endpoints are | |||
| the same. | the same. | |||
| The GSS-EAP mechanism needs to support channel binding. When an | The GSS-EAP mechanism needs to support channel binding. When an | |||
| application provides channel binding data, the mechanism needs to | application provides channel binding data, the mechanism needs to | |||
| confirm this is the same on both sides consistent with the GSS-API | confirm this is the same on both sides consistent with the GSS-API | |||
| specification. | specification. | |||
| 3.3. Host-Based Service Names | 3.3. Host-Based Service Names | |||
| skipping to change at page 30, line 43 ¶ | skipping to change at page 31, line 47 ¶ | |||
| This decision can be made by the use of certificates, pre-configured | This decision can be made by the use of certificates, pre-configured | |||
| key information or a previous leap of trust. GSS-API has defined a | key information or a previous leap of trust. GSS-API has defined a | |||
| relatively flexible name convention, however most of the IETF | relatively flexible name convention, however most of the IETF | |||
| applications that use GSS-API (including SSH, NFS, IMAP, LDAP and | applications that use GSS-API (including SSH, NFS, IMAP, LDAP and | |||
| XMPP) have chosen to use a more restricted naming convention based on | XMPP) have chosen to use a more restricted naming convention based on | |||
| the host name. The GSS-EAP mechanism needs to support host-based | the host name. The GSS-EAP mechanism needs to support host-based | |||
| service names in order to work with existing IETF protocols. | service names in order to work with existing IETF protocols. | |||
| The use of host-based service names leads to a challenging trust | The use of host-based service names leads to a challenging trust | |||
| delegation problem. Who is allowed to decide whether a particular | delegation problem. Who is allowed to decide whether a particular | |||
| host name maps to a specific entity. Possible solutions to this | host name maps to a specific entity? Possible solutions to this | |||
| problem have been looked at. | problem have been looked at. | |||
| o The public-key infrastructure (PKI) used by the web has chosen to | o The public-key infrastructure (PKI) used by the web has chosen to | |||
| have a number of trust anchors (root certificate authorities) each | have a number of trust anchors (root certificate authorities) each | |||
| of which can map any host name to a public key. | of which can map any host name to a public key. | |||
| o A number of GSS-API mechanisms, such as Kerberos [RFC1964], have | o A number of GSS-API mechanisms, such as Kerberos [RFC1964], have | |||
| split the problem into two parts. A new concept called a realm is | split the problem into two parts. A new concept called a realm is | |||
| introduced, the realm is responsible for host mapping within that | introduced, the realm is responsible for host mapping within that | |||
| realm. The mechanism then decides what realm is responsible for a | realm. The mechanism then decides what realm is responsible for a | |||
| skipping to change at page 31, line 23 ¶ | skipping to change at page 32, line 27 ¶ | |||
| that component of the name. | that component of the name. | |||
| While there is no requirement that realm names map to Fully Qualified | While there is no requirement that realm names map to Fully Qualified | |||
| Domain Names (FQDN) within DNS, in practice this is normally true. | Domain Names (FQDN) within DNS, in practice this is normally true. | |||
| Doing so allows for the realm portion of service names and the | Doing so allows for the realm portion of service names and the | |||
| portion of NAIs to be the same. It also allows for the use of DNS in | portion of NAIs to be the same. It also allows for the use of DNS in | |||
| locating the host of a service while establishing the transport | locating the host of a service while establishing the transport | |||
| channel between the client and the relying party. | channel between the client and the relying party. | |||
| It is the responsibility of the application to determine the server | It is the responsibility of the application to determine the server | |||
| that it is going to communicate with, GSS-API has the ability to help | that it is going to communicate with; GSS-API has the ability to help | |||
| confirm that the server is the desired server but not to determine | confirm that the server is the desired server but not to determine | |||
| the name of the server to use. It is also the responsibility of the | the name of the server to use. It is also the responsibility of the | |||
| application to determine how much of the information identifying the | application to determine how much of the information identifying the | |||
| service needs to be validated by the ABFAB system. The information | service needs to be validated by the ABFAB system. The information | |||
| that needs to be validated is used to build up the service name | that needs to be validated is used to build up the service name | |||
| passed into the GSS-EAP mechanism. What information is to be | passed into the GSS-EAP mechanism. What information is to be | |||
| validated will depend on both what information was provided by the | validated will depend on both what information was provided by the | |||
| client, and what information is considered significant. If the | client, and what information is considered significant. If the | |||
| client only cares about getting a specific service, then the host and | client only cares about getting a specific service, then the host and | |||
| realm that provides the service does not need to be validated. | realm that provides the service does not need to be validated. | |||
| In many cases applications may retrieve information about providers | Applications may retrieve information about providers of services | |||
| of services from DNS. When Service Records (SRV) and Naming | from DNS. Service Records (SRV) and Naming Authority Pointer (NAPTR) | |||
| Authority Pointer (NAPTR) records are used to help find a host that | records are used to help find a host that provides a service; however | |||
| provides a service, the security requirements on the referrals is | the necessity of having DNSSEC on the queries depends on how the | |||
| going to interact with the information used in the service name. If | information is going to be used. If the host name returned is not | |||
| a host name is returned from the DNS referrals, and the host name is | going to be validated by EAP channel binding, because only the | |||
| to be validated by GS-EAP, then it makes sense that the referrals | service is being validated, then DNSSEC is not required. However, if | |||
| themselves should be secure. On the other hand, if the host name | the host name is going to be validated by EAP channel binding then | |||
| returned is not validated, i.e. only the service is passed in, then | DNSSEC needs to be use to ensure that the correct host name is | |||
| it is less important that the host name be obtained in a secure | validated. In general, if the information that is returned from the | |||
| manner. | DNS query is to be validated, then it needs to be obtained in a | |||
| secure manner. | ||||
| Another issue that needs to be addressed for host-based service names | Another issue that needs to be addressed for host-based service names | |||
| is that they do not work ideally when different instances of a | is that they do not work ideally when different instances of a | |||
| service are running on different ports. If the services are | service are running on different ports. If the services are | |||
| equivalent, then it does not matter. However if there are | equivalent, then it does not matter. However if there are | |||
| substantial differences in the quality of the service that | substantial differences in the quality of the service that | |||
| information needs to be part of the validation process. If one has | information needs to be part of the validation process. If one has | |||
| just a host name and not a port in the information being validated, | just a host name and not a port in the information being validated, | |||
| then this is not going to be a successful strategy. | then this is not going to be a successful strategy. | |||
| skipping to change at page 32, line 20 ¶ | skipping to change at page 33, line 26 ¶ | |||
| GSS-API provides per-message security services that can provide | GSS-API provides per-message security services that can provide | |||
| confidentiality and/or integrity. Some IETF protocols such as NFS | confidentiality and/or integrity. Some IETF protocols such as NFS | |||
| and SSH take advantage of these services. As a result GSS-EAP needs | and SSH take advantage of these services. As a result GSS-EAP needs | |||
| to support these services. As with mutual authentication, per- | to support these services. As with mutual authentication, per- | |||
| message services will limit the set of EAP methods that can be used | message services will limit the set of EAP methods that can be used | |||
| to those that generate a Master Session Key (MSK). Any EAP method | to those that generate a Master Session Key (MSK). Any EAP method | |||
| that produces an MSK is able to support per-message security services | that produces an MSK is able to support per-message security services | |||
| described in [RFC2743]. | described in [RFC2743]. | |||
| GSS-API provides a pseudo-random function. This function generates a | GSS-API provides a pseudo-random function. This function generates a | |||
| pseudo-random sequence using the shared private key as the seed for | pseudo-random sequence using the shared session key as the seed for | |||
| the bytes generated. This provides an algorithm that both the | the bytes generated. This provides an algorithm that both the | |||
| initiator and acceptor can run in order to arrive at the same key | initiator and acceptor can run in order to arrive at the same key | |||
| value. The use of this feature allows for an application to generate | value. The use of this feature allows for an application to generate | |||
| keys or other shared secrets for use in other places in the protocol. | keys or other shared secrets for use in other places in the protocol. | |||
| In this regards, it is similar in concept to the TLS extractor (RFC | In this regards, it is similar in concept to the TLS extractor (RFC | |||
| 5705 [RFC5705].). While no current IETF protocols require this, non- | 5705 [RFC5705].). While no current IETF protocols require this, non- | |||
| IETF protocols are expected to take advantage of this in the near | IETF protocols are expected to take advantage of this in the near | |||
| future. Additionally, a number of protocols have found the TLS | future. Additionally, a number of protocols have found the TLS | |||
| extractor to be useful in this regards so it is highly probably that | extractor to be useful in this regards so it is highly probable that | |||
| IETF protocols may also start using this feature. | IETF protocols may also start using this feature. | |||
| 4. Privacy Considerations | 4. Privacy Considerations | |||
| ABFAB, as an architecture designed to enable federated authentication | ABFAB, as an architecture designed to enable federated authentication | |||
| and allow for the secure transmission of identity information between | and allow for the secure transmission of identity information between | |||
| entities, obviously requires careful consideration around privacy and | entities, obviously requires careful consideration around privacy and | |||
| the potential for privacy violations. | the potential for privacy violations. | |||
| This section examines the privacy related information presented in | This section examines the privacy related information presented in | |||
| this document, summarising the entities that are involved in ABFAB | this document, summarizing the entities that are involved in ABFAB | |||
| communications and what exposure they have to identity information. | communications and what exposure they have to identity information. | |||
| In discussing these privacy considerations in this section, we use | In discussing these privacy considerations in this section, we use | |||
| terminology and ideas from [I-D.iab-privacy-considerations]. | terminology and ideas from [I-D.iab-privacy-considerations]. | |||
| Note that the ABFAB architecture uses at its core several existing | Note that the ABFAB architecture uses at its core several existing | |||
| technologies and protocols; detailed privacy discussion around these | technologies and protocols; detailed privacy discussion around these | |||
| is not examined. This section instead focuses on privacy | is not examined. This section instead focuses on privacy | |||
| considerations specifically related to overall architecture and usage | considerations specifically related to overall architecture and usage | |||
| of ABFAB. | of ABFAB. | |||
| skipping to change at page 34, line 20 ¶ | skipping to change at page 35, line 25 ¶ | |||
| Eavesdroppers and Attackers can reside on any communication link | Eavesdroppers and Attackers can reside on any communication link | |||
| between entities in Figure 3. | between entities in Figure 3. | |||
| The Federation Substrate consists of all of the AAA entities. In | The Federation Substrate consists of all of the AAA entities. In | |||
| some cases the AAA Proxies entities may not exist as the AAA Client | some cases the AAA Proxies entities may not exist as the AAA Client | |||
| can talk directly to the AAA Server. Specifications such as the | can talk directly to the AAA Server. Specifications such as the | |||
| Trust Router Protocol and RADIUS dynamic discovery | Trust Router Protocol and RADIUS dynamic discovery | |||
| [I-D.ietf-radext-dynamic-discovery] can be used to shorten the path | [I-D.ietf-radext-dynamic-discovery] can be used to shorten the path | |||
| between the AAA client and the AAA server (and thus stop these AAA | between the AAA client and the AAA server (and thus stop these AAA | |||
| Proxies from being Observers), however even in these circumstances | Proxies from being Observers); however even in these circumstances | |||
| there may be AAA Proxies in the path. | there may be AAA Proxies in the path. | |||
| In Figure 3 the IdP has been divided into multiple logical pieces, in | In Figure 3 the IdP has been divided into multiple logical pieces, in | |||
| actual implementations these pieces will frequently be tightly | actual implementations these pieces will frequently be tightly | |||
| coupled. The links between these pieces provide the greatest | coupled. The links between these pieces provide the greatest | |||
| opportunity for attackers and eavesdroppers to acquire information, | opportunity for attackers and eavesdroppers to acquire information, | |||
| however, as they are all under the control of a single entity they | however, as they are all under the control of a single entity they | |||
| are also the easiest to have tightly secured. | are also the easiest to have tightly secured. | |||
| 4.2. Privacy Aspects of ABFAB Communication Flows | 4.2. Privacy Aspects of ABFAB Communication Flows | |||
| skipping to change at page 35, line 20 ¶ | skipping to change at page 36, line 16 ¶ | |||
| ABFAB to work - it indicates an IdP that the principal has a | ABFAB to work - it indicates an IdP that the principal has a | |||
| relationship with. EAP methods that do not allow this will | relationship with. EAP methods that do not allow this will | |||
| necessarily also reveal an identifier for the principal in the IdP | necessarily also reveal an identifier for the principal in the IdP | |||
| realm (e.g. a username). | realm (e.g. a username). | |||
| The data shared during the initial communication phase may be | The data shared during the initial communication phase may be | |||
| protected by a channel protocol such as TLS. This will prevent the | protected by a channel protocol such as TLS. This will prevent the | |||
| leak of information to passive eavesdroppers, however an active | leak of information to passive eavesdroppers, however an active | |||
| attacker may still be able to setup as a man-in-the-middle. The | attacker may still be able to setup as a man-in-the-middle. The | |||
| client may not be able to validate the certificates (if any) provided | client may not be able to validate the certificates (if any) provided | |||
| by the service, defering the check of the identity of the RP until | by the service, deferring the check of the identity of the RP until | |||
| the completion of the ABFAB authentication protocol (i.e., using EAP | the completion of the ABFAB authentication protocol (i.e., using EAP | |||
| channel binding). | channel binding). | |||
| The data exchanged after the authentication process can have privacy | The data exchanged after the authentication process can have privacy | |||
| and authentication using the GSS-API services. If the overall | and authentication using the GSS-API services. If the overall | |||
| application protocol allows for the process of re-authentication, | application protocol allows for the process of re-authentication, | |||
| then the same privacy impliciations as discussed in previous | then the same privacy implications as discussed in previous | |||
| paragraphs apply. | paragraphs apply. | |||
| 4.2.2. Client to IdP (via Federation Substrate) | 4.2.2. Client to IdP (via Federation Substrate) | |||
| This phase sees a secure TLS tunnel initiated between the Client and | This phase sees a secure TLS tunnel initiated between the Client and | |||
| the IdP via the RP and federation substrate. The process is | the IdP via the RP and federation substrate. The process is | |||
| initiated by the RP using the realm information given to it by the | initiated by the RP using the realm information given to it by the | |||
| client. Once set up, the tunnel is used to send credentials to IdP | client. Once set up, the tunnel is used to send credentials to IdP | |||
| to authenticate. | to authenticate. | |||
| skipping to change at page 36, line 16 ¶ | skipping to change at page 37, line 11 ¶ | |||
| infrastructure, for example through RADIUS headers. This is a | infrastructure, for example through RADIUS headers. This is a | |||
| particularly important privacy consideration, as any AAA Proxy | particularly important privacy consideration, as any AAA Proxy | |||
| that has access to the EAP MSK is able to decrypt and eavesdrop on | that has access to the EAP MSK is able to decrypt and eavesdrop on | |||
| any traffic encrypted using that EAP MSK (i.e. all communications | any traffic encrypted using that EAP MSK (i.e. all communications | |||
| between the Client and IdP). | between the Client and IdP). | |||
| o Related to the above, the AAA server has access to the material | o Related to the above, the AAA server has access to the material | |||
| necessary to derive the session key, thus the AAA server can | necessary to derive the session key, thus the AAA server can | |||
| observe any traffic encrypted between the Client and RP. This | observe any traffic encrypted between the Client and RP. This | |||
| "feature" was" chosen as a simplification and to make performance | "feature" was" chosen as a simplification and to make performance | |||
| faster; if it was decided that this trade-off was not desireable | faster; if it was decided that this trade-off was not desirable | |||
| for privacy and security reasons, then extensions to ABFAB that | for privacy and security reasons, then extensions to ABFAB that | |||
| make use of techniques such as Diffie-Helman key exchange would | make use of techniques such as Diffie-Helman key exchange would | |||
| mitigate against this. | mitigate against this. | |||
| The choice of EAP method used has other potential privacy | The choice of EAP method used has other potential privacy | |||
| implications. For example, if the EAP method in use does not support | implications. For example, if the EAP method in use does not support | |||
| trust anchors to enable mutual authentication, then there are no | trust anchors to enable mutual authentication, then there are no | |||
| guarantees that the IdP is who it claims to be, and thus the full NAI | guarantees that the IdP is who it claims to be, and thus the full NAI | |||
| including a username and a realm might be sent to any entity | including a username and a realm might be sent to any entity | |||
| masquerading as a particular IdP. | masquerading as a particular IdP. | |||
| skipping to change at page 36, line 45 ¶ | skipping to change at page 37, line 40 ¶ | |||
| the success or failure of authentication of the user, and optionally, | the success or failure of authentication of the user, and optionally, | |||
| the sending of identity information about the principal. | the sending of identity information about the principal. | |||
| As in the previous flow (Client to IdP), various operation | As in the previous flow (Client to IdP), various operation | |||
| information is transported between IdP and RP over the AAA | information is transported between IdP and RP over the AAA | |||
| infrastructure, and the same privacy considerations apply. However, | infrastructure, and the same privacy considerations apply. However, | |||
| in this flow, explicit identity information about the authenticated | in this flow, explicit identity information about the authenticated | |||
| principal can be sent from the IdP to the RP. This information can | principal can be sent from the IdP to the RP. This information can | |||
| be sent through RADIUS headers, or using SAML | be sent through RADIUS headers, or using SAML | |||
| [I-D.ietf-abfab-aaa-saml]. This can include protocol specific | [I-D.ietf-abfab-aaa-saml]. This can include protocol specific | |||
| identitifiers, such as SAML NameIDs, as well as arbitrary attribute | identifiers, such as SAML NameIDs, as well as arbitrary attribute | |||
| information about the principal. What information will be released | information about the principal. What information will be released | |||
| is controlled by policy on the Identity Provider. As before, when | is controlled by policy on the Identity Provider. As before, when | |||
| sending this through RADIUS headers, all AAA entities on the path | sending this through RADIUS headers, all AAA entities on the path | |||
| between the RP and IdP have the ability to eavesdrop unless | between the RP and IdP have the ability to eavesdrop unless | |||
| additional security measures are taken (such as the use of TLS for | additional security measures are taken (such as the use of TLS for | |||
| RADIUS [I-D.ietf-radext-dtls]). When sending this using SAML, as | RADIUS [I-D.ietf-radext-dtls]). When sending this using SAML, as | |||
| specified in [I-D.ietf-abfab-aaa-saml], confidentiality of the | specified in [I-D.ietf-abfab-aaa-saml], confidentiality of the | |||
| information should however be guaranteed as [I-D.ietf-abfab-aaa-saml] | information should however be guaranteed as [I-D.ietf-abfab-aaa-saml] | |||
| requires the use of TLS for RADIUS. | requires the use of TLS for RADIUS. | |||
| 4.3. Relationship between User and Entities | 4.3. Relationship between User and Entities | |||
| o Between User and IdP - the IdP is an entity the user will have a | o Between User and IdP - the IdP is an entity the user will have a | |||
| direct relationship with, created when the organisation that | direct relationship with, created when the organization that | |||
| operates the entity provisioned and exchanged the user's | operates the entity provisioned and exchanged the user's | |||
| credentials. Privacy and data protection guarantees may form a | credentials. Privacy and data protection guarantees may form a | |||
| part of this relationship. | part of this relationship. | |||
| o Between User and RP - the RP is an entity the user may or may not | o Between User and RP - the RP is an entity the user may or may not | |||
| have a direct relationship with, depending on the service in | have a direct relationship with, depending on the service in | |||
| question. Some services may only be offered to those users where | question. Some services may only be offered to those users where | |||
| such a direct relationship exists (for particularly sensitive | such a direct relationship exists (for particularly sensitive | |||
| services, for example), while some may not require this and would | services, for example), while some may not require this and would | |||
| instead be satisfied with basic federation trust guarantees | instead be satisfied with basic federation trust guarantees | |||
| between themselves and the IdP). This may well include the option | between themselves and the IdP). This may well include the option | |||
| that the user stays anonymous with respect to the RP (though | that the user stays anonymous with respect to the RP (though | |||
| obviously never to the IdP). If attempting to preserve privacy | obviously never to the IdP). If attempting to preserve privacy | |||
| through the mitigation of data minimisation, then the only | through the mitigation of data minimization, then the only | |||
| attribute information about individuals exposed to the RP should | attribute information about individuals exposed to the RP should | |||
| be that which is strictly necessary for the operation of the | be that which is strictly necessary for the operation of the | |||
| service. | service. | |||
| o Between User and Federation substrate - the user is highly likely | o Between User and Federation substrate - the user is highly likely | |||
| to have no knowledge of, or relationship with, any entities | to have no knowledge of, or relationship with, any entities | |||
| involved with the federation substrate (not that the IdP and/or RP | involved with the federation substrate (not that the IdP and/or RP | |||
| may, however). Knowledge of attribute information about | may, however). Knowledge of attribute information about | |||
| individuals for these entities is not necessary, and thus such | individuals for these entities is not necessary, and thus such | |||
| information should be protected in such a way as to prevent access | information should be protected in such a way as to prevent access | |||
| skipping to change at page 37, line 46 ¶ | skipping to change at page 38, line 44 ¶ | |||
| 4.4. Accounting Information | 4.4. Accounting Information | |||
| Alongside the core authentication and authorization that occurs in | Alongside the core authentication and authorization that occurs in | |||
| AAA communications, accounting information about resource consumption | AAA communications, accounting information about resource consumption | |||
| may be delivered as part of the accounting exchange during the | may be delivered as part of the accounting exchange during the | |||
| lifetime of the granted application session. | lifetime of the granted application session. | |||
| 4.5. Collection and retention of data and identifiers | 4.5. Collection and retention of data and identifiers | |||
| In cases where Relying Parties do not require to identify a | In cases where Relying Parties are not required to identify a | |||
| particular individual when an individual wishes to make use of their | particular individual when an individual wishes to make use of their | |||
| service, the ABFAB architecture enable anonymous or pseudonymous | service, the ABFAB architecture enables anonymous or pseudonymous | |||
| access. Thus data and identifiers other than pseudonyms and | access. Thus data and identifiers other than pseudonyms and | |||
| unlinkable attribute information need not be stored and retained. | unlinkable attribute information need not be stored and retained. | |||
| However, in cases where Relying Parties require the ability to | However, in cases where Relying Parties require the ability to | |||
| identify a particular individual (e.g. so they can link this identity | identify a particular individual (e.g. so they can link this identity | |||
| information to a particular account in their service, or where | information to a particular account in their service, or where | |||
| identity information is required for audit purposes), the service | identity information is required for audit purposes), the service | |||
| will need to collect and store such information, and to retain it for | will need to collect and store such information, and to retain it for | |||
| as long as they require. Deprovisioning of such accounts and | as long as they require. Deprovisioning of such accounts and | |||
| information is out of scope for ABFAB, but obviously for privacy | information is out of scope for ABFAB, but obviously for privacy | |||
| protection any identifiers collected should be deleted when they are | protection any identifiers collected should be deleted when they are | |||
| no longer needed. | no longer needed. | |||
| 4.6. User Participation | 4.6. User Participation | |||
| In the ABFAB architecture, by its very nature users are active | In the ABFAB architecture, by its very nature users are active | |||
| participants in the sharing of their identifiers as they initiate the | participants in the sharing of their identifiers as they initiate the | |||
| communications exchange every time they wish to access a server. | communications exchange every time they wish to access a server. | |||
| They are, however, not involved in control of the set of information | They are, however, not involved in control of the set of information | |||
| related to them that transmitted from the IdP to RP for authorisation | related to them that transmitted from the IdP to RP for authorization | |||
| purposes; rather, this is under the control of policy on the IdP. | purposes; rather, this is under the control of policy on the IdP. | |||
| Due to the nature of the AAA communication flows, with the current | Due to the nature of the AAA communication flows, with the current | |||
| ABFAB architecture there is no place for a process of gaining user | ABFAB architecture there is no place for a process of gaining user | |||
| consent for the information to be released from IdP to RP. | consent for the information to be released from IdP to RP. | |||
| 5. Security Considerations | 5. Security Considerations | |||
| This document describes the architecture for Application Bridging for | This document describes the architecture for Application Bridging for | |||
| Federated Access Beyond Web (ABFAB) and security is therefore the | Federated Access Beyond Web (ABFAB) and security is therefore the | |||
| main focus. This section highlights the main communication channels | main focus. This section highlights the main communication channels | |||
| skipping to change at page 39, line 12 ¶ | skipping to change at page 40, line 7 ¶ | |||
| RP-to-IdP Channel: | RP-to-IdP Channel: | |||
| The security of this communication channel is mainly provided by | The security of this communication channel is mainly provided by | |||
| the functionality offered via RADIUS and Diameter. At the time of | the functionality offered via RADIUS and Diameter. At the time of | |||
| writing there are no end-to-end security mechanisms standardized | writing there are no end-to-end security mechanisms standardized | |||
| and thereby the architecture has to rely on hop-by-hop security | and thereby the architecture has to rely on hop-by-hop security | |||
| with trusted AAA entities or, as an alternative but possible | with trusted AAA entities or, as an alternative but possible | |||
| deployment variant, direct communication between the AAA client to | deployment variant, direct communication between the AAA client to | |||
| the AAA server. Note that the authorization result the IdP | the AAA server. Note that the authorization result the IdP | |||
| provides to the RP in the form of a SAML assertion may, however, | provides to the RP in the form of a SAML assertion may; however, | |||
| be protected such that the SAML related components are secured | be protected such that the SAML related components are secured | |||
| end-to-end. | end-to-end. | |||
| The MSK is transported from the IdP to the RP over this channel. | The MSK is transported from the IdP to the RP over this channel. | |||
| As no end-to-end security is provided by AAA, all AAA entities on | As no end-to-end security is provided by AAA, all AAA entities on | |||
| the path between the RP and IdP have the ability to eavesdrop if | the path between the RP and IdP have the ability to eavesdrop if | |||
| no additional security measures are taken. One such measure is to | no additional security measures are taken. One such measure is to | |||
| use a transport between the client and the IdP that provides | use a transport between the client and the IdP that provides | |||
| confidentiality. | confidentiality. | |||
| End of changes. 51 change blocks. | ||||
| 165 lines changed or deleted | 183 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/ | ||||