| < draft-ietf-opes-architecture-03.txt | draft-ietf-opes-architecture-04.txt > | |||
|---|---|---|---|---|
| Network Working Group Abbie. Barbir | Network Working Group A. Barbir | |||
| Internet-Draft Nortel Networks | Internet-Draft Nortel Networks | |||
| Expires: January 31, 2003 R. Chen | Expires: June 11, 2003 R. Chen | |||
| AT&T Labs | AT&T Labs | |||
| M. Hofmann | M. Hofmann | |||
| Bell Labs/Lucent Technologies | Bell Labs/Lucent Technologies | |||
| H. Orman | H. Orman | |||
| Purple Streak Development | Purple Streak Development | |||
| R. Penno | R. Penno | |||
| Nortel Networks | Nortel Networks | |||
| G. Tomlinson | December 11, 2002 | |||
| The Tomlinson Group | ||||
| August 2, 2002 | ||||
| An Architecture for Open Pluggable Edge Services (OPES) | An Architecture for Open Pluggable Edge Services (OPES) | |||
| draft-ietf-opes-architecture-03 | draft-ietf-opes-architecture-04 | |||
| Status of this Memo | Status of this Memo | |||
| This document is an Internet-Draft and is in full conformance with | This document is an Internet-Draft and is in full conformance with | |||
| all provisions of Section 10 of RFC2026. | all provisions of Section 10 of RFC2026. | |||
| Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
| Task Force (IETF), its areas, and its working groups. Note that | Task Force (IETF), its areas, and its working groups. Note that | |||
| other groups may also distribute working documents as Internet- | other groups may also distribute working documents as | |||
| Drafts. | Internet-Drafts. | |||
| 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." | |||
| The list of current Internet-Drafts can be accessed at http:// | The list of current Internet-Drafts can be accessed at http:// | |||
| www.ietf.org/ietf/1id-abstracts.txt. | www.ietf.org/ietf/1id-abstracts.txt. | |||
| The list of Internet-Draft Shadow Directories can be accessed at | The list of Internet-Draft Shadow Directories can be accessed at | |||
| http://www.ietf.org/shadow.html. | http://www.ietf.org/shadow.html. | |||
| This Internet-Draft will expire on January 31, 2003. | This Internet-Draft will expire on June 11, 2003. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (C) The Internet Society (2002). All Rights Reserved. | Copyright (C) The Internet Society (2002). All Rights Reserved. | |||
| Abstract | Abstract | |||
| This memo defines an architecture for a cooperative application | This memo defines an architecture that enables the creation of an | |||
| service in which a data provider, a data consumer, and zero or more | application service in which a data provider, a data consumer, and | |||
| application entities cooperatively realize a data stream service. | zero or more application entities cooperatively implement a data | |||
| stream service. | ||||
| Table of Contents | Table of Contents | |||
| 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
| 2. The Architecture . . . . . . . . . . . . . . . . . . . . . . 4 | 2. The Architecture . . . . . . . . . . . . . . . . . . . . . . 4 | |||
| 2.1 OPES Entities . . . . . . . . . . . . . . . . . . . . . . . 4 | 2.1 OPES Entities . . . . . . . . . . . . . . . . . . . . . . . 4 | |||
| 2.1.1 Data Dispatcher . . . . . . . . . . . . . . . . . . . . . . 4 | 2.1.1 Data Dispatcher . . . . . . . . . . . . . . . . . . . . . . 5 | |||
| 2.2 OPES Flows . . . . . . . . . . . . . . . . . . . . . . . . . 5 | 2.2 OPES Flows . . . . . . . . . . . . . . . . . . . . . . . . . 6 | |||
| 2.3 OPES Rules . . . . . . . . . . . . . . . . . . . . . . . . . 6 | 2.3 OPES Rules . . . . . . . . . . . . . . . . . . . . . . . . . 7 | |||
| 2.4 Callout Servers . . . . . . . . . . . . . . . . . . . . . . 7 | 2.4 Callout Servers . . . . . . . . . . . . . . . . . . . . . . 7 | |||
| 2.5 Tracing Facility . . . . . . . . . . . . . . . . . . . . . . 8 | 2.5 Tracing Facility . . . . . . . . . . . . . . . . . . . . . . 9 | |||
| 3. Security and Privacy Considerations . . . . . . . . . . . . 10 | 3. Security and Privacy Considerations . . . . . . . . . . . . 11 | |||
| 3.1 Trust Domains . . . . . . . . . . . . . . . . . . . . . . . 10 | 3.1 Trust Domains . . . . . . . . . . . . . . . . . . . . . . . 11 | |||
| 3.2 Callout protocol . . . . . . . . . . . . . . . . . . . . . . 11 | 3.2 Establishing Trust and Service Authorization . . . . . . . . 12 | |||
| 3.3 Privacy . . . . . . . . . . . . . . . . . . . . . . . . . . 11 | 3.3 Callout protocol . . . . . . . . . . . . . . . . . . . . . . 13 | |||
| 3.4 Establishing trust . . . . . . . . . . . . . . . . . . . . . 11 | 3.4 Privacy . . . . . . . . . . . . . . . . . . . . . . . . . . 14 | |||
| 3.5 End-to-end Integrity . . . . . . . . . . . . . . . . . . . . 12 | 3.5 End-to-end Integrity . . . . . . . . . . . . . . . . . . . . 14 | |||
| 4. Summary . . . . . . . . . . . . . . . . . . . . . . . . . . 13 | 4. IAB Architectural and Policy Considerations for OPES . . . . 15 | |||
| References . . . . . . . . . . . . . . . . . . . . . . . . . 14 | 4.1 IAB consideration (2.1) One-party consent . . . . . . . . . 15 | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . 14 | 4.2 IAB consideration (2.2) IP-layer communications . . . . . . 15 | |||
| A. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 16 | 4.3 IAB consideration (3.1 and 3.2) Notification . . . . . . . . 15 | |||
| Full Copyright Statement . . . . . . . . . . . . . . . . . . 17 | 4.4 IAB consideration (3.3) Non-blocking . . . . . . . . . . . . 15 | |||
| 4.5 IAB consideration (4.1) URI resolution . . . . . . . . . . . 15 | ||||
| 4.6 IAB consideration (4.2) Reference validity . . . . . . . . . 16 | ||||
| 4.7 IAB consideration (4.3) Application addressing extensions . 16 | ||||
| 4.8 IAB consideration (5.1) Privacy . . . . . . . . . . . . . . 16 | ||||
| 5. Security Considerations . . . . . . . . . . . . . . . . . . 17 | ||||
| 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . 18 | ||||
| 7. Summary . . . . . . . . . . . . . . . . . . . . . . . . . . 19 | ||||
| Normative References . . . . . . . . . . . . . . . . . . . . 20 | ||||
| Informative References . . . . . . . . . . . . . . . . . . . 21 | ||||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . 21 | ||||
| A. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 23 | ||||
| Intellectual Property and Copyright Statements . . . . . . . 24 | ||||
| 1. Introduction | 1. Introduction | |||
| When supplying a data stream service between a provider and a | When supplying a data stream service between a provider and a | |||
| consumer, the need may arise to provision the use of other | consumer, the need may arise to provision the use of other | |||
| application entities, in addition to the provider and consumer. For | application entities, in addition to the provider and consumer. For | |||
| example, some party may wish to customize a data stream as a service | example, some party may wish to customize a data stream as a service | |||
| to a consumer. The customization step might be based on the | to a consumer. The customization step might be based on the | |||
| customer's resource availability (e.g., display capabilities). | customer's resource availability (e.g., display capabilities). | |||
| In some cases in may be beneficial to provide a customization service | In some cases it may be beneficial to provide a customization service | |||
| at a network location between the provider and consumer host rather | at a network location between the provider and consumer host rather | |||
| than at one of these endpoints. For certain services performed on | than at one of these endpoints. For certain services performed on | |||
| end-user behalf this may be the only option of service deployment. | behalf of the end-user, this may be the only option of service | |||
| In this case, one or more additional application entities may | deployment. In this case, zero or more additional application | |||
| participate in the data stream service. There are many possible | entities may participate in the data stream service. There are many | |||
| provisioning scenarios which make a data stream service attractive. | possible provisioning scenarios which make a data stream service | |||
| In [1] a description of several scenarios is provided. | attractive. The OPES Use Cases and Deployment Scenarios [1] document | |||
| provides examples of OPES services. The document discusses services | ||||
| that modify requests, services that modify responses and services | ||||
| that create responses. It is recommended that the document on OPES | ||||
| Use Cases and Deployment Scenarios [1] be read before reading this | ||||
| document. | ||||
| This document presents the architectural components of Open Pluggable | This document presents the architectural components of Open Pluggable | |||
| Edge Services (OPES) that are needed in order to perform a data | Edge Services (OPES) that are needed in order to perform a data | |||
| stream service. The architecture addresses the IAB considerations | stream service. The architecture addresses the IAB considerations | |||
| described in [2]. These considerations are covered in the various | described in [2]. These considerations are covered in various parts | |||
| parts of the document, specifically with respect to tracing (Section | of the document. Section 2.5 addresses tracing, section 3 addresses | |||
| 2.5) and security considerations (Section 3). | security considerations. In section 4 a summary of IAB | |||
| considerations and how the architecture addresses them is provided. | ||||
| The document is organized as follows: Section 2 introduces the OPES | The document is organized as follows: Section 2 introduces the OPES | |||
| architecture. Section 3 discusses security considerations. Section | architecture. Section 3 discusses OPES security and privacy | |||
| 4 provides a summary of the architecture and the requirements for | considerations. Section 4 addresses IAB considerations for OPES. | |||
| interoperability. | Section 5 discusses security considerations. Section 6 addresses | |||
| IANA considerations. Section 7 provides a summary of the | ||||
| architecture and the requirements for interoperability. | ||||
| 2. The Architecture | 2. The Architecture | |||
| The architecture of Open Pluggable Edge Services (OPES) can be | The architecture of Open Pluggable Edge Services (OPES) can be | |||
| described in terms of three interrelated concepts, mainly: | described in terms of three interrelated concepts, mainly: | |||
| o OPES entities: processes operating in the network; | o OPES entities: processes operating in the network; | |||
| o OPES flows: data flows that are cooperatively realized by the | o OPES flows: data flows that are cooperatively realized by the | |||
| OPES entities; and, | OPES entities; and, | |||
| o OPES rules: these specify when and how to execute OPES | o OPES rules: these specify when and how to execute OPES services. | |||
| intermediary services. | ||||
| 2.1 OPES Entities | 2.1 OPES Entities | |||
| An OPES entity is an application that operates on a data flow between | An OPES entity is an application that operates on a data flow between | |||
| a data provider application and a data consumer application. OPES | a data provider application and a data consumer application. OPES | |||
| entities can be: | entities can be: | |||
| o an OPES service application, which analyzes and possibly | o an OPES service application, which analyzes and possibly | |||
| transforms messages exchanged between the data provider | transforms messages exchanged between the data provider | |||
| application and the data consumer application; | application and the data consumer application; | |||
| o a data dispatcher, which invokes an OPES service application based | o a data dispatcher, which invokes an OPES service application based | |||
| on OPES ruleset and application-specific knowledge. | on an OPES ruleset and application-specific knowledge. | |||
| In the network, OPES entities reside inside OPES processors. The | The cooperative behavior of OPES entities introduces additional | |||
| cooperative behavior of OPES entities introduces additional | ||||
| functionality for each data flow provided that it matches the OPES | functionality for each data flow provided that it matches the OPES | |||
| rules. | rules. In the network, OPES entities reside inside OPES processors. | |||
| In the current work, an OPES processor MUST include a data | ||||
| dispatcher. Furthermore, the data provider and data consumer | ||||
| applications are not considered as OPES entities. | ||||
| In the current work, the data provider and data consumer applications | In order to provide verifiable system integrity (see section 3.1 on | |||
| are not considered as OPES entities. The OPES architecture is | trust domains below), facilitate deployment of end-to-end encryption | |||
| largely independent of the protocol that is used by the OPES entities | and data integrity control , OPES processors MUST be: | |||
| to exchange data. However, this document selects HTTP [4] as the | ||||
| example for the underlying protocol in OPES flows. | o explicitly addressable at the IP layer by the end user (data | |||
| consumer application). This requirement does not preclude a chain | ||||
| of OPES processors with the first one in the chain explicitly | ||||
| addressed at the IP layer by the end user (data consumer | ||||
| application). | ||||
| o consented to by either the data consumer or data provider | ||||
| application. The details of this process is beyond the scope of | ||||
| the current work. | ||||
| The OPES architecture is largely independent of the protocol that is | ||||
| used by the data provider application and the data consumer | ||||
| application to exchange data. However, this document selects HTTP | ||||
| [3] as the example for the underlying protocol in OPES flows. | ||||
| 2.1.1 Data Dispatcher | 2.1.1 Data Dispatcher | |||
| Data dispatchers include a ruleset that can be compiled from several | Data dispatchers include a ruleset that can be compiled from several | |||
| sources and must resolve into an unambiguous result. The combined | sources and MUST resolve into an unambiguous result. The combined | |||
| ruleset enables an OPES processor to determine which service | ruleset enables an OPES processor to determine which service | |||
| applications to invoke for which data flow. Accordingly, the data | applications to invoke for which data flow. Accordingly, the data | |||
| dispatcher constitutes an enhanced policy enforcement point, where | dispatcher constitutes an enhanced policy enforcement point, where | |||
| policy rules are evaluated, service-specific data handlers and state | policy rules are evaluated, service-specific data handlers and state | |||
| information is maintained, as depicted in Figure 1. | information is maintained, as depicted in Figure 1. | |||
| --------------------------------------------------------------------- | ||||
| +----------+ | +----------+ | |||
| | callout | | | callout | | |||
| | server | | | server | | |||
| +----------+ | +----------+ | |||
| || | || | |||
| || | || | |||
| || | || | |||
| || | || | |||
| +--------------------------+ | +--------------------------+ | |||
| | +----------+ || | | | +-----------+ || | | |||
| | | OPES | || | | | | OPES | || | | |||
| | | service | || | | | | service | || | | |||
| | | appl | || | | | |application| || | | |||
| | +----------+ || | | | +-----------+ || | | |||
| | +----------------------+ | | | +----------------------+ | | |||
| OPES flow <---->| | data dispatcher and | |<----> OPES flow | OPES flow <---->| | data dispatcher and | |<----> OPES flow | |||
| | | policy enforcement | | | | | policy enforcement | | | |||
| | +----------------------+ | | | +----------------------+ | | |||
| | OPES | | | OPES | | |||
| | processor | | | processor | | |||
| +--------------------------+ | +--------------------------+ | |||
| Figure 1: Data Dispatchers | Figure 1: Data Dispatchers | |||
| --------------------------------------------------------------------- | The architecture allows for more than one policy enforcement point to | |||
| be present on an OPES flow. | ||||
| The architecture allows more than one policy enforcement point to be | ||||
| present on an OPES flow. | ||||
| 2.2 OPES Flows | 2.2 OPES Flows | |||
| An OPES flow is a cooperative undertaking between a data provider | An OPES flow is a cooperative undertaking between a data provider | |||
| application, a data consumer application, zero or more OPES service | application, a data consumer application, zero or more OPES service | |||
| applications, and zero or more data dispatchers. | applications, and one or more data dispatchers. | |||
| In order to understand the trust relationships between OPES entities, | Since policies are enforced by data dispatchers, the presence of at | |||
| each is labeled as residing in an administrative domain. Entities | least one data dispatcher is required in the OPES flow. | |||
| associated with a given OPES flow may reside in one or more | ||||
| administrative domains. | ||||
| For example, Figure 2 depicts a data flow (also known as an "OPES | data OPES OPES data | |||
| flow"), that spans two administrative domains. | provider processor A processor N consumer | |||
| --------------------------------------------------------------------- | +-----------+ +-----------+ . +-----------+ +-----------+ | |||
| | data | | OPES | . | OPES | | data | | ||||
| | consumer | | service | . | service | | provider | | ||||
| |application| |application| . |application| |application| | ||||
| +-----------+ +-----------+ . +-----------+ +-----------+ | ||||
| | | | | . | | | | | ||||
| | HTTP | | HTTP | . | HTTP | | HTTP | | ||||
| | | | | . | | | | | ||||
| +-----------+ +-----------+ . +-----------+ +-----------+ | ||||
| | TCP/IP | | TCP/IP | . | TCP/IP | | TCP/IP | | ||||
| +-----------+ +-----------+ . +-----------+ +-----------+ | ||||
| || || || . || || || | ||||
| ================ =====.======== =========== | ||||
| consumer administrative domain provider administrative domain | | <----------------- OPES flow -------------------> | | |||
| +------------------------------+ +------------------------------+ | ||||
| | | | | | ||||
| | data OPES | | OPES data | | ||||
| | consumer processor | | processor provider | | ||||
| | | | | | ||||
| | +----------+ +--------+ | | +--------+ +----------+ | | ||||
| | | data | | OPES | | | | OPES | | data | | | ||||
| | | consumer | |service | | | |service | | provider | | | ||||
| | | appl | | appl | | | | appl | | appl | | | ||||
| | +----------+ +--------+ | | +--------+ +----------+ | | ||||
| | | | | | | | | | | | | | ||||
| | | HTTP | | HTTP | | | | HTTP | | HTTP | | | ||||
| | | | | | | | | | | | | | ||||
| | +----------+ +--------+ | | +--------+ +----------+ | | ||||
| | | TCP/IP | | TCP/IP | | | | TCP/IP | | TCP/IP | | | ||||
| | +----------+ +--------+ | | +--------+ +----------+ | | ||||
| | || || || | | || || || | | ||||
| | ============= ================= ============= | | ||||
| | | | | | ||||
| +------------------------------+ +------------------------------+ | ||||
| | <----------------- OPES flow -----------------> | | ||||
| Figure 2: An OPES flow | Figure 2: An OPES flow | |||
| --------------------------------------------------------------------- | ||||
| Figure 2 depicts two data dispatchers that are present in the OPES | Figure 2 depicts two data dispatchers that are present in the OPES | |||
| flow. However, the architecture allows for zero or more data | flow. The architecture allows for one or more data dispatchers to be | |||
| dispatchers to be present in any flow. | present in any flow. | |||
| 2.3 OPES Rules | 2.3 OPES Rules | |||
| OPES policy regarding services and the data provided to them is | OPES policy regarding services and the data provided to them is | |||
| determined by a ruleset consisting of OPES rules. The rules consist | determined by a ruleset consisting of OPES rules. The rules consist | |||
| of a set of conditions and related actions. The ruleset is the | of a set of conditions and related actions. The ruleset is the | |||
| superset of all OPES rules on the processor. The OPES ruleset | superset of all OPES rules on the processor. The OPES ruleset | |||
| determines which service applications will operate on a data stream. | determines which service applications will operate on a data stream. | |||
| The communication of data stream elements to an application is | In this model, all data dispatchers are invoked for all flows. | |||
| performed by data dispatchers. In this model, all data filters are | ||||
| invoked for all flows. | ||||
| In order to ensure predictable behavior, the OPES architecture | In order to ensure predictable behavior, the OPES architecture | |||
| requires the use of a standardized schema for the purpose of defining | requires the use of a standardized schema for the purpose of defining | |||
| and interpreting the ruleset. The OPES architecture does not require | and interpreting the ruleset. The OPES architecture does not require | |||
| a mechanism for configuring a ruleset into a data dispatcher. This | a mechanism for configuring a ruleset into a data dispatcher. This | |||
| is treated as a local matter for each implementation (e.g., through | is treated as a local matter for each implementation (e.g., through | |||
| the use of a text editor, secure upload protocol, and so on). Future | the use of a text editor, secure upload protocol, and so on), as long | |||
| revisions of the architecture may introduce such a requirement. | as such mechanism complies with the requirements set forth in section | |||
| 3. | ||||
| 2.4 Callout Servers | 2.4 Callout Servers | |||
| The evaluation of OPES ruleset determines which service applications | The evaluation of the OPES ruleset determines which service | |||
| will operate on a data stream. How the ruleset is evaluated is not | applications will operate on a data stream. How the ruleset is | |||
| the subject of the architecture, except to note that it must result | evaluated is not the subject of the architecture, except to note that | |||
| in the same unambiguous result in all implementations. | it MUST result in the same unambiguous result in all implementations. | |||
| In some cases it may be useful for the OPES processor to distribute | In some cases it may be useful for the OPES processor to distribute | |||
| the responsibility of service evaluation by communicating with one or | the responsibility of service execution by communicating with one or | |||
| more callout servers. A data dispatcher invokes the services of a | more callout servers. A data dispatcher invokes the services of a | |||
| callout server by using the OPES callout protocol (OCP). The | callout server by using the OPES callout protocol (OCP). The | |||
| requirements for the OCP are given in [7]. The OCP is application- | requirements for the OCP are given in [6]. The OCP is application- | |||
| agnostic, being unaware of the semantics of the encapsulated | agnostic, being unaware of the semantics of the encapsulated | |||
| application protocol (e.g., HTTP). However, the OCP must | application protocol (e.g., HTTP). However, the data dispatcher MUST | |||
| incorporate a service aware vectoring capability that parses the data | incorporate a service aware vectoring capability that parses the data | |||
| flow according to the ruleset and delivers the data to the OPES | flow according to the ruleset and delivers the data to either the | |||
| service application that can be local or remote. | local or remote OPES service application. | |||
| In this model, OPES applications may be executed either on the same | ||||
| processor (or even in the same application environment) with the | ||||
| dispatcher or on a different OPES processor through OCP. The general | ||||
| interaction situation is depicted in Figure 3, which illustrates the | ||||
| positions and interaction of different components of OPES | ||||
| architecture. | ||||
| --------------------------------------------------------------------- | The general interaction situation is depicted in Figure 3, which | |||
| illustrates the positions and interaction of different components of | ||||
| OPES architecture. | ||||
| +--------------------------+ | +--------------------------+ | |||
| | +----------+ | | | +-----------+ | | |||
| | | OPES | | | | | OPES | | | |||
| | | service | | +---------------+ +-----------+ | | | service | | +---------------+ +-----------+ | |||
| | | appl | | |Callout Server | | Callout | | | |application| | | Callout | | Callout | | |||
| | +----------+ | | A | | Server | | | +-----------+ | | Server A | | Server X | | |||
| | || | | +--------+ | | X | | | || | | +--------+ | | | | |||
| | +----------------------+ | | | OPES | | | | | | +----------------------+ | | | OPES | | | | | |||
| | | data dispatcher | | | | Service| | | +--------+| | | | data dispatcher | | | | Service| | | +--------+| | |||
| | +----------------------+ | | | App2 | | | | OPES || | | +----------------------+ | | | Appl A | | | | OPES || | |||
| | || | | +--------+ | | |Service || | | || || | | +--------+ | | |Service || | |||
| | +-------+ | | || | | | AppX || | | +---------+ +-------+ | | || | | | Appl X || | |||
| | +---------+ | | | | +--------+ | ... | +--------|| | | | HTTP | | | | | +--------+ | ... | +--------|| | |||
| | | HTTP | | OCP |=========| | OCP | | | || | | | | | | OCP |=========| | OCP | | | || | | |||
| | +---------| +-------+ | | +--------+ | | +------+ | | | +---------+ +-------+ | | +--------+ | | +------+ | | |||
| | +---------+ || | +---------------+ | | OCP | | | | | | || | +---------------+ | | OCP | | | |||
| | | | =======================================| | | | | | TCP/IP | =======================================| | | | |||
| | | | | | +------+ | | | | | | | +------+ | | |||
| | | TCP/IP | | | | | | +---------+ | +-----------+ | |||
| =====| | |============== OPES ====== | | | +--------||-||-------------+ | |||
| | +---------+ | Data Flow +-----------+ | || || | |||
| +--------------------------+ | +--------+ || || +--------+ | |||
| |data |== =========================================|data | | ||||
| |producer| |consumer| | ||||
| +--------+ +--------+ | ||||
| Figure 3: Interaction of OPES Entities | Figure 3: Interaction of OPES Entities | |||
| --------------------------------------------------------------------- | ||||
| 2.5 Tracing Facility | 2.5 Tracing Facility | |||
| The OPES architecture requires that each data dispatcher to provide | The OPES architecture requires that each data dispatcher provides | |||
| tracing facilities that allow the appropriate verification of its | tracing facilities that allow the appropriate verification of its | |||
| operation. The OPES architecture requires that tracing be feasible | operation. The OPES architecture requires that tracing be feasible | |||
| on the OPES flow per OPES processor using in-band annotation. One | on the OPES flow per OPES processor using in-band annotation. One of | |||
| of those annotations could be a URI with more detailed information on | those annotations could be a URI with more detailed information on | |||
| the transformation that occurred to the data on the OPES flow. | the OPES services being executed in the OPES flow. | |||
| Providing the ability for in-band annotation MAY require header | Providing the ability for in-band annotation MAY require header | |||
| extensions on the application protocol that is used (e.g., HTTP). | extensions on the application protocol that is used (e.g., HTTP). | |||
| However, the presence of an OPES processor in the data request/ | However, the presence of an OPES processor in the data request/ | |||
| response flow SHALL NOT interfere with the operations of non-OPES | response flow SHALL NOT interfere with the operations of non-OPES | |||
| aware clients and servers. The support of these extensions to the | aware clients and servers. The support of these extensions to the | |||
| base protocol HTTP is not required by non-OPES clients and servers. | base protocol HTTP is not required by non-OPES clients and servers. | |||
| OPES processors must obey tracing, reporting and notification | OPES processors MUST obey tracing, reporting and notification | |||
| requirements set by the center of authority in the trust domain to | requirements set by the center of authority in the trust domain to | |||
| which OPES processor belongs. As part of these requirements OPES | which OPES processor belongs. As part of these requirements OPES | |||
| processor may be instructed to reject or ignore such requirements | processor may be instructed to reject or ignore such requirements | |||
| that originate from other trust domains. | that originate from other trust domains. | |||
| 3. Security and Privacy Considerations | 3. Security and Privacy Considerations | |||
| Each data flow must be secured in accordance with several policies. | Each data flow MUST be secured in accordance with several policies. | |||
| The primary stakeholders are the data consumer and the data provider. | The primary stakeholders are the data consumer and the data provider. | |||
| The secondary stakeholders are the entities to which they may have | The secondary stakeholders are the entities to which they may have | |||
| delegated their trust. The other stakeholders are the owners of the | delegated their trust. The other stakeholders are the owners of the | |||
| callout servers. Any of these parties may be participants in the | callout servers. Any of these parties may be participants in the | |||
| OPES flow. | OPES flow. | |||
| These parties must have a model, explicit or implicit, describing | These parties MUST have a model, explicit or implicit, describing | |||
| their trust policy; which of the other parties are trusted to operate | their trust policy; which of the other parties are trusted to operate | |||
| on data, and what security enhancements are required for | on data, and what security enhancements are required for | |||
| communication. The trust might be delegated for all data, or it | communication. The trust might be delegated for all data, or it | |||
| might be restricted to granularity as small as an application data | might be restricted to granularity as small as an application data | |||
| unit. | unit. | |||
| All parties that are involved in enforcing policies must communicate | All parties that are involved in enforcing policies MUST communicate | |||
| the policies to the parties that are involved. These parties are | the policies to the parties that are involved. These parties are | |||
| trusted to adhere to the communicated policies. | trusted to adhere to the communicated policies. | |||
| In order to delegate fine-grained trust, the parties must convey | In order to delegate fine-grained trust, the parties MUST convey | |||
| policy information by implicit contract, by a setup protocol, by a | policy information by implicit contract, by a setup protocol, by a | |||
| dynamic negotiation protocol, or in-line with application data | dynamic negotiation protocol, or in-line with application data | |||
| headers. | headers. | |||
| 3.1 Trust Domains | 3.1 Trust Domains | |||
| The delegation of authority starts at either a data consumer or data | The delegation of authority starts at either a data consumer or data | |||
| provider and moves to more distant entities in a "stepwise" fashion. | provider and moves to more distant entities in a "stepwise" fashion. | |||
| Stepwise means A delegates to B and B delegates to C and so forth. | Stepwise means A delegates to B and B delegates to C and so forth. | |||
| The entities thus "colored" by the delegation are said to form a | The entities thus "colored" by the delegation are said to form a | |||
| trust domain with respect to the original delegating party. Here, | trust domain with respect to the original delegating party. Here, | |||
| "Colored" means that if the first step in the chain is the data | "Colored" means that if the first step in the chain is the data | |||
| provider, then the stepwise delegation "colors" the chain with that | provider, then the stepwise delegation "colors" the chain with that | |||
| data "provider" color. The only colors that are defined are the data | data "provider" color. The only colors that are defined are the data | |||
| "provider" and the data "consumer". Delegation of authority | "provider" and the data "consumer". Delegation of authority | |||
| (coloring) propagates from the content producer start of authority or | (coloring) propagates from the content producer start of authority or | |||
| from the content consumer start of authority, that may be different | from the content consumer start of authority, that may be different | |||
| from the end points in the data flow. | from the end points in the data flow. | |||
| Figure 4 illustrates administrative domains and out-of-band rules and | ||||
| policy distribution. | ||||
| provider administrative domain consumer administrative domain | ||||
| +------------------------------+ +-------------------------------+ | ||||
| | +--------------+ | | +--------------+ | | ||||
| | |Provider | <- out-of-band rules, -> |Consumer | | | ||||
| | |Administrative|~~>~~~: policies and ~<~|Administrative| | | ||||
| | |Authority | : service authorization : |Authority | | | ||||
| | +--------------+ : | | : +--------------+ | | ||||
| | : : | | : : | | ||||
| | : : | | : : | | ||||
| | +----------+ : | | : +----------+ | | ||||
| | | callout | +---------+ | | +---------+ | callout | | | ||||
| | | server |====| | | | | |====| server | | | ||||
| | +----------+ | | | | | | +----------+ | | ||||
| | | OPES | | | | OPES | | | ||||
| | +----------+ |processor| | | |processor| +----------+ | | ||||
| | | | | | | | | | | | | | ||||
| | | data | | | | | | | | data | | | ||||
| | | provider | | | | | | | | consumer | | | ||||
| | | | +---------+ | | +---------+ +----------+ | | ||||
| | +----------+ || || | | || || +----------+ | | ||||
| | || || || | | || || || | | ||||
| | ============= ================= =========== | | ||||
| | | | | | ||||
| +-------------------------------+ +-------------------------------+ | ||||
| | <----------------- OPES flow -----------------> | | ||||
| Figure 4: OPES administrative domains and policy distribution | ||||
| In order to understand the trust relationships between OPES entities, | ||||
| each is labeled as residing in an administrative domain. Entities | ||||
| associated with a given OPES flow may reside in one or more | ||||
| administrative domains. | ||||
| An OPES processor may be in several trust domains at any time. There | An OPES processor may be in several trust domains at any time. There | |||
| is no restriction on whether the OPES processors are authorized by | is no restriction on whether the OPES processors are authorized by | |||
| data consumers and/or data providers. The original party has the | data consumers and/or data providers. The original party has the | |||
| option of forbidding or limiting redelegation. | option of forbidding or limiting redelegation. | |||
| An OPES processor must have a representation of its trust domain | An OPES processor MUST have a representation of its trust domain | |||
| memberships that it can report in whole or in part for tracing | memberships that it can report in whole or in part for tracing | |||
| purposes. It must include the name of the party which delegated each | purposes. It MUST include the name of the party that delegated each | |||
| privilege to it. | privilege to it. | |||
| 3.2 Callout protocol | 3.2 Establishing Trust and Service Authorization | |||
| The OPES processor will have configuration policy specifying what | ||||
| privileges the callout servers have and how they are to be | ||||
| identified. OPES uses standard protocols for authentication and | ||||
| otherwise security communication with callout servers. | ||||
| An OPES processor will have a trusted method for receiving | ||||
| configuration information such as rules for the data dispatcher, | ||||
| trusted callout servers, primary parties that opt-in or opt-out of | ||||
| individual services, etc. | ||||
| Protocol(s) for policy/rule distribution are out of scope for this | ||||
| document, but the OPES architecture assumes the existence of such a | ||||
| mechanism. | ||||
| Requirements for authorization mechanism are set in a separate | ||||
| document. | ||||
| Certain service requests, positive or negative, may be done in-band | ||||
| (for example OPES service bypass request, e.g. User agent can insert | ||||
| an HTTP header like "Bypass-OPES"). Such requests MUST be | ||||
| authenticated. The way OPES entities will honor such requests is | ||||
| subordinate to the authorization policies effective at that moment. | ||||
| 3.3 Callout protocol | ||||
| The determination of whether or not OPES processors will use the | The determination of whether or not OPES processors will use the | |||
| measures that are described in the previous section during their | measures that are described in the previous section during their | |||
| communication with callout servers depends on the details of how the | communication with callout servers depends on the details of how the | |||
| primary parties delegated trust to the OPES processors and the trust | primary parties delegated trust to the OPES processors and the trust | |||
| relationship between the OPES processors and the callout server. If | relationship between the OPES processors and the callout server. If | |||
| the OPES processors are in a single administrative domain with strong | the OPES processors are in a single administrative domain with strong | |||
| confidentiality guarantees, then encryption may be optional. | confidentiality guarantees, then encryption may be optional. | |||
| However, it is recommended that for all cases that encryption and | However, it is recommended that for all cases that encryption and | |||
| strong authentication be used. | strong authentication be used. | |||
| If the delegation mechanism names the trusted parties and their | If the delegation mechanism names the trusted parties and their | |||
| privileges in some way that permits authentication, then the OPES | privileges in some way that permits authentication, then the OPES | |||
| processors will be responsible for enforcing the policy and for using | processors will be responsible for enforcing the policy and for using | |||
| authentication as part of that enforcement. | authentication as part of that enforcement. | |||
| The callout servers must be aware of the policy governing the | The callout servers MUST be aware of the policy governing the | |||
| communication path. They must not, for example, communicate | communication path. They MUST not, for example, communicate | |||
| confidential information to auxiliary servers outside the trust | confidential information to auxiliary servers outside the trust | |||
| domain. | domain. | |||
| A separate security association must be used for each channel | A separate security association MUST be used for each channel | |||
| established between an OPES processor and a callout server. The | established between an OPES processor and a callout server. The | |||
| channels must be separate for different primary parties. | channels MUST be separate for different primary parties. | |||
| 3.3 Privacy | 3.4 Privacy | |||
| Some data from data consumers is considered "private" or "sensitive", | Some data from data consumers is considered "private" or "sensitive", | |||
| and OPES processors must both advise the primary parties of the their | and OPES processors MUST both advise the primary parties of their | |||
| privacy policy and respect the policies of the primary parties. The | privacy policy and respect the policies of the primary parties. The | |||
| privacy information must be conveyed on a per-flow basis. | privacy information MUST be conveyed on a per-flow basis. This can | |||
| be accomplished by using current available privacy techniques such as | ||||
| P3P [9] and HTTP privacy capabilities. | ||||
| The callout servers must also participate in handling of private | The callout servers MUST also participate in the handling of private | |||
| data, and they must be prepared to announce their own capabilities | data, and they MUST be prepared to announce their own capabilities | |||
| and to enforce the policy required by the primary parties. | and to enforce the policy required by the primary parties. | |||
| 3.4 Establishing trust | ||||
| The OPES processor will have configuration policy specifying what | ||||
| privileges the callout servers have and how they are to be | ||||
| identified. This is especially critical for third-party (fourth- | ||||
| party, etc.) callout servers. OPES uses standard protocols for | ||||
| authenticating and otherwise security communication with callout | ||||
| servers. | ||||
| An OPES processor will have a trusted method for receiving | ||||
| configuration information such as rules for the data dispatcher, | ||||
| trusted callout servers, primary parties that opt-in or opt-out of | ||||
| individual services, etc. | ||||
| 3.5 End-to-end Integrity | 3.5 End-to-end Integrity | |||
| Digital signature techniques can be used to mark data changes in such | Digital signature techniques can be used to mark data changes in such | |||
| a way that a third-party can verify that the changes are or are not | a way that a third-party can verify that the changes are or are not | |||
| consistent with the originating party's policy. This requires an | consistent with the originating party's policy. This requires an | |||
| inline manner of specifying policy and its binding to data, a trace | inline manner of specifying policy and its binding to data, a trace | |||
| of changes and the party making the changes, and strong identities | of changes and the party making the changes, and strong identities | |||
| and authentication methods. | and authentication methods. | |||
| Strong end-to-end integrity can fulfill some of the functions | Strong end-to-end integrity can fulfill some of the functions | |||
| required by "tracing". | required by "tracing". | |||
| 4. Summary | 4. IAB Architectural and Policy Considerations for OPES | |||
| This section addresses the IAB considerations for OPES [2] and | ||||
| summarizes how the architecture addresses them. | ||||
| 4.1 IAB consideration (2.1) One-party consent | ||||
| The IAB recommends that all OPES services are explicitly authorized | ||||
| by one of the application-layer end-hosts (that is, either the data | ||||
| consumer application or the data provider application). | ||||
| The current work requires that either the data consumer application | ||||
| or the data provider application consent to OPES services. These | ||||
| requirements have been addressed in sections 2 (section 2.1) and 3. | ||||
| 4.2 IAB consideration (2.2) IP-layer communications | ||||
| The IAB recommends that OPES processors must be explicitly addressed | ||||
| at the IP layer by the end user (data consumer application). | ||||
| This requirement has been addressed in section 2.1, whereby the | ||||
| architecture requires that OPES processors be addressable at the IP | ||||
| layer by the data consumer application. | ||||
| 4.3 IAB consideration (3.1 and 3.2) Notification | ||||
| The IAB recommends that the OPES architecture incorporates tracing | ||||
| facilities. Tracing enables data consumer and data provider | ||||
| applications to detect and respond to actions performed by OPES | ||||
| processors that are deemed inappropriate to the data consumer or data | ||||
| provider applications. | ||||
| Section 3.2 of this document discusses the tracing and notification | ||||
| facilities that must be supported by OPES services. | ||||
| 4.4 IAB consideration (3.3) Non-blocking | ||||
| The OPES architecture requires the specification of extensions to | ||||
| HTTP. These extension will provide the data consumer application to | ||||
| request a non-OPES version of the content from the data provider | ||||
| application. These requirements is covered in Section 3.2 | ||||
| 4.5 IAB consideration (4.1) URI resolution | ||||
| This consideration recommends that OPES documentation must be clear | ||||
| in describing that OPES services as being applied to the result of | ||||
| URI resolution, not as URI resolution itself. | ||||
| This requirement has been addressed in sections 2.5 and 3.2, whereby | ||||
| the proposed architecture requires OPES entities to document all the | ||||
| transformations that have been performed. | ||||
| 4.6 IAB consideration (4.2) Reference validity | ||||
| This consideration recommends that all proposed services must define | ||||
| their impact on inter- and intra-document reference validity. | ||||
| This requirement has been addressed in section 2.5 and throughout the | ||||
| document whereby OPES entities is required to document the performed | ||||
| transformations. | ||||
| 4.7 IAB consideration (4.3) Application addressing extensions | ||||
| This consideration recommends that any OPES services that cannot be | ||||
| achieved while respecting the above two considerations may be | ||||
| reviewed as potential requirements for Internet application | ||||
| addressing architecture extensions, but must not be undertaken as ad | ||||
| hoc fixes. | ||||
| The current work does not require extensions of the Internet | ||||
| application addressing architecture. | ||||
| 4.8 IAB consideration (5.1) Privacy | ||||
| This consideration recommends that the overall OPES framework must | ||||
| provide for mechanisms for end users to determine the privacy | ||||
| policies of OPES intermediaries. | ||||
| This consideration has been addressed in section 3. | ||||
| 5. Security Considerations | ||||
| The proposed work has to deal with security from various prospective. | ||||
| There are security and privacy issues that relate to data consumer | ||||
| application, callout protocol and the OPES flow. In [7] threat | ||||
| analysis of OPES entities are discussed. | ||||
| 6. IANA Considerations | ||||
| The proposed work will evaluate current protocols for OCP. If the | ||||
| work determines that a new protocol need to be developed, then there | ||||
| may be a need to request new numbers from IANA. | ||||
| 7. Summary | ||||
| Although the architecture supports a wide range of cooperative | Although the architecture supports a wide range of cooperative | |||
| transformation services, it has few requirements for | transformation services, it has few requirements for | |||
| interoperability. | interoperability. | |||
| The necessary and sufficient elements are specified in the following | The necessary and sufficient elements are specified in the following | |||
| documents: | documents: | |||
| o the OPES ruleset schema [6] which defines the syntax and semantics | o the OPES ruleset schema [5] which defines the syntax and semantics | |||
| of the rules interpreted by a data dispatcher; and, | of the rules interpreted by a data dispatcher; and, | |||
| o the OPES callout protocol (OCP) [7] which defines the requirements | o the OPES callout protocol (OCP) [6] which defines the requirements | |||
| for the protocol between a data dispatcher and a callout server. | for the protocol between a data dispatcher and a callout server. | |||
| References | Normative References | |||
| [1] McHenry, S., et. al, "OPES Scenarios and Use Cases", Internet- | [1] McHenry, S., et. al, "OPES Scenarios and Use Cases", | |||
| Draft TBD, May 2002. | Internet-Draft TBD, May 2002. | |||
| [2] Floyd, S. and L. Daigle, "IAB Architectural and Policy | [2] Floyd, S. and L. Daigle, "IAB Architectural and Policy | |||
| Considerations for Open Pluggable Edge Services", RFC 3238, | Considerations for Open Pluggable Edge Services", RFC 3238, | |||
| January 2002. | January 2002. | |||
| [3] Westerinen, A., Schnizlein, J., Strassner, J., Scherling, M., | [3] Fielding, R., Gettys, J., Mogul, J., Nielsen, H., Masinter, L., | |||
| Quinn, B., Herzog, S., Huynh, A., Carlson, M., Perry, J. and S. | ||||
| Waldbusser, "Terminology for Policy-Based Management", RFC 3198, | ||||
| November 2001. | ||||
| [4] Fielding, R., Gettys, J., Mogul, J., Nielsen, H., Masinter, L., | ||||
| Leach, P. and T. Berners-Lee, "Hypertext Transfer Protocol -- | Leach, P. and T. Berners-Lee, "Hypertext Transfer Protocol -- | |||
| HTTP/1.1", RFC 2616, June 1999. | HTTP/1.1", RFC 2616, June 1999. | |||
| [5] OPES working group, "OPES Service Authorization and Enforcement | [4] OPES working group, "OPES Service Authorization and Enforcement | |||
| Requirements", Internet-Draft TBD, May 2002. | Requirements", Internet-Draft TBD, May 2002. | |||
| [6] OPES working group, "OPES Ruleset Schema", Internet-Draft TBD, | [5] OPES working group, "OPES Ruleset Schema", Internet-Draft TBD, | |||
| May 2002. | May 2002. | |||
| [7] A. Beck et al., "Requirements for OPES Callout Protocols", | [6] A. Beck et al., "Requirements for OPES Callout Protocols", | |||
| Internet-Draft http://www.ietf.org/internet-drafts/draft-ietf- | Internet-Draft http://www.ietf.org/internet-drafts/ | |||
| opes-protocol-reqs-00.txt, May 2002. | draft-ietf-opes-protocol-reqs-03.txt, December 2002. | |||
| [7] A. Barbir et al., "Security Threats and Risks for Open Pluggable | ||||
| Edge Services", Internet-Draft http://www.ietf.org/ | ||||
| internet-drafts/draft-ietf-opes-threats-00.txt, October 2002. | ||||
| Informative References | ||||
| [8] Westerinen, A., Schnizlein, J., Strassner, J., Scherling, M., | ||||
| Quinn, B., Herzog, S., Huynh, A., Carlson, M., Perry, J. and S. | ||||
| Waldbusser, "Terminology for Policy-Based Management", RFC 3198, | ||||
| November 2001. | ||||
| [9] L. Cranor, et. al, "The Platform for Privacy Preferences 1.0 | ||||
| (P3P1.0) Specification", W3C Recommendation 16 http:// | ||||
| www.w3.org/TR/2002/REC-P3P-20020416/ , April 2002. | ||||
| Authors' Addresses | Authors' Addresses | |||
| Abbie Barbir | Abbie Barbir | |||
| Nortel Networks | Nortel Networks | |||
| 3500 Carling Avenue | 3500 Carling Avenue | |||
| Nepean, Ontario K2H 8E9 | Nepean, Ontario K2H 8E9 | |||
| Canada | Canada | |||
| Phone: +1 613 763 5229 | Phone: +1 613 763 5229 | |||
| skipping to change at page 15, line 25 ¶ | skipping to change at page 22, line 4 ¶ | |||
| Room 4F-513 | Room 4F-513 | |||
| 101 Crawfords Corner Road | 101 Crawfords Corner Road | |||
| Holmdel, NJ 07733 | Holmdel, NJ 07733 | |||
| US | US | |||
| Phone: +1 732 332 5983 | Phone: +1 732 332 5983 | |||
| EMail: hofmann@bell-labs.com | EMail: hofmann@bell-labs.com | |||
| Hilarie Orman | Hilarie Orman | |||
| Purple Streak Development | Purple Streak Development | |||
| EMail: ho@alum.mit.edu | EMail: ho@alum.mit.edu | |||
| Reinaldo Penno | Reinaldo Penno | |||
| Nortel Networks | Nortel Networks | |||
| 4555 Great America Parkway | 2305 Mission College Boulevard | |||
| Santa Clara, CA 95054 | San Jose, CA 95134 | |||
| US | US | |||
| Phone: | ||||
| EMail: rpenno@nortelnetworks.com | EMail: rpenno@nortelnetworks.com | |||
| Gary Tomlinson | Appendix A. Acknowledgements | |||
| The Tomlinson Group | ||||
| EMail: gary@tomlinsongroup.net | This document is the product of OPES WG. Oskar Batuner (Independent | |||
| consultant) and Andre Beck (Lucent) are additional authors that have | ||||
| contributed to this current document. | ||||
| Appendix A. Acknowledgements | Earlier versions of this work was done by Gary Tomlinson (The | |||
| Tomlinson Group) and Michael Condry (Intel). | ||||
| The authors gratefully acknowledge the contributions of: Marshall T. | The authors gratefully acknowledge the contributions of: John Morris, | |||
| Rose, John Morris, Oskar Batuner, Mark Baker and Ian Cooper. | Mark Baker, Ian Cooper and Marshall T. Rose. | |||
| Intellectual Property Statement | ||||
| The IETF takes no position regarding the validity or scope of any | ||||
| intellectual property or other rights that might be claimed to | ||||
| pertain to the implementation or use of the technology described in | ||||
| this document or the extent to which any license under such rights | ||||
| might or might not be available; neither does it represent that it | ||||
| has made any effort to identify any such rights. Information on the | ||||
| IETF's procedures with respect to rights in standards-track and | ||||
| standards-related documentation can be found in BCP-11. Copies of | ||||
| claims of rights made available for publication and any assurances of | ||||
| licenses to be made available, or the result of an attempt made to | ||||
| obtain a general license or permission for the use of such | ||||
| proprietary rights by implementors or users of this specification can | ||||
| be obtained from the IETF Secretariat. | ||||
| The IETF invites any interested party to bring to its attention any | ||||
| copyrights, patents or patent applications, or other proprietary | ||||
| rights which may cover technology that may be required to practice | ||||
| this standard. Please address the information to the IETF Executive | ||||
| Director. | ||||
| Full Copyright Statement | Full Copyright Statement | |||
| Copyright (C) The Internet Society (2002). All Rights Reserved. | Copyright (C) The Internet Society (2002). All Rights Reserved. | |||
| This document and translations of it may be copied and furnished to | This document and translations of it may be copied and furnished to | |||
| others, and derivative works that comment on or otherwise explain it | others, and derivative works that comment on or otherwise explain it | |||
| or assist in its implementation may be prepared, copied, published | or assist in its implementation may be prepared, copied, published | |||
| and distributed, in whole or in part, without restriction of any | and distributed, in whole or in part, without restriction of any | |||
| kind, provided that the above copyright notice and this paragraph are | kind, provided that the above copyright notice and this paragraph are | |||
| included on all such copies and derivative works. However, this | included on all such copies and derivative works. However, this | |||
| document itself may not be modified in any way, such as by removing | document itself may not be modified in any way, such as by removing | |||
| the copyright notice or references to the Internet Society or other | the copyright notice or references to the Internet Society or other | |||
| Internet organizations, except as needed for the purpose of | Internet organizations, except as needed for the purpose of | |||
| developing Internet standards in which case the procedures for | developing Internet standards in which case the procedures for | |||
| copyrights defined in the Internet Standards process must be | copyrights defined in the Internet Standards process must be | |||
| followed, or as required to translate it into languages other than | followed, or as required to translate it into languages other than | |||
| English. | English. | |||
| The limited permissions granted above are perpetual and will not be | The limited permissions granted above are perpetual and will not be | |||
| revoked by the Internet Society or its successors or assigns. | revoked by the Internet Society or its successors or assignees. | |||
| This document and the information contained herein is provided on an | This document and the information contained herein is provided on an | |||
| "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING | "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING | |||
| TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING | TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING | |||
| BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION | BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION | |||
| HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF | HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF | |||
| MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. | MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. | |||
| Acknowledgement | Acknowledgement | |||
| End of changes. 79 change blocks. | ||||
| 225 lines changed or deleted | 412 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/ | ||||