| < draft-ietf-abfab-arch-05.txt | draft-ietf-abfab-arch-06.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: August 29, 2013 Painless Security | Expires: October 20, 2013 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 | |||
| February 25, 2013 | April 18, 2013 | |||
| Application Bridging for Federated Access Beyond Web (ABFAB) | Application Bridging for Federated Access Beyond Web (ABFAB) | |||
| Architecture | Architecture | |||
| draft-ietf-abfab-arch-05.txt | draft-ietf-abfab-arch-06.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 GS2 family, the Extensible Authentication | |||
| Protocol (EAP) and the Security Assertion Markup Language (SAML). | Protocol (EAP) and the Security Assertion Markup Language (SAML). | |||
| The architecture addresses the problem of federated access management | The architecture addresses the problem of federated access management | |||
| to primarily non-web-based services, in a manner that will scale to | to primarily non-web-based services, in a manner that will scale to | |||
| large numbers of identity providers, relying parties, and | large numbers 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 August 29, 2013. | This Internet-Draft will expire on October 20, 2013. | |||
| 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 | |||
| carefully, as they describe your rights and restrictions with respect | carefully, as they describe your rights and restrictions with respect | |||
| to this document. Code Components extracted from this document must | to this document. Code Components extracted from this document must | |||
| 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 . . . . . . . . . . . . . . . . . . . . . . . . . 4 | 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 . . . . . . . . . . 11 | 1.4. An Overview of ABFAB-based Federation . . . . . . . . . . 10 | |||
| 1.5. Design Goals . . . . . . . . . . . . . . . . . . . . . . . 13 | 1.5. Design Goals . . . . . . . . . . . . . . . . . . . . . . 13 | |||
| 2. Architecture . . . . . . . . . . . . . . . . . . . . . . . . . 15 | 2. Architecture . . . . . . . . . . . . . . . . . . . . . . . . 14 | |||
| 2.1. Relying Party to Identity Provider . . . . . . . . . . . . 16 | 2.1. Relying Party to Identity Provider . . . . . . . . . . . 15 | |||
| 2.1.1. AAA, RADIUS and Diameter . . . . . . . . . . . . . . . 17 | 2.1.1. AAA, RADIUS and Diameter . . . . . . . . . . . . . . 16 | |||
| 2.1.2. Discovery and Rules Determination . . . . . . . . . . 19 | 2.1.2. Discovery and Rules Determination . . . . . . . . . . 18 | |||
| 2.1.3. Routing and Technical Trust . . . . . . . . . . . . . 20 | 2.1.3. Routing and Technical Trust . . . . . . . . . . . . . 19 | |||
| 2.1.4. AAA Security . . . . . . . . . . . . . . . . . . . . . 21 | 2.1.4. AAA Security . . . . . . . . . . . . . . . . . . . . 20 | |||
| 2.1.5. SAML Assertions . . . . . . . . . . . . . . . . . . . 22 | 2.1.5. SAML Assertions . . . . . . . . . . . . . . . . . . . 21 | |||
| 2.2. Client To Identity Provider . . . . . . . . . . . . . . . 24 | 2.2. Client To Identity Provider . . . . . . . . . . . . . . . 23 | |||
| 2.2.1. Extensible Authentication Protocol (EAP) . . . . . . . 24 | 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 . . . . . . . . . . . . . . . . . 26 | 2.3. Client to Relying Party . . . . . . . . . . . . . . . . . 25 | |||
| 2.3.1. GSS-API . . . . . . . . . . . . . . . . . . . . . . . 26 | 2.3.1. GSS-API . . . . . . . . . . . . . . . . . . . . . . . 26 | |||
| 2.3.2. Protocol Transport . . . . . . . . . . . . . . . . . . 28 | 2.3.2. Protocol Transport . . . . . . . . . . . . . . . . . 27 | |||
| 2.3.3. Reauthentication . . . . . . . . . . . . . . . . . . . 28 | 2.3.3. Reauthentication . . . . . . . . . . . . . . . . . . 28 | |||
| 3. Application Security Services . . . . . . . . . . . . . . . . 29 | 3. Application Security Services . . . . . . . . . . . . . . . . 28 | |||
| 3.1. Authentication . . . . . . . . . . . . . . . . . . . . . . 29 | 3.1. Authentication . . . . . . . . . . . . . . . . . . . . . 28 | |||
| 3.2. GSS-API Channel Binding . . . . . . . . . . . . . . . . . 30 | 3.2. GSS-API Channel Binding . . . . . . . . . . . . . . . . . 29 | |||
| 3.3. Host-Based Service Names . . . . . . . . . . . . . . . . . 31 | 3.3. Host-Based Service Names . . . . . . . . . . . . . . . . 30 | |||
| 3.4. Additional GSS-API Services . . . . . . . . . . . . . . . 33 | 3.4. Additional GSS-API Services . . . . . . . . . . . . . . . 32 | |||
| 4. Privacy Considerations . . . . . . . . . . . . . . . . . . . . 34 | ||||
| 4.1. Entities and their roles . . . . . . . . . . . . . . . . . 34 | 4. Privacy Considerations . . . . . . . . . . . . . . . . . . . 32 | |||
| 4.2. Relationship between user and entities . . . . . . . . . . 35 | 4.1. Entities and their roles . . . . . . . . . . . . . . . . 33 | |||
| 4.3. Data and Identifiers in use . . . . . . . . . . . . . . . 35 | 4.2. Privacy Aspects of ABFAB Communication Flows . . . . . . 34 | |||
| 4.3.1. NAI . . . . . . . . . . . . . . . . . . . . . . . . . 35 | 4.2.1. Client to RP . . . . . . . . . . . . . . . . . . . . 34 | |||
| 4.3.2. Identity Information . . . . . . . . . . . . . . . . . 36 | 4.2.2. Client to IdP (via Federation Substrate) . . . . . . 35 | |||
| 4.3.3. Accounting Information . . . . . . . . . . . . . . . . 36 | 4.2.3. IdP to RP (via Federation Substrate) . . . . . . . . 36 | |||
| 4.3.4. Collection and retention of data and identifiers . . . 36 | 4.3. Relationship between User and Entities . . . . . . . . . 36 | |||
| 4.4. User Participation . . . . . . . . . . . . . . . . . . . . 37 | 4.4. Accounting Information . . . . . . . . . . . . . . . . . 37 | |||
| 5. Deployment Considerations . . . . . . . . . . . . . . . . . . 38 | 4.5. Collection and retention of data and identifiers . . . . 37 | |||
| 5.1. EAP Channel Binding . . . . . . . . . . . . . . . . . . . 38 | 4.6. User Participation . . . . . . . . . . . . . . . . . . . 38 | |||
| 5.2. AAA Proxy Behavior . . . . . . . . . . . . . . . . . . . . 38 | 5. Deployment Considerations . . . . . . . . . . . . . . . . . . 38 | |||
| 6. Security Considerations . . . . . . . . . . . . . . . . . . . 39 | 5.1. EAP Channel Binding . . . . . . . . . . . . . . . . . . . 38 | |||
| 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 41 | 5.2. AAA Proxy Behavior . . . . . . . . . . . . . . . . . . . 38 | |||
| 8. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 42 | 6. Security Considerations . . . . . . . . . . . . . . . . . . . 38 | |||
| 9. References . . . . . . . . . . . . . . . . . . . . . . . . . . 43 | 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 40 | |||
| 9.1. Normative References . . . . . . . . . . . . . . . . . . . 43 | 8. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 40 | |||
| 9.2. Informative References . . . . . . . . . . . . . . . . . . 43 | 9. References . . . . . . . . . . . . . . . . . . . . . . . . . 40 | |||
| Editorial Comments . . . . . . . . . . . . . . . . . . . . . . . . | 9.1. Normative References . . . . . . . . . . . . . . . . . . 40 | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 49 | 9.2. Informative References . . . . . . . . . . . . . . . . . 41 | |||
| 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) | |||
| [OASIS.saml-core-2.0-os], and the Authentication, Authorization, and | [OASIS.saml-core-2.0-os], and the Authentication, Authorization, and | |||
| Accounting (AAA) architecture as embodied in RADIUS [RFC2865] and | Accounting (AAA) architecture as embodied in RADIUS [RFC2865] and | |||
| Diameter [RFC3588]. | Diameter [RFC3588]. | |||
| A Relying Party (RP) is the entity that manages access to some | A Relying Party (RP) is the entity that manages access to some | |||
| resource. The actor that is requesting access to that resource is | resource. The entity that is requesting access to that resource is | |||
| often described as the Client. Many security mechanisms are | often described as the Client. Many security mechanisms are | |||
| manifested as an exchange of information between these actors. The | manifested as an exchange of information between these entities. The | |||
| RP is therefore able to decide whether the Client is authorized, or | RP is therefore able to decide whether the Client is authorized, or | |||
| not. | not. | |||
| Some security mechanisms allow the RP to delegate aspects of the | Some security mechanisms allow the RP to delegate aspects of the | |||
| access management decision to an actor called the Identity Provider | access management decision to an entity called the Identity Provider | |||
| (IdP). This delegation requires technical signaling, trust and a | (IdP). This delegation requires technical signaling, trust and a | |||
| common understanding of semantics between the RP and IdP. These | common understanding of semantics between the RP and IdP. These | |||
| aspects are generally managed within a relationship known as a | aspects are generally managed within a relationship known as a | |||
| 'federation'. This style of access management is accordingly | 'federation'. This style of access management is accordingly | |||
| described as 'federated access management'. | described as 'federated access management'. | |||
| 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 organisation that already has a long-term | credentialing, to an organization that already has a long-term | |||
| relationship with the Subject. This is often attractive for | relationship with the Client. This is often attractive for | |||
| Relying Parties who frequently do not want these responsibilities. | Relying Parties who frequently do not want these responsibilities. | |||
| The Subject also requires fewer credentials, which is also | The Client 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 | |||
| Subject 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 subject, for example, that the Subject is affiliated | |||
| with a particular organisation or has a certain role or | with a particular organization or has a certain role or | |||
| entitlement. Sometimes the RP only needs to know a pseudonym of | entitlement. Sometimes the RP only needs to know a pseudonym of | |||
| the Subject. | the Subject. | |||
| Prior to the release of attributes to the IdP from the IdP, the | Prior to the release of attributes to the RP from the IdP, the IdP | |||
| IdP will check configuration and policy to determine if the | will check configuration and policy to determine if the attributes | |||
| attributes are to be released. There is currently no direct | are to be released. There is currently no direct client | |||
| 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 subject 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 Subject'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. | GS2 family, the Extensible Authentication Protocol (EAP) and SAML. | |||
| skipping to change at page 5, line 45 ¶ | skipping to change at page 5, line 28 ¶ | |||
| 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 | |||
| Assertion service. | Assertion service. | |||
| This document uses the term Network Access Identifier (NAI), as | This document uses the term Network Access Identifier (NAI), as | |||
| defined in [RFC4282]. An NAI consists of a realm identifier, which | defined in [I-D.ietf-radext-nai]. An NAI consists of a realm | |||
| is associated with an IdP and a username which is associated with a | identifier, which is associated with an IdP and a username which is | |||
| 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 | |||
| picking up don't use the same terms. In general the document uses | referencing are not consistent. In general the document uses either | |||
| either a consistent term or the term associated with the standard | a the ABFAB term or the term associated with the standard under | |||
| under discussion as appropriate. For reference we include this table | discussion as appropriate. For reference we include this table which | |||
| which maps the different terms into a single table. | maps the different terms into a single table. | |||
| +----------+-----------+--------------------+-----------------------+ | +--------------+--------------+-----------------+-------------------+ | |||
| | Protocol | Subject | Relying Party | Identity Provider | | | Protocol | Subject | Relying Party | Identity Provider | | |||
| +----------+-----------+--------------------+-----------------------+ | +--------------+--------------+-----------------+-------------------+ | |||
| | ABFAB | Client | Relying Party (RP) | Identity Provider | | | ABFAB | Client | Relying Party | Identity Provider | | |||
| | | | | (IdP) | | | | | (RP) | (IdP) | | |||
| | | | | | | | | | | | | |||
| | | Initiator | Acceptor | | | | | Initiator | Acceptor | | | |||
| | | | | | | | | | | | | |||
| | | | Server | | | | | | Server | | | |||
| | | | | | | | | | | | | |||
| | SAML | Subject | Service Provider | Issuer | | | SAML | Subject | Service | Issuer | | |||
| | | | | | | | | | Provider | | | |||
| | 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 direct name that represents this concept. | |||
| Note to reviewers - I have most likely missed some entries in the | ||||
| table. Please provide me with both correct names from the protocol | ||||
| and missing names that are used in the text below. | ||||
| 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, also called channel binding, is used to provide | EAP channel binding is used to provide GSS-API naming semantics. | |||
| GSS-API naming semantics. Channel binding sends a set of attributes | Channel binding sends a set of attributes from the peer to the EAP | |||
| from the peer to the EAP server either as part of the EAP | server either as part of the EAP conversation or as part of a secure | |||
| converstaion or as part of a secure association protocol. In | association protocol. In addition, attributes are sent in the | |||
| addition, attributes are sent in the baackend protocol from the | backend protocol from the authenticator to the EAP server. The EAP | |||
| authenticator to the EAP server. The EAP server confirms the | server confirms the consistency of these attributes and provides the | |||
| consistency of these attributes and provides the confirmation back to | confirmation back to the peer. In this document, channel binding | |||
| the peer. | 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 cyrptographic value to | from the tunnel itself and then using that cryptographic value to | |||
| prove to the otherside 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. | |||
| 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 | |||
| because the user will be able to recognize whether the displayed | because the user will be able to recognize whether the displayed | |||
| content is correct. If channel binding were used without mutual | content is correct. If channel binding is used without mutual | |||
| authentication, it would in effect be a request to only disclose the | authentication, it is effectively a request to disclose the resource | |||
| resource in the context of a particular channel. Such an | in the context of a particular channel. Such an authentication would | |||
| authentication would be similar in concept to a holder-of-key SAML | be similar in concept to a holder-of-key SAML assertion. However, | |||
| assertion. However, also note that while it is not happening in the | also note that while it is not happening in the protocol, mutual | |||
| protocol, mutual authentication is happening in the overall system: | authentication is happening in the overall system: the user is able | |||
| the user is able to visually authenticate the content. This is | to visually authenticate the content. This is consistent with all | |||
| consistent with all uses of channel binding without protocol level | uses of channel binding without protocol level mutual authentication | |||
| mutual authentication found so far. | found so far. | |||
| 1.2. An Overview of Federation | 1.2. An Overview of Federation | |||
| In the previous section we introduced the following actors: | 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. | |||
| One additional actor in can be an Individual. An individual is a | The final entity that needs to be introduced is the Individual. An | |||
| human being that is using a client. Individuals may or may not exist | Individual is a human being that is using the Client. In any given | |||
| in any given deployment. The client may be either a front end on an | situation, an Individual may or may not exist. Clients can act | |||
| individual or an independent automated entity. | either as front ends for Individuals or they may be independent | |||
| entities that are setup and allowed to run autonomously. An example | ||||
| of such an entity can be found in the trust routing protocol where | ||||
| the routers use ABFAB to authenticate to each other. | ||||
| These entities and their relationships are illustrated graphically in | These entities and their relationships are illustrated graphically in | |||
| Figure 1. | Figure 1. | |||
| ,----------\ ,---------\ | ,----------\ ,---------\ | |||
| | Identity | Federation | Relying | | | Identity | Federation | Relying | | |||
| | Provider + <-------------------> + Party | | | Provider + <-------------------> + Party | | |||
| `----------' '---------' | `----------' '---------' | |||
| < | < | |||
| \ | \ | |||
| skipping to change at page 8, line 30 ¶ | skipping to change at page 8, line 14 ¶ | |||
| +---------+ / \ | +---------+ / \ | |||
| Figure 1: Entities and their Relationships | Figure 1: Entities and their Relationships | |||
| 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 releationship 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. A federation is governed by a federation | |||
| agreement. | 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: | |||
| Operational Specifications: | Operational Specifications: | |||
| These includes the technical specifications (e.g. protocols used | These include the technical specifications (e.g. protocols used | |||
| to communicate between the three parties), process standards, | to 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 | |||
| provides contractual obligations for each entity. The rules | provide contractual obligations for each entity. The rules define | |||
| define the responsibilities of each party and provide further | the responsibilities of each party and provide further | |||
| clarification of the operational specifications. These legal | clarification of the operational specifications. These legal | |||
| rules regulate the operational specifications, make operational | rules regulate the operational specifications, make operational | |||
| specifications legally binding to the participants, define and | specifications legally binding to the participants, define and | |||
| govern the rights and responsibilities of the participants. The | govern the rights and responsibilities of the participants. The | |||
| legal rules may, for example, describe liability for losses, | legal rules may, for example, describe liability for losses, | |||
| termination rights, enforcement mechanisms, measures of damage, | termination rights, enforcement mechanisms, measures of damage, | |||
| dispute resolution, warranties, etc. | dispute resolution, warranties, etc. | |||
| The Operational Specifications can demand the usage of a | The Operational Specifications can demand the usage of a | |||
| sophisticated technical infrastructure, including requirements on the | sophisticated technical infrastructure, including requirements on the | |||
| message routing intermediaries, to offer the required technical | message routing intermediaries, to offer the required technical | |||
| functionality. In other environments, the Operational Specifications | functionality. In other environments, the Operational Specifications | |||
| require fewer technical components in order to meet the required | require fewer technical components in order to meet the required | |||
| technical functionality. | technical functionality. | |||
| The Legal Rules include many non-technical aspects of federation, | The Legal Rules include many non-technical aspects of federation, | |||
| such as business practices and legal arrangements, which are outside | such as business practices and legal arrangements, which are outside | |||
| the scope of the IETF. The Legal Rules can still have an impact the | the scope of the IETF. The Legal Rules can still have an impact on | |||
| architectural setup or on how to ensure the dynamic establishment of | the architectural setup or on how to ensure the dynamic establishment | |||
| trust. | of trust. | |||
| While a federation agreement is often discussed within the context of | While a federation agreement is often discussed within the context of | |||
| formal relationships, such as between an enterprise and an employee | formal relationships, such as between an enterprise and an employee | |||
| or a government and a citizen, a federation agreement does not have | or a government and a citizen, a federation agreement does not have | |||
| to require any particular level of formality. For an IdP and a | to require any particular level of formality. For an IdP and a | |||
| Client, it is sufficient for a relationship to be established by | Client, it is sufficient for a relationship to be established by | |||
| something as simple as using a web form and confirmation email. For | something as simple as using a web form and confirmation email. For | |||
| an IdP and an RP, it is sufficient for the IdP to publish contact | an IdP and an RP, it is sufficient for the IdP to publish contact | |||
| information along with a public key and for the RP to use that data. | information along with a public key and for the RP to use that data. | |||
| With in the framework of ABFAB, it will generally be required that a | Within the framework of ABFAB, it will generally be required that a | |||
| mechanism exists for the IdP to be able to trust the identity of the | mechanism exists for the IdP to be able to trust the identity of the | |||
| RP, if this is not present then the IdP cannot provide the assurances | RP, if this is not present then the IdP cannot provide the assurances | |||
| to the client that the identity of the RP has been established. | to the client that the identity of the RP has been established. | |||
| The nature of federation dictates that there is some form of | The nature of federation dictates that there is some form of | |||
| relationship between the identity provider and the relying party. | relationship between the identity provider and the relying party. | |||
| This is particularly important when the relying party wants to use | This is particularly important when the relying party wants to use | |||
| information obtained from the identity provider for access management | information obtained from the identity provider for access management | |||
| decisions and when the identity provider does not want to release | decisions and when the identity provider does not want to release | |||
| information to every relying party (or only under certain | information to every relying party (or only under certain | |||
| skipping to change at page 11, line 14 ¶ | skipping to change at page 10, line 46 ¶ | |||
| 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 | |||
| its the application of federated access management. This section | the application of federated access management. This section | |||
| provides a brief overview of ABFAB in the context of this model. | 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 | |||
| skipping to change at page 11, line 36 ¶ | skipping to change at page 11, line 24 ¶ | |||
| 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. | |||
| 3. Client provides an NAI to RP: The client application sets up a | 3. Client provides an NAI to RP: The client application sets up a | |||
| transport to the RP and begins the GSS-EAP authentication. In | transport to the RP and begins the GSS-EAP authentication. In | |||
| response, the RP sends an EAP request message (nested in the | response, the RP sends an EAP request message (nested in the | |||
| GSS-EAP protocol) asking for the Client's name. The Client | GSS-EAP protocol) asking for the Client's name. The Client | |||
| sends an EAP response with an NAI name form that at a minimum, | sends an EAP response with an NAI name form that, at a minimum, | |||
| contains the realm portion of it's full NAI. | contains the realm portion of its full NAI. | |||
| 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 Requests 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 run. The IdP may re-request | the client with an EAP method to be used. The IdP SHOULD NOT | |||
| the clients name in this message, but this is unexpected | re-request the clients name in this message, but clients need to | |||
| behavior. The available and appropriate methods are discussed | be able to handle it. In this case the IdP MUST accept a realm | |||
| below in this memo (Section 2.2.1). | only in order to protect the client's name from the RP. The | |||
| available and appropriate methods are discussed below in this | ||||
| 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 a 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 | |||
| skipping to change at page 12, line 38 ¶ | skipping to change at page 12, line 27 ¶ | |||
| 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, | |||
| it sends an EAP failure message to the RP.[anchor4] (The RP will | it sends an EAP failure message to the RP.[[Should this be an | |||
| have done its policy checks during the discovery process.) | EAP failure to the client as well?]] (The RP will have done its | |||
| policy checks during the discovery process.) | ||||
| 10. IdP provide the RP with the MSK: The IdP sends a positive result | 10. IdP provide the RP with the MSK: The IdP sends a positive result | |||
| EAP to the RP, along with an optional set of AAA attributes | EAP to the RP, along with an optional set of AAA attributes | |||
| associated with the client (usually as one or more SAML | associated with the client (usually as one or more SAML | |||
| assertions). In addition, the EAP MSK is returned to the RP. | 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. | |||
| skipping to change at page 14, line 12 ¶ | skipping to change at page 13, line 46 ¶ | |||
| Our key design goals are as follows: | Our key design goals are as follows: | |||
| o Each party of a transaction will be authenticated, although | o Each party of a transaction will be authenticated, although | |||
| perhaps not identified, and the client will be authorized for | perhaps not identified, and the client will be authorized for | |||
| access to a specific resource. | access to a specific resource. | |||
| o Means of authentication is decoupled so as to allow for multiple | o Means of authentication is decoupled so as to allow for multiple | |||
| authentication methods. | authentication methods. | |||
| o Hence, the architecture requires no sharing of long term private | o The architecture requires no sharing of long term private keys | |||
| keys between clients and servers. | between clients and servers. | |||
| o The system will scale to large numbers of identity providers, | o The system will scale to large numbers of identity providers, | |||
| relying parties, and users. | relying parties, and users. | |||
| o The system will be designed primarily for non-Web-based | o The system will be designed primarily for non-Web-based | |||
| authentication. | authentication. | |||
| o The system will build upon existing standards, components, and | o The system will build upon existing standards, components, and | |||
| operational practices. | operational practices. | |||
| Designing new three party authentication and authorization protocols | Designing new three party authentication and authorization protocols | |||
| is hard and fraught with risk of cryptographic flaws. Achieving | is hard and fraught with risk of cryptographic flaws. Achieving | |||
| widespead deployment is even more difficult. A lot of attention on | widespread deployment is even more difficult. A lot of attention on | |||
| federated access has been devoted to the Web. This document instead | federated access has been devoted to the Web. This document instead | |||
| focuses on a non-Web-based environment and focuses on those protocols | focuses on a non-Web-based environment and focuses on those protocols | |||
| where HTTP is not used. Despite the increased excitement for | where HTTP is not used. Despite the increased excitement for | |||
| layering every protocol on top of HTTP there are still a number of | layering every protocol on top of HTTP there are still a number of | |||
| protocols available that do not use HTTP-based transports. Many of | protocols available that do not use HTTP-based transports. Many of | |||
| these protocols are lacking a native authentication and authorization | these protocols are lacking a native authentication and authorization | |||
| framework of the style shown in Figure 1. | framework of the style shown in Figure 1. | |||
| 2. Architecture | 2. Architecture | |||
| We have already introduced the federated access architecture, with | We have already introduced the federated access architecture, with | |||
| skipping to change at page 15, line 19 ¶ | skipping to change at page 14, line 39 ¶ | |||
| 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]. Other alternatives exist as well and may | [I-D.ietf-abfab-gss-eap]. | |||
| be considered later, such as "TLS using EAP Authentication" | ||||
| [I-D.nir-tls-eap]. [anchor7] | ||||
| The architecture consists of several building blocks, which is shown | The architecture consists of several building blocks, which is shown | |||
| graphically in Figure 2. In the following sections, we discuss the | graphically in Figure 2. In the following sections, we discuss the | |||
| data flow between each of the entities, the protocols used for that | data flow between each of the entities, the protocols used for that | |||
| data flow and some of the trade-offs made in choosing the protocols. | data flow and some of the trade-offs made in choosing the protocols. | |||
| +--------------+ | +--------------+ | |||
| | Identity | | | Identity | | |||
| | Provider | | | Provider | | |||
| | (IdP) | | | (IdP) | | |||
| skipping to change at page 17, line 38 ¶ | skipping to change at page 16, line 38 ¶ | |||
| protocol provide the pieces necessary to establish the identities | protocol provide the pieces necessary to establish the identities | |||
| of the RP and the client, while EAP provides the cryptographic | of the RP and the client, while EAP provides the cryptographic | |||
| methods for the RP and the client to validate they are talking to | methods for the RP and the client to validate they are talking to | |||
| each other. | each other. | |||
| o A method exists for carrying SAML packets within RADIUS | o A method exists for carrying SAML packets within RADIUS | |||
| [I-D.ietf-abfab-aaa-saml] and Diameter (work in progress) which | [I-D.ietf-abfab-aaa-saml] and Diameter (work in progress) which | |||
| allows the RP to query attributes about the client from the IdP. | allows the RP to query attributes about the client from the IdP. | |||
| Future protocols that support the same framework but do different | Future protocols that support the same framework but do different | |||
| routing may be used in the future. Once such effort is to setup a | routing may be used in the future. One such effort is to setup a | |||
| framework that creates a trusted point-to-point channel on the fly. | framework that creates a trusted point-to-point channel on the fly. | |||
| 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 the terminology | successful from a deployment point of view. To map to the | |||
| used in Figure 1 to the AAA framework the IdP corresponds to the AAA | terminology used in Figure 1 to the AAA framework the IdP corresponds | |||
| server, the RP corresponds to the AAA client, and the technical | to the AAA server, the RP corresponds to the AAA client, and the | |||
| building blocks of a federation are AAA proxies, relays and redirect | technical building blocks of a federation are AAA proxies, relays and | |||
| agents (particularly if they are operated by third parties, such as | redirect agents (particularly if they are operated by third parties, | |||
| AAA brokers and clearing houses). The front-end, i.e. the end host | such as AAA brokers and clearing houses). The front-end, i.e. the | |||
| 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, | |||
| o It already has a method for routing requests based on a domain. | o It already has a method for routing requests based on a domain. | |||
| skipping to change at page 18, line 28 ¶ | skipping to change at page 17, line 28 ¶ | |||
| The astute reader will notice that RADIUS and Diameter have | The astute reader will notice that RADIUS and Diameter have | |||
| substantially similar characteristics. Why not pick one? RADIUS and | substantially similar characteristics. Why not pick one? RADIUS and | |||
| Diameter are deployed in different environments. RADIUS can often be | Diameter are deployed in different environments. RADIUS can often be | |||
| found in enterprise and university networks, and is also in use by | found in enterprise and university networks, and is also in use by | |||
| fixed network operators. Diameter, on the other hand, is deployed by | fixed network operators. Diameter, on the other hand, is deployed by | |||
| mobile operators. Another key difference is that today RADIUS is | mobile operators. Another key difference is that today RADIUS is | |||
| largely transported upon UDP. We leave as a deployment decision, | largely transported upon UDP. We leave as a deployment decision, | |||
| which protocol will be appropriate. The protocol defines all the | which protocol will be appropriate. The protocol defines all the | |||
| necessary new AAA attributes as RADIUS attributes. A future document | necessary new AAA attributes as RADIUS attributes. A future document | |||
| would defined the same AAA attributes for a Diameter environment. We | would define the same AAA attributes for a Diameter environment. We | |||
| also note that there exist proxies which convert from RADIUS to | also note that there exist proxies which convert from RADIUS to | |||
| Diameter and back. This makes it possible for both to be deployed in | Diameter and back. This makes it possible for both to be deployed in | |||
| a single federation substrate. | a single federation substrate. | |||
| Through the integrity protection mechanisms in the AAA framework, the | Through the integrity protection mechanisms in the AAA framework, the | |||
| 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 | |||
| skipping to change at page 19, line 6 ¶ | skipping to change at page 18, line 6 ¶ | |||
| about the subject by the identity provider, statements made about the | about the subject 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 [RFC4282]. The NAI is | the IdP is indicated by the realm component [I-D.ietf-radext-nai]. | |||
| represented and consumed by the GSS-API layer as GSS_C_NT_USER_NAME | The NAI is represented and consumed by the GSS-API layer as | |||
| as specified in [RFC2743]. The GSS-API EAP mechanism includes the | GSS_C_NT_USER_NAME as specified in [RFC2743]. The GSS-API EAP | |||
| NAI in the EAP Response/Identity message. | mechanism includes the NAI in the EAP Response/Identity message. | |||
| 2.1.2. Discovery and Rules Determination | 2.1.2. Discovery and Rules Determination | |||
| While we are using the AAA protocols to communicate with the IdP, the | While we are using the AAA protocols to communicate with the IdP, the | |||
| RP may have multiple federation substrates to select from. The RP | RP may have multiple federation substrates to select from. The RP | |||
| has a number of criteria that it will use in selecting which of the | has a number of criteria that it will use in selecting which of the | |||
| different federations to use: | different federations to use: | |||
| o The federation selected must be able to communicate with the IdP. | o The federation selected must be able to communicate with the IdP. | |||
| o The federation selected must match the business rules and | o The federation selected must match the business rules and | |||
| technical policies required for the RP security requirements. | technical policies required for the RP security requirements. | |||
| The RP needs to discover which federation will be used to contact the | The RP needs to discover which federation will be used to contact the | |||
| IdP. The first selection criteria in discovery is going to be the | IdP. The first selection criteria used during discovery is going to | |||
| name of the IdP to be contacted. The second selection criteria in | be the name of the IdP to be contacted. The second selection | |||
| discovery is going to be the set of business rules and technical | criteria used during discovery is going to be the set of business | |||
| policies governing the relationship; this is called rules | rules and technical policies governing the relationship; this is | |||
| determination. The RP also needs to establish technical trust in the | called rules determination. The RP also needs to establish technical | |||
| communications with the IdP. | trust in the communications with the IdP. | |||
| Rules determination covers a broad range of decisions about the | Rules determination covers a broad range of decisions about the | |||
| exchange. One of these is whether the given RP is permitted to talk | exchange. One of these is whether the given RP is permitted to talk | |||
| to the IdP using a given federation at all, so rules determination | to the IdP using a given federation at all, so rules determination | |||
| encompasses the basic authorization decision. Other factors are | encompasses the basic authorization decision. Other factors are | |||
| included, such as what policies govern release of information about | included, such as what policies govern release of information about | |||
| the principal to the RP and what policies govern the RP's use of this | the client to the RP and what policies govern the RP's use of this | |||
| information. While rules determination is ultimately a business | information. While rules determination is ultimately a business | |||
| function, it has significant impact on the technical exchanges. The | function, it has significant impact on the technical exchanges. The | |||
| protocols need to communicate the result of authorization. When | protocols need to communicate the result of authorization. When | |||
| multiple sets of rules are possible, the protocol must disambiguate | multiple sets of rules are possible, the protocol must disambiguate | |||
| which set of rules are in play. Some rules have technical | which set of rules are in play. Some rules have technical | |||
| enforcement mechanisms; for example in some federations | enforcement mechanisms; for example in some federations | |||
| intermediaries validate information that is being communicated within | intermediaries validate information that is being communicated within | |||
| the federation. | the federation. | |||
| At the time of writing no protocol mechanism has been specified to | At the time of writing no protocol mechanism has been specified to | |||
| allow a AAA client to determine whether a AAA proxy will indeed be | allow a AAA client to determine whether a AAA proxy will indeed be | |||
| able to route AAA requests to a specific IdP. The AAA routing is | able to route AAA requests to a specific IdP. The AAA routing is | |||
| impacted by business rules and technical policies that may be quite | impacted by business rules and technical policies that may be quite | |||
| complex and atpresent time, the route selection is based on manual | complex and at the present time, the route selection is based on | |||
| 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 the names of both parties to the exchange. The trust | to validate theg identities of both parties to the exchange. The | |||
| mechanism must to ensure that the entity acting as IdP for a given | trust mechanism must to ensure that the entity acting as IdP for a | |||
| NAI is permitted to be the IdP for that realm, and that any service | given NAI is permitted to be the IdP for that realm, and that any | |||
| name claimed by the RP is permitted to be claimed by that entity. | service name claimed by the RP is permitted to be claimed by that | |||
| Here are the categories of technical trust determination: | entity. Here are the categories of technical trust determination: | |||
| AAA Proxy: | AAA Proxy: | |||
| The simplest model is that an RP supports a request directly to an | The simplest model is that an RP is an AAA client and can send the | |||
| AAA proxy. The hop-by-hop integrity protection of the AAA fabric | request directly to an AAA proxy. The hop-by-hop integrity | |||
| provides technical trust. An RP can submit a request directly to | protection of the AAA fabric provides technical trust. An RP can | |||
| a federation. Alternatively, a federation disambiguation fabric | submit a request directly to a federation. Alternatively, a | |||
| can be used. Such a fabric takes information about what | federation disambiguation fabric can be used. Such a fabric takes | |||
| federations the RP is part of and what federations the IdP is part | information about what federations the RP is part of and what | |||
| of and routes a message to the appropriate federation. The | federations the IdP is part of and routes a message to the | |||
| routing of messages across the fabric plus attributes added to | appropriate federation. The routing of messages across the fabric | |||
| requests and responses provides rules determination. For example, | plus attributes added to requests and responses provides rules | |||
| when a disambiguation fabric routes a message to a given | determination. For example, when a disambiguation fabric routes a | |||
| federation, that federation's rules are chosen. Name validation | message to a given federation, that federation's rules are chosen. | |||
| is enforced as messages travel across the fabric. The entities | Name validation is enforced as messages travel across the fabric. | |||
| near the RP confirm its identity and validate names it claims. | The entities near the RP confirm its identity and validate names | |||
| The fabric routes the message towards the appropriate IdP, | it claims. The fabric routes the message towards the appropriate | |||
| validating the IdP's name in the process. The routing can be | IdP, validating the IdP's name in the process. The routing can be | |||
| statically configured. Alternatively a routing protocol could be | statically configured. Alternatively a routing protocol could be | |||
| developed to exchange reachability information about given IdPs | developed to exchange reachability information about given a IdP | |||
| and to apply policy across the AAA fabric. Such a routing | and to apply policy across the AAA fabric. Such a routing | |||
| protocol could flood naming constraints to the appropriate points | protocol could flood naming constraints to the appropriate points | |||
| in the fabric. | 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 | |||
| aspects of technical trust including names that may be claimed. A | aspects of technical trust including names that may be claimed. A | |||
| routing protocol similar to the one for AAA proxies is likely to | routing protocol similar to the one for AAA proxies is likely to | |||
| skipping to change at page 21, line 40 ¶ | skipping to change at page 21, line 5 ¶ | |||
| provide a traditional AAA proxy interface even if they also provide | provide a traditional AAA proxy interface even if they also provide | |||
| another mechanism for increased efficiency or security. | another mechanism for increased efficiency or security. | |||
| 2.1.4. AAA Security | 2.1.4. AAA Security | |||
| For the AAA framework there are two different places where security | For the AAA framework there are two different places where security | |||
| needs to be examined. The first is the security that is in place for | needs to be examined. The first is the security that is in place for | |||
| the links in the AAA backbone being used. The second is the nodes | the links in the AAA backbone being used. The second is the nodes | |||
| that the backbone consists of. | that the backbone consists of. | |||
| The default link security for RADIUS is showing it's age as it uses | The default link security for RADIUS is showing its age as it uses | |||
| MD5 and a shared secret to both obfuscate passwords and to provide | MD5 and a shared secret to both obfuscate passwords and to provide | |||
| integrity on the RADIUS messages. In many environments this is | integrity on the RADIUS messages. While some EAP methods have | |||
| considered to be insufficient, especially as not all attributes are | designed in the ability to protect the client authentication | |||
| obfuscated and can thus leak information to a passive eavesdropper. | credentials, the MSK returned from the IDP to the RP is protected | |||
| The use of RADIUS with TLS [RFC6614] and/or DTLS | only by the RADIUS security. In many environments this is considered | |||
| [I-D.ietf-radext-dtls] addresses these attacks. The same level of | to be insufficient, especially as not all attributes are obfuscated | |||
| security is included in the base Diameter specifications. | and can thus leak information to a passive eavesdropper. The use of | |||
| RADIUS with TLS [RFC6614] and/or DTLS [I-D.ietf-radext-dtls] | ||||
| TBD - Put in text - Not all nodes can be eliminated - proxy nodes may | addresses these attacks. The same level of security is included in | |||
| be required Trust router looks for a way to shorten the list of inner | the base Diameter specifications. | |||
| nodes. Reference DYNAMIC and say that it does or does not help and | ||||
| why. Talk about Diameter in the same context - does it have the same | ||||
| set of issues or not? | ||||
| 2.1.5. SAML Assertions | 2.1.5. SAML Assertions | |||
| For the traditional use of AAA frameworks, network access, the only | For the traditional use of AAA frameworks, network access, the only | |||
| requirement that was necessary to grant access was an affirmative | requirement that was necessary to grant access was an affirmative | |||
| response from the IdP. In the ABFAB world, the RP may need to get | response from the IdP. In the ABFAB world, the RP may need to get | |||
| additional information about the client before granting access. | additional information about the client before granting access. | |||
| ABFAB therefore has a requirement that it can transport an arbitrary | ABFAB therefore has a requirement that it can transport an arbitrary | |||
| set of attributes about the client from the IdP to the RP. | set of attributes about the client from the IdP to the RP. | |||
| Security Assertions Markup Language (SAML) [OASIS.saml-core-2.0-os] | Security Assertions Markup Language (SAML) [OASIS.saml-core-2.0-os] | |||
| was designed in order to carry an extensible set of attributes about | was designed in order to carry an extensible set of attributes about | |||
| a subject. Since SAML is extensible in the attribute space, ABFAB | a subject. Since SAML is extensible in the attribute space, ABFAB | |||
| has no immediate needs to update the core SAML specifications for our | has no immediate needs to update the core SAML specifications for our | |||
| work. It will be necessary to update IdPs that need to return SAML | work. It will be necessary to update IdPs that need to return SAML | |||
| assertions to IdPs and for both the IdP and the RP to implement a new | assertions to RPs and for both the IdP and the RP to implement a new | |||
| SAML profile designed to carry SAML assertions in AAA. The new | SAML profile designed to carry SAML assertions in AAA. The new | |||
| profile can be found in RFCXXXX [I-D.ietf-abfab-aaa-saml]. As SAML | profile can be found in RFCXXXX [I-D.ietf-abfab-aaa-saml]. As SAML | |||
| statements will frequently be large, RADIUS servers and clients that | statements will frequently be large, RADIUS servers and clients that | |||
| deal with SAML statements will need to implement RFC XXXX | deal with SAML statements will need to implement RFC XXXX | |||
| [I-D.perez-radext-radius-fragmentation] | [I-D.perez-radext-radius-fragmentation] | |||
| There are several issues that need to be highlighted: | There are several issues that need to be highlighted: | |||
| o The security of SAML assertions. | o The security of SAML assertions. | |||
| skipping to change at page 23, line 11 ¶ | skipping to change at page 22, line 20 ¶ | |||
| Attributes placed in SAML assertions can have different namespaces | Attributes placed in SAML assertions can have different namespaces | |||
| assigned to the same name. In many, but not all, cases the | assigned to the same name. In many, but not all, cases the | |||
| federation agreements will determine what attributes can be used in a | federation agreements will determine what attributes can be used in a | |||
| SAML statement. This means that the RP needs to map from the | SAML statement. This means that the RP needs to map from the | |||
| federation names, types and semantics into the ones that the policies | federation names, types and semantics into the ones that the policies | |||
| of the RP are written in. In other cases the federation substrate | of the RP are written in. In other cases the federation substrate | |||
| may modify the SAML assertions in transit to do the necessary | may modify the SAML assertions in transit to do the necessary | |||
| 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 will obviously remove any signatures on the | the SAML Assertion, then they will obviously remove any signatures as | |||
| SAML assertions as they would no longer validate. In this case the | they would no longer validate. In this case the technical trust is | |||
| technical trust is the required mechanism for validating the | the required mechanism for validating the integrity of the assertion. | |||
| integrity of the assertion. Finally, the attributes may still be in | Finally, the attributes may still be in the namespace of the | |||
| the namespace of the originating IdP. When this occurs the RP will | originating IdP. When this occurs the RP will need to get the | |||
| need to get the required mapping operations from the federation | required mapping operations from the federation agreements and do the | |||
| agreements and do the appropriate mappings itself. | appropriate mappings itself. | |||
| As of this writing, no one has defined a SAML name format that | The RADIUS SAML RFC [I-D.ietf-abfab-aaa-saml] has define a new SAML | |||
| corresponds to the NAI structure defined by RFC 4282 [RFC4282]. This | name format that corresponds to the NAI name form defined by RFC XXXX | |||
| means that there is no method to directly place the same NAI used in | [I-D.ietf-radext-nai]. This allows for easy name matching in many | |||
| RADIUS or Diameter as the subject name of a SAML assertion. It is a | cases as the name form in the SAML statement and the name form used | |||
| requirement on the EAP server that it validate that the subject of | in RADIUS or Diameter will be the same. In addition to the NAI name | |||
| the SAML name, if any, is equivalent to the subject identified by the | form, the document also defines a pair of implicit name forms | |||
| NAI used in the RADIUS or Diameter session. | corresponding to the Client and the Client's machine. These implicit | |||
| 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 | ||||
| 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 | ||||
| assertion, if any, is equivalent to the subject identified by the NAI | ||||
| used in the RADIUS or Diameter session. | ||||
| RADIUS has the ability to deal with multiple SAML queries for those | RADIUS has the ability to deal with multiple SAML queries for those | |||
| EAP Servers which follow RFC 5080 [RFC5080]. In this case a State | EAP Servers which follow RFC 5080 [RFC5080]. In this case a State | |||
| attribute will always been returned with the Access-Accept. The EAP | attribute will always be returned with the Access-Accept. The EAP | |||
| client can then send a new Access-Request with the State attribute | client can then send a new Access-Request with the State attribute | |||
| and the new SAML request Multiple SAML queries can them be done by | and the new SAML Request Multiple SAML queries can then be done by | |||
| making a new Access-Request using the State attribute returned in the | making a new Access-Request using the State attribute returned in the | |||
| last Access-Accept to link together the different RADIUS sessions. | last Access-Accept to link together the different RADIUS sessions. | |||
| Some RPs need to ensure that specfic criteria are met during the | Some RPs need to ensure that specific criteria are met during the | |||
| authentication process. This need is met by using Levels of | authentication process. This need is met by using Levels of | |||
| Assurance. The way a Level of Assurance is communicated to from the | Assurance. The way a Level of Assurance is communicated to the RP | |||
| RP to the EAP server is by the use of a SAML Authentication Request | from the EAP server is by the use of a SAML Authentication Request | |||
| using the Authentication Profile from RFC XXX | using the Authentication Profile from RFC XXX | |||
| [I-D.ietf-abfab-aaa-saml] When crossing boundaries between different | [I-D.ietf-abfab-aaa-saml] When crossing boundaries between different | |||
| federations, either the policy specfied will need to be shared | federations, either the policy specified will need to be shared | |||
| between the two federations, the policy will need to be mapped by the | between the two federations, the policy will need to be mapped by the | |||
| proxy server on the boundary or the proxy server on the boundary will | proxy server on the boundary or the proxy server on the boundary will | |||
| need to supply infomration the EAP server so that it can do the | need to supply information the EAP server so that it can do the | |||
| required mapping. If this mapping is not done, then the EAP server | required mapping. If this mapping is not done, then the EAP server | |||
| will not be able to enforce the desired Level of Assurance as it will | will not be able to enforce the desired Level of Assurance as it will | |||
| not understand the policy requirements. | not understand the policy requirements. | |||
| 2.2. Client To Identity Provider | 2.2. Client To Identity Provider | |||
| Looking at the communications between the client and the IdP, the | Looking at the communications between the client and the IdP, the | |||
| following items need to be dealt with: | following items need to be dealt with: | |||
| o The client and the IdP need to mutually authenticate each other. | o The client and the IdP need to mutually authenticate each other. | |||
| skipping to change at page 24, line 30 ¶ | skipping to change at page 23, line 41 ¶ | |||
| 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 subject 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 entyr 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 subject has adequately validated they are | |||
| talking to the intended server. By giving control of the | talking to the intended server. By giving control of the | |||
| authentication interface to a potential attacker, then the security | authentication interface to a potential attacker, the security of the | |||
| of the system may be reduced and phishing opportunities introduced. | system may be 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 subject'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 | |||
| everywhere there is another associated requirement: The | everywhere there is another associated requirement: The | |||
| authentication framework must allow for the flexible integration of | authentication framework must allow for the flexible integration of | |||
| authentication mechanisms. For instance, some IdPs require hardware | authentication mechanisms. For instance, some IdPs require hardware | |||
| 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. | |||
| Fortunately, these requirements can be met by utilizing standardized | These requirements can be met by utilizing standardized and | |||
| 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,service client or principal) through the | between a peer (i.e. client or individual) through the authenticator | |||
| authenticator (i.e., service provider) to the back-end (i.e., | (i.e., relying party) to the back-end (i.e., identity provider). | |||
| identity provider). Conveniently, this is precisely the | Conveniently, this is precisely the communication path that is needed | |||
| communication path that is needed for federated identity. Although | for federated identity. Although EAP support is already integrated | |||
| EAP support is already integrated in AAA systems (see [RFC3579] and | in AAA systems (see [RFC3579] and [RFC4072]) several challenges | |||
| [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 | subject, 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. | |||
| skipping to change at page 27, line 35 ¶ | skipping to change at page 27, line 17 ¶ | |||
| the application is well defined. Also, the set of assumptions the | the application is well defined. Also, the set of assumptions the | |||
| application is permitted to make is generally well defined. As a | application is permitted to make is generally well defined. As a | |||
| result, an application protocol that supports GSS-API or SASL is very | result, an application protocol that supports GSS-API or SASL is very | |||
| likely to be usable with a new approach to authentication including | likely to be usable with a new approach to authentication including | |||
| this one with no required modifications. In some cases, support for | this one with no required modifications. In some cases, support for | |||
| a new authentication mechanism has been added using plugin interfaces | a new authentication mechanism has been added using plugin interfaces | |||
| to applications without the application being modified at all. Even | to applications without the application being modified at all. Even | |||
| when modifications are required, they can often be limited to | when modifications are required, they can often be limited to | |||
| supporting a new naming and authorization model. For example, this | supporting a new naming and authorization model. For example, this | |||
| work focuses on privacy; an application that assumes it will always | work focuses on privacy; an application that assumes it will always | |||
| obtain an identifier for the principal will need to be modified to | obtain an identifier for the client will need to be modified to | |||
| support anonymity, unlinkability or pseudonymity. | 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 principals | 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 | |||
| GSS-API needs to provide the transport. In many cases HTTP or HTTPS | GSS-API needs to provide the transport. In many cases HTTP or HTTPS | |||
| is used for this transport, but other transports are perfectly | is used for this transport, but other transports are perfectly | |||
| skipping to change at page 30, line 33 ¶ | skipping to change at page 29, line 45 ¶ | |||
| GSS-API acceptor, providing anonymity between the initiator and the | GSS-API acceptor, providing anonymity between the initiator and the | |||
| acceptor. At this time, whether the identity is disclosed is | acceptor. At this time, whether the identity is disclosed is | |||
| determined by EAP server policy rather than by an indication from the | determined by EAP server policy rather than by an indication from the | |||
| initiator. Also, initiators are unlikely to be able to determine | initiator. Also, initiators are unlikely to be able to determine | |||
| whether anonymous communication will be provided. For this reason, | whether anonymous communication will be provided. For this reason, | |||
| initiators are unlikely to set the anonymous return flag from | initiators are unlikely to set the anonymous return flag from | |||
| GSS_Init_Sec_context. | GSS_Init_Sec_context. | |||
| 3.2. GSS-API Channel Binding | 3.2. GSS-API Channel Binding | |||
| [RFC5056] defines a concept of channel binding to which is used | [RFC5056] defines a concept of channel binding which is used prevent | |||
| prevent man-in-the-middle attacks. The channel binding works by | man-in-the-middle attacks. The channel binding works by taking a | |||
| taking a cryptographic value from the transport security and checks | cryptographic value from the transport security and checks that both | |||
| that both sides of the GSS-API conversation know this value. | sides of the GSS-API conversation know this value. Transport Layer | |||
| Transport Layer Security (TLS) is the most common transport security | Security (TLS) is the most common transport security layer used for | |||
| layer used for this purpose. | this purpose. | |||
| It needs to be stressed that RFC 5056 channel binding (also called | It needs to be stressed that RFC 5056 channel binding (also called | |||
| GSS-API channel binding when GSS-API is involved) is not the same | GSS-API channel binding when GSS-API is involved) is not the same | |||
| thing as EAP channel binding. GSS-API channel binding is used for | thing as EAP channel binding. GSS-API channel binding is used for | |||
| detecting Man-In-The-Middle attacks. EAP channel binding is used for | detecting Man-In-The-Middle attacks. EAP channel binding is used for | |||
| mututal authentication and acceptor naming checks. Details are | mutual authentication and acceptor naming checks. Details are | |||
| discussed in the mechanisms specification [I-D.ietf-abfab-gss-eap]. | discussed in the mechanisms specification [I-D.ietf-abfab-gss-eap]. | |||
| A fuller discription of the differences between the factilities cn be | A fuller description of the differences between the facilities can be | |||
| 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. | |||
| On of the benifits 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 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 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. Even when it is checked, if the trust infrastructure behind | |||
| the TLS authentication is different from the trust infrastructure | the TLS authentication is different from the trust infrastructure | |||
| behind the GSS-API mutual authentication then confirming the end- | behind the GSS-API mutual authentication then confirming the end- | |||
| points using both trust infrastructures is likely to enhance | points using both trust infrastructures is likely to enhance | |||
| security. If the endpoints of the GSS-API authentication are | security. If the endpoints of the GSS-API authentication are | |||
| skipping to change at page 31, line 46 ¶ | skipping to change at page 31, line 10 ¶ | |||
| 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. | |||
| 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. | |||
| 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 | |||
| given name. This is the approach adopted by ABFAB. | given name. This is the approach adopted by ABFAB. | |||
| GSS-EAP defines a host naming convention that takes into account the | GSS-EAP defines a host naming convention that takes into account the | |||
| host name, the realm, the service and the service parameters. An | host name, the realm, the service and the service parameters. An | |||
| example of GSS-API service name is "xmpp/foo@example.com". This | example of GSS-API service name is "xmpp/foo@example.com". This | |||
| identifies the XMPP service on the host foo in the realm example.com. | identifies the XMPP service on the host foo in the realm example.com. | |||
| Any of the components, except for the service name may be omitted | Any of the components, except for the service name may be omitted | |||
| skipping to change at page 32, line 40 ¶ | skipping to change at page 32, line 4 ¶ | |||
| 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 | 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 | |||
| the a host name is returned from the DNS referrals, and the host name | a host name is returned from the DNS referrals, and the host name is | |||
| 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 24 ¶ | skipping to change at page 33, line 17 ¶ | |||
| 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. | |||
| +--------+ +---------------+ +--------------+ | ||||
| | Client | <---> | RP | <---> | AAA Client | | ||||
| +--------+ +---------------+ +--------------+ | ||||
| ^ | ||||
| | | ||||
| v | ||||
| +---------------+ +--------------+ | ||||
| | SAML Server | | AAA Proxy(s) | | ||||
| +---------------+ +--------------+ | ||||
| ^ ^ | ||||
| | | | ||||
| v v | ||||
| +------------+ +---------------+ +--------------+ | ||||
| | EAP Server | <---> | IdP | <---> | AAA Server | | ||||
| +------------+ +---------------+ +--------------+ | ||||
| Figure 3: Entities and Data Flow | ||||
| 4.1. Entities and their roles | 4.1. Entities and their roles | |||
| In an ABFAB environment, there are four distinct types of entities | Categorizing the ABFAB entities shown in the Figure 3 according to | |||
| involved in communication paths. Figure 2 shows the ABFAB | the taxonomy of terms from [I-D.iab-privacy-considerations] the | |||
| architecture with these entity types. We have: | entities shown in Figure 3 is somewhat complicated as during the | |||
| various phases of ABFAB communications the roles of each entity | ||||
| changes. The three main phases of relevance are the Client to RP | ||||
| communication phase, the Client to IdP (via the Federation Substrate) | ||||
| phase, and the IdP to RP (via the Federation Substrate) phase. | ||||
| o The client application: usually a piece of software running on a | In the Client to RP communication phase, we have: | |||
| user's device. This communicates with a service (the Relying | ||||
| Party) that the user wishes to interact with. | ||||
| o The Identity Provider: The home AAA server for the user. | Initiator: Client. | |||
| o The Relying Party: The service the user wishes to connect to. | Observers: Client, RP. | |||
| o The federation substrate: A set of entities through which messages | Recipient: RP. | |||
| pass on their path between RP and AAA server. | ||||
| As described in detail earlier in this document, when a user wishes | In the Client to IdP (via the Federation Substrate) communication | |||
| to access a Relying Party, a secure tunnel is set up between their | phase, we have: | |||
| client application and their Identity Provider (via the Relying Party | ||||
| and the federation substrate) through which credentials are | ||||
| exchanged. An indication of success or failure, alongside a set of | ||||
| AAA attributes about a principal is then passed from the Identity | ||||
| Provider to the Relying Party (usually in the form of a SAML | ||||
| assertion). | ||||
| 4.2. Relationship between user and entities | Initiator: Client. | |||
| o Between User and Identity Provider - the identity Provider is an | Observers: Client, RP, AAA Client, AAA Proxy(s), AAA Server, IdP. | |||
| entity the user will have a direct relationship with, created when | ||||
| the organisation that operates the entity provisioned and | ||||
| exchanged the user's credentials. Privacy and data protection | ||||
| guarantees may form a part of this relationship. | ||||
| o Between User and Relying Party - the Relying Party is an entity | Recipient: IdP | |||
| the user may or may not have a direct relationship with, depending | ||||
| on the service in question. Some services may only be offered to | ||||
| those users where such a direct relationship exists (for | ||||
| particularly sensitive services, for example), while some may not | ||||
| require this and would instead be satisfied with basic federation | ||||
| trust guarantees between themselves and the Identity Provider). | ||||
| This may well include the option that the user stays anonymous | ||||
| with respect to the Relying Party (though obviously not to the | ||||
| Identity Provider). If attempting to preserve privacy through the | ||||
| mitigation of data minimisation, then the only attribute | ||||
| information about individuals exposed to the Relying Party should | ||||
| be that which is strictly necessary for the operation of the | ||||
| service. | ||||
| o Between User and Federation substrate - the user is highly likely | In the IdP to Relying party (via the Federation Substrate) | |||
| to have no knowledge of, or relationship with, any entities | communication phase, we have: | |||
| involved with the federation substrate (not that the Identity | ||||
| Provider and/or Relying Party may, however). Knowledge of | ||||
| attribute information about individuals for these entities is not | ||||
| necessary, and thus such information should be protected in such a | ||||
| way as to prevent access to this information from being possible. | ||||
| 4.3. Data and Identifiers in use | Initiator: IdP. | |||
| Observers: IdP, AAA Server, AAA Proxy(s), AAA Client, RP. | ||||
| Recipient: RP | ||||
| Eavesdroppers and Attackers can reside on any communication link | ||||
| between entities in Figure 3. | ||||
| The Federation Substrate consists of all of the AAA entities. In | ||||
| some cases the AAA Proxies entities may not exist as the AAA Client | ||||
| can talk directly to the AAA Server. Specifications such as the | ||||
| Trust Router Protocol and RADIUS dynamic discovery | ||||
| [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 | ||||
| Proxies from being Observers), however even in these circumstances | ||||
| there may be AAA Proxies in the path. | ||||
| In Figure 3 the IdP has been divided into multiple logical pieces, in | ||||
| actual implementations these pieces will frequently be tightly | ||||
| coupled. The links between these pieces provide the greatest | ||||
| opportunity for attackers and eavesdroppers to acquire information, | ||||
| however, as they are all under the control of a single entity they | ||||
| are also the easiest to have tightly secured. | ||||
| 4.2. Privacy Aspects of ABFAB Communication Flows | ||||
| In the ABFAB architecture, there are a few different types of data | In the ABFAB architecture, there are a few different types of data | |||
| and identifiers in use. | and identifiers in use. The best way to understand them, and the | |||
| potential privacy impacts of them, is to look at each phase of | ||||
| communication in ABFAB. | ||||
| 4.3.1. NAI | 4.2.1. Client to RP | |||
| In order for the Relying Party to be able to route messages to enable | The flow of data between the client and the RP is divided into two | |||
| an EAP transaction to occur between client application and the | parts. The first part consists of all of the data exchanged as part | |||
| correct identity Provider, it is necessary for the client application | of the ABFAB authentication process. The second part consists of all | |||
| to provide enough information to the Relying Party to enable the | of the data exchanged after the authentication process has been | |||
| identification of the correct Identity Provider. This takes the form | finished. | |||
| of an Network Access Identifier (NAI) (as specified in [RFC4282]). | ||||
| Note that an NAI can have inner and outer forms in a AAA | ||||
| architecture. | ||||
| o The outer part of NAI is exposed to the Relying Party; this can | During the initial communications phase, the client sends an NAI (see | |||
| simply contain realm information. Doing so (i.e. not including | [I-D.ietf-radext-nai]) to the RP. Many EAP methods (but not all) | |||
| user identification details such as a username) minimises the data | allow for the client to disclose an NAI to the in a form that | |||
| given to the Relying Part to that which is purely necessary to | includes only a realm during this communications phase. This is the | |||
| support the necessary routing decision. | minimum amount of identity information necessary for ABFAB to work - | |||
| it indicates an IdP that the principal has a relationship with. EAP | ||||
| methods that do not allow this will necessarily also reveal an | ||||
| identifier for the principal in the IdP realm (e.g. a username). | ||||
| o The inner part of NAI is sent through the secure tunnel as | The data exchanged after the authentication process can have privacy | |||
| established by the EAP protocol; this form of the NAI will contain | and authentication using the GSS-API services. If the overall | |||
| credentials for the user suitable for authenticating them | application protocol allows for the process of re-authentication, | |||
| successfully (e.g. a username and password). Since the entire | then the same privacy impliciations as discussed in previous | |||
| purpose of the secure tunnel is to protect communications between | paragraph apply. | |||
| client application (EAP client) and Identity Provider (EAP | ||||
| server), then it is considered secure from eavesdroppers or | ||||
| malicious intermediaries and no further privacy discussion is | ||||
| necessary. | ||||
| 4.3.2. Identity Information | 4.2.2. Client to IdP (via Federation Substrate) | |||
| As a part of the ABFAB process, after a successful authentication has | This phase sees a secure TLS tunnel initiated between the Client and | |||
| occurred between client application and Identity Provider, an | the IdP via the RP and federation substrate. The process is | |||
| indication of this success is sent to the Relying Party. Alongside | initiated by the RP using the realm information given to it by the | |||
| this message, information about the user may be returned through AAA | client. Once set up, the tunnel is used to send credentials to IdP | |||
| attributes, usually in form of a SAML assertion. This information is | to authenticate. | |||
| arbitrary and may include either only attributes that prevent an | ||||
| individual from being identified by the Relying Party (thus enabling | ||||
| anonymous or pseudonymous access) or attributes that contain | ||||
| personally identifiable information. | ||||
| Depending on the method used, this information carried through AAA | Various operational information is transported between RP and IdP, | |||
| attributes may or may not be accessible to intermediaries involved in | over the AAA infrastructure, for example using RADIUS headers. As no | |||
| communications - e.g. in the case of RADIUS and unencrypted SAML, | end-to-end security is provided by AAA, all AAA entities on the path | |||
| these headers are plain text and could be seen by any observer, | between the RP and IdP have the ability to eavesdrop on this | |||
| whereas if using RADSEC or encrypted SAML, these headers are | information unless additional security measures are taken (such as | |||
| protected from observers. Obviously, where the protection of the | the use of TLS for RADIUS [I-D.ietf-radext-dtls]). Some of this | |||
| privacy of an individual is required then this information needs to | information may form identifiers or explicit identity information: | |||
| be protected by some appropriate means. | ||||
| 4.3.3. Accounting Information | o The Relying Party knows the IP address of the Client. It is | |||
| possible that the Relying Party could choose to expose this IP | ||||
| address by including it in a RADIUS header such as Calling Station | ||||
| ID. This is a privacy consideration to take into account of the | ||||
| application protocol. | ||||
| o The EAP MSK is transported between the IdP and the RP over the AAA | ||||
| infrastructure, for example through RADIUS headers. This is a | ||||
| particularly important privacy consideration, as any AAA Proxy | ||||
| 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 | ||||
| between the Client and IdP). | ||||
| o Related to the above, the AAA server has access to the material | ||||
| necessary to derive the session key, thus the AAA server can | ||||
| observe any traffic encrypted between the Client and RP. This | ||||
| "feature" was" chosen as a simplification and to make performance | ||||
| faster; if it was decided that this trade-off was not desireable | ||||
| for privacy and security reasons, then extensions to ABFAB that | ||||
| make use of techniques such as Diffie-Helman key exchange would | ||||
| mitigate against this. | ||||
| The choice of EAP method used has other potential privacy | ||||
| implications. For example, if the EAP method in use does not support | ||||
| 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 | ||||
| including a username and a realm might be sent to any entity | ||||
| masquerading as a particular IdP. | ||||
| Note that ABFAB has not specified any AAA accounting requirements. | ||||
| Implementations that use the accounting portion of AAA should | ||||
| consider privacy appropriately when designing this aspect. | ||||
| 4.2.3. IdP to RP (via Federation Substrate) | ||||
| In this phase, the IdP communicates with the RP informing it as to | ||||
| the success or failure of authentication of the user, and optionally, | ||||
| the sending of identity information about the principal. | ||||
| As in the previous flow (Client to IdP), various operation | ||||
| information is transported between IdP and RP over the AAA | ||||
| infrastructure, and the same privacy considerations apply. However, | ||||
| in this flow, explicit identity information about the authenticated | ||||
| principal can be sent from the IdP to the RP. This information can | ||||
| be sent through RADIUS headers, or using SAML | ||||
| [I-D.ietf-abfab-aaa-saml]. This can include protocol specific | ||||
| identitifiers, such as SAML NameIDs, as well as arbitrary attribute | ||||
| information about the principal. What information will be released | ||||
| is controlled by policy on the Identity Provider. As before, when | ||||
| sending this through RADIUS headers, all AAA entities on the path | ||||
| between the RP and IdP have the ability to eavesdrop unless | ||||
| additional security measures are taken (such as the use of TLS for | ||||
| RADIUS [I-D.ietf-radext-dtls]). When sending this using SAML, as | ||||
| specified in [I-D.ietf-abfab-aaa-saml], confidentiality of the | ||||
| information should however be guaranteed as [I-D.ietf-abfab-aaa-saml] | ||||
| requires the use of TLS for RADIUS. | ||||
| 4.3. Relationship between User and Entities | ||||
| o Between User and IdP - the IdP is an entity the user will have a | ||||
| direct relationship with, created when the organisation that | ||||
| operates the entity provisioned and exchanged the user's | ||||
| credentials. Privacy and data protection guarantees may form a | ||||
| part of this relationship. | ||||
| 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 | ||||
| question. Some services may only be offered to those users where | ||||
| such a direct relationship exists (for particularly sensitive | ||||
| services, for example), while some may not require this and would | ||||
| instead be satisfied with basic federation trust guarantees | ||||
| between themselves and the IdP). This may well include the option | ||||
| that the user stays anonymous with respect to the RP (though | ||||
| obviously never to the IdP). If attempting to preserve privacy | ||||
| through the mitigation of data minimisation, then the only | ||||
| attribute information about individuals exposed to the RP should | ||||
| be that which is strictly necessary for the operation of the | ||||
| service. | ||||
| o Between User and Federation substrate - the user is highly likely | ||||
| to have no knowledge of, or relationship with, any entities | ||||
| involved with the federation substrate (not that the IdP and/or RP | ||||
| may, however). Knowledge of attribute information about | ||||
| individuals for these entities is not necessary, and thus such | ||||
| information should be protected in such a way as to prevent access | ||||
| to this information from being possible. | ||||
| 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.3.4. 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 identity | identify a particular individual (e.g. so they can link this | |||
| information to a particular account in their service, or where | identity information to a particular account in their service, or | |||
| identity information is required for audit purposes), the service | where identity information is required for audit purposes), the | |||
| will need to collect and store such information, and to retain it for | service will need to collect and store such information, and to | |||
| as long as they require. Deprovisioning of such accounts and | retain it for as long as they require. Deprovisioning of such | |||
| information is out of scope for ABFAB, but obviously for privacy | accounts and information is out of scope for ABFAB, but obviously for | |||
| protection any identifiers collected should be deleted when they are | privacy protection any identifiers collected should be deleted when | |||
| no longer needed. | they are no longer needed. | |||
| 4.4. 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 Identity Provider to Relying | related to them that transmitted from the IdP to RP for authorisation | |||
| Party for authorisation purposes. | purposes; rather, this is under the control of policy on the IdP. | |||
| Due to the nature of the AAA communication flows, with the current | ||||
| ABFAB architecture there is no place for a process of gaining user | ||||
| consent for the information to be released from IdP to RP. | ||||
| 5. Deployment Considerations | 5. Deployment Considerations | |||
| 5.1. EAP Channel Binding | 5.1. EAP Channel Binding | |||
| Discuss the implications of needing EAP channel binding. | Discuss the implications of needing EAP channel binding. | |||
| 5.2. AAA Proxy Behavior | 5.2. AAA Proxy Behavior | |||
| Discuss deployment implications of our proxy requirements. | Discuss deployment implications of our proxy requirements. | |||
| skipping to change at page 39, line 25 ¶ | skipping to change at page 38, line 49 ¶ | |||
| the final message (i.e., a cryptographic token for the channel). | the final message (i.e., a cryptographic token for the channel). | |||
| Authentication may be provided by the RP to the client but a | Authentication may be provided by the RP to the client but a | |||
| deployment without authentication at the TLS layer is possible as | deployment without authentication at the TLS layer is possible as | |||
| well. In addition, there is a channel between the GSS requestor | well. In addition, there is a channel between the GSS requestor | |||
| and the GSS acceptor, but the keying material is provided by a | and the GSS acceptor, but the keying material is provided by a | |||
| "third party" to both entities. The client can derive keying | "third party" to both entities. The client can derive keying | |||
| material locally, but the RP gets the material from the IdP. In | material locally, but the RP gets the material from the IdP. In | |||
| the absence of a transport that provides encryption and/or | the absence of a transport that provides encryption and/or | |||
| integrity, the channel between the client and the RP has no | integrity, the channel between the client and the RP has no | |||
| ability to have any cryptographic protection until the EAP | ability to have any cryptographic protection until the EAP | |||
| authentication has been completed and the MSK is transfered from | authentication has been completed and the MSK is transferred from | |||
| the IdP to the RP. | the IdP to the RP. | |||
| 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 | |||
| skipping to change at page 40, line 15 ¶ | skipping to change at page 39, line 41 ¶ | |||
| responsible during this process to determine that the RP that is | responsible during this process to determine that the RP that is | |||
| 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 psuedonym 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 | Subject 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 | 7. IANA Considerations | |||
| This document does not require actions by IANA. | This document does not require actions by IANA. | |||
| skipping to change at page 43, line 13 ¶ | skipping to change at page 40, line 28 ¶ | |||
| the pre-00 draft version. | the pre-00 draft version. | |||
| 9. References | 9. References | |||
| 9.1. Normative References | 9.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)", | "Remote Authentication Dial In User Service (RADIUS)", RFC | |||
| 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. | |||
| [RFC3748] Aboba, B., Blunk, L., Vollbrecht, J., Carlson, J., and H. | [RFC3748] Aboba, B., Blunk, L., Vollbrecht, J., Carlson, J., and H. | |||
| Levkowetz, "Extensible Authentication Protocol (EAP)", | Levkowetz, "Extensible Authentication Protocol (EAP)", RFC | |||
| RFC 3748, June 2004. | 3748, June 2004. | |||
| [RFC3579] Aboba, B. and P. Calhoun, "RADIUS (Remote Authentication | [RFC3579] Aboba, B. and P. Calhoun, "RADIUS (Remote Authentication | |||
| Dial In User Service) Support For Extensible | Dial In User Service) Support For Extensible | |||
| Authentication Protocol (EAP)", RFC 3579, September 2003. | Authentication Protocol (EAP)", RFC 3579, September 2003. | |||
| [RFC4072] Eronen, P., Hiller, T., and G. Zorn, "Diameter Extensible | [RFC4072] Eronen, P., Hiller, T., and G. Zorn, "Diameter Extensible | |||
| Authentication Protocol (EAP) Application", RFC 4072, | Authentication Protocol (EAP) Application", RFC 4072, | |||
| August 2005. | August 2005. | |||
| [RFC4282] Aboba, B., Beadles, M., Arkko, J., and P. Eronen, "The | ||||
| Network Access Identifier", RFC 4282, December 2005. | ||||
| [I-D.ietf-abfab-gss-eap] | [I-D.ietf-abfab-gss-eap] | |||
| Hartman, S. and J. Howlett, "A GSS-API Mechanism for the | Hartman, S. and J. Howlett, "A GSS-API Mechanism for the | |||
| Extensible Authentication Protocol", | Extensible Authentication Protocol", draft-ietf-abfab-gss- | |||
| draft-ietf-abfab-gss-eap-09 (work in progress), | eap-09 (work in progress), August 2012. | |||
| August 2012. | ||||
| [I-D.ietf-abfab-aaa-saml] | [I-D.ietf-abfab-aaa-saml] | |||
| Howlett, J. and S. Hartman, "A RADIUS Attribute, Binding | Howlett, J. and S. Hartman, "A RADIUS Attribute, Binding, | |||
| and Profiles for SAML", draft-ietf-abfab-aaa-saml-04 (work | Profiles, Name Identifier Format, and Confirmation Methods | |||
| in progress), October 2012. | for SAML", draft-ietf-abfab-aaa-saml-05 (work in | |||
| progress), February 2013. | ||||
| [I-D.ietf-radext-nai] | ||||
| DeKok, A., "The Network Access Identifier", draft-ietf- | ||||
| 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 | 9.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, | D. Spence, "Generic AAA Architecture", RFC 2903, August | |||
| 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 | |||
| in progress), December 2011. | in progress), December 2011. | |||
| [I-D.ietf-oauth-v2] | [I-D.ietf-oauth-v2] | |||
| Hardt, D., "The OAuth 2.0 Authorization Framework", | Hardt, D., "The OAuth 2.0 Authorization Framework", draft- | |||
| draft-ietf-oauth-v2-31 (work in progress), August 2012. | ietf-oauth-v2-31 (work in progress), August 2012. | |||
| [I-D.iab-privacy-considerations] | [I-D.iab-privacy-considerations] | |||
| Cooper, A., Tschofenig, H., Aboba, B., Peterson, J., | Cooper, A., Tschofenig, H., Aboba, B., Peterson, J., | |||
| Morris, J., Hansen, M., and R. Smith, "Privacy | Morris, J., Hansen, M., and R. Smith, "Privacy | |||
| Considerations for Internet Protocols", | Considerations for Internet Protocols", draft-iab-privacy- | |||
| draft-iab-privacy-considerations-03 (work in progress), | considerations-03 (work in progress), July 2012. | |||
| July 2012. | ||||
| [I-D.perez-radext-radius-fragmentation] | [I-D.perez-radext-radius-fragmentation] | |||
| Perez-Mendez, A., Lopez, R., Pereniguez-Garcia, F., Lopez- | Perez-Mendez, A., Lopez, R., Pereniguez-Garcia, F., Lopez- | |||
| Millan, G., Lopez, D., and A. DeKok, "Support of | Millan, G., Lopez, D., and A. DeKok, "Support of | |||
| fragmentation of RADIUS packets", | fragmentation of RADIUS packets", draft-perez-radext- | |||
| draft-perez-radext-radius-fragmentation-05 (work in | radius-fragmentation-05 (work in progress), February 2013. | |||
| progress), February 2013. | ||||
| [RFC4017] Stanley, D., Walker, J., and B. Aboba, "Extensible | [RFC4017] Stanley, D., Walker, J., and B. Aboba, "Extensible | |||
| Authentication Protocol (EAP) Method Requirements for | Authentication Protocol (EAP) Method Requirements for | |||
| Wireless LANs", RFC 4017, March 2005. | Wireless LANs", RFC 4017, March 2005. | |||
| [RFC5106] Tschofenig, H., Kroeselberg, D., Pashalidis, A., Ohba, Y., | [RFC5106] Tschofenig, H., Kroeselberg, D., Pashalidis, A., Ohba, Y., | |||
| and F. Bersani, "The Extensible Authentication Protocol- | and F. Bersani, "The Extensible Authentication Protocol- | |||
| Internet Key Exchange Protocol version 2 (EAP-IKEv2) | Internet Key Exchange Protocol version 2 (EAP-IKEv2) | |||
| Method", RFC 5106, February 2008. | Method", RFC 5106, February 2008. | |||
| [RFC1964] Linn, J., "The Kerberos Version 5 GSS-API Mechanism", | [RFC1964] Linn, J., "The Kerberos Version 5 GSS-API Mechanism", RFC | |||
| RFC 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., Simpson, W., and S. | [RFC2138] Rigney, C., Rigney, C., Rubens, A.C., Simpson, W.A., and | |||
| 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. | |||
| skipping to change at page 45, line 41 ¶ | skipping to change at page 43, line 8 ¶ | |||
| [RFC5849] Hammer-Lahav, E., "The OAuth 1.0 Protocol", RFC 5849, | [RFC5849] Hammer-Lahav, E., "The OAuth 1.0 Protocol", RFC 5849, | |||
| April 2010. | April 2010. | |||
| [RFC6614] Winter, S., McCauley, M., Venaas, S., and K. Wierenga, | [RFC6614] Winter, S., McCauley, M., Venaas, S., and K. Wierenga, | |||
| "Transport Layer Security (TLS) Encryption for RADIUS", | "Transport Layer Security (TLS) Encryption for RADIUS", | |||
| RFC 6614, May 2012. | RFC 6614, May 2012. | |||
| [OASIS.saml-core-2.0-os] | [OASIS.saml-core-2.0-os] | |||
| Cantor, S., Kemp, J., Philpott, R., and E. Maler, | Cantor, S., Kemp, J., Philpott, R., and E. Maler, | |||
| "Assertions and Protocol for the OASIS Security Assertion | "Assertions and Protocol for the OASIS Security Assertion | |||
| Markup Language (SAML) V2.0", OASIS Standard saml-core- | Markup Language (SAML) V2.0", OASIS Standard saml- | |||
| 2.0-os, March 2005. | core-2.0-os, March 2005. | |||
| [RFC2904] Vollbrecht, J., Calhoun, P., Farrell, S., Gommans, L., | [RFC2904] Vollbrecht, J., Calhoun, P., Farrell, S., Gommans, L., | |||
| Gross, G., de Bruijn, B., de Laat, C., Holdrege, M., and | Gross, G., de Bruijn, B., de Laat, C., Holdrege, M., and | |||
| D. Spence, "AAA Authorization Framework", RFC 2904, | D. Spence, "AAA Authorization Framework", RFC 2904, August | |||
| August 2000. | 2000. | |||
| [I-D.ietf-emu-crypto-bind] | [I-D.ietf-emu-crypto-bind] | |||
| Hartman, S., Wasserman, M., and D. Zhang, "EAP Mutual | Hartman, S., Wasserman, M., and D. Zhang, "EAP Mutual | |||
| Cryptographic Binding", draft-ietf-emu-crypto-bind-02 | Cryptographic Binding", draft-ietf-emu-crypto-bind-03 | |||
| (work in progress), February 2013. | (work in progress), March 2013. | |||
| [I-D.ietf-emu-eap-tunnel-method] | [I-D.ietf-emu-eap-tunnel-method] | |||
| Zhou, H., Cam-Winget, N., Salowey, J., and S. Hanna, | Zhou, H., Cam-Winget, N., Salowey, J., and S. Hanna, | |||
| "Tunnel EAP Method (TEAP) Version 1", | "Tunnel EAP Method (TEAP) Version 1", draft-ietf-emu-eap- | |||
| draft-ietf-emu-eap-tunnel-method-05 (work in progress), | tunnel-method-05 (work in progress), February 2013. | |||
| February 2013. | ||||
| [I-D.ietf-radext-dtls] | [I-D.ietf-radext-dtls] | |||
| DeKok, A., "DTLS as a Transport Layer for RADIUS", | DeKok, A., "DTLS as a Transport Layer for RADIUS", draft- | |||
| draft-ietf-radext-dtls-03 (work in progress), | ietf-radext-dtls-03 (work in progress), January 2013. | |||
| January 2013. | ||||
| [I-D.ietf-radext-dynamic-discovery] | ||||
| Winter, S. and M. McCauley, "NAI-based Dynamic Peer | ||||
| Discovery for RADIUS/TLS and RADIUS/DTLS", draft-ietf- | ||||
| radext-dynamic-discovery-06 (work in progress), February | ||||
| 2013. | ||||
| [WS-TRUST] | [WS-TRUST] | |||
| Lawrence, K., Kaler, C., Nadalin, A., Goodner, M., Gudgin, | Lawrence, K., Kaler, C., Nadalin, A., Goodner, M., Gudgin, | |||
| M., Barbir, A., and H. Granqvist, "WS-Trust 1.4", OASIS | M., Barbir, A., and H. Granqvist, "WS-Trust 1.4", OASIS | |||
| Standard ws-trust-200902, February 2009, <http:// | Standard ws-trust-200902, February 2009, <http://docs | |||
| docs.oasis-open.org/ws-sx/ws-trust/v1.4/ws-trust.html>. | .oasis-open.org/ws-sx/ws-trust/v1.4/ws-trust.html>. | |||
| [NIST-SP.800-63] | [NIST-SP.800-63] | |||
| Burr, W., Dodson, D., and W. Polk, "Electronic | Burr, W., Dodson, D., and W. Polk, "Electronic | |||
| Authentication Guideline", NIST Special | Authentication Guideline", NIST Special Publication | |||
| Publication 800-63, April 2006. | 800-63, April 2006. | |||
| URIs | ||||
| [1] <http://www.openid.net> | ||||
| [2] <http://www.eduroam.org> | ||||
| Editorial Comments | ||||
| [anchor4] JLS: Should this be an EAP failure to the client as well? | ||||
| [anchor7] JLS: I don't believe this is a true statement - check it | ||||
| with Josh and Sam. | ||||
| Authors' Addresses | Authors' Addresses | |||
| Josh Howlett | Josh Howlett | |||
| JANET(UK) | JANET(UK) | |||
| Lumen House, Library Avenue, Harwell | Lumen House, Library Avenue, Harwell | |||
| Oxford OX11 0SG | Oxford OX11 0SG | |||
| UK | UK | |||
| Phone: +44 1235 822363 | Phone: +44 1235 822363 | |||
| Email: Josh.Howlett@ja.net | Email: Josh.Howlett@ja.net | |||
| Sam Hartman | Sam Hartman | |||
| Painless Security | Painless Security | |||
| Phone: | ||||
| Email: hartmans-ietf@mit.edu | Email: hartmans-ietf@mit.edu | |||
| Hannes Tschofenig | Hannes Tschofenig | |||
| Nokia Siemens Networks | Nokia Siemens Networks | |||
| Linnoitustie 6 | Linnoitustie 6 | |||
| Espoo 02600 | Espoo 02600 | |||
| Finland | Finland | |||
| Phone: +358 (50) 4871445 | Phone: +358 (50) 4871445 | |||
| Email: Hannes.Tschofenig@gmx.net | Email: Hannes.Tschofenig@gmx.net | |||
| End of changes. 124 change blocks. | ||||
| 419 lines changed or deleted | 511 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/ | ||||