--- 1/draft-ietf-cdni-logging-02.txt 2013-05-31 18:14:50.486338959 +0100 +++ 2/draft-ietf-cdni-logging-03.txt 2013-05-31 18:14:50.554340657 +0100 @@ -1,22 +1,22 @@ Internet Engineering Task Force G. Bertrand, Ed. Internet-Draft I. Oprescu, Ed. Intended status: Informational France Telecom - Orange -Expires: November 28, 2013 F. Le Faucheur, Ed. +Expires: December 02, 2013 F. Le Faucheur, Ed. Cisco Systems R. Peterkofsky Skytide, Inc. - May 27, 2013 + May 31, 2013 CDNI Logging Interface - draft-ietf-cdni-logging-02 + draft-ietf-cdni-logging-03 Abstract This memo specifies the Logging interface between a downstream CDN (dCDN) and an upstream CDN (uCDN) that are interconnected as per the CDN Interconnection (CDNI) framework. First, it describes a reference model for CDNI logging. Then, it specifies the CDNI Logging File format and the actual protocol for exchange of CDNI Logging Files. @@ -28,21 +28,21 @@ 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 http://datatracker.ietf.org/drafts/current/. 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 November 28, 2013. + This Internet-Draft will expire on December 02, 2013. Copyright Notice Copyright (c) 2013 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 (http://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents @@ -78,52 +78,52 @@ 2.2.5. Log-Consuming Applications . . . . . . . . . . . . . 12 2.2.5.1. Maintenance/Debugging . . . . . . . . . . . . . . 12 2.2.5.2. Accounting . . . . . . . . . . . . . . . . . . . 12 2.2.5.3. Analytics and Reporting . . . . . . . . . . . . . 13 2.2.5.4. Security . . . . . . . . . . . . . . . . . . . . 13 2.2.5.5. Legal Logging Duties . . . . . . . . . . . . . . 13 2.2.5.6. Notions common to multiple Log Consuming Applications . . . . . . . . . . . . . . . . . . 13 3. CDNI Logging File Format . . . . . . . . . . . . . . . . . . 15 3.1. CDNI Logging File Directives . . . . . . . . . . . . . . 16 - 3.2. Logging Records . . . . . . . . . . . . . . . . . . . . . 19 - 3.2.1. HTTP Request Logging Record . . . . . . . . . . . . . 20 - 3.2.2. CDNI Logging File Example . . . . . . . . . . . . . . 26 - 3.3. Fields and Directives Formats . . . . . . . . . . . . . . 27 - 4. CDNI Logging File Exchange Protocol . . . . . . . . . . . . . 27 - 4.1. CDNI Logging Feed . . . . . . . . . . . . . . . . . . . . 28 - 4.2. CDNI Logging File Pull . . . . . . . . . . . . . . . . . 28 - 5. Open Issues . . . . . . . . . . . . . . . . . . . . . . . . . 29 + 3.2. Logging Records . . . . . . . . . . . . . . . . . . . . . 20 + 3.2.1. HTTP Request Logging Record . . . . . . . . . . . . . 21 + 3.2.2. CDNI Logging File Example . . . . . . . . . . . . . . 27 + 3.3. Fields and Directives Formats . . . . . . . . . . . . . . 28 + 4. CDNI Logging File Exchange Protocol . . . . . . . . . . . . . 28 + 4.1. CDNI Logging Feed . . . . . . . . . . . . . . . . . . . . 29 + 4.2. CDNI Logging File Pull . . . . . . . . . . . . . . . . . 29 + 5. Open Issues . . . . . . . . . . . . . . . . . . . . . . . . . 30 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 31 7. Security Considerations . . . . . . . . . . . . . . . . . . . 31 7.1. Authentication, Confidentiality, Integrity Protection . . 31 7.2. Non Repudiation . . . . . . . . . . . . . . . . . . . . . 32 7.3. Privacy . . . . . . . . . . . . . . . . . . . . . . . . . 32 - 8. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 32 + 8. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 33 9. References . . . . . . . . . . . . . . . . . . . . . . . . . 33 9.1. Normative References . . . . . . . . . . . . . . . . . . 33 - 9.2. Informative References . . . . . . . . . . . . . . . . . 33 + 9.2. Informative References . . . . . . . . . . . . . . . . . 34 Appendix A. Requirements . . . . . . . . . . . . . . . . . . . . 34 A.1. Compliance with cdni-requirements . . . . . . . . . . . . 34 - A.2. Additional Requirements . . . . . . . . . . . . . . . . . 34 - A.2.1. Timeliness . . . . . . . . . . . . . . . . . . . . . 34 + A.2. Additional Requirements . . . . . . . . . . . . . . . . . 35 + A.2.1. Timeliness . . . . . . . . . . . . . . . . . . . . . 35 A.2.2. Reliability . . . . . . . . . . . . . . . . . . . . . 35 A.2.3. Security . . . . . . . . . . . . . . . . . . . . . . 35 A.2.4. Scalability . . . . . . . . . . . . . . . . . . . . . 35 - A.2.5. Consistency between CDNI Logging and CDN Logging . . 35 - A.2.6. Dispatching/Filtering . . . . . . . . . . . . . . . . 35 + A.2.5. Consistency between CDNI Logging and CDN Logging . . 36 + A.2.6. Dispatching/Filtering . . . . . . . . . . . . . . . . 36 Appendix B. Analysis of candidate protocols for Logging Transport . . . . . . . . . . . . . . . . . . . . . 36 B.1. Syslog . . . . . . . . . . . . . . . . . . . . . . . . . 36 B.2. XMPP . . . . . . . . . . . . . . . . . . . . . . . . . . 36 - B.3. SNMP . . . . . . . . . . . . . . . . . . . . . . . . . . 36 - Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 36 + B.3. SNMP . . . . . . . . . . . . . . . . . . . . . . . . . . 37 + Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 37 1. Introduction This memo specifies the Logging interface between a downstream CDN (dCDN) and an upstream CDN (uCDN). First, it describes a reference model for CDNI logging. Then, it specifies the CDNI Logging File format and the actual protocol for exchange of CDNI Logging Files. The reader should be familiar with the following documents: @@ -739,42 +739,57 @@ o UUID: * format: * semantic: this is Universally Unique IDentifier for the CDNI Logging File as specified in [RFC4122]. * occurrence: there MUST be one and only one instance of this directive. - o Origin: + o Claimed-Origin: * format: - * semantic: this identifies the entity transmitting the CDNI - Logging File (e.g. the host in a dCDN supporting the CDNI - Logging interface) or the entity responsible for transmitting - the CDNI Logging File (e.g. the dCDN). + * semantic: this contains the claimed identification of the + entity transmitting the CDNI Logging File (e.g. the host in a + dCDN supporting the CDNI Logging interface) or the entity + responsible for transmitting the CDNI Logging File (e.g. the + dCDN). * occurrence: there MUST be zero or one instance of this - directive. This directive MAY be included by the - implementation transmitting the CDNI Logging file. When - included by the transmitting side, it MUST be validated or - over-written by the receiving side. When, it is not included - by the transmitting side, it MAY be added locally by the - receiving side. [Editor's Note if we include a non-repudiation - mechanism: discuss the fact that this will provide incentive to - dCDN to not cheat , as it can be detected] + directive. This directive MAY be included by the dCDN. It + MUST NOT be included or modified by the uCDN. + + o Verified-Origin: + + * format: + * semantic: this contains the identification, as established by + the entity receiving the CDNI Logging file, of the entity + transmitting the CDNI Logging File (e.g. the host in a dCDN + supporting the CDNI Logging interface) or the entity + responsible for transmitting the CDNI Logging File (e.g. the + dCDN). + + * occurrence: there MUST be zero or one instance of this + directive. This directive MAY be added by the uCDN. It MUST + NOT be included by the dCDN. The mechanisms used by the uCDN + to establih and validate the entity respondible for the CDNI + Logging File is outside the scope of the present document. We + observe that, in particular, this may be achieved through + authentication mechanisms that are part of the CDNI Logging + File pull mechanism (Section 4.2). o Record-Type: * format: + * semantic: indicates the type of the CDNI Logging Records that follow this directive, until another Record-Type directive (or the end of the CDNI Logging File). "cdni_http_request_v1" MUST be indicated in the Record-Type directive for CDNI Logging records corresponding to HTTP request (e.g. a HTTP delivery request) as specified in Section 3.2.1. * occurrence: there MUST be at least one instance of this directive. The first instance of this directive MUST precede a Fields directive and precede any CDNI Logging Record. @@ -782,131 +797,146 @@ o Fields: * format: [ ], where the allowed list of are specified for each Record-Type in Section 3.2. * semantic: this lists the names of all the fields for which a value is to appear in the CDNI Logging Records that are after this directive. The names of the fields, as well as their possible occurrences, are specified for each type of CDNI Logging Records in Section 3.2. The field names listed in this - directive MUST be separated by a whitespace (" "). + directive MUST be separated by the "horizontal tabulation + (TAB)" character. * occurrence: there MUST be at least one instance of this directive per Record-Type directive. The first instance of this directive for a given Record-Type MUST precede any CDNI Logging Record for this Record-Type. o Integrity-Hash: * format: * semantic: This directive permits the detection of a corrupted CDNI Logging File. This can be useful, for instance, if a problem occurs on the filesystem of the dCDN Logging system and leads to a truncation of a logging file. The Integrity-Hash value is computed, and included in this directive by the entity - that transmits the CDNI Logging File, by applying the MD5 - ([RFC1321]) cryptographic hash function on the CDNI Logging - File, including all the directives and logging records, up to - the Intergrity-Hash directive itself, excluding the Integrity- - Hash directive itself and, when present, also excluding the - Non-Repudiation-Hash directive. The Integrity-Hash value is - represented as a US-ASCII encoded hexadecimal number, 32 digits - long (representing a 128 bit hash value). The entity receiving - the CDNI Logging File also computes in a similar way the MD5 - hash on the received CDNI Logging File and compares this hash - to the value of the Integrity-Hash directive. If the two - values are equal, then the received CDNI Logging File MUST be - considered non-corrupted. If the two values are different, the - received CDNI Logging File MUST be considered corrupted. The - behavior of the entity that received a corrupted CDNI Logging - File is outside the scope of this specification; we note that - the entity MAY attempt to pull again the same CDNI Logging file - from the transmitting entity. + that transmits the CDNI Logging File. It is computed by + applying the MD5 ([RFC1321]) cryptographic hash function on the + CDNI Logging File, including all the directives and logging + records, up to the Intergrity-Hash directive itself, excluding + the Integrity-Hash directive itself and, when present, also + excluding the Non-Repudiation-Hash directive. The Integrity- + Hash value is represented as a US-ASCII encoded hexadecimal + number, 32 digits long (representing a 128 bit hash value). + The entity receiving the CDNI Logging File also computes in a + similar way the MD5 hash on the received CDNI Logging File and + compares this hash to the value of the Integrity-Hash + directive. If the two values are equal, then the received CDNI + Logging File MUST be considered non-corrupted. If the two + values are different, the received CDNI Logging File MUST be + considered corrupted. The behavior of the entity that received + a corrupted CDNI Logging File is outside the scope of this + specification; we note that the entity MAY attempt to pull + again the same CDNI Logging file from the transmitting entity. + If the entity receiving the CDNI Logging File adds a Verified- + Origin directive, it MUST recompute and update the Integrity- + Hash directive so it also protects the added Verified-Origin + directive. - * occurrence: there MUST be one and only one instance of this - directive. This field MUST be the last line of the CDNI - Logging File when the Non-Repudiation-Hash is absent, and MUST - be the one before last line of the CDNI Logging File when the - Non-Repudiation-Hash is present. + * occurrence: there MUST be zero or one instance of this + directive. There SHOULD be one instance of this directive. + One situation where that directive could be omitted is where + integrity protection is already provided via another mechanism + (for example if an integrity hash is associated to the CDNI + Logging file out of band through the CDNI Logging Logging Feed + Section 4.1 leveraging ATOM extensions such as those proposed + in [I-D.snell-atompub-link-extensions]. When present, this + field MUST be the last line of the CDNI Logging File when the + Non-Repudiation-Hash is absent, and MUST be the one before last + line of the CDNI Logging File when the Non-Repudiation-Hash is + present. - o Non-Repudiation-Hash: + o Non-Repudiation-Signature: * format: - - * semantic: This hash field permits the non-repudiation of the - CDNI Logging File by the entity that transmitted the CDNI - Logging File. [Editor's Note: I need help for specifying the - appropriate hash - ie hash must be signed with private-key of - entity transmitting the CDNI Logging File] + * semantic: This field contains a signature that supports the + non-repudiation of the CDNI Logging File by the entity that + transmitted the CDNI Logging File. [Editor's Note: Detailed + description To Be Added. David Mandelberg has the lead for + drafting text.The text needs to indicate that the Claimed- + Origin directive MUST be covered and the Verified-Origin + directive MUST NOT be covered by the signature. We may want to + refer to RFC4949 for terminology around Non-Redudiation] * occurrence: there MAY be one and only one instance of this directive. When present, this directive MUST be the last line of the CDNI Logging File. 3.2. Logging Records A CDNI Logging Record consists of a sequence of CDNI Logging Fields relating to that single CDNI Logging Record. CDNI Logging Fields MUST be separated by the "horizontal tabulation (TAB)" character. Some CDNI Logging field names use a prefix scheme similar to the one used in W3C Extended Log File Format [ELF] to facilitate readability. The semantics of the prefix in the present document is: o c: refers to the User Agent that issues the request (corresponds to the "client" of W3C Extended Log Format) + o d: refers to the dCDN (relative to a given CDN acting as a uCDN) + o s: refers to the dCDN Surrogate that serves the request (corresponds to the "server" of W3C Extended Log Format) + o u: refers to the uCDN (relative to a given CDN acting as a dCDN) + o cs: refers to communication from the dCDN Surrogate towards the User-Agent o sc: refers to communication from the User-Agent towards the dCDN Surrogate - [Editor's Note: see discussion with Rob about adding definition for - "r"] - An implementation of the CDNI Logging interface as per the present specification MUST support the CDNI HTTP Delivery Records as specified in Section 3.2.1. [Editor's Note": other types of delivery records will be listed here if we specify other types for this version eg Request Routing]. The formats listed in this section in the form <...> are specified in Section 3.3). 3.2.1. HTTP Request Logging Record The HTTP Request Logging Record contains the following CDNI Logging Fields, listed by their field name: o date: * format: - * semantic: the date at which the processing of request started + * semantic: the date at which the processing of request completed on the Surrogate. * occurrence: there MUST be one and only one instance of this field. o time: * format: