| < draft-ietf-abfab-arch-06.txt | draft-ietf-abfab-arch-07.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: October 20, 2013 Painless Security | Expires: January 31, 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 | |||
| April 18, 2013 | July 30, 2013 | |||
| Application Bridging for Federated Access Beyond Web (ABFAB) | Application Bridging for Federated Access Beyond Web (ABFAB) | |||
| Architecture | Architecture | |||
| draft-ietf-abfab-arch-06.txt | draft-ietf-abfab-arch-07.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 | |||
| the commonly used security mechanisms for both federated and non- | the commonly used security mechanisms for both federated and non- | |||
| federated access management, including the Remote Authentication Dial | federated access management, including the Remote Authentication Dial | |||
| In User Service (RADIUS) and the Diameter protocol, the Generic | In User Service (RADIUS) and the Diameter protocol, the Generic | |||
| Security Service (GSS), the GS2 family, the Extensible Authentication | Security Service (GSS), the Extensible Authentication Protocol (EAP) | |||
| Protocol (EAP) and the Security Assertion Markup Language (SAML). | and the Security Assertion Markup Language (SAML). The architecture | |||
| The architecture addresses the problem of federated access management | addresses the problem of federated access management to primarily | |||
| to primarily non-web-based services, in a manner that will scale to | non-web-based services, in a manner that will scale to large numbers | |||
| large numbers of identity providers, relying parties, and | of identity providers, relying parties, and federations. | |||
| federations. | ||||
| Status of This Memo | Status of This Memo | |||
| This Internet-Draft is submitted in full conformance with the | This Internet-Draft is submitted in full conformance with the | |||
| provisions of BCP 78 and BCP 79. | provisions of BCP 78 and BCP 79. | |||
| 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 October 20, 2013. | This Internet-Draft will expire on January 31, 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 31 ¶ | skipping to change at page 2, line 34 ¶ | |||
| 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 . . . . . . . . . 10 | |||
| 1.4. An Overview of ABFAB-based Federation . . . . . . . . . . 10 | 1.4. An Overview of ABFAB-based Federation . . . . . . . . . . 11 | |||
| 1.5. Design Goals . . . . . . . . . . . . . . . . . . . . . . 13 | 1.5. Design Goals . . . . . . . . . . . . . . . . . . . . . . 14 | |||
| 2. Architecture . . . . . . . . . . . . . . . . . . . . . . . . 14 | 2. Architecture . . . . . . . . . . . . . . . . . . . . . . . . 14 | |||
| 2.1. Relying Party to Identity Provider . . . . . . . . . . . 15 | 2.1. Relying Party to Identity Provider . . . . . . . . . . . 16 | |||
| 2.1.1. AAA, RADIUS and Diameter . . . . . . . . . . . . . . 16 | 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 . . . . . . . . . . . . . . . . . . . . 20 | |||
| 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) . . . . . . 23 | |||
| 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 . . . . . . . . . . . . . . . . . 25 | |||
| 2.3.1. GSS-API . . . . . . . . . . . . . . . . . . . . . . . 26 | 2.3.1. GSS-API . . . . . . . . . . . . . . . . . . . . . . . 26 | |||
| 2.3.2. Protocol Transport . . . . . . . . . . . . . . . . . 27 | 2.3.2. Protocol Transport . . . . . . . . . . . . . . . . . 27 | |||
| 2.3.3. Reauthentication . . . . . . . . . . . . . . . . . . 28 | 2.3.3. Reauthentication . . . . . . . . . . . . . . . . . . 27 | |||
| 3. Application Security Services . . . . . . . . . . . . . . . . 28 | 3. Application Security Services . . . . . . . . . . . . . . . . 28 | |||
| 3.1. Authentication . . . . . . . . . . . . . . . . . . . . . 28 | 3.1. Authentication . . . . . . . . . . . . . . . . . . . . . 28 | |||
| 3.2. GSS-API Channel Binding . . . . . . . . . . . . . . . . . 29 | 3.2. GSS-API Channel Binding . . . . . . . . . . . . . . . . . 29 | |||
| 3.3. Host-Based Service Names . . . . . . . . . . . . . . . . 30 | 3.3. Host-Based Service Names . . . . . . . . . . . . . . . . 30 | |||
| 3.4. Additional GSS-API Services . . . . . . . . . . . . . . . 32 | 3.4. Additional GSS-API Services . . . . . . . . . . . . . . . 32 | |||
| 4. Privacy Considerations . . . . . . . . . . . . . . . . . . . 32 | 4. Privacy Considerations . . . . . . . . . . . . . . . . . . . 32 | |||
| 4.1. Entities and their roles . . . . . . . . . . . . . . . . 33 | 4.1. Entities and their roles . . . . . . . . . . . . . . . . 33 | |||
| 4.2. Privacy Aspects of ABFAB Communication Flows . . . . . . 34 | 4.2. Privacy Aspects of ABFAB Communication Flows . . . . . . 34 | |||
| 4.2.1. Client to RP . . . . . . . . . . . . . . . . . . . . 34 | 4.2.1. Client to RP . . . . . . . . . . . . . . . . . . . . 34 | |||
| 4.2.2. Client to IdP (via Federation Substrate) . . . . . . 35 | 4.2.2. Client to IdP (via Federation Substrate) . . . . . . 35 | |||
| 4.2.3. IdP to RP (via Federation Substrate) . . . . . . . . 36 | 4.2.3. IdP to RP (via Federation Substrate) . . . . . . . . 36 | |||
| 4.3. Relationship between User and Entities . . . . . . . . . 36 | 4.3. Relationship between User and Entities . . . . . . . . . 37 | |||
| 4.4. Accounting Information . . . . . . . . . . . . . . . . . 37 | 4.4. Accounting Information . . . . . . . . . . . . . . . . . 37 | |||
| 4.5. Collection and retention of data and identifiers . . . . 37 | 4.5. Collection and retention of data and identifiers . . . . 37 | |||
| 4.6. User Participation . . . . . . . . . . . . . . . . . . . 38 | 4.6. User Participation . . . . . . . . . . . . . . . . . . . 38 | |||
| 5. Deployment Considerations . . . . . . . . . . . . . . . . . . 38 | 5. Security Considerations . . . . . . . . . . . . . . . . . . . 38 | |||
| 5.1. EAP Channel Binding . . . . . . . . . . . . . . . . . . . 38 | 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 39 | |||
| 5.2. AAA Proxy Behavior . . . . . . . . . . . . . . . . . . . 38 | 7. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 39 | |||
| 6. Security Considerations . . . . . . . . . . . . . . . . . . . 38 | 8. References . . . . . . . . . . . . . . . . . . . . . . . . . 40 | |||
| 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 40 | 8.1. Normative References . . . . . . . . . . . . . . . . . . 40 | |||
| 8. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 40 | 8.2. Informative References . . . . . . . . . . . . . . . . . 41 | |||
| 9. References . . . . . . . . . . . . . . . . . . . . . . . . . 40 | ||||
| 9.1. Normative References . . . . . . . . . . . . . . . . . . 40 | ||||
| 9.2. Informative References . . . . . . . . . . . . . . . . . 41 | ||||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 43 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 43 | |||
| 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) | |||
| skipping to change at page 4, line 15 ¶ | skipping to change at page 4, line 15 ¶ | |||
| Federated access management has evolved over the last decade through | Federated access management has evolved over the last decade through | |||
| specifications like SAML [OASIS.saml-core-2.0-os], OpenID [1], OAuth | specifications like SAML [OASIS.saml-core-2.0-os], OpenID [1], OAuth | |||
| [RFC5849], [I-D.ietf-oauth-v2] and WS-Trust [WS-TRUST]. The benefits | [RFC5849], [I-D.ietf-oauth-v2] and WS-Trust [WS-TRUST]. The benefits | |||
| of federated access management include: | of federated access management include: | |||
| Single or Simplified sign-on: | Single or Simplified sign-on: | |||
| An Internet service can delegate access management, and the | An Internet service can delegate access management, and the | |||
| 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 for | relationship with the Client. This is often attractive as Relying | |||
| Relying Parties who frequently do not want these responsibilities. | Parties frequently do not want these responsibilities. The Client | |||
| The Client also requires fewer credentials, which is also | also requires fewer credentials, which is also desirable. | |||
| 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 know specific attributes | |||
| about the subject, for example, that the Subject is affiliated | about the client, for example, that the client is affiliated with | |||
| with a particular organization or has a certain role or | a particular organization or has a certain role or entitlement. | |||
| entitlement. Sometimes the RP only needs to know a pseudonym of | Sometimes the RP only needs to know a pseudonym of the client. | |||
| the Subject. | ||||
| 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: | |||
| Sometimes a Relying Party needs, or would like, to know more about | Sometimes a Relying Party needs, or would like, to know more about | |||
| a client than an affiliation or a pseudonym. For example, a | a client than an affiliation or a pseudonym. For example, a | |||
| Relying Party may want the Client's email address or name. Some | Relying Party may want the Client's email address or name. Some | |||
| federated access management technologies provide the ability for | federated access management technologies provide the ability for | |||
| the IdP to supply this information, either on request by the RP or | the IdP to supply this information, either on request by the RP or | |||
| unsolicited. | unsolicited. | |||
| This memo describes the Application Bridging for Federated Access | This memo describes the Application Bridging for Federated Access | |||
| Beyond the Web (ABFAB) architecture. This architecture makes use of | Beyond the Web (ABFAB) architecture. This architecture makes use of | |||
| extensions to the commonly used security mechanisms for both | extensions to the commonly used security mechanisms for both | |||
| federated and non-federated access management, including the RADIUS | federated and non-federated access management, including the RADIUS | |||
| and the Diameter protocols, the Generic Security Service (GSS), the | and the Diameter protocols, the Generic Security Service (GSS), the | |||
| GS2 family, the Extensible Authentication Protocol (EAP) and SAML. | Extensible Authentication Protocol (EAP) and SAML. The architecture | |||
| The architecture addresses the problem of federated access management | addresses the problem of federated access management primarily for | |||
| primarily for non-web-based services. It does so in a manner that | non-web-based services. It does so in a manner that will scale to | |||
| will scale to large numbers of identity providers, relying parties, | large numbers of identity providers, relying parties, and | |||
| and federations. | federations. | |||
| 1.1. Terminology | 1.1. Terminology | |||
| This document uses identity management and privacy terminology from | This document uses identity management and privacy terminology from | |||
| [I-D.iab-privacy-considerations]. In particular, this document uses | [I-D.iab-privacy-considerations]. In particular, this document uses | |||
| the terms identity provider, relying party, identifier, pseudonymity, | the terms identity provider, relying party, identifier, pseudonymity, | |||
| unlinkability, and anonymity. | unlinkability, and anonymity. | |||
| In this architecture the IdP consists of the following components: an | In this architecture the IdP consists of the following components: an | |||
| EAP server, a RADIUS or a Diameter server, and optionally a SAML | EAP server, a RADIUS or a Diameter server, and optionally a SAML | |||
| skipping to change at page 5, line 41 ¶ | skipping to change at page 5, line 30 ¶ | |||
| 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 | a 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 | Subject | Relying Party | Identity Provider | | | Protocol | Client | Relying Party | Identity Provider | | |||
| +--------------+--------------+-----------------+-------------------+ | +--------------+--------------+-----------------+-------------------+ | |||
| | ABFAB | Client | Relying Party | Identity Provider | | | ABFAB | Client | Relying Party | Identity Provider | | |||
| | | | (RP) | (IdP) | | | | | (RP) | (IdP) | | |||
| | | | | | | | | | | | | |||
| | | Initiator | Acceptor | | | | | Initiator | Acceptor | | | |||
| | | | | | | | | | | | | |||
| | | | Server | | | | | | Server | | | |||
| | | | | | | | | | | | | |||
| | SAML | Subject | Service | Issuer | | | SAML | Subject | Service | Issuer | | |||
| | | | Provider | | | | | | Provider | | | |||
| skipping to change at page 6, line 14 ¶ | skipping to change at page 6, line 4 ¶ | |||
| | GSS-API | Initiator | Acceptor | | | | GSS-API | Initiator | Acceptor | | | |||
| | | | | | | | | | | | | |||
| | EAP | EAP peer | | EAP server | | | EAP | EAP peer | | 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 | | | |||
| +--------------+--------------+-----------------+-------------------+ | +--------------+--------------+-----------------+-------------------+ | |||
| 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 direct name that represents this concept. | 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. | |||
| 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 | |||
| skipping to change at page 6, line 40 ¶ | skipping to change at page 6, line 29 ¶ | |||
| 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. | facilities. However, the difference can be summarized as GSS-API | |||
| channel binding says that there is nobody between the client and the | ||||
| authenticator while EAP channel binding allows the client to have | ||||
| knowledge about attributes of the authenticator (such as it's name). | ||||
| Typically when considering channel binding, people think of channel | Typically when considering channel binding, people think of channel | |||
| binding in combination with mutual authentication. This is | binding in combination with mutual authentication. This is | |||
| sufficiently common that without additional qualification channel | sufficiently common that without additional qualification channel | |||
| binding should be assumed to imply mutual authentication. Without | binding should be assumed to imply mutual authentication. Without | |||
| mutual authentication, only one party knows that the endpoints are | mutual authentication, only one party knows that the endpoints are | |||
| correct. That's sometimes useful. Consider for example a user who | correct. That's sometimes useful. Consider for example a user who | |||
| wishes to access a protected resource from a shared whiteboard in a | wishes to access a protected resource from a shared whiteboard in a | |||
| conference room. The whiteboard is the initiator; it does not need | conference room. The whiteboard is the initiator; it does not need | |||
| to actually authenticate that it is talking to the correct resource | to actually authenticate that it is talking to the correct resource | |||
| skipping to change at page 8, line 32 ¶ | skipping to change at page 8, line 41 ¶ | |||
| 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: | |||
| Operational Specifications: | Operational Specifications: | |||
| These include the technical specifications (e.g. protocols used | These include the technical specifications (e.g. protocols used to | |||
| to communicate between the three parties), process standards, | communicate between the three parties), process standards, | |||
| policies, identity proofing, credential and authentication | policies, identity proofing, credential and authentication | |||
| algorithm requirements, performance requirements, assessment and | algorithm requirements, performance requirements, assessment and | |||
| audit criteria, etc. The goal of operational specifications is to | audit criteria, etc. The goal of operational specifications is to | |||
| provide enough definition that the system works and | provide enough definition that the system works and | |||
| interoperability is possible. | interoperability is possible. | |||
| Legal Rules: | Legal Rules: | |||
| The legal rules take the legal framework into consideration and | The legal rules take the legal framework into consideration and | |||
| provide contractual obligations for each entity. The rules define | provide contractual obligations for each entity. The rules define | |||
| skipping to change at page 10, line 5 ¶ | skipping to change at page 10, line 16 ¶ | |||
| The IdP will typically have a long-term relationship with the Client. | The IdP will typically have a long-term relationship with the Client. | |||
| This relationship typically involves the IdP positively identifying | This relationship typically involves the IdP positively identifying | |||
| and credentialing the Client (for example, at time of employment | and credentialing the Client (for example, at time of employment | |||
| within an organization). When dealing with individuals, this process | within an organization). When dealing with individuals, this process | |||
| is called identity proofing [NIST-SP.800-63]. The relationship will | is called identity proofing [NIST-SP.800-63]. The relationship will | |||
| often be instantiated within an agreement between the IdP and the | often be instantiated within an agreement between the IdP and the | |||
| Client (for example, within an employment contract or terms of use | Client (for example, within an employment contract or terms of use | |||
| that stipulates the appropriate use of credentials and so forth). | that stipulates the appropriate use of credentials and so forth). | |||
| The nature and quality of the relationship between the Subject and | The nature and quality of the relationship between the Client and the | |||
| the IdP is an important contributor to the level of trust that an RP | IdP is an important contributor to the level of trust that an RP may | |||
| may attribute to an assertion describing a Client made by an IdP. | attribute to an assertion describing a Client made by an IdP. This | |||
| This is sometimes described as the Level of Assurance | is sometimes described as the Level of Assurance [NIST-SP.800-63]. | |||
| [NIST-SP.800-63]. | ||||
| Federation does not require an a priori relationship or a long-term | Federation does not require an a priori relationship or a long-term | |||
| relationship between the RP and the Client; it is this property of | relationship between the RP and the Client; it is this property of | |||
| federation that yields many of its benefits. However, federation | federation that yields many of its benefits. However, federation | |||
| does not preclude the possibility of a pre-existing relationship | does not preclude the possibility of a pre-existing relationship | |||
| between the RP and the Client, nor that they may use the introduction | between the RP and the Client, nor that they may use the introduction | |||
| to create a new long-term relationship independent of the federation. | to create a new long-term relationship independent of the federation. | |||
| Finally, it is important to reiterate that in some scenarios there | Finally, it is important to reiterate that in some scenarios there | |||
| might indeed be an Individual behind the Client and in other cases | might indeed be an Individual behind the Client and in other cases | |||
| skipping to change at page 10, line 46 ¶ | skipping to change at page 11, line 8 ¶ | |||
| to allow for such ambiguities. For instance, in the case of an email | to allow for such ambiguities. For instance, in the case of an email | |||
| provider, the use of SMTP and IMAP protocols do not have the ability | provider, the use of SMTP and IMAP protocols do not have the ability | |||
| for the server to get additional information, beyond the clients NAI, | for the server to get additional information, beyond the clients NAI, | |||
| in order to provide additional input to decide between multiple | in order to provide additional input to decide between multiple | |||
| federations it may be associated with. However, the building blocks | federations it may be associated with. However, the building blocks | |||
| do exist to add this functionality. | do exist to add this functionality. | |||
| 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 federated access management. This section | the application of access management within the federation. This | |||
| provides a brief overview of ABFAB in the context of this model. | section provides a brief overview of ABFAB in the context of this | |||
| 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 federated | |||
| 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 | |||
| skipping to change at page 12, line 16 ¶ | skipping to change at page 12, line 23 ¶ | |||
| 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 | |||
| other. As a result, the subject and the IdP hold two | other. As a result, the client and the IdP hold two | |||
| cryptographic keys: a Master Session Key (MSK), and an Extended | cryptographic keys: a Master Session Key (MSK), and an Extended | |||
| MSK (EMSK). At this point the client has a level of assurance | MSK (EMSK). At this point the client has a level of assurance | |||
| about the identity of the RP based on the name checking the IdP | about the identity of the RP based on the name checking the IdP | |||
| has done using the RP naming information from the AAA framework | has done using the RP naming information from the AAA framework | |||
| 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, | |||
| skipping to change at page 14, line 39 ¶ | skipping to change at page 15, line 4 ¶ | |||
| did not expand on the specifics of providing support for non-Web | did not expand on the specifics of providing support for non-Web | |||
| based applications. This section details this aspect and motivates | based applications. This section details this aspect and motivates | |||
| design decisions. The main theme of the work described in this | design decisions. The main theme of the work described in this | |||
| document is focused on re-using existing building blocks that have | document is focused on re-using existing building blocks that have | |||
| been deployed already and to re-arrange them in a novel way. | been deployed already and to re-arrange them in a novel way. | |||
| Although this architecture assumes updates to the relying party, the | Although this architecture assumes updates to the relying party, the | |||
| client application, and the Identity Provider, those changes are kept | client application, and the Identity Provider, those changes are kept | |||
| at a minimum. A mechanism that can demonstrate deployment benefits | at a minimum. A mechanism that can demonstrate deployment benefits | |||
| (based on ease of update of existing software, low implementation | (based on ease of update of existing software, low implementation | |||
| effort, etc.) is preferred and there may be a need to specify | effort, etc.) is preferred and there may be a need to specify | |||
| multiple mechanisms to support the range of different deployment | multiple mechanisms to support the range of different deployment | |||
| scenarios. | scenarios. | |||
| There are a number of ways for encapsulating EAP into an application | There are a number of ways for encapsulating EAP into an application | |||
| protocol. For ease of integration with a wide range of non-Web based | protocol. For ease of integration with a wide range of non-Web based | |||
| application protocols the usage of the GSS-API was chosen. A | application protocols the usage of the GSS-API was chosen. A | |||
| description of the technical specification can be found in | description of the technical specification can be found in | |||
| [I-D.ietf-abfab-gss-eap]. | [I-D.ietf-abfab-gss-eap]. | |||
| The architecture consists of several building blocks, which is shown | The architecture consists of several building blocks, which is shown | |||
| skipping to change at page 16, line 50 ¶ | skipping to change at page 17, line 18 ¶ | |||
| 2.1.1. AAA, RADIUS and Diameter | 2.1.1. AAA, RADIUS and Diameter | |||
| Interestingly, for network access authentication the usage of the AAA | Interestingly, for network access authentication the usage of the AAA | |||
| framework with RADIUS [RFC2865] and Diameter [RFC3588] was quite | framework with RADIUS [RFC2865] and Diameter [RFC3588] was quite | |||
| successful from a deployment point of view. To map to the | successful from a deployment point of view. To map to the | |||
| terminology used in Figure 1 to the AAA framework the IdP corresponds | terminology used in Figure 1 to the AAA framework the IdP corresponds | |||
| to the AAA server, the RP corresponds to the AAA client, and the | to the AAA server, the RP corresponds to the AAA client, and the | |||
| technical building blocks of a federation are AAA proxies, relays and | technical building blocks of a federation are AAA proxies, relays and | |||
| redirect agents (particularly if they are operated by third parties, | redirect agents (particularly if they are operated by third parties, | |||
| such as AAA brokers and clearing houses). The front-end, i.e. the | such as AAA brokers and clearing houses). The front-end, i.e. the | |||
| end host to AAA client communication, is in case of network access | end host to AAA client communication, is in case of network access | |||
| authentication offered by link layer protocols that forward | authentication offered by link layer protocols that forward | |||
| authentication protocol exchanges back-and-forth. An example of a | authentication protocol exchanges back-and-forth. An example of a | |||
| large scale RADIUS-based federation is EDUROAM [2]. | large scale RADIUS-based federation is EDUROAM [2]. | |||
| By using the AAA framework, ABFAB gets a lot of mileage as many of | By using the AAA framework, ABFAB gets a lot of mileage as many of | |||
| the federation agreements already exist and merely need to be | the federation agreements already exist and merely need to be | |||
| expanded to cover the ABFAB additions. The AAA framework has already | expanded to cover the ABFAB additions. The AAA framework has already | |||
| addressed some of the problems outlined above. For example, | addressed some of the problems outlined above. For example, | |||
| skipping to change at page 17, line 44 ¶ | skipping to change at page 18, line 12 ¶ | |||
| identity provider can establish technical trust that messages are | identity provider can establish technical trust that messages are | |||
| being sent by the appropriate relying party. Any given interaction | being sent by the appropriate relying party. Any given interaction | |||
| will be associated with one federation at the policy level. The | will be associated with one federation at the policy level. The | |||
| legal or business relationship defines what statements the identity | legal or business relationship defines what statements the identity | |||
| provider is trusted to make and how these statements are interpreted | provider is trusted to make and how these statements are interpreted | |||
| by the relying party. The AAA framework also permits the relying | by the relying party. The AAA framework also permits the relying | |||
| party or elements between the relying party and identity provider to | party or elements between the relying party and identity provider to | |||
| make statements about the relying party. | make statements about the relying party. | |||
| The AAA framework provides transport for attributes. Statements made | The AAA framework provides transport for attributes. Statements made | |||
| about the subject by the identity provider, statements made about the | about the client by the identity provider, statements made about the | |||
| relying party and other information are transported as attributes. | relying party and other information are transported as attributes. | |||
| One demand that the AAA substrate makes of the upper layers is that | One demand that the AAA substrate makes of the upper layers is that | |||
| they must properly identify the end points of the communication. It | they must properly identify the end points of the communication. It | |||
| must be possible for the AAA client at the RP to determine where to | must be possible for the AAA client at the RP to determine where to | |||
| send each RADIUS or Diameter message. Without this requirement, it | send each RADIUS or Diameter message. Without this requirement, it | |||
| would be the RP's responsibility to determine the identity of the | would be the RP's responsibility to determine the identity of the | |||
| client on its own, without the assistance of an IdP. This | client on its own, without the assistance of an IdP. This | |||
| architecture makes use of the Network Access Identifier (NAI), where | architecture makes use of the Network Access Identifier (NAI), where | |||
| the IdP is indicated by the realm component [I-D.ietf-radext-nai]. | the IdP is indicated by the realm component [I-D.ietf-radext-nai]. | |||
| skipping to change at page 23, line 35 ¶ | skipping to change at page 23, line 40 ¶ | |||
| ABFAB selected EAP for the purposes of mutual authentication and | ABFAB selected EAP for the purposes of mutual authentication and | |||
| assisted in creating some new EAP channel binding documents for | assisted in creating some new EAP channel binding documents for | |||
| dealing with determining the identity of the RP. A framework for the | dealing with determining the identity of the RP. A framework for the | |||
| channel binding mechanism has been defined in RFC 6677 [RFC6677] that | channel binding mechanism has been defined in RFC 6677 [RFC6677] that | |||
| allows the IdP to check the identity of the RP provided by the AAA | allows the IdP to check the identity of the RP provided by the AAA | |||
| framework with that provided by the client. | framework with that provided by the client. | |||
| 2.2.1. Extensible Authentication Protocol (EAP) | 2.2.1. Extensible Authentication Protocol (EAP) | |||
| Traditional web federation does not describe how a subject interacts | Traditional web federation does not describe how a client interacts | |||
| with an identity provider for authentication. As a result, this | with an identity provider for authentication. As a result, this | |||
| communication is not standardized. There are several disadvantages | communication is not standardized. There are several disadvantages | |||
| to this approach. Since the communication is not standardized, it is | to this approach. Since the communication is not standardized, it is | |||
| difficult for machines to correctly enter their credentials with | difficult for machines to correctly enter their credentials with | |||
| different authentications, where Individuals can correctly identify | different authentications, where Individuals can correctly identify | |||
| the entire mechanism on the fly. The use of browsers for | the entire mechanism on the fly. The use of browsers for | |||
| authentication restricts the deployment of more secure forms of | authentication restricts the deployment of more secure forms of | |||
| authentication beyond plaintext username and password known by the | authentication beyond plaintext username and password known by the | |||
| server. In a number of cases the authentication interface may be | server. In a number of cases the authentication interface may be | |||
| presented before the subject has adequately validated they are | presented before the client has adequately validated they are talking | |||
| talking to the intended server. By giving control of the | to the intended server. By giving control of the authentication | |||
| authentication interface to a potential attacker, the security of the | interface to a potential attacker, the security of the system may be | |||
| system may be reduced and phishing opportunities introduced. | reduced and phishing opportunities introduced. | |||
| As a result, it is desirable to choose some standardized approach for | As a result, it is desirable to choose some standardized approach for | |||
| communication between the subject's end-host and the identity | communication between the client's end-host and the identity | |||
| provider. There are a number of requirements this approach must | provider. There are a number of requirements this approach must | |||
| meet. | meet. | |||
| Experience has taught us one key security and scalability | Experience has taught us one key security and scalability | |||
| requirement: it is important that the relying party not get | requirement: it is important that the relying party not get | |||
| possession of the long-term secret of the client. Aside from a | possession of the long-term secret of the client. Aside from a | |||
| valuable secret being exposed, a synchronization problem can develop | valuable secret being exposed, a synchronization problem can develop | |||
| when the client changes keys with the IdP. | when the client changes keys with the IdP. | |||
| Since there is no single authentication mechanism that will be used | Since there is no single authentication mechanism that will be used | |||
| skipping to change at page 24, line 27 ¶ | skipping to change at page 24, line 32 ¶ | |||
| 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 authenticator | |||
| (i.e., relying party) to the back-end (i.e., identity provider). | (i.e., relying party) to the back-end (i.e., identity provider). | |||
| Conveniently, this is precisely the communication path that is needed | Conveniently, this is precisely the communication path that is needed | |||
| for federated identity. Although EAP support is already integrated | for federated identity. Although EAP support is already integrated | |||
| in AAA systems (see [RFC3579] and [RFC4072]) several challenges | in AAA systems (see [RFC3579] and [RFC4072]) several challenges | |||
| remain: | 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 | |||
| subject, 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 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: | |||
| skipping to change at page 26, line 29 ¶ | skipping to change at page 26, line 31 ¶ | |||
| Authentication and Security Layer (SASL) [RFC4422] framework. These | Authentication and Security Layer (SASL) [RFC4422] framework. These | |||
| two approaches work together nicely: by creating a GSS-API mechanism, | two approaches work together nicely: by creating a GSS-API mechanism, | |||
| SASL integration is also addressed. In effect, using a GSS-API | SASL integration is also addressed. In effect, using a GSS-API | |||
| mechanism with SASL simply requires placing some headers on the front | mechanism with SASL simply requires placing some headers on the front | |||
| of the mechanism and constraining certain GSS-API options. | of the mechanism and constraining certain GSS-API options. | |||
| GSS-API is specified in terms of an abstract set of operations which | GSS-API is specified in terms of an abstract set of operations which | |||
| can be mapped into a programming language to form an API. When | can be mapped into a programming language to form an API. When | |||
| people are first introduced to GSS-API, they focus on it as an API. | people are first introduced to GSS-API, they focus on it as an API. | |||
| However, from the prospective of authentication for non-web | However, from the prospective of authentication for non-web | |||
| applications, GSS-API should be thought of as a protocol not an API. | applications, GSS-API should be thought of as a protocol as well as | |||
| It consists of some abstract operations such as the initial context | an API. When looked at as a protocol, it consists of abstract | |||
| exchange, which includes two sub-operations (gss_init_sec_context and | operations such as the initial context exchange, which includes two | |||
| gss_accept_sec_context). An application defines which abstract | sub-operations (gss_init_sec_context and gss_accept_sec_context). An | |||
| operations it is going to use and where messages produced by these | application defines which abstract operations it is going to use and | |||
| operations fit into the application architecture. A GSS-API | where messages produced by these operations fit into the application | |||
| mechanism will define what actual protocol messages result from that | architecture. A GSS-API mechanism will define what actual protocol | |||
| abstract message for a given abstract operation. So, since this work | messages result from that abstract message for a given abstract | |||
| is focusing on a particular GSS-API mechanism, we generally focus on | operation. So, since this work is focusing on a particular GSS-API | |||
| protocol elements rather than the API view of GSS-API. | mechanism, we generally focus on protocol elements rather than the | |||
| API view of GSS-API. | ||||
| The API view has significant value. Since the abstract operations | The API view of GSS-API does have significant value as well, since | |||
| are well defined, the set of information that a mechanism gets from | the abstract operations are well defined, the set of information that | |||
| the application is well defined. Also, the set of assumptions the | a mechanism gets from the application is well defined. Also, the set | |||
| application is permitted to make is generally well defined. As a | of assumptions the application is permitted to make is generally well | |||
| result, an application protocol that supports GSS-API or SASL is very | defined. As a result, an application protocol that supports GSS-API | |||
| likely to be usable with a new approach to authentication including | or SASL is very likely to be usable with a new approach to | |||
| this one with no required modifications. In some cases, support for | authentication including this one with no required modifications. In | |||
| a new authentication mechanism has been added using plugin interfaces | some cases, support for a new authentication mechanism has been added | |||
| to applications without the application being modified at all. Even | using plugin interfaces to applications without the application being | |||
| when modifications are required, they can often be limited to | modified at all. Even when modifications are required, they can | |||
| supporting a new naming and authorization model. For example, this | often be limited to supporting a new naming and authorization model. | |||
| work focuses on privacy; an application that assumes it will always | For example, this work focuses on privacy; an application that | |||
| obtain an identifier for the client will need to be modified to | assumes it will always obtain an identifier for the client will need | |||
| 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) encapsulate 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 | |||
| skipping to change at page 32, line 7 ¶ | skipping to change at page 31, line 43 ¶ | |||
| 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 | In many cases applications may retrieve information about providers | |||
| of services from DNS. When Service Records (SRV) and Naming | of services from DNS. When Service Records (SRV) and Naming | |||
| Authority Pointer (NAPTR) records are used to help find a host that | Authority Pointer (NAPTR) records are used to help find a host that | |||
| provides a service, the security requirements on the referrals is | provides a service, the security requirements on the referrals is | |||
| going to interact with the information used in the service name. If | going to interact with the information used in the service name. If | |||
| a host name is returned from the DNS referrals, and the host name is | a host name is returned from the DNS referrals, and the host name is | |||
| to be validated by GS-EAP, then it makes sense that the referrals | to be validated by GS-EAP, then it makes sense that the referrals | |||
| themselves should be secure. On the other hand, if the host name | themselves should be secure. On the other hand, if the host name | |||
| returned is not validated, i.e. only the service is passed in, then | returned is not validated, i.e. only the service is passed in, then | |||
| it is less important that the host name be obtained in a secure | it is less important that the host name be obtained in a secure | |||
| manner. | 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, | |||
| skipping to change at page 34, line 17 ¶ | skipping to change at page 34, line 5 ¶ | |||
| Initiator: Client. | Initiator: Client. | |||
| Observers: Client, RP, AAA Client, AAA Proxy(s), AAA Server, IdP. | Observers: Client, RP, AAA Client, AAA Proxy(s), AAA Server, IdP. | |||
| Recipient: IdP | Recipient: IdP | |||
| In the IdP to Relying party (via the Federation Substrate) | In the IdP to Relying party (via the Federation Substrate) | |||
| communication phase, we have: | communication phase, we have: | |||
| Initiator: IdP. | Initiator: RP. | |||
| Observers: IdP, AAA Server, AAA Proxy(s), AAA Client, RP. | Observers: IdP, AAA Server, AAA Proxy(s), AAA Client, RP. | |||
| Recipient: RP | Recipient: IdP | |||
| 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 | |||
| skipping to change at page 35, line 10 ¶ | skipping to change at page 35, line 7 ¶ | |||
| 4.2.1. Client to RP | 4.2.1. Client to RP | |||
| The flow of data between the client and the RP is divided into two | The flow of data between the client and the RP is divided into two | |||
| parts. The first part consists of all of the data exchanged as part | parts. The first part consists of all of the data exchanged as part | |||
| of the ABFAB authentication process. The second part consists of all | of the ABFAB authentication process. The second part consists of all | |||
| of the data exchanged after the authentication process has been | of the data exchanged after the authentication process has been | |||
| finished. | finished. | |||
| During the initial communications phase, the client sends an NAI (see | During the initial communications phase, the client sends an NAI (see | |||
| [I-D.ietf-radext-nai]) to the RP. Many EAP methods (but not all) | [I-D.ietf-radext-nai]) to the RP. Many EAP methods (but not all) | |||
| allow for the client to disclose an NAI to the in a form that | allow for the client to disclose an NAI to RP the in a form that | |||
| includes only a realm during this communications phase. This is the | includes only a realm component during this communications phase. | |||
| minimum amount of identity information necessary for ABFAB to work - | This is the minimum amount of identity information necessary for | |||
| it indicates an IdP that the principal has a relationship with. EAP | ABFAB to work - it indicates an IdP that the principal has a | |||
| methods that do not allow this will necessarily also reveal an | relationship with. EAP methods that do not allow this will | |||
| identifier for the principal in the IdP realm (e.g. a username). | necessarily also reveal an identifier for the principal in the IdP | |||
| realm (e.g. a username). | ||||
| The data shared during the initial communication phase may be | ||||
| protected by a channel protocol such as TLS. This will prevent the | ||||
| leak of information to passive eavesdroppers, however an active | ||||
| 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 | ||||
| by the service, defering the check of the identity of the RP until | ||||
| the completion of the ABFAB authentication protocol (i.e., using EAP | ||||
| 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 impliciations as discussed in previous | |||
| paragraph 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. | |||
| Various operational information is transported between RP and IdP, | Various operational information is transported between RP and IdP, | |||
| skipping to change at page 35, line 49 ¶ | skipping to change at page 36, line 9 ¶ | |||
| o The Relying Party knows the IP address of the Client. It is | o The Relying Party knows the IP address of the Client. It is | |||
| possible that the Relying Party could choose to expose this IP | possible that the Relying Party could choose to expose this IP | |||
| address by including it in a RADIUS header such as Calling Station | address by including it in a RADIUS header such as Calling Station | |||
| ID. This is a privacy consideration to take into account of the | ID. This is a privacy consideration to take into account of the | |||
| application protocol. | application protocol. | |||
| o The EAP MSK is transported between the IdP and the RP over the AAA | o The EAP MSK is transported between the IdP and the RP over the AAA | |||
| 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 desireable | |||
| 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. | |||
| skipping to change at page 37, line 46 ¶ | skipping to change at page 38, line 6 ¶ | |||
| 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 do not require 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 enable 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 | identify a particular individual (e.g. so they can link this identity | |||
| identity information to a particular account in their service, or | information to a particular account in their service, or where | |||
| where identity information is required for audit purposes), the | identity information is required for audit purposes), the service | |||
| service will need to collect and store such information, and to | will need to collect and store such information, and to retain it for | |||
| retain it for as long as they require. Deprovisioning of such | as long as they require. Deprovisioning of such accounts and | |||
| accounts and information is out of scope for ABFAB, but obviously for | information is out of scope for ABFAB, but obviously for privacy | |||
| privacy protection any identifiers collected should be deleted when | protection any identifiers collected should be deleted when they are | |||
| 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 authorisation | |||
| 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. Deployment Considerations | 5. Security Considerations | |||
| 5.1. EAP Channel Binding | ||||
| Discuss the implications of needing EAP channel binding. | ||||
| 5.2. AAA Proxy Behavior | ||||
| Discuss deployment implications of our proxy requirements. | ||||
| 6. 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 | |||
| and their security properties: | and their security properties: | |||
| Client-to-RP Channel: | Client-to-RP Channel: | |||
| The channel binding material is provided by any certificates and | The channel binding material is provided by any certificates and | |||
| the final message (i.e., a cryptographic token for the channel). | the final message (i.e., a cryptographic token for the channel). | |||
| skipping to change at page 39, line 42 ¶ | skipping to change at page 39, line 40 ¶ | |||
| communication to the client over the RP-to-IdP channel is the same | communication to the client over the RP-to-IdP channel is the same | |||
| one talking to the IdP. This is accomplished via the EAP channel | one talking to the IdP. This is accomplished via the EAP channel | |||
| binding. | binding. | |||
| Partial list of issues to be addressed in this section: Privacy, | Partial list of issues to be addressed in this section: Privacy, | |||
| SAML, Trust Anchors, EAP Algorithm Selection, Diameter/RADIUS/AAA | SAML, Trust Anchors, EAP Algorithm Selection, Diameter/RADIUS/AAA | |||
| Issues, Naming of Entities, Protection of passwords, Channel Binding, | Issues, Naming of Entities, Protection of passwords, Channel Binding, | |||
| End-point-connections (TLS), Proxy problems | End-point-connections (TLS), Proxy problems | |||
| When a pseudonym is generated as a unique long term identifier for a | When a pseudonym is generated as a unique long term identifier for a | |||
| Subject by an IdP, care MUST be taken in the algorithm that it cannot | client by an IdP, care MUST be taken in the algorithm that it cannot | |||
| easily be reverse engineered by the service provider. If it can be | easily be reverse engineered by the service provider. If it can be | |||
| reversed then the service provider can consult an oracle to determine | reversed then the service provider can consult an oracle to determine | |||
| if a given unique long term identifier is associated with a different | if a given unique long term identifier is associated with a different | |||
| known identifier. | known identifier. | |||
| 7. IANA Considerations | 6. IANA Considerations | |||
| This document does not require actions by IANA. | This document does not require actions by IANA. | |||
| 8. Acknowledgments | 7. Acknowledgments | |||
| We would like to thank Mayutan Arumaithurai, Klaas Wierenga and Rhys | ||||
| We would like to thank Mayutan Arumaithurai and Klaas Wierenga for | Smith for their feedback. Additionally, we would like to thank Eve | |||
| their feedback. Additionally, we would like to thank Eve Maler, | Maler, Nicolas Williams, Bob Morgan, Scott Cantor, Jim Fenton, Paul | |||
| Nicolas Williams, Bob Morgan, Scott Cantor, Jim Fenton, Paul Leach, | Leach, and Luke Howard for their feedback on the federation | |||
| and Luke Howard for their feedback on the federation terminology | terminology question. | |||
| question. | ||||
| Furthermore, we would like to thank Klaas Wierenga for his review of | Furthermore, we would like to thank Klaas Wierenga for his review of | |||
| the pre-00 draft version. | the pre-00 draft version. | |||
| 9. References | 8. References | |||
| 9.1. Normative References | 8.1. Normative References | |||
| [RFC2743] Linn, J., "Generic Security Service Application Program | [RFC2743] Linn, J., "Generic Security Service Application Program | |||
| Interface Version 2, Update 1", RFC 2743, January 2000. | Interface Version 2, Update 1", RFC 2743, January 2000. | |||
| [RFC2865] Rigney, C., Willens, S., Rubens, A., and W. Simpson, | [RFC2865] Rigney, C., Willens, S., Rubens, A., and W. Simpson, | |||
| "Remote Authentication Dial In User Service (RADIUS)", RFC | "Remote Authentication Dial In User Service (RADIUS)", RFC | |||
| 2865, June 2000. | 2865, June 2000. | |||
| [RFC3588] Calhoun, P., Loughney, J., Guttman, E., Zorn, G., and J. | [RFC3588] Calhoun, P., Loughney, J., Guttman, E., Zorn, G., and J. | |||
| Arkko, "Diameter Base Protocol", RFC 3588, September 2003. | Arkko, "Diameter Base Protocol", RFC 3588, September 2003. | |||
| skipping to change at page 41, line 17 ¶ | skipping to change at page 41, line 11 ¶ | |||
| progress), February 2013. | progress), February 2013. | |||
| [I-D.ietf-radext-nai] | [I-D.ietf-radext-nai] | |||
| DeKok, A., "The Network Access Identifier", draft-ietf- | DeKok, A., "The Network Access Identifier", draft-ietf- | |||
| radext-nai-02 (work in progress), January 2013. | radext-nai-02 (work in progress), January 2013. | |||
| [RFC6677] Hartman, S., Clancy, T., and K. Hoeper, "Channel-Binding | [RFC6677] Hartman, S., Clancy, T., and K. Hoeper, "Channel-Binding | |||
| Support for Extensible Authentication Protocol (EAP) | Support for Extensible Authentication Protocol (EAP) | |||
| Methods", RFC 6677, July 2012. | Methods", RFC 6677, July 2012. | |||
| 9.2. Informative References | 8.2. Informative References | |||
| [RFC2903] de Laat, C., Gross, G., Gommans, L., Vollbrecht, J., and | [RFC2903] de Laat, C., Gross, G., Gommans, L., Vollbrecht, J., and | |||
| D. Spence, "Generic AAA Architecture", RFC 2903, August | D. Spence, "Generic AAA Architecture", RFC 2903, August | |||
| 2000. | 2000. | |||
| [I-D.nir-tls-eap] | [I-D.nir-tls-eap] | |||
| Nir, Y., Sheffer, Y., Tschofenig, H., and P. Gutmann, "A | Nir, Y., Sheffer, Y., Tschofenig, H., and P. Gutmann, "A | |||
| Flexible Authentication Framework for the Transport Layer | Flexible Authentication Framework for the Transport Layer | |||
| Security (TLS) Protocol using the Extensible | Security (TLS) Protocol using the Extensible | |||
| Authentication Protocol (EAP)", draft-nir-tls-eap-13 (work | Authentication Protocol (EAP)", draft-nir-tls-eap-13 (work | |||
| skipping to change at page 42, line 18 ¶ | skipping to change at page 42, line 13 ¶ | |||
| 1964, June 1996. | 1964, June 1996. | |||
| [RFC2203] Eisler, M., Chiu, A., and L. Ling, "RPCSEC_GSS Protocol | [RFC2203] Eisler, M., Chiu, A., and L. Ling, "RPCSEC_GSS Protocol | |||
| Specification", RFC 2203, September 1997. | Specification", RFC 2203, September 1997. | |||
| [RFC3645] Kwan, S., Garg, P., Gilroy, J., Esibov, L., Westhead, J., | [RFC3645] Kwan, S., Garg, P., Gilroy, J., Esibov, L., Westhead, J., | |||
| and R. Hall, "Generic Security Service Algorithm for | and R. Hall, "Generic Security Service Algorithm for | |||
| Secret Key Transaction Authentication for DNS (GSS-TSIG)", | Secret Key Transaction Authentication for DNS (GSS-TSIG)", | |||
| RFC 3645, October 2003. | RFC 3645, October 2003. | |||
| [RFC2138] Rigney, C., Rigney, C., Rubens, A.C., Simpson, W.A., and | [RFC2138] Rigney, C., Rigney, C., Rubens, A., Simpson, W., and S. | |||
| S. Willens, "Remote Authentication Dial In User Service | Willens, "Remote Authentication Dial In User Service | |||
| (RADIUS)", RFC 2138, April 1997. | (RADIUS)", RFC 2138, April 1997. | |||
| [RFC4462] Hutzelman, J., Salowey, J., Galbraith, J., and V. Welch, | [RFC4462] Hutzelman, J., Salowey, J., Galbraith, J., and V. Welch, | |||
| "Generic Security Service Application Program Interface | "Generic Security Service Application Program Interface | |||
| (GSS-API) Authentication and Key Exchange for the Secure | (GSS-API) Authentication and Key Exchange for the Secure | |||
| Shell (SSH) Protocol", RFC 4462, May 2006. | Shell (SSH) Protocol", RFC 4462, May 2006. | |||
| [RFC4422] Melnikov, A. and K. Zeilenga, "Simple Authentication and | [RFC4422] Melnikov, A. and K. Zeilenga, "Simple Authentication and | |||
| Security Layer (SASL)", RFC 4422, June 2006. | Security Layer (SASL)", RFC 4422, June 2006. | |||
| End of changes. 47 change blocks. | ||||
| 132 lines changed or deleted | 127 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/ | ||||