Network Working Group P. Pillay-Esnault
Internet-Draft A. Clemm
Intended status: Informational Huawei
Expires: January 4, 2018 D. Farinacci
D. Meyer
July 3, 2017

Requirements for Generic Identity Services in Identity Enabled Networks


This document describes requirements for the Generic Identity Services infrastructure for Identity-Enabled Networks.

Status of This Memo

This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79.

Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet-Drafts is at

Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress."

This Internet-Draft will expire on January 4, 2018.

Copyright Notice

Copyright (c) 2017 IETF Trust and the persons identified as the document authors. All rights reserved.

This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents ( in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Simplified BSD License.

Table of Contents

1. Introduction

This document specifies requirements for Generic Identity Services (GRIDS) that provide a cornerstone of Identity-Enabled Networks. GRIDS includes services to maintain mappings between Identifiers and Locators and to resolve mappings by Identifier. In addition, GRIDS includes services to manage the lifecycle of Identifiers as used in an Identity-Enabled Network, specifically services to register Identifiers.

There are additional services that GRIDS can be extended with. Examples include services to maintain metadata about endpoints that are referenced by Identifiers as well as support for Identity-based network access control. Because those services enable a lot of value-added functionality, important requirements for those services are specified here as well. In order to not overburden GRIDS development, this document focuses on core requirements.

The requirements are rooted in and derived from the problem statement [IDEAS-PS] and use case documents [IDEAS-USE][IDEAS-IDENTITY] for Identity Enabled Networks. A gap analysis of existing solutions can be found in [IDEAS-GAP].

2. Specification of Requirements

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in [RFC2119].

3. Definition of Terms

This document makes use of terms which for the most part have been already defined in the problem statement draft of IDEAS [IDEAS-PS]. They are included here for reader convenience. In case of any discrepancies between the two drafts, the problem statement draft overrides.

4. Background

Identity-Enabled Networks introduce the concept of Identity into networking. This concept includes an Identity/Identifier split, which complements existing Locator/Identifier separation technologies.

Identity-Enabled Networks are enabled by a set of core services that are provided by common control infrastructure. Both the services and the infrastructure that provides them are referred to as GRIDS, GeneRic IDentity Services. GRIDS comprises several key components. Those components include the following:

The requirements defined in this document do not imply a particular solution. Specifically, they do not imply that infrastructure used to address those requirements would need to be defined or built from scratch. Instead, where possible, existing technologies, components, and services will be used to address the requirements defined in this document. Also, it should be noted that it is possible to introduce additional components that provide value-added functions. One example would be Grouping Services that support groupings of entities and include mechanisms needed to manage Entity Groups.

In the following, requirements are denoted by REQ-xx=n, where "xx" refers to a specific requirements section and "n" refers to the number of the requirement. In some cases, optional requirements are specified and designated as OPT-xx-n. Non-requirements (i.e. aspects that might be considered candidates for requirements, but that are specifically not required to be supported at this point for various reasons) are designated as NON-REQ-xx-n.

5. Requirements for Generic Identity Services (GRIDS)

5.1. Mapping Services

REQ-MS-10: GRIDS-MS needs to maintain mappings between Identifiers and Locators.

REQ-MS-20: GRIDS-MS needs to provide services that allow clients to resolve a Locator for a given Identifier.

REQ-MS-30: GRIDS-MS MUST be able to support different models for authoritative mapping ownership, authorizing only the legitimate owner (or an entity acting on the owner's behalf) to update mapping data. Specifically, GRIDS-MS MUST be able to support (1) a model in which clients of a certain Identity can update mapping data for their Identifier, and (2) a model in which clients with a certain Locator can update mapping data with that Locator.

REQ-MS-40: GRIDS-MS MUST be able to support policy-based authorization for access to mapping services and to mapping information that is associated with specific Identities. Authorization MUST be provided on the basis of the client's identity that is accessing the service, or (in the case of an intermediary client such as a tunnel gateway) on whose behalf the service is being accessed.

Not every client will be entitled to every piece of mapping information. This allows GRIDS to be set up such that information is only available on a "need-to-know" basis to clients, facilitating the protection of private information for systems involved.

5.2. Identity Services and Identifiers

REQ-IS-10: GRIDS MUST support IDfs and IDys with the following characteristics

REQ-IS-20: GRIDS MUST provide proper separation between the concepts of "Identity" and "Identifier".

An Identity is synonymous to the being of an entity that can communicate in an Identity-Enabled Network. Identity information needs to be strongly secured and is generally kept private. Identity is represented by a special type of Identifier that is not expected to ever be exposed over-the-wire in regular data plane communications in the network. An Identifier, on the other hand, is a reference to an Identity respectively associated Entity. An Identifier will in generally be public and constitutes how an Identity will be known to others, including other Entities that wish to communicate with the Entity designated by the Identifier. Identifiers MAY also be included in data plane packets.

An Identity can be associated with multiple Identifiers. It should be noted that Locators are associated with Identifiers, not Identity.

An Identity does require a representation itself, which resembles in effect a "special" Identifier. Therefore, one question that is often asked concerns how Identifier and Identity really differ. One way in which to asnwer is that a regular Identifier always refers to another Identifier, whereas the Identity does not. In that sense, the Identity constitutes the root of a "tree" (generally flat with one level of hierarchy only, but not precluding multiple levels) of Identifiers that all belong to and reference the same Identity.

REQ-IS-30: GRIDS MUST support IDfs that refer to User Endpoints of a given Identity.

REQ-IS-40: GRIDS MUST support a model in which multiple Identifiers can be associated with the same Identity. GRIDS-IS MUST NOT have inherent limitations with regards to the number of Identifiers that may be simultaneously associated with the same Identity.

REQ-IS-50: GRIDS-IS MUST support the secure registration of new Identities.

"Secure" refers to mechanisms such as strong encryption and mutual authentication.

REQ-IS-60: GRIDS-IS MUST support the secure unregistration / revocation of an Identity

REQ-IS-70: GRIDS-IS MUST support the registration of new Identifiers (independent of registration of the associated Identity)

REQ-IS-80: GRIDS-IS MUST support the unregistration / revocation of Identifiers (independent of unregistration of the associated Identity)

REQ-IS-90: GRIDS MUST allow for the possibility to support other IDs (i.e. IDs not tied to the Identity of a User Endpoint) in the future, such as Group IDs.

REQ-IS-100: GRIDS-IS MUST support a model in which Identifiers are registered by a client representing the Identity that the IDf is associated with (e.g., a User Endpoint). GRIDS-IS MUST provide mechanisms that prevent usage of identifiers in ways that result in amgibuities with regards to determining an Identifier's associated Identity. To this end, GRIDS-IS MUST either prevent duplicate assignment of IDfs, specifically assignment of the same IDf to multiple Identities, or in case duplicate assignment occurs, ensure that an IDf's associated Identity is clear depending on the context, such as a local scope.

It is to be determined whether GRIDS-IS should prevent recycling of IDfs that had been assigned previously, even if since unregistered, or if it should provide a warning when such an IDf is reassigned.

REQ-IS-110: GRIDS-IS MUST support a model in which Identifiers are assigned and registered by an authority.

REQ-IS-120: GRIDS-IS MUST support the notion of an Identifier preference, providing a service that allows a client to resolve which Identifier it should when directing communication at a given destination. The Identifier used can be simply the same Identfier used by the client to refer to the destination in the resolution request, or it can be an alternative Identifier, such as an ephemeral Identifier. This capability SHOULD be provided in a manner that is integrated with GRIDS-MS, combining the resolution of Identifier with Locator information.

Such a capability is useful to enable anonymization of communciation traffic by obfuscating identifiers. For example, a client could request a Locator for a given, well-known Identifier for a destination, such as an Identifier listed in a public directory. GRIDS could indicate to not use the well-known Identifier, but (for example) an ephemeral Identifier instead, returned (for example) together with a Locator in response to a mapping resolution request.

REQ-IS-130: GRIDS-IS MUST be able to support different models for authoritative ownership of Identifier preferences, authorizing only the legitimate owner (or an entity acting on the owner's behalf) to update preference data. Specifically, GRIDS-IS MUST be able to support a model in which clients of a given Identity can update their own Identity preference data.

5.3. Subscription Services

REQ-SS-10: GRIDS-SS MUST allow clients to subscribe to updates for information that they are entitled to resolve. Specifically, GRIDS-SS MUST provide support for pushing updates about Locators for mappings that are of interest to a client with minimal incurred delay. GRIDS-SS MUST also provide suppport for pushing updates about preferred Identifiers of entities to whose mapping information the client is subscribed to.

5.4. Metadata Support and Services

Metadata can be tremendously useful for Identity-Enabled Networks, as indicated in both Problem Statement and Use Cases. Therefore, GRIDS SHOULD support Metadata Services (GRIDS-Meta) that allow to store and retrieve certain metadata associated with Identities, as well as metadata associated with Identifiers. The metadata supported has several properties in common:

GRIDS-Meta will have to support requirements that include the following:

5.5. Distribution and Redundancy

REQ-DR-10: GRIDS MUST be robust and very highly available.

REQ-DR-20: Any maintenance or upgrades to GRIDS MUST NOT affect availability of GRIDS services.

REQ-DR-30: GRIDS MUST support implementation using a distributed and redundant architecture. Specifically, failure of individual components MUST NOT bring down GRIDS as a whole.

As this is a requirements document, this document does not mandate a particular implementation architecture. That said, it should be noted that for any mapping system to be successful, it will need to be robust, distributed and provide redundancy. The mapping system design and architecture must avoid being single points of failure and MUST enforce resiliency.

Furthermore, it should be noted that the format of the Identifier may or may not play a role in how any underlying servers used to implement GRIDS might be distributed. It is conceivable that such distribution and placement of GRIDS components and data maintained by GRIDS will be affected by usage patterns.

5.6. Scale and Performance

REQ-SP-10: GRIDS MUST support very large (Internet-level) scale.

It is anticipated that GRIDS MUST be able to handle from the start billions of distinct Identifiers and mapping entries and allow for substatiantial future growth. While this document makes no statements about GRIDS architecture, it should be noted that GRIDS will likely not be provided by monolithic infrastructure but by means of multiple distributed and interconnected components.

REQ-SP-20: GRIDS MUST scale in a way such that increases in the number of Identifiers and mapping entries do not negatively degrade performance. Performance characteristics SHOULD be independent of scale. If such constant scale performance characteristics cannot be provided, performance MUST NOT degrade in worse than logarithmic manner based on the number of Entities.

REQ-SP-30: A characterization of GRIDS performance at scale, as well as associated GRIDS performance objectives, MUST include the following parameters:

REQ-SP-40: Characterization of performance MUST furthermore include information on scale at which the performance numbers are observed, such as number of Identifiers.

It is acknowledged that specific implementations may differ in terms of performance characteristics they can accomplish. Specific performance objectives against these parameters MAY be articulated at a later point. It is possible that such objectives will depend on the use case and that such use cases could result in specific qualification requirements imposed on GRIDS implementations for particular deployment scenarios. Furthermore, it is acknowledged that additional performance parameters can be articulated in addition to the ones specified here.

It should be noted that this document does not mandate a particular implementation architecture. However, in order to be able to meet the ambitious performance and scale requirements imposed by GRIDS, we note that an architecture that leverages principles of distribution, hierarchy, and aggregation may help to achieve these goals. Specifically, we note that in order to meet low latency goals, architectural considerations SHOULD include support for predictive and proactive dissemination and caching of data to locations that are close to clients that need to consume and interact with it. Conceivably, this may also involve application of data analytics and machine learning techniques.

5.7. GRIDS Security

REQ-SEC-10: GRIDS needs to be robust against direct and indirect attacks. If any component of GRIDS is attacked, the system needs to degrade gracefully.

REQ-SEC-20: GRIDS The addition and removal of components of the mapping system must be performed in a secure matter so as to not violate the integrity and operation of the system and service it provides.

REQ-SEC-30: GRIDS MUST authorize any requests directed at it. This includes requests that alter data maintained by GRIDS, as well as requests to retrieve data from GRIDS.

REQ-SEC-40: GRIDS MUST authenticate clients.

REQ-SEC-50: GRIDS MUST support some sort of audit trails. Specifically, GRIDS SHOULD log any requests being served and retain such logs, themselves properly secured, for a minimum (to-be-determined) time interval. In addition, GRIDS SHOULD at a minimum support per-client statistics (such as counter and rate information about resolution requests) and per-Identifier statistics (such as counters for accesses involving a specific Identifier).

REQ-SEC-60: Any Identity information MUST be encrypted. Specifically, Identity information MUST NOT (i.e., must never) be transmitted in the clear between GRIDS and a client. (Note the distinction between "Identity" and "Identifier". While Identity information MUST be protected and highly security sensitive, the same stringent requirements generally do not apply to Identifiers.)

In addition, Identity information MUST NOT be included in dataplane communications.

OPT-SEC-70: Encryption of GRIDS messages is optional. Specifically, it is optional to provide confidentiality of the requesters and the information they are requesting. (Note the exception regarding Identity information; Identity information MUST always be encrypted).

REQ-SEC-80: GRIDS MUST support cryptographic signing of information that it provides to allow clients to verify if the provided information is authentic.

REQ-SEC-90: GRIDS MUST support message rate-limiting and other heuristics must be part of the foundational support of the mapping system to protect GRIDS from sudden overloaded conditions and mitigate the effects of potential attacks.

5.8. Ability to support multiple instances

REQ-MI-10: GRIDS SHOULD be deployable in a private space and provide data isolation. For example, GRIDS MUST NOT require a company to expose all of its IDf as public IDfs if the company does not wish to do so.

Because Identifiers are unique only within a given GRIDS instance, it should be noted that by using multiple isolated instances of GRIDS, it is conceivable that overlapping IDfs can be supported. However this is not encouraged. One way in which this can be avoided is by by allocating private ranges for experimental use in the IDf name space, and requiring GRIDS to not assign any IDfs in an allocated Identifier space.

REQ-MI-20: GRIDS MUST support a distinction between "private" GRIDS data that is refined in scope to a given GRIDS instance, and "public" GRIDS data whose scope can be global. Specifically, private GRIDS data MUST NOT be shared beyond GRIDS boundaries, whereas public GRIDS data can be (and may have to be) shared across multiple GRIDS instances.

For example, some metadata may be private, such as metadata tieing an identity to personal information (such as customer data regarding the real-world owner of a communications entity.) Other metadata may be public, such as the type of endpoint (e.g. a mobile device, an IoT device, a compute server) that is associated with an entity. Likewise, the list of Identifiers that are in use or "claimed" constitute public GRIDS data (but not who those Identifiers are assigned to).

5.9. GRIDS Extensions

GRIDS MUST be designed in such a way to allow future extensions and services.

An example of a future extension concerns grouping services, involving Group IDs that represent groupings of User Endpoints. There are multiple applications as well as multiple types of groupings, for example administrative groupings (used to facilitate management), groupings that represent collections of User Endpoints that temporarily or permanently share the same fate (such as devices in the same railroad car that all use a communications gateway with the same locator), and groupings that represent multihomed endpoints (which include endpoints that mutually protect each other in case of failures).

The following are examples of requirements that GRIDS will have to support if grouping is to be supported as a feature. It should be noted the following list is incomplete, merely indicative of the types of requirements that will be associated with providing Grouping Services:

6. Security Considerations

Due to the sensitivity of Identity tied to Identifier and location data there is a need to pay attention to security ramifications. In particular, the security goals should include confidentiality, possible encryption for integrity of sensitive data and privacy.

7. IANA Considerations

This document has no actions for IANA.

8. Contributors

This present document is based on an extract of the first version of the draft. The authors and their affiliations on the original document are: D. Farinacci (, D. Meyer (Brocade), D. Lake (Cisco Systems), T. Herbert (Facebook), M. Menth (University of Tuebingen), Dipenkar Raychaudhuri (Rutgers University), Julius Mueller (ATT) and Padma Pillay-Esnault (Huawei).

There are two companion documents that were extracted from the -00 version of this document: Problem Statement in IDEAS [IDEAS-PS] and GRIDS Requirements [IDEAS-USE] which regroups all the authors above.

Uma Chunduri

Yingzhen Qu

Rutgers University: Parishad Karimi and Shreyasee Mukherjee

9. Acknowledgments

This document was produced using Marshall Rose's xml2rfc tool.

10. References

10.1. Normative References

[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/RFC2119, March 1997.

10.2. Informative References

[IDEAS-GAP] Qu, Y., Caballos, A., Moskowitz, R., Liu, B. and A. Stockmayer, "Gap Analysis for Identity Enabled Networks", July 2017.
[IDEAS-IDENTITY] Chunduri, U., Clemm, A. and M. Menth, "Identity Use Cases in IDEAS", June 2017.
[IDEAS-PS] Pillay-Esnault, P., Boucadair, M., Jacquenet, C., Fioccola, G. and A. Nennker, "Problem Statement for Identity Enabled Networks", July 2017.
[IDEAS-USE] Pillay-Esnault, P., Farinacci, D., Herbert, T., Jacquenet, C., Lake, D., Menth, M., Meyer, D. and D. Raychaudhuri, "Use Cases for Identity Enabled Networks", July 2017.

Authors' Addresses

Padma Pillay-Esnault Huawei 2330 Central Expressway Santa Clara,, CA 95050 USA EMail:
Alexander Clemm Huawei 2330 Central Expressway Santa Clara,, CA 95050 USA EMail:
Dino Farinacci San Jose, California USA EMail:
Dave Meyer Brocade EMail: