| < draft-ietf-abfab-arch-03.txt | draft-ietf-abfab-arch-04.txt > | |||
|---|---|---|---|---|
| ABFAB J. Howlett | ABFAB J. Howlett | |||
| Internet-Draft JANET(UK) | Internet-Draft JANET(UK) | |||
| Intended status: Informational S. Hartman | Intended status: Informational S. Hartman | |||
| Expires: January 10, 2013 Painless Security | Expires: April 25, 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 | |||
| July 9, 2012 | October 22, 2012 | |||
| Application Bridging for Federated Access Beyond Web (ABFAB) | Application Bridging for Federated Access Beyond Web (ABFAB) | |||
| Architecture | Architecture | |||
| draft-ietf-abfab-arch-03.txt | draft-ietf-abfab-arch-04.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 and web-based access. However, the | focused on two use-cases: network and web-based access. However, the | |||
| solutions to these use-cases that have been proposed and deployed | solutions to these use-cases that have been proposed and deployed | |||
| tend to have few common building blocks in common. | tend to have few common building blocks in common. | |||
| This memo describes an architecture that makes use of extensions to | This memo describes an architecture that makes use of extensions to | |||
| skipping to change at page 2, line 7 ¶ | skipping to change at page 2, line 7 ¶ | |||
| Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
| Task Force (IETF). Note that other groups may also distribute | Task Force (IETF). Note that other groups may also distribute | |||
| working documents as Internet-Drafts. The list of current Internet- | working documents as Internet-Drafts. The list of current Internet- | |||
| Drafts is at http://datatracker.ietf.org/drafts/current/. | Drafts is at http://datatracker.ietf.org/drafts/current/. | |||
| Internet-Drafts are draft documents valid for a maximum of six months | Internet-Drafts are draft documents valid for a maximum of six months | |||
| and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
| time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
| material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
| This Internet-Draft will expire on January 10, 2013. | This Internet-Draft will expire on April 25, 2013. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2012 IETF Trust and the persons identified as the | Copyright (c) 2012 IETF Trust and the persons identified as the | |||
| document authors. All rights reserved. | document authors. All rights reserved. | |||
| This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
| Provisions Relating to IETF Documents | Provisions Relating to IETF Documents | |||
| (http://trustee.ietf.org/license-info) in effect on the date of | (http://trustee.ietf.org/license-info) in effect on the date of | |||
| publication of this document. Please review these documents | publication of this document. Please review these documents | |||
| skipping to change at page 3, line 10 ¶ | skipping to change at page 3, line 10 ¶ | |||
| 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 . . . . . . . . . . . . . . . . . . . . . . . . . 4 | |||
| 1.1. Terminology . . . . . . . . . . . . . . . . . . . . . . . 5 | 1.1. Terminology . . . . . . . . . . . . . . . . . . . . . . . 5 | |||
| 1.2. An Overview of Federation . . . . . . . . . . . . . . . . 6 | 1.2. An Overview of Federation . . . . . . . . . . . . . . . . 6 | |||
| 1.3. Challenges to Contemporary Federation . . . . . . . . . . 9 | 1.3. Challenges for Contemporary Federation . . . . . . . . . . 9 | |||
| 1.4. An Overview of ABFAB-based Federation . . . . . . . . . . 9 | 1.4. An Overview of ABFAB-based Federation . . . . . . . . . . 10 | |||
| 1.5. Design Goals . . . . . . . . . . . . . . . . . . . . . . . 12 | 1.5. Design Goals . . . . . . . . . . . . . . . . . . . . . . . 13 | |||
| 1.6. Use of AAA . . . . . . . . . . . . . . . . . . . . . . . . 13 | 2. Architecture . . . . . . . . . . . . . . . . . . . . . . . . . 14 | |||
| 1.7. Use of GSS-API . . . . . . . . . . . . . . . . . . . . . . 14 | 2.1. Relying Party to Identity Provider . . . . . . . . . . . . 15 | |||
| 2. Architecture . . . . . . . . . . . . . . . . . . . . . . . . . 15 | 2.1.1. AAA, RADIUS and Diameter . . . . . . . . . . . . . . . 16 | |||
| 2.1. Relying Party to Identity Provider . . . . . . . . . . . . 16 | 2.1.2. Discovery and Rules Determination . . . . . . . . . . 17 | |||
| 2.1.1. AAA, RADIUS and Diameter . . . . . . . . . . . . . . . 17 | 2.1.3. Routing and Technical Trust . . . . . . . . . . . . . 18 | |||
| 2.1.2. Discovery and Rules Determination . . . . . . . . . . 18 | ||||
| 2.1.3. Routing and Technical Trust . . . . . . . . . . . . . 19 | ||||
| 2.1.4. SAML Assertions . . . . . . . . . . . . . . . . . . . 20 | 2.1.4. SAML Assertions . . . . . . . . . . . . . . . . . . . 20 | |||
| 2.2. Client To Identity Provider . . . . . . . . . . . . . . . 22 | 2.2. Client To Identity Provider . . . . . . . . . . . . . . . 21 | |||
| 2.2.1. Extensible Authentication Protocol (EAP) . . . . . . . 22 | 2.2.1. Extensible Authentication Protocol (EAP) . . . . . . . 21 | |||
| 2.2.2. Channel Binding . . . . . . . . . . . . . . . . . . . 23 | 2.2.2. EAP Channel Binding . . . . . . . . . . . . . . . . . 23 | |||
| 2.3. Client to Relying Party . . . . . . . . . . . . . . . . . 23 | 2.3. Client to Relying Party . . . . . . . . . . . . . . . . . 23 | |||
| 2.3.1. GSS-API . . . . . . . . . . . . . . . . . . . . . . . 24 | 2.3.1. GSS-API . . . . . . . . . . . . . . . . . . . . . . . 23 | |||
| 2.3.2. Protocol Transport . . . . . . . . . . . . . . . . . . 25 | 2.3.2. Protocol Transport . . . . . . . . . . . . . . . . . . 25 | |||
| 3. Application Security Services . . . . . . . . . . . . . . . . 26 | 3. Application Security Services . . . . . . . . . . . . . . . . 26 | |||
| 3.1. Authentication . . . . . . . . . . . . . . . . . . . . . . 26 | 3.1. Authentication . . . . . . . . . . . . . . . . . . . . . . 26 | |||
| 3.2. GSS-API Channel Binding . . . . . . . . . . . . . . . . . 27 | 3.2. GSS-API Channel Binding . . . . . . . . . . . . . . . . . 27 | |||
| 3.3. Host-Based Service Names . . . . . . . . . . . . . . . . . 28 | 3.3. Host-Based Service Names . . . . . . . . . . . . . . . . . 28 | |||
| 3.4. Per-Message Tokens . . . . . . . . . . . . . . . . . . . . 29 | 3.4. Per-Message Tokens . . . . . . . . . . . . . . . . . . . . 29 | |||
| 4. Future Work: Attribute Providers . . . . . . . . . . . . . . . 30 | 4. Future Work: Attribute Providers . . . . . . . . . . . . . . . 30 | |||
| 5. Privacy Considerations . . . . . . . . . . . . . . . . . . . . 31 | 5. Privacy Considerations . . . . . . . . . . . . . . . . . . . . 31 | |||
| 5.1. What Entities collect and use Data? . . . . . . . . . . . 31 | 5.1. Entities and their roles . . . . . . . . . . . . . . . . . 31 | |||
| 5.2. Relationship between User's and other Entities . . . . . . 32 | 5.2. Relationship between user and entities . . . . . . . . . . 32 | |||
| 5.3. What Data about the User is likely Needed to be | 5.3. Data and Identifiers in use . . . . . . . . . . . . . . . 32 | |||
| Collected? . . . . . . . . . . . . . . . . . . . . . . . . 32 | 5.3.1. NAI . . . . . . . . . . . . . . . . . . . . . . . . . 32 | |||
| 5.4. What is the Identification Level of the Data? . . . . . . 32 | 5.3.2. Identity Information . . . . . . . . . . . . . . . . . 33 | |||
| 5.5. Privacy Challenges . . . . . . . . . . . . . . . . . . . . 33 | 5.3.3. Accounting Information . . . . . . . . . . . . . . . . 33 | |||
| 6. Deployment Considerations . . . . . . . . . . . . . . . . . . 34 | 5.3.4. Collection and retention of data and identifiers . . . 33 | |||
| 6.1. EAP Channel Binding . . . . . . . . . . . . . . . . . . . 34 | 5.4. User Participation . . . . . . . . . . . . . . . . . . . . 34 | |||
| 6.2. AAA Proxy Behavior . . . . . . . . . . . . . . . . . . . . 34 | 6. Deployment Considerations . . . . . . . . . . . . . . . . . . 35 | |||
| 7. Security Considerations . . . . . . . . . . . . . . . . . . . 35 | 6.1. EAP Channel Binding . . . . . . . . . . . . . . . . . . . 35 | |||
| 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 37 | 6.2. AAA Proxy Behavior . . . . . . . . . . . . . . . . . . . . 35 | |||
| 9. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 38 | 7. Security Considerations . . . . . . . . . . . . . . . . . . . 36 | |||
| 10. References . . . . . . . . . . . . . . . . . . . . . . . . . . 39 | 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 38 | |||
| 10.1. Normative References . . . . . . . . . . . . . . . . . . . 39 | 9. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 39 | |||
| 10. References . . . . . . . . . . . . . . . . . . . . . . . . . . 40 | ||||
| 10.1. Normative References . . . . . . . . . . . . . . . . . . . 40 | ||||
| 10.2. Informative References . . . . . . . . . . . . . . . . . . 40 | 10.2. Informative References . . . . . . . . . . . . . . . . . . 40 | |||
| Editorial Comments . . . . . . . . . . . . . . . . . . . . . . . . | Editorial Comments . . . . . . . . . . . . . . . . . . . . . . . . | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 44 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 45 | |||
| 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], RADIUS [RFC2865], and Diameter [RFC3588]. | [OASIS.saml-core-2.0-os], and the Authentication, Authorization, and | |||
| Accounting (AAA) architecture as embodied in RADIUS [RFC2865] and | ||||
| 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 actor that is requesting access to that resource is | |||
| often described as the Subject. 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 actors. The | |||
| RP is therefore able to decide whether the Subject is authorised, 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 actor 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 | |||
| such standards as 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 organisation that already has a long-term | |||
| relationship with the Subject. This is often attractive for | relationship with the Subject. 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 Subject also requires fewer credentials, which is also | |||
| desirable. | desirable. | |||
| Privacy: | 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 | Subject 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 organisation or has a certain role or | |||
| entitlement. Sometimes the RP does not need to know the identity | entitlement. Sometimes the RP only needs to know a pseudonym of | |||
| of the Subject, but does require a unique identifier for the | the Subject. | |||
| Subject (for example, so that it can recognise the Subject | ||||
| subsequently); in this case, it is a common practise for the IdP | Prior to the release of attributes to the IdP from the IdP, the | |||
| to only release a pseudonym that is specific to that particular | IdP will check configuration and policy to determine if the | |||
| Relying Party. Federated access management therefore provides | attributes are to be released. There is currently no direct | |||
| various strategies for protecting the Subject's privacy. Other | client participation in this decision. | |||
| privacy aspects typically of concern are the policy for releasing | ||||
| personal data about the Subject from the IdP to the RP, the | ||||
| purpose of the usage, the retention period of the data, and many | ||||
| more. | ||||
| 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 subject 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 Subject'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 protocol, 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. | |||
| 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 | primarily for non-web-based services. It does so in a manner that | |||
| large numbers of identity providers, relying parties, and | will scale to large numbers of identity providers, relying parties, | |||
| federations. | and federations. | |||
| 1.1. Terminology | 1.1. Terminology | |||
| This document uses identity management and privacy terminology from | This document uses identity management and privacy terminology from | |||
| [I-D.iab-privacy-terminology]. In particular, this document uses the | [I-D.iab-privacy-considerations]. In particular, this document uses | |||
| terms identity provider, relying party, (data) subject, identifier, | the terms identity provider, relying party, (data) subject, | |||
| pseudonymity, unlinkability, and anonymity. | identifier, pseudonymity, 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]. | defined in [RFC4282]. An NAI consists of a realm identifier, which | |||
| is associated with an IdP and a username which is 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 | picking up don't use the same terms. In general the document uses | |||
| either a consistent term or the term associated with the standard | either a consistent term or the term associated with the standard | |||
| under discussion as appropriate. For reference we include this table | under discussion as appropriate. For reference we include this table | |||
| which maps the different terms into a single table. | which maps the different terms into a single table. | |||
| +----------+------------+-------------------+-----------------------+ | +----------+-----------+--------------------+-----------------------+ | |||
| | Protocol | Subject | Relying Party | Identity Provider | | | Protocol | Subject | Relying Party | Identity Provider | | |||
| +----------+------------+-------------------+-----------------------+ | +----------+-----------+--------------------+-----------------------+ | |||
| | ABFAB | Subject | Relying Party | Identity Provider | | | ABFAB | Client | Relying Party (RP) | Identity Provider | | |||
| | | | (RP) | (IdP) | | | | | | (IdP) | | |||
| | | | | | | | | | | | | |||
| | | Principal | | | | | | Initiator | Acceptor | | | |||
| | | | | | | | | | | | | |||
| | | Client | | | | | SAML | Subject | Service Provider | Issuer | | |||
| | | | | | | | | | | | | |||
| | SAML | Subject | Service Provider | Issuer | | | GSS-API | Initiator | Acceptor | | | |||
| | | | | | | | | | | | | |||
| | GSS-API | Initiator | Acceptor | | | | EAP | EAP peer | | EAP server | | |||
| | | | | | | | | | | | | |||
| | EAP | EAP client | | EAP server | | | AAA | | AAA Client | AAA server | | |||
| | | | | | | | | | | | | |||
| | | EAP peer | | | | | RADIUS | user | NAS | RADIUS server | | |||
| | | | | | | | | | | | | |||
| | SASL | | | | | | | | RADIUS client | | | |||
| | | | | | | +----------+-----------+--------------------+-----------------------+ | |||
| | AAA | | AAA Client | AAA server | | ||||
| | | | | | | ||||
| | RADIUS | client | NAS | RADIUS server | | ||||
| +----------+------------+-------------------+-----------------------+ | ||||
| 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 | Note to reviewers - I have most likely missed some entries in the | |||
| table. Please provide me with both correct names from the protocol | table. Please provide me with both correct names from the protocol | |||
| and missing names that are used in the text below. | and missing names that are used in the text below. | |||
| 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 actors: | |||
| o the Subject, | 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 | ||||
| human being that is using a client. Individuals may or may not exist | ||||
| in any given deployment. The client may be either a front end on an | ||||
| individual or an independent automated entity. | ||||
| 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 | | |||
| `----------' '---------' | `----------' '---------' | |||
| < | < | |||
| \ | \ | |||
| \ Authentication | \ Authentication | |||
| \ | ||||
| \ | \ | |||
| \ | \ | |||
| \ | \ | |||
| \ | \ +---------+ | |||
| \ +---------+ | \ | | O | |||
| \ | | O | v| Client | \|/ Individual | |||
| v| Client | \|/ Principal | | | | | |||
| | | | | +---------+ / \ | |||
| +---------+ / \ | ||||
| Figure 1: Entities and their Relationships | Figure 1: Entities and their Relationships | |||
| The relationships between the entities in Figure 1 are: | ||||
| Federation | ||||
| The Identity Provider and the Relying Parties are part of a | ||||
| Federation. The relationship may be direct (they have an explicit | ||||
| trust relationship) or transitive (the trust releationship is | ||||
| mediated by one or more entities). The federation relationship is | ||||
| governed by a federation agreement. Within a single federation, | ||||
| there may be multiple Identity Providers as well as multiple | ||||
| Relying Parties. A federation is governed by a federation | ||||
| agreement. | ||||
| Authentication | ||||
| There is a direct relationship between the Client and the Identity | ||||
| Provider by which the entities trust and can securely authenticate | ||||
| 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 includes 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 takes the legal framework into consideration and | The legal rules take the legal framework into consideration and | |||
| provides contractual obligations for each entity, defines the | provides contractual obligations for each entity. The rules | |||
| responsibilities and provides further clarification of the | define the responsibilities of each party and provide further | |||
| operational specifications. These legal rules regulate the | clarification of the operational specifications. These legal | |||
| operational specifications, make operational specifications | rules regulate the operational specifications, make operational | |||
| legally binding to the participants, define and govern the rights | specifications legally binding to the participants, define and | |||
| and responsibilities of the participants. The legal rules may, | govern the rights and responsibilities of the participants. The | |||
| for example, describe liability for losses, termination rights, | legal rules may, for example, describe liability for losses, | |||
| enforcement mechanisms, measures of damage, dispute resolution, | termination rights, enforcement mechanisms, measures of damage, | |||
| warranties, etc. | dispute resolution, warranties, etc. | |||
| The Operational Specifications can demand the usage of a | ||||
| sophisticated technical infrastructure, including requirements on the | ||||
| message routing intermediaries, to offer the required technical | ||||
| functionality. In other environments, the Operational Specifications | ||||
| require fewer technical components in order to meet the required | ||||
| technical functionality. | ||||
| The Legal Rules include many non-technical aspects of federation, | ||||
| such as business practices and legal arrangements, which are outside | ||||
| the scope of the IETF. The Legal Rules can still have an impact the | ||||
| architectural setup or on how to ensure the dynamic establishment of | ||||
| trust. | ||||
| While a federation agreement is often discussed within the context of | ||||
| formal relationships, such as between an enterprise and an employee | ||||
| or a government and a citizen, a federation agreement does not have | ||||
| to require any particular level of formality. For an IdP and a | ||||
| Client, it is sufficient for a relationship to be established by | ||||
| 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 | ||||
| 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 | ||||
| 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 | ||||
| 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 | |||
| conditions). | conditions). | |||
| While it is possible to have a bilateral agreement between every IdP | While it is possible to have a bilateral agreement between every IdP | |||
| and every RP; on an Internet scale this setup requires the | and every RP; on an Internet scale this setup requires the | |||
| introduction of the multi-lateral federation concept, as the | introduction of the multi-lateral federation concept, as the | |||
| management of such pair-wise relationships would otherwise prove | management of such pair-wise relationships would otherwise prove | |||
| burdensome. | burdensome. | |||
| While many of the non-technical aspects of federation, such as | The IdP will typically have a long-term relationship with the Client. | |||
| business practices and legal arrangements, are outside the scope of | This relationship typically involves the IdP positively identifying | |||
| the IETF, they still impact the architectural setup on how to ensure | and credentialing the Client (for example, at time of employment | |||
| the dynamic establishment of trust. | within an organization). The relationship will often be instantiated | |||
| within an agreement between the IdP and the Client (for example, | ||||
| Some deployments demand the deployment of sophisticated technical | within an employment contract or terms of use that stipulates the | |||
| infrastructure, including message routing intermediaries, to offer | appropriate use of credentials and so forth). | |||
| the required technical functionality. In other deployments fewer | ||||
| technical components are needed. | ||||
| Figure 1 also shows the relationship between the IdP and the Subject. | ||||
| Often a real world entity is associated with the Subject; for | ||||
| example, a person or some software. | ||||
| The IdP will typically have a long-term relationship with the | ||||
| Subject. This relationship would typically involve the IdP | ||||
| positively identifying and credentialing the Subject (for example, at | ||||
| time of enrollment in the context of employment within an | ||||
| organisation). The relationship will often be instantiated within an | ||||
| agreement between the IdP and the Subject (for example, within an | ||||
| employment contract or terms of use that stipulates the appropriate | ||||
| use of credentials and so forth). | ||||
| While federation is often discussed within the context of formal | ||||
| relationships, such as between an enterprise and an employee or a | ||||
| government and a citizen, federation does not in require any | ||||
| particular level of formality. For an IdP and a subject, it is | ||||
| entirely compatible with a relationship between the IdP and Subject | ||||
| that is only Requiems completing a web form and confirming the | ||||
| verification email. For an IdP and an RP, it is entirely compatible | ||||
| with the IdP publishing a usage point and the RP using that data. | ||||
| However, the nature and quality of the relationship between the | The nature and quality of the relationship between the Subject and | |||
| Subject and the IdP is an important contributor to the level of trust | the IdP is an important contributor to the level of trust that an RP | |||
| that an RP may attribute to an assertion describing a Subject made by | may attribute to an assertion describing a Client made by an IdP. | |||
| an IdP. This is sometimes described as the Level of Assurance. | This is sometimes described as the Level of Assurance. | |||
| Federation does not imposes requirement of an a priori relationship | Federation does not require an a priori relationship or a long-term | |||
| or a long-term relationship between the RP and the Subject. This is | relationship between the RP and the Client; it is this property of | |||
| a property of federation that yields many of its benefits. However, | federation that yields many of its benefits. However, federation | |||
| federation does not preclude the possibility of a pre-existing | does not preclude the possibility of a pre-existing relationship | |||
| relationship existing between the RP and the Subject, nor that they | between the RP and the Client, nor that they may use the introduction | |||
| may use the introduction to create a new long-term relationship | to create a new long-term relationship independent of the federation. | |||
| independent of the federation. | ||||
| Finally, it is important to reiterate that in some scenarios there | Finally, it is important to reiterate that in some scenarios there | |||
| might indeed be a human behind the device denoted as Client and in | might indeed be an Individual behind the Client and in other cases | |||
| other cases there is no human involved in the actual protocol | the Client may be autonomous. | |||
| execution. | ||||
| 1.3. Challenges to Contemporary Federation | 1.3. Challenges for Contemporary Federation | |||
| As the number of federated services has proliferated, the role of the | As the number of federated services has proliferated, the role of the | |||
| individual can become ambiguous in certain circumstances. For | individual can become ambiguous in certain circumstances. For | |||
| example, a school might provide online access for a student's grades | example, a school might provide online access for a student's grades | |||
| to their parents for review, and to the student's teacher for | to their parents for review, and to the student's teacher for | |||
| modification. A teacher who is also a parent must clearly | modification. A teacher who is also a parent must clearly | |||
| distinguish her role upon access. | distinguish her role upon access. | |||
| Similarly, as the number of federations proliferates, it becomes | Similarly, as the number of federations proliferates, it becomes | |||
| increasingly difficult to discover which identity provider(s) a user | increasingly difficult to discover which identity provider(s) a user | |||
| is associated with. This is true for both the web and non-web case, | is associated with. This is true for both the web and non-web case, | |||
| but is particularly acute for the latter as many non-web | but is particularly acute for the latter as many non-web | |||
| authentication systems are not semantically rich enough on their own | authentication systems are not semantically rich enough on their own | |||
| 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 does not on its own | provider, the use of SMTP and IMAP protocols do not have the ability | |||
| provide for a way to select a federation. However, the building | for the server to get additional information, beyond the clients NAI, | |||
| blocks do exist to add this functionality. | in order to provide additional input to decide between multiple | |||
| federations it may be associated with. However, the building blocks | ||||
| 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 | its 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. | |||
| The steps taken in an ABFAB federated authentication/authorization | In this example, a client is attempting to connect to a server in | |||
| exchange are as follows: | order to either get access to some data or perform some type of | |||
| transaction. In order for the client to mutually authenticate with | ||||
| the server, the following steps are taken in an ABFAB federated | ||||
| architecture: | ||||
| 1. Principal provides an NAI to Application: The client application | 1. Client Configuration: The Client Application is configured with | |||
| is configured with an NAI. The provided name contains, at a | an NAI assigned by the IdP. It is also configured with any | |||
| minimum, the realm of an NAI. The realm represents the IdP to | keys, certificates, passwords or other secret and public | |||
| be discovered. | information needed to run the EAP protocols between it and the | |||
| IdP. | ||||
| 2. Authentication mechanism selection: The GSS-EAP SASL/GS2 | 2. Authentication mechanism selection: The GSS-EAP GSS-API | |||
| mechanism is selected for authentication/authorization. | mechanism is selected for authentication/authorization. | |||
| 3. Client Application provides the NAI to RP: The client | 3. Client provides an NAI to RP: The client application sets up a | |||
| application setups a transport to the RP and begins the GSS-EAP | transport to the RP and begins the GSS-EAP authentication. In | |||
| authentication. The RP initiates the EAP protocol to the client | response, the RP sends an EAP request message (nested in the | |||
| application, and the client provides the NAI to the RP in the | GSS-EAP protocol) asking for the Client's name. The Client | |||
| form of the EAP response. | sends an EAP response with an NAI name form that at a minimum, | |||
| contains the realm portion of it's 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 provided NAI. This is discussed in | based on policy and the realm portion of the provided Client | |||
| 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 claims its identity to the IdP in AAA | the client is. The RP sends its identity to the IdP in AAA | |||
| attributes, and it may contain a SAML Attribute Requests in a | attributes, and it may send a SAML Attribute Requests in a AAA | |||
| AAA attribute. | attribute. The AAA network checks that the identity claimed by | |||
| the RP is valid. | ||||
| 6. IdP informs the client of which EAP method to use: The available | 6. IdP begins EAP with the client: The IdP sends an EAP message to | |||
| and appropriate methods are discussed below in this | the client with an EAP method to be run. The IdP may re-request | |||
| memo.[anchor4] | the clients name in this message, but this is unexpected | |||
| behavior. 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 EAP peer and the EAP server, i.e., the client and | between the client (EAP peer) and the IdP (EAP server), until | |||
| the IdP in our identity management terminology, until the result | the result of the authentication protocol is determined. The | |||
| of the authentication protocol is determined. The number and | number and content of those messages depends on the EAP method | |||
| content of those messages will depend on the EAP method. If the | selected. If the IdP is unable to authenticate the client, the | |||
| IdP is unable to authenticate the client, the process concludes | IdP sends a EAP failure message to the RP. As part of the EAP | |||
| here. As part of the EAP protocol, the client will create a | protocol, the client sends a channel bindings EAP message to the | |||
| channel bindings message to the IdP identifying, among other | IdP (Section 2.2.2). In the channel binding message the client | |||
| things, the RP to which it is attempting to authenticate. The | identifies, among other things, the RP to which it is attempting | |||
| IdP checks the channel binding data from the client with that | to authenticate. The IdP checks the channel binding data from | |||
| provided by the RP via the AAA protocol. If the bindings do not | the client with that provided by the RP via the AAA protocol. | |||
| match the IdP fails the EAP protocol. | If the bindings do not match the IdP sends an EAP failure | |||
| message to the RP. | ||||
| 8. Successful Authentication: The IdP (its EAP server) and EAP peer | 8. Successful EAP Authentication: At this point, the IdP (EAP | |||
| / subject have mutually authenticated each other. As a result | server) and client (EAP peer) have mutually authenticated each | |||
| of this step, the subject and the IdP hold two cryptographic | other. As a result, the subject and the IdP hold two | |||
| keys- a Master Session Key (MSK), and an Extended MSK (EMSK). | cryptographic keys: a Master Session Key (MSK), and an Extended | |||
| There is some confidence that the RP is the one the client is | MSK (EMSK). At this point the client has a level of assurance | |||
| communicating with as the channel binding data validated. This | about the identity of the RP based on the name checking the IdP | |||
| allows for a claim of authentication for the RP to the client. | has done using the RP naming information from the AAA framework | |||
| 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 subject are authorized | policy to determine whether the RP and client are authorized for | |||
| for a given transaction/service, and if so, what if any, | a given transaction/service, and if so, what if any, attributes | |||
| attributes will be released to the RP. The RP will have done | will be released to the RP. If the IdP gets a policy failure, | |||
| its policy checks during the discovery process. | it sends an EAP failure message to the RP.[anchor4] (The RP will | |||
| have done its policy checks during the discovery process.) | ||||
| 10. Response from the IdP to the Relying Party: Once the IdP has | 10. IdP provide the RP with the MSK: The IdP sends a positive result | |||
| made a determination of whether and how to authenticate and | EAP to the RP, along with an optional set of AAA attributes | |||
| authorize the client to the RP, it returns either a negative AAA | associated with the client (usually as one or more SAML | |||
| result to the RP, or it returns a positive result to the RP, | assertions). In addition, the EAP MSK is returned to the RP. | |||
| along with an optional set of AAA attributes associated with the | ||||
| client (usually as one or more SAML assertions). In addition, | ||||
| an EAP MSK is returned to the RP. | ||||
| 11. RP Processes Results: When the RP receives the result from the | 11. RP Processes Results: When the RP receives the result from the | |||
| IdP, it should have enough information to either grant or refuse | IdP, it should have enough information to either grant or refuse | |||
| a resource access request. It may have information that | a resource access request. It may have information that | |||
| associates the client with specific authorization identities. | associates the client with specific authorization identities. | |||
| If additional attributes are needed from the IdP the RP may make | If additional attributes are needed from the IdP the RP may make | |||
| a new SAML Request to the IdP. It will apply these results in | a new SAML Request to the IdP. It will apply these results in | |||
| an application-specific way. | an application-specific way. | |||
| 12. RP returns results to client: Once the RP has a response it must | 12. RP returns results to client: Once the RP has a response it must | |||
| inform the client application of the result. If all has gone | inform the client application of the result. If all has gone | |||
| well, all are authenticated, and the application proceeds with | well, all are authenticated, and the application proceeds with | |||
| appropriate authorization levels. | appropriate authorization levels. The client can now complete | |||
| the authentication of the RP by the use of the EAP MSK value. | ||||
| An example communication flow is given below: | An example communication flow is given below: | |||
| Relying Client Identity | Relying Client Identity | |||
| Party App Provider | Party App Provider | |||
| | (1) | Client App gets NAI (somehow) | | (1) | Client Configuration | |||
| | | | | | | | | |||
| |<-----(2)----->| | Mechanism Selection | |<-----(2)----->| | Mechanism Selection | |||
| | | | | | | | | |||
| |<-----(3)-----<| | NAI transmitted to RP | |<-----(3)-----<| | NAI transmitted to RP | |||
| | | | | | | | | |||
| |<=====(4)====================>| Discovery | |<=====(4)====================>| Discovery | |||
| | | | | | | | | |||
| |>=====(5)====================>| Access request from RP to IdP | |>=====(5)====================>| Access request from RP to IdP | |||
| | | | | | | | | |||
| | |< - - (6) - -<| EAP method to Client | | |< - - (6) - -<| EAP method to Client | |||
| | | | | | | | | |||
| | |< - - (7) - ->| EAP Exchange to authenticate | | |< - - (7) - ->| EAP Exchange to authenticate | |||
| | | | Client | | | | Client | |||
| | | | | | | | | |||
| | | (8 & 9) Local Policy Check | | | (8 & 9) Local Policy Check | |||
| | | | | | | | | |||
| |<====(10)====================<| IdP Assertion to RP | |<====(10)====================<| IdP Assertion to RP | |||
| | | | | | | | | |||
| (11) | | RP processes results | (11) | | RP processes results | |||
| | | | | | | | | |||
| |>----(12)----->| | Results to client app. | |>----(12)----->| | Results to client app. | |||
| ----- = Between Client App and RP | ----- = Between Client App and RP | |||
| ===== = Between RP and IdP | ===== = Between RP and IdP | |||
| - - - = Between Client App and IdP | - - - = Between Client App and IdP | |||
| 1.5. Design Goals | 1.5. Design Goals | |||
| Our key design goals are as follows: | Our key design goals are as follows: | |||
| o Each party of a transaction will be authenticated, and the client | o Each party of a transaction will be authenticated, although | |||
| will be authorized for access to a specific resource. | perhaps not identified, and the client will be authorized for | |||
| 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 Hence, the architecture requires no sharing of long term private | |||
| keys. | keys 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. | |||
| skipping to change at page 13, line 25 ¶ | skipping to change at page 14, line 5 ¶ | |||
| 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 | widespead 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. | |||
| 1.6. Use of AAA | ||||
| Interestingly, for network access authentication the usage of the AAA | ||||
| framework with RADIUS [RFC2865] and Diameter [RFC3588] was quite | ||||
| successful from a deployment point of view. To map the terminology | ||||
| used in Figure 1 to the AAA framework the IdP corresponds to the AAA | ||||
| server, the RP corresponds to the AAA client, and the technical | ||||
| building blocks of a federation are AAA proxies, relays and redirect | ||||
| agents (particularly if they are operated by third parties, such as | ||||
| AAA brokers and clearing houses). The front-end, i.e. the end host | ||||
| to AAA client communication, is in case of network access | ||||
| authentication offered by link layer protocols that forward | ||||
| authentication protocol exchanges back-and-forth. An example of a | ||||
| large scale RADIUS-based federation is EDUROAM [2]. | ||||
| By using the AAA framework, ABFAB gets a lot of mileage as many of | ||||
| the federation agreements already exist and merely need to be | ||||
| expanded to cover the ABFAB additions. The AAA framework has already | ||||
| addressed some of the problems outlined above. For example, | ||||
| o It already needs a method of doing routing of requests based on a | ||||
| domain. | ||||
| o It already has an extensible architecture allowing for new | ||||
| attributes to be defined and transported. | ||||
| o Pre-existing relationships can be re-used. | ||||
| 1.7. Use of GSS-API | ||||
| Expand here | ||||
| 2. Architecture | 2. Architecture | |||
| We have already introduced the federated access architecture, with | We have already introduced the federated access architecture, with | |||
| the illustration of the different actors that need to interact, but | the illustration of the different actors that need to interact, but | |||
| 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. | application protocols the usage of the GSS-API was chosen. A | |||
| Encapsulating EAP into the GSS-API also allows EAP to be used in | description of the technical specification can be found in | |||
| SASL. A 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]. Other alternatives exist as well and may | |||
| be considered later, such as "TLS using EAP Authentication" | be considered later, such as "TLS using EAP Authentication" | |||
| [I-D.nir-tls-eap].[anchor9] | [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 16, line 38 ¶ | skipping to change at page 15, line 38 ¶ | |||
| | | Application | | | | | Application | | | |||
| | | Protocol | | | | | Protocol | | | |||
| | |<================>| | | | |<================>| | | |||
| +-------------+ +---------------+ | +-------------+ +---------------+ | |||
| Legend: | Legend: | |||
| <****>: Client-to-IdP Exchange | <****>: Client-to-IdP Exchange | |||
| <---->: Client-to-RP Exchange | <---->: Client-to-RP Exchange | |||
| <oooo>: RP-to-IdP Exchange | <oooo>: RP-to-IdP Exchange | |||
| <====>: Protocol through which GSS-API/GS2 exchanges are tunnelled | <====>: Protocol through which GSS-API/GS2 exchanges are tunneled | |||
| Figure 2: ABFAB Protocol Instantiation | Figure 2: ABFAB Protocol Instantiation | |||
| 2.1. Relying Party to Identity Provider | 2.1. Relying Party to Identity Provider | |||
| Communications between the Relying Part and the Identity Provider is | Communications between the Relying Party and the Identity Provider is | |||
| done by the federation substrate. This communication channel is | done by the federation substrate. This communication channel is | |||
| responsible for: | responsible for: | |||
| o Establishing the trust relationship between the RP and the IdP. | o Establishing the trust relationship between the RP and the IdP. | |||
| o Determining the Rules governing the relationship. | o Determining the rules governing the relationship. | |||
| o Conveying packets between the RP and IdP. | ||||
| o Providing the means of establishing a trust relationship between | o Conveying EAP packets between the RP and IdP. | |||
| the RP and the client. | ||||
| The ABFAB working group has chosen the AAA framework for the messages | The ABFAB working group has chosen the AAA framework for the messages | |||
| transported between the RP and IdP. This allows for the standard AAA | transported between the RP and IdP. This allows for the current AAA | |||
| framework to be used to establish the trust relationship between the | protocols to be used to establish the trust relationship between the | |||
| RP and the IdP while allowing other newer routing mechanisms using | RP and the IdP. Future protocols that support the same framework but | |||
| the same message format to be used in the future. The ABFAB protocol | do different routing may be used in the future. There is currently | |||
| itself details the method of establishing the trust relationship | an effort to setup a framework that creates a trusted point-to-point | |||
| between the RP and the client. | channel on the fly. The ABFAB protocol itself details the method of | |||
| establishing the trust relationship between the RP and the client. | ||||
| 2.1.1. AAA, RADIUS and Diameter | 2.1.1. AAA, RADIUS and Diameter | |||
| The IETF has defined a federation framework already with the | Interestingly, for network access authentication the usage of the AAA | |||
| Authentication, Authorization and Accounting (AAA) framework | framework with RADIUS [RFC2865] and Diameter [RFC3588] was quite | |||
| [RFC2903], [RFC2904]. Two implementations of the AAA framework exist | successful from a deployment point of view. To map the terminology | |||
| in RADIUS [RFC2138] and Diameter [RFC3588] protocols. The existence | used in Figure 1 to the AAA framework the IdP corresponds to the AAA | |||
| of these protocols allows us to re-use a pair of existing protocols | server, the RP corresponds to the AAA client, and the technical | |||
| that have been widely deployed and are reasonable well understood. | building blocks of a federation are AAA proxies, relays and redirect | |||
| These protocols are nicely designed so that they can carry additional | agents (particularly if they are operated by third parties, such as | |||
| attributes with minimal changes to either the protocol or existing | AAA brokers and clearing houses). The front-end, i.e. the end host | |||
| AAA servers. | to AAA client communication, is in case of network access | |||
| authentication offered by link layer protocols that forward | ||||
| authentication protocol exchanges back-and-forth. An example of a | ||||
| large scale RADIUS-based federation is EDUROAM [2]. | ||||
| By using the AAA framework, ABFAB gets a lot of mileage as many of | ||||
| the federation agreements already exist and merely need to be | ||||
| expanded to cover the ABFAB additions. The AAA framework has already | ||||
| 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 an extensible architecture allowing for new | ||||
| attributes to be defined and transported. | ||||
| o Pre-existing relationships can be re-used. | ||||
| 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? A key | substantially similar characteristics. Why not pick one? RADIUS and | |||
| difference is that today RADIUS is largely transported upon UDP, and | Diameter are deployed in different environments. RADIUS can often be | |||
| its use is largely, though not exclusively, intra-domain. Diameter | found in enterprise and university networks, and is also in use by | |||
| itself was designed to scale to broader uses. We leave as a | fixed network operators. Diameter, on the other hand, is deployed by | |||
| deployment decision, which protocol will be appropriate. The | mobile operators. Another key difference is that today RADIUS is | |||
| protocol defines all the necessary new AAA attributes as RADIUS | largely transported upon UDP. We leave as a deployment decision, | |||
| attributes, this allows for the same structures and attributes to be | which protocol will be appropriate. The protocol defines all the | |||
| used in both RADIUS and Diameter. We also note that there exist | necessary new AAA attributes as RADIUS attributes. A future document | |||
| proxies which convert from RADIUS to Diameter and back. This makes | would defined the same AAA attributes for a Diameter environment. We | |||
| it possible for both to be deployed in a single federation substrate. | also note that there exist proxies which convert from RADIUS to | |||
| Diameter and back. This makes it possible for both to be deployed in | ||||
| 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 | |||
| by the relying party. The AAA framework also permits the relying | by the relying party. The AAA framework also permits the relying | |||
| party or elements between the relying party and identity provider to | party or elements between the relying party and identity provider to | |||
| make statements about the relying party. | make statements about the relying party. | |||
| skipping to change at page 18, line 50 ¶ | skipping to change at page 18, line 17 ¶ | |||
| 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 principal 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 intermediates | enforcement mechanisms; for example in some federations | |||
| validate information that is being communicated within the | intermediaries validate information that is being communicated within | |||
| federation. | the federation. | |||
| ABFAB has not formally defined any part of discovery at this point. | ABFAB has not formally defined any part of discovery at this point. | |||
| The process of specifying and evaluating the business rules and | The process of specifying and evaluating the business rules and | |||
| technical policies is too complex to provide a simple framework. | technical policies is too complex to provide a simple framework. | |||
| There is not currently a way to know if a AAA proxy is able to | There is not currently a way to know if a AAA proxy is able to | |||
| communicate with a specific IdP, although this may change with some | communicate with a specific IdP, although this may change with some | |||
| of the routing protocols that are being considered. At the present | of the routing protocols that are being considered. At the present | |||
| time, the discovery process is going to be a manual configuration | time, the discovery process is going to be a manual configuration | |||
| process. | process. | |||
| 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 | is chosen, it is important that the technical trust mechanism be able | |||
| constrain the names of both parties to the exchange. The trust | to validate the names of both parties to the exchange. The trust | |||
| mechanism ought to ensure that the entity acting as IdP for a given | mechanism must to ensure that the entity acting as IdP for a given | |||
| NAI is permitted to be the IdP for that realm, and that any service | NAI is permitted to be the IdP for that realm, and that any service | |||
| name claimed by the RP is permitted to be claimed by that entity. | name claimed by the RP is permitted to be claimed by that entity. | |||
| Here are the categories of technical trust determination: | Here are the categories of technical trust determination: | |||
| AAA Proxy: | AAA Proxy: | |||
| The simplest model is that an RP supports a request directly to an | The simplest model is that an RP supports a request directly to an | |||
| AAA proxy. The hop-by-hop integrity protection of the AAA fabric | AAA proxy. The hop-by-hop integrity protection of the AAA fabric | |||
| provides technical trust. An RP can submit a request directly to | provides technical trust. An RP can submit a request directly to | |||
| a federation. Alternatively, a federation disambiguation fabric | a federation. Alternatively, a federation disambiguation fabric | |||
| can be used. Such a fabric takes information about what | can be used. Such a fabric takes information about what | |||
| federations the RP is part of and what federations the IdP is part | federations the RP is part of and what federations the IdP is part | |||
| of and routes a message to the appropriate federation. The | of and routes a message to the appropriate federation. The | |||
| routing of messages across the fabric plus attributes added to | routing of messages across the fabric plus attributes added to | |||
| requests and responses provides rules determination. For example, | requests and responses provides rules determination. For example, | |||
| when a disambiguation fabric routes a message to a given | when a disambiguation fabric routes a message to a given | |||
| federation, that federation's rules are chosen. Naming is | federation, that federation's rules are chosen. Name validation | |||
| enforced as messages travel across the fabric. The entities near | is enforced as messages travel across the fabric. The entities | |||
| the RP confirm its identity and validate names it claims. The | near the RP confirm its identity and validate names it claims. | |||
| fabric routes the message towards the appropriate IdP, validating | The fabric routes the message towards the appropriate IdP, | |||
| the IdP's name in the process. The routing can be statically | validating the IdP's name in the process. The routing can be | |||
| configured. Alternatively a routing protocol could be developed | statically configured. Alternatively a routing protocol could be | |||
| to exchange reachability information about given IdPs and to apply | developed to exchange reachability information about given IdPs | |||
| policy across the AAA fabric. Such a routing protocol could flood | and to apply policy across the AAA fabric. Such a routing | |||
| naming constraints to the appropriate points in the fabric. | protocol could flood naming constraints to the appropriate points | |||
| in the fabric. | ||||
| Trust Broker: | Trust Broker: | |||
| Instead of routing messages through AAA proxies, some trust broker | Instead of routing messages through AAA proxies, some trust broker | |||
| could establish keys between entities near the RP and entities | could establish keys between entities near the RP and entities | |||
| near the IdP. The advantage of this approach is efficiency of | near the IdP. The advantage of this approach is efficiency of | |||
| message handling. Fewer entities are needed to be involved for | message handling. Fewer entities are needed to be involved for | |||
| each message. Security may be improved by sending individual | each message. Security may be improved by sending individual | |||
| messages over fewer hops. Rules determination involves decisions | messages over fewer hops. Rules determination involves decisions | |||
| made by trust brokers about what keys to grant. Also, associated | made by trust brokers about what keys to grant. Also, associated | |||
| with each credential is context about rules and about other | with each credential is context about rules and about other | |||
| skipping to change at page 21, line 17 ¶ | skipping to change at page 20, line 31 ¶ | |||
| 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 IdPs 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]. | profile can be found in RFCXXXX [I-D.ietf-abfab-aaa-saml]. | |||
| There are two issues that need to be highlighted: | There are two issues that need to be highlighted: | |||
| o The security of SAML Assertions. | o The security of SAML assertions. | |||
| o Namespaces and mapping of SAML attributes. | o Namespaces and mapping of SAML attributes. | |||
| SAML Assertions have an optional signature that can be used to | SAML assertions have an optional signature that can be used to | |||
| protect and provide origination of the assertion. These signatures | protect and provide origination of the assertion. These signatures | |||
| are normally based on asymmetric key operations and require that the | are normally based on asymmetric key operations and require that the | |||
| verifier be able to check not only the cryptographic operation, but | verifier be able to check not only the cryptographic operation, but | |||
| also the binding of the originators name and the public key. In a | also the binding of the originators name and the public key. In a | |||
| federated environment it will not always be possible for the RP to | federated environment it will not always be possible for the RP to | |||
| validate the binding, for this reason the technical trust established | validate the binding, for this reason the technical trust established | |||
| in the federation is used as an alternate method of validating the | in the federation is used as an alternate method of validating the | |||
| origination and integrity of the SAML Assertion. | origination and integrity of the SAML Assertion. | |||
| 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 a 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 onces that the | federation names, types and semantics into the ones that the policies | |||
| policies of the RP are written in. In other cases the federation | of the RP are written in. In other cases the federation substrate | |||
| substrate may modify the SAML Assertions in transit to do the | may modify the SAML assertions in transit to do the necessary | |||
| necessary namespace, naming and semantic mappings as the assertion | namespace, naming and semantic mappings as the assertion crosses the | |||
| crosses the different boundaries in the federation. If the proxies | different boundaries in the federation. If the proxies are modifying | |||
| are modifying the SAML Assertion, then will obviously remove any | the SAML Assertion, then will obviously remove any signatures on the | |||
| signatures on the SAML Assertions as they would no longer validate. | SAML assertions as they would no longer validate. In this case the | |||
| In this case the technical trust is the required mechanism for | technical trust is the required mechanism for validating the | |||
| validating the integrity of the assertion. In the last case, the | integrity of the assertion. Finally, the attributes may still be in | |||
| attributes may still be in the namespace of the originating IdP. | the namespace of the originating IdP. When this occurs the RP will | |||
| When this occurs the RP will need to get the required mapping | need to get the required mapping operations from the federation | |||
| operations from the federation agreements and do the appropriate | agreements and do the appropriate mappings itself. | |||
| mappings itself. | ||||
| 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. | |||
| o The client and the IdP need to mutually agree on the identity of | o The client and the IdP need to mutually agree on the identity of | |||
| the RP. | the RP. | |||
| ABFAB selected EAP for the purposes of mutual authentication and | ABFAB selected EAP for the purposes of mutual authentication and | |||
| assisted in creating some new EAP channel binding documents for | assisted in creating some new EAP channel binding documents for | |||
| dealing with determining the identity of the RP. ABFAB has defined | dealing with determining the identity of the RP. A framework for the | |||
| and specified a new channel binding mechanism that operates as an EAP | channel binding mechanism has been defined in RFC 6677 [RFC6677] that | |||
| method for the purpose of agreeing on the identity of the RP. | allows the IdP to check the identity of the RP provided by the AAA | |||
| 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. It is difficult to have subjects that are machines | to this approach. Since the communication is not standardized, it is | |||
| rather than humans that use some sort of programatic credential. In | difficult for machines to correctly enter their credentials with | |||
| addition, use of browsers for authentication restricts the deployment | different authentications, where Individuals can correctly identify | |||
| of more secure forms of authentication beyond plaintext username and | the entyr mechanism on the fly. The use of browsers for | |||
| password known by the server. In a number of cases the | authentication restricts the deployment of more secure forms of | |||
| authentication interface may be presented before the subject has | authentication beyond plaintext username and password known by the | |||
| adequately validated they are talking to the intended server. By | server. In a number of cases the authentication interface may be | |||
| giving control of the authentication interface to a potential | presented before the subject has adequately validated they are | |||
| attacker, then the security of the system may be reduced and phishing | talking to the intended server. By giving control of the | |||
| opportunities introduced. | authentication interface to a potential attacker, then the security | |||
| of the 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 | |||
| skipping to change at page 23, line 32 ¶ | skipping to change at page 22, line 44 ¶ | |||
| 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. | |||
| o Another challenge is choosing which identity provider to use for | o Another challenge is choosing which identity provider to use for | |||
| which service. | which service. | |||
| 2.2.2. Channel Binding | The EAP method used for ABFAB needs to meet the following | |||
| requirements: | ||||
| o It needs to provide mutual authentication of the client and IdP. | ||||
| o It needs to support channel binding. | ||||
| As of this writing, the only EAP method that meets these criteria is | ||||
| TEAP [I-D.ietf-emu-eap-tunnel-method] either alone (if client | ||||
| certificates are used) or with an inner EAP method that does mutual | ||||
| authentication. | ||||
| 2.2.2. EAP Channel Binding | ||||
| EAP channel binding is easily confused with a facility in GSS-API | ||||
| also called channel binding. GSS-API channel binding provides | ||||
| protection against man-in-the-middle attacks when GSS-API is used as | ||||
| authentication inside some tunnel; it is similar to a facility called | ||||
| cryptographic binding in EAP. See [RFC5056] for a discussion of the | ||||
| differences between these two facilities and Section 6.1 for how GSS- | ||||
| API channel binding is handled in this mechanism. | ||||
| The client knows, in theory, the name of the RP that it attempted to | The client knows, in theory, the name of the RP that it attempted to | |||
| connect to, however in the event that an attacker has intercepted the | connect to, however in the event that an attacker has intercepted the | |||
| protocol, the client and the IdP need to be able to detect this | protocol, the client and the IdP need to be able to detect this | |||
| situation. A general overview of the problem can be found in | situation. A general overview of the problem along with a | |||
| [I-D.hartman-emu-mutual-crypto-bind]. | recommended way to deal with the channel binding issues can be found | |||
| in RFC 6677 [RFC6677]. | ||||
| The recommended way to deal with channel binding can be found in RFC | Since that document was published, a number of possible attacks were | |||
| XXXX [I-D.ietf-emu-chbind]. | found and methods to address these attacks have been outlined in | |||
| [I-D.hartman-emu-mutual-crypto-bind]. | ||||
| 2.3. Client to Relying Party | 2.3. Client to Relying Party | |||
| The final set of interactions between parties to consider are those | The final set of interactions between parties to consider are those | |||
| between the client and the RP. In some ways this is the most complex | between the client and the RP. In some ways this is the most complex | |||
| set since at least part of it is outside the scope of the ABFAB work. | set since at least part of it is outside the scope of the ABFAB work. | |||
| The interactions between these parties include: | The interactions between these parties include: | |||
| o Running the protocol that implements the web service that is | o Running the protocol that implements the service that is provided | |||
| provided by the RP and desired by the client. | by the RP and desired by the client. | |||
| o Authenticating the client to the RP and the RP to the client. | o Authenticating the client to the RP and the RP to the client. | |||
| o Providing the necessary security services to the web service | o Providing the necessary security services to the service protocol | |||
| protocol that it needs beyond authentication. | that it needs beyond authentication. | |||
| 2.3.1. GSS-API | 2.3.1. GSS-API | |||
| One of the remaining layers is responsible for integration of | One of the remaining layers is responsible for integration of | |||
| federated authentication into the application. There are a number of | federated authentication into the application. There are a number of | |||
| approaches that applications have adopted for security. So, there | approaches that applications have adopted for security. So, there | |||
| may need to be multiple strategies for integration of federated | may need to be multiple strategies for integration of federated | |||
| authentication into applications. However, we have started with a | authentication into applications. However, we have started with a | |||
| strategy that provides integration to a large number of application | strategy that provides integration to a large number of application | |||
| protocols. | protocols. | |||
| skipping to change at page 26, line 34 ¶ | skipping to change at page 26, line 34 ¶ | |||
| providing (potentially anonymous or pseudonymous) identity to the | providing (potentially anonymous or pseudonymous) identity to the | |||
| acceptor, the acceptor confirms its identity to the initiator. | acceptor, the acceptor confirms its identity to the initiator. | |||
| Especially for the ABFAB context, this service is confusingly named. | Especially for the ABFAB context, this service is confusingly named. | |||
| We still say that mutual authentication is provided when the identity | We still say that mutual authentication is provided when the identity | |||
| of an acceptor is strongly authenticated to an anonymous initiator. | of an acceptor is strongly authenticated to an anonymous initiator. | |||
| RFC 2743, unfortunately, does not explicitly talk about what mutual | RFC 2743, unfortunately, does not explicitly talk about what mutual | |||
| authentication means. Within this document we therefore define it | authentication means. Within this document we therefore define it | |||
| as: | as: | |||
| o If a target name is supplied by the initiator, then the initiator | o If a target name is supplied to the initiator, then the initiator | |||
| trusts that the supplied target name describes the acceptor. This | trusts that the supplied target name describes the acceptor. This | |||
| implies both that appropriate cryptographic exchanges took place | implies both that appropriate cryptographic exchanges took place | |||
| for the initiator to make such a trust decision, and that after | for the initiator to make such a trust decision, and that after | |||
| evaluating the results of these exchanges, the initiator's policy | evaluating the results of these exchanges, the initiator's policy | |||
| trusts that the target name is accurate. | trusts that the target name is accurate. | |||
| o If no target name is supplied by the initiator, then the initiator | o If no target name is supplied to the initiator, then the initiator | |||
| trusts that its idea of the acceptor name correctly names the | trusts that the acceptor name, supplied by the acceptor, correctly | |||
| entity it is communicating with. | names the entity it is communicating with. | |||
| o Both the initiator and acceptor have the same key material for | o Both the initiator and acceptor have the same key material for | |||
| per-message keys and both parties have confirmed they actually | per-message keys and both parties have confirmed they actually | |||
| have the key material. In EAP terms, there is a protected | have the key material. In EAP terms, there is a protected | |||
| indication of success. | indication of success. | |||
| Mutual authentication is an important defense against certain aspects | Mutual authentication is an important defense against certain aspects | |||
| of phishing. Intuitively, users would like to assume that if some | of phishing. Intuitively, users would like to assume that if some | |||
| party asks for their credentials as part of authentication, | party asks for their credentials as part of authentication, | |||
| successfully gaining access to the resource means that they are | successfully gaining access to the resource means that they are | |||
| skipping to change at page 27, line 47 ¶ | skipping to change at page 27, line 47 ¶ | |||
| GSS-API mutual authentication then confirming the end-points using | GSS-API mutual authentication then confirming the end-points using | |||
| both trust infrastructures is likely to enhance security. If the | both trust infrastructures is likely to enhance security. If the | |||
| endpoints of the GSS-API authentication are different than the | endpoints of the GSS-API authentication are different than the | |||
| endpoints of the lower layer, this is a strong indication of a | endpoints of the lower layer, this is a strong indication of a | |||
| problem such as a man-in-the-middle attack. Channel binding provides | problem such as a man-in-the-middle attack. Channel binding provides | |||
| a facility to determine whether these endpoints are the same. | a facility to determine whether these endpoints are the same. | |||
| The GSS-EAP mechanism needs to support channel binding. When an | The GSS-EAP mechanism needs to support channel binding. When an | |||
| application provides channel binding data, the mechanism needs to | application provides channel binding data, the mechanism needs to | |||
| confirm this is the same on both sides consistent with the GSS-API | confirm this is the same on both sides consistent with the GSS-API | |||
| specification. XXXThere is an open question here as to the details; | specification. | |||
| today RFC 5554 governs. We could use that and the current draft | ||||
| assumes we will. However in Beijing we became aware of some changes | ||||
| to these details that would make life much better for GSS | ||||
| authentication of HTTP. We should resolve this with kitten and | ||||
| replace this note with a reference to the spec we're actually | ||||
| following. | ||||
| Typically when considering channel binding, people think of channel | Typically when considering channel binding, people think of channel | |||
| binding in combination with mutual authentication. This is | binding in combination with mutual authentication. This is | |||
| sufficiently common that without additional qualification channel | sufficiently common that without additional qualification channel | |||
| binding should be assumed to imply mutual authentication. Without | binding should be assumed to imply mutual authentication. Without | |||
| mutual authentication, only one party knows that the endpoints are | mutual authentication, only one party knows that the endpoints are | |||
| correct. That's sometimes useful. Consider for example a user who | correct. That's sometimes useful. Consider for example a user who | |||
| wishes to access a protected resource from a shared whiteboard in a | wishes to access a protected resource from a shared whiteboard in a | |||
| conference room. The whiteboard is the initiator; it does not need | conference room. The whiteboard is the initiator; it does not need | |||
| to actually authenticate that it is talking to the correct resource | to actually authenticate that it is talking to the correct resource | |||
| skipping to change at page 28, line 48 ¶ | skipping to change at page 28, line 42 ¶ | |||
| flexible naming architecture. However most of the IETF applications | flexible naming architecture. However most of the IETF applications | |||
| that use GSS-API, including SSH, NFS, IMAP, LDAP and XMPP, have | that use GSS-API, including SSH, NFS, IMAP, LDAP and XMPP, have | |||
| chosen to use host-based service names when they use GSS-API. In | chosen to use host-based service names when they use GSS-API. In | |||
| this model, the initiator names an acceptor based on a service such | this model, the initiator names an acceptor based on a service such | |||
| as "imap" or "host" (for login services such as SSH) and a host name. | as "imap" or "host" (for login services such as SSH) and a host name. | |||
| Using host-based service names leads to a challenging trust | Using 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 | |||
| hostname maps to an entity. The public-key infrastructure (PKI) used | hostname maps to an entity. The public-key infrastructure (PKI) used | |||
| by the web has chosen to have a number of trust anchors (root | by the web has chosen to have a number of trust anchors (root | |||
| certificate authorities) each of wich can map any name to a public | certificate authorities) each of which can map any name to a public | |||
| key. A number of GSS-API mechanisms suchs as Kerberos [RFC1964] | key. A number of GSS-API mechanisms, such as Kerberos [RFC1964], | |||
| 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. Then the mechanism decides what realm is responsible for | introduced. Then the mechanism decides what realm is responsible for | |||
| a given name. That realm is responsible for deciding if the acceptor | a given name. That realm is responsible for deciding if the acceptor | |||
| entity is allowed to claim the name. ABFAB needs to adopt this | entity is allowed to claim the name. ABFAB needs to adopt this | |||
| approach. | approach. | |||
| Host-based service names do not work ideally when different instances | Host-based service names do not work ideally when different instances | |||
| of a service are running on different ports. Also, these do not work | of a service are running on different ports. Also, these do not work | |||
| ideally when SRV record or other insecure referrals are used. | ideally when SRV record or other insecure referrals are used. | |||
| The GSS-EAP mechanism needs to support host-based service names in | The GSS-EAP mechanism needs to support host-based service names in | |||
| order to work with existing IETF protocols. | order to work with existing IETF protocols. | |||
| 3.4. Per-Message Tokens | 3.4. Per-Message Tokens | |||
| GSS-API provides per-message security services that can provide | GSS-API provides per-message security services that can provide | |||
| confidentiality and integrity. Some IETF protocols such as NFS and | confidentiality and integrity. Some IETF protocols such as NFS and | |||
| SSH take advantage of these services. As a result GSS-EAP needs to | SSH take advantage of these services. As a result GSS-EAP needs to | |||
| support these services. As with mutual authentication, per-message | support these services. As with mutual authentication, per-message | |||
| services will limit the set of EAP methods that are available. Any | services will limit the set of EAP methods that are available. Any | |||
| method that produces a Master Session Key (MSK) should be able to | EAP method that produces a Master Session Key (MSK) is able to | |||
| support per-message security services. | support per-message security services described in [X]. | |||
| GSS-API provides a pseudo-random function. While the pseudo-random | GSS-API provides a pseudo-random function. While the pseudo-random | |||
| function does not involve sending data over the wire, it provides an | function does not involve sending data over the wire, it provides an | |||
| algorithm that both the initiator and acceptor can run in order to | algorithm that both the initiator and acceptor can run in order to | |||
| arrive at the same key value. This is useful for designs where a | arrive at the same key value. This is useful for designs where a | |||
| successful authentication is used to key some other function. This | successful authentication is used to key some other function. This | |||
| is similar in concept to the TLS extractor. No current IETF | is similar in concept to the TLS extractor. No current IETF | |||
| protocols require this. However GSS-EAP supports this service | protocols require this. However GSS-EAP supports this service | |||
| because it is valuable for the future and easy to do given per- | because it is valuable for the future and easy to do given per- | |||
| message services. Non-IETF protocols are expected to take advantage | message services. Non-IETF protocols are expected to take advantage | |||
| skipping to change at page 31, line 7 ¶ | skipping to change at page 31, line 7 ¶ | |||
| provide a URI to the RP that contains a token of some form. The form | provide a URI to the RP that contains a token of some form. The form | |||
| of communications between the IdP and attribute provider as well as | of communications between the IdP and attribute provider as well as | |||
| other considerations are left for the future. One thing we can say | other considerations are left for the future. One thing we can say | |||
| now is that the IdP would merely be asserting who the attribute | now is that the IdP would merely be asserting who the attribute | |||
| authority is, and not the contents of what the attribute authority | authority is, and not the contents of what the attribute authority | |||
| would return. (Otherwise, the IdP might as well make the query to | would return. (Otherwise, the IdP might as well make the query to | |||
| the attribute authority and then resign it.) | the attribute authority and then resign it.) | |||
| 5. Privacy Considerations | 5. Privacy Considerations | |||
| Sharing identity information raises privacy violations and as | ABFAB, as an architecture designed to enable federated authentication | |||
| described throughout this document an existing architecture is re- | and allow for the secure transmission of identity information between | |||
| used for a different usage environment. As such, a discussion about | entities, obviously requires careful consideration around privacy and | |||
| the privacy properties has to take these pre-conditions into | the potential for privacy violations. | |||
| consideration. We use the approach suggested in | ||||
| [I-D.iab-privacy-considerations] to shed light into what data is | ||||
| collected and used by which entity, what the relationship between | ||||
| these entities and the end user is, what data about the user is | ||||
| likely needed to be collected, and what the identification level of | ||||
| the data is. | ||||
| 5.1. What Entities collect and use Data? | This section examines the privacy related information presented in | |||
| this document, summarising the entities that are involved in ABFAB | ||||
| communications and what exposure they have to identity information. | ||||
| In discussing these privacy considerations in this section, we use | ||||
| terminology and ideas from [I-D.iab-privacy-considerations]. | ||||
| Figure 2 shows the architecture with the involved entities. Message | Note that the ABFAB architecture uses at its core several existing | |||
| exchanges are exchanged between the client application, via the | technologies and protocols; detailed privacy discussion around these | |||
| relying part to the AAA server. There will likely be intermediaries | is not examined. This section instead focuses on privacy | |||
| between the relying party and the AAA server, labeled generically as | considerations specifically related to overall architecture and usage | |||
| "federation". | of ABFAB. | |||
| In order for the relying party to route messages to the AAA server it | 5.1. Entities and their roles | |||
| is necessary for the client application to provide enough information | ||||
| to enable the identification of the AAA server's domain. While often | ||||
| the username is attached to the domain (in the form of a Network | ||||
| Access Identity (NAI) this is not necessary for the actual protocol | ||||
| operation. The EAP server component within the AAA server needs to | ||||
| authenticate the user and therefore needs to execute the respective | ||||
| authentication protocol. Once the authentication exchange is | ||||
| complete authorization information needs to be conveyed to the | ||||
| relying party to grant the user the necessary application rights. | ||||
| Information about resource consumption may be delivered as part of | ||||
| the accounting exchange during the lifetime of the granted | ||||
| application session. | ||||
| The authentication exchange may reveal an identifier that can be | In an ABFAB environment, there are four distinct types of entities | |||
| linked to a user. Additionally, a sequence of authentication | involved in communication paths. Figure 2 shows the ABFAB | |||
| protocol exchanges may be linked together. Depending on the chosen | architecture with these entity types. We have: | |||
| authentication protocol information at varying degrees may be | ||||
| revealed to all parties along the communication path. This | ||||
| authorization information exchange may disclose identity information | ||||
| about the user. While accounting information is created by the | ||||
| relying party it is likely to needed by intermediaries in the | ||||
| federation for financial settlement purposes and will be stored for | ||||
| billing, fraud detection, statistical purposes, and for service | ||||
| improvement by the AAA server operator. | ||||
| 5.2. Relationship between User's and other Entities | o The client application: usually a piece of software running on a | |||
| user's device. This communicates with a service (the Relying | ||||
| Party) that the user wishes to interact with. | ||||
| The AAA server is a first-party site the user typically has a | o The Identity Provider: The home AAA server for the user. | |||
| relationship with. This relationship will be created at the time | ||||
| when the security credentials are exchange and provisioned. The | ||||
| relying party and potential intermediares in the federation are | ||||
| typically operate under the contract of the first-party site. The | ||||
| user typically does not know about the intermediaries in the | ||||
| federation nor does he have any relationship with them. The protocol | ||||
| interaction triggered by the client application happens with the | ||||
| relying party at the time of application access. The relying party | ||||
| does not have a direct contractual relationship with the user but | ||||
| depending on the application the interaction may expose the brand of | ||||
| the application running by the relying party to the end user via some | ||||
| user interface. | ||||
| 5.3. What Data about the User is likely Needed to be Collected? | o The Relying Party: The service the user wishes to connect to. | |||
| The data that is likely going to be collected as part of a protocol | o The federation substrate: A set of entities through which messages | |||
| exchange with application access at the relying party is accounting | pass on their path between RP and AAA server. | |||
| information and authorization information. This information is | ||||
| likely to be kept beyond the terminated application usage for trouble | ||||
| shooting, statistical purposes, etc. There is also like to be | ||||
| additional data collected to to improve application service usage by | ||||
| the relying party that is not conveyed to the AAA server as part of | ||||
| the accounting stream. | ||||
| 5.4. What is the Identification Level of the Data? | As described in detail earlier in this document, when a user wishes | |||
| to access a Relying Party, a secure tunnel is set up between their | ||||
| 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). | ||||
| With regard to identification there are several protocol layers that | 5.2. Relationship between user and entities | |||
| need to be considered separately. First, there is the EAP method | ||||
| exchange, which as an authentication and key exchange protocol has | ||||
| properties related to identification and protocol linkage. Second, | ||||
| there is identification at the EAP layer for routing of messages. | ||||
| Then, in the exchange between the client application and the relying | ||||
| party the identification depends on the underlying application layer | ||||
| protocol the EAP/GSS-API exchange is tunneled over. Finally, there | ||||
| is the backend exchange via the AAA infrastructure, which involves a | ||||
| range of RADIUS and Diameter extensions and yet to be defined | ||||
| extensions, such as encoding authorization information inside SAML | ||||
| assertions. | ||||
| Since this document does not attempt to define any of these exchanges | o Between User and Identity Provider - the identity Provider is an | |||
| but rather re-uses existing mechanisms the level of identification | entity the user will have a direct relationship with, created when | |||
| heavily depends on the selected mechanisms. The following two | the organisation that operates the entity provisioned and | |||
| examples aim to illustrate the amount of existing work with respect | exchanged the user's credentials. Privacy and data protection | |||
| to decrease exposure of personal data. | guarantees may form a part of this relationship. | |||
| 1. When designing EAP methods a number of different requirements may | o Between User and Relying Party - the Relying Party is an entity | |||
| need to get considered; some of them are conflicting. RFC 4017 | the user may or may not have a direct relationship with, depending | |||
| [RFC4017], for example, tried to list requirements for EAP | on the service in question. Some services may only be offered to | |||
| methods utilized for network access over Wireless LANs. It also | those users where such a direct relationship exists (for | |||
| recommends the end-user identity hiding requirement, which is | particularly sensitive services, for example), while some may not | |||
| privacy-relevant. Some EAP methods, such as EAP-IKEv2 [RFC5106], | require this and would instead be satisfied with basic federation | |||
| also fulfill this requirement. | 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. | ||||
| 2. EAP, as the layer encapsulating EAP method specific information, | o Between User and Federation substrate - the user is highly likely | |||
| needs identity information to allow routing requests towards the | to have no knowledge of, or relationship with, any entities | |||
| user's home AAA server. This information is carried within the | involved with the federation substrate (not that the Identity | |||
| Network Access Identifier (NAI) and the username part of the NAI | Provider and/or Relying Party may, however). Knowledge of | |||
| (as supported by RFC 4282 [RFC4282]) can be obfuscated. | 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. | ||||
| 5.5. Privacy Challenges | 5.3. Data and Identifiers in use | |||
| While a lot of standarization work was done to avoid leakage of | In the ABFAB architecture, there are a few different types of data | |||
| identity information to intermediaries (such as eavesdroppers on the | and identifiers in use. | |||
| communication path between the client application and the relying | ||||
| party) in the area of authentication and key exchange protocols. | ||||
| However, from current deployments the weak aspects with respect to | ||||
| security are: | ||||
| 1. Today business contracts are used to create federations between | 5.3.1. NAI | |||
| identity providers and relying parties. These contracts are not | ||||
| only financial agreements but they also define the rules about | ||||
| what information is exchanged between the AAA server and the | ||||
| relying party and the potential involvement of AAA proxies and | ||||
| brokers as intermediaries. While these contracts are openly | ||||
| available for university federations they are not public in case | ||||
| of commercial deployments. Quite naturally, there is a lack of | ||||
| transparency for external parties. | ||||
| 2. In today's deployments the ability for users to determine the | In order for the Relying Party to be able to route messages to enable | |||
| amount of information exchanged with other parties over time, as | an EAP transaction to occur between client application and the | |||
| well as the possibility to control the amount of information | correct identity Provider, it is necessary for the client application | |||
| exposed via an explict consent is limited. This is partially due | to provide enough information to the Relying Party to enable the | |||
| the nature of application capabilities at the time of network | identification of the correct Identity Provider. This takes the form | |||
| access authentication. However, with the envisioned extension of | of an Network Access Identifier (NAI) (as specified in [RFC4282]). | |||
| the usage, as described in this document, it is desirable to | Note that an NAI can have inner and outer forms in a AAA | |||
| offer these capabilities. | architecture. | |||
| o The outer part of NAI is exposed to the Relying Party; this can | ||||
| simply contain realm information. Doing so (i.e. not including | ||||
| user identification details such as a username) minimises the data | ||||
| given to the Relying Part to that which is purely necessary to | ||||
| support the necessary routing decision. | ||||
| o The inner part of NAI is sent through the secure tunnel as | ||||
| established by the EAP protocol; this form of the NAI will contain | ||||
| credentials for the user suitable for authenticating them | ||||
| successfully (e.g. a username and password). Since the entire | ||||
| purpose of the secure tunnel is to protect communications between | ||||
| 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. | ||||
| 5.3.2. Identity Information | ||||
| As a part of the ABFAB process, after a successful authentication has | ||||
| occurred between client application and Identity Provider, an | ||||
| indication of this success is sent to the Relying Party. Alongside | ||||
| this message, information about the user may be returned through AAA | ||||
| attributes, usually in form of a SAML assertion. This information is | ||||
| 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 | ||||
| attributes may or may not be accessible to intermediaries involved in | ||||
| communications - e.g. in the case of RADIUS and unencrypted SAML, | ||||
| these headers are plain text and could be seen by any observer, | ||||
| whereas if using RADSEC or encrypted SAML, these headers are | ||||
| protected from observers. Obviously, where the protection of the | ||||
| privacy of an individual is required then this information needs to | ||||
| be protected by some appropriate means. | ||||
| 5.3.3. Accounting Information | ||||
| Alongside the core authentication and authorization that occurs in | ||||
| AAA communications, accounting information about resource consumption | ||||
| may be delivered as part of the accounting exchange during the | ||||
| lifetime of the granted application session. | ||||
| 5.3.4. Collection and retention of data and identifiers | ||||
| In cases where Relying Parties do not require to identify a | ||||
| particular individual when an individual wishes to make use of their | ||||
| service, the ABFAB architecture enable anonymous or pseudonymous | ||||
| access. Thus data and identifiers other than pseudonyms and | ||||
| unlinkable attribute information need not be stored and retained. | ||||
| However, in cases where Relying Parties require the ability to | ||||
| identify a particular individual (e.g. so they can link this identity | ||||
| information to a particular account in their service, or where | ||||
| identity information is required for audit purposes), the service | ||||
| will need to collect and store such information, and to retain it for | ||||
| as long as they require. Deprovisioning of such accounts and | ||||
| information is out of scope for ABFAB, but obviously for privacy | ||||
| protection any identifiers collected should be deleted when they are | ||||
| no longer needed. | ||||
| 5.4. User Participation | ||||
| In the ABFAB architecture, by its very nature users are active | ||||
| participants in the sharing of their identifiers as they initiate the | ||||
| communications exchange every time they wish to access a server. | ||||
| They are, however, not involved in control of the set of information | ||||
| related to them that transmitted from Identity Provider to Relying | ||||
| Party for authorisation purposes. | ||||
| 6. Deployment Considerations | 6. Deployment Considerations | |||
| 6.1. EAP Channel Binding | 6.1. EAP Channel Binding | |||
| Discuss the implications of needing EAP channel binding. | Discuss the implications of needing EAP channel binding. | |||
| 6.2. AAA Proxy Behavior | 6.2. AAA Proxy Behavior | |||
| Discuss deployment implications of our proxy requirements. | Discuss deployment implications of our proxy requirements. | |||
| skipping to change at page 35, line 52 ¶ | skipping to change at page 36, line 52 ¶ | |||
| As no end-to-end security is provided by AAA, all AAA entities on | As no end-to-end security is provided by AAA, all AAA entities on | |||
| the path between the RP and IdP have the ability to eavesdrop if | the path between the RP and IdP have the ability to eavesdrop if | |||
| no additional security measures are taken. One such measure is to | no additional security measures are taken. One such measure is to | |||
| use a transport between the client and the IdP that provides | use a transport between the client and the IdP that provides | |||
| confidentiality. | confidentiality. | |||
| Client-to-IdP Channel: | Client-to-IdP Channel: | |||
| This communication interaction is accomplished with the help of | This communication interaction is accomplished with the help of | |||
| EAP and EAP methods. The offered security protection will depend | EAP and EAP methods. The offered security protection will depend | |||
| on the EAP method that is chosen but a minimum requirement fis to | on the EAP method that is chosen but a minimum requirement is to | |||
| offer mutual authentication, and key derivation. The IdP is | offer mutual authentication, and key derivation. The IdP is | |||
| 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 | ||||
| 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 | ||||
| reversed then the service provider can consult an oracle to determine | ||||
| if a given unique long term identifier is associated with a different | ||||
| known identifier. | ||||
| 8. IANA Considerations | 8. IANA Considerations | |||
| This document does not require actions by IANA. | This document does not require actions by IANA. | |||
| 9. Acknowledgments | 9. Acknowledgments | |||
| We would like to thank Mayutan Arumaithurai and Klaas Wierenga for | We would like to thank Mayutan Arumaithurai and Klaas Wierenga for | |||
| their feedback. Additionally, we would like to thank Eve Maler, | their feedback. Additionally, we would like to thank Eve Maler, | |||
| Nicolas Williams, Bob Morgan, Scott Cantor, Jim Fenton, and Luke | Nicolas Williams, Bob Morgan, Scott Cantor, Jim Fenton, Paul Leach, | |||
| Howard for their feedback on the federation terminology question. | and Luke Howard for their feedback on the federation terminology | |||
| question. | ||||
| Furthermore, we would like to thank Klaas Wierenga for his review of | Furthermore, we would like to thank Klaas Wierenga for his review of | |||
| the pre-00 draft version. | the pre-00 draft version. | |||
| 10. References | 10. References | |||
| 10.1. Normative References | 10.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. | |||
| skipping to change at page 39, line 34 ¶ | skipping to change at page 40, line 34 ¶ | |||
| 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 | [RFC4282] Aboba, B., Beadles, M., Arkko, J., and P. Eronen, "The | |||
| Network Access Identifier", RFC 4282, December 2005. | Network Access Identifier", RFC 4282, December 2005. | |||
| [I-D.iab-privacy-terminology] | ||||
| Hansen, M., Tschofenig, H., Smith, R., and A. Cooper, | ||||
| "Privacy Terminology and Concepts", | ||||
| draft-iab-privacy-terminology-01 (work in progress), | ||||
| March 2012. | ||||
| [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-eap-08 (work in progress), June 2012. | draft-ietf-abfab-gss-eap-09 (work in progress), | |||
| 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-03 (work | and Profiles for SAML", draft-ietf-abfab-aaa-saml-04 (work | |||
| in progress), March 2012. | in progress), October 2012. | |||
| [I-D.ietf-emu-chbind] | [RFC6677] Hartman, S., Clancy, T., and K. Hoeper, "Channel-Binding | |||
| Hartman, S., Clancy, T., and K. Hoeper, "Channel Binding | Support for Extensible Authentication Protocol (EAP) | |||
| Support for EAP Methods", draft-ietf-emu-chbind-16 (work | Methods", RFC 6677, July 2012. | |||
| in progress), May 2012. | ||||
| 10.2. Informative References | 10.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 2000. | August 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] | |||
| Hammer-Lahav, E., Recordon, D., and D. Hardt, "The OAuth | Hardt, D., "The OAuth 2.0 Authorization Framework", | |||
| 2.0 Authorization Framework", draft-ietf-oauth-v2-28 (work | draft-ietf-oauth-v2-31 (work in progress), August 2012. | |||
| in progress), June 2012. | ||||
| [I-D.iab-privacy-considerations] | [I-D.iab-privacy-considerations] | |||
| Cooper, A., Tschofenig, H., Aboba, B., Peterson, J., and | Cooper, A., Tschofenig, H., Aboba, B., Peterson, J., | |||
| J. Morris, "Privacy Considerations for Internet | Morris, J., Hansen, M., and R. Smith, "Privacy | |||
| Protocols", draft-iab-privacy-considerations-02 (work in | Considerations for Internet Protocols", | |||
| progress), March 2012. | draft-iab-privacy-considerations-03 (work in progress), | |||
| July 2012. | ||||
| [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. | |||
| skipping to change at page 41, line 42 ¶ | skipping to change at page 42, line 36 ¶ | |||
| 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 2000. | August 2000. | |||
| [I-D.hartman-emu-mutual-crypto-bind] | [I-D.hartman-emu-mutual-crypto-bind] | |||
| Hartman, S., Wasserman, M., and D. Zhang, "EAP Mutual | Hartman, S., Wasserman, M., and D. Zhang, "EAP Mutual | |||
| Cryptographic Binding", | Cryptographic Binding", | |||
| draft-hartman-emu-mutual-crypto-bind-00 (work in | draft-hartman-emu-mutual-crypto-bind-00 (work in | |||
| progress), March 2012. | progress), March 2012. | |||
| [I-D.ietf-emu-eap-tunnel-method] | ||||
| Zhou, H., Cam-Winget, N., Salowey, J., and S. Hanna, | ||||
| "Tunnel EAP Method (TEAP) Version 1", | ||||
| draft-ietf-emu-eap-tunnel-method-04 (work in progress), | ||||
| October 2012. | ||||
| [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.oasis-open.org/ws-sx/ws-trust/v1.4/ws-trust.html>. | docs.oasis-open.org/ws-sx/ws-trust/v1.4/ws-trust.html>. | |||
| URIs | URIs | |||
| [1] <http://www.openid.net> | [1] <http://www.openid.net> | |||
| [2] <http://www.eduroam.org> | [2] <http://www.eduroam.org> | |||
| Editorial Comments | Editorial Comments | |||
| [anchor4] JLS: Add section on discussion EAP methods and | [anchor4] JLS: Should this be an EAP failure to the client as well? | |||
| requirements there on | ||||
| [anchor9] JLS: I don't believe this is a true statement - check it | [anchor7] JLS: I don't believe this is a true statement - check it | |||
| with Josh and Sam. | 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 | |||
| End of changes. 109 change blocks. | ||||
| 511 lines changed or deleted | 576 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/ | ||||