draft-ietf-cdni-logging-21.txt   draft-ietf-cdni-logging-22.txt 
Internet Engineering Task Force F. Le Faucheur, Ed. Internet Engineering Task Force F. Le Faucheur, Ed.
Internet-Draft Cisco Systems Internet-Draft Cisco Systems
Intended status: Standards Track G. Bertrand, Ed. Intended status: Standards Track G. Bertrand, Ed.
Expires: May 5, 2016 I. Oprescu, Ed. Expires: September 3, 2016 I. Oprescu, Ed.
Orange Orange
R. Peterkofsky R. Peterkofsky
Skytide, Inc. Skytide, Inc.
November 2, 2015 March 2, 2016
CDNI Logging Interface CDNI Logging Interface
draft-ietf-cdni-logging-21 draft-ietf-cdni-logging-22
Abstract Abstract
This memo specifies the Logging interface between a downstream CDN This memo specifies the Logging interface between a downstream CDN
(dCDN) and an upstream CDN (uCDN) that are interconnected as per the (dCDN) and an upstream CDN (uCDN) that are interconnected as per the
CDN Interconnection (CDNI) framework. First, it describes a CDN Interconnection (CDNI) framework. First, it describes a
reference model for CDNI logging. Then, it specifies the CDNI reference model for CDNI logging. Then, it specifies the CDNI
Logging File format and the actual protocol for exchange of CDNI Logging File format and the actual protocol for exchange of CDNI
Logging Files. Logging Files.
skipping to change at page 1, line 39 skipping to change at page 1, line 39
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet- working documents as Internet-Drafts. The list of current Internet-
Drafts is at http://datatracker.ietf.org/drafts/current/. Drafts is at http://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
This Internet-Draft will expire on May 5, 2016. This Internet-Draft will expire on September 3, 2016.
Copyright Notice Copyright Notice
Copyright (c) 2015 IETF Trust and the persons identified as the Copyright (c) 2016 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info) in effect on the date of (http://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with respect carefully, as they describe your rights and restrictions with respect
to this document. Code Components extracted from this document must to this document. Code Components extracted from this document must
include Simplified BSD License text as described in Section 4.e of include Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as the Trust Legal Provisions and are provided without warranty as
skipping to change at page 16, line 41 skipping to change at page 16, line 41
OCTET = %x00-FF ; 8 bits of data OCTET = %x00-FF ; 8 bits of data
The present document also uses the following rules from [RFC3986]: The present document also uses the following rules from [RFC3986]:
host = as specified in section 3.2.2 of [RFC3986]. host = as specified in section 3.2.2 of [RFC3986].
IPv4address = as specified in section 3.2.2 of [RFC3986]. IPv4address = as specified in section 3.2.2 of [RFC3986].
IPv6address = as specified in section 3.2.2 of [RFC3986]. IPv6address = as specified in section 3.2.2 of [RFC3986].
partial-time = as specified in [RFC3339].
The present document also defines the following additional rules: The present document also defines the following additional rules:
ADDRESS = IPv4address / IPv6address ADDRESS = IPv4address / IPv6address
ALPHANUM = ALPHA / DIGIT ALPHANUM = ALPHA / DIGIT
DATE = 4DIGIT "-" 2DIGIT "-" 2DIGIT DATE = 4DIGIT "-" 2DIGIT "-" 2DIGIT
; Dates are encoded as "full-date" specified in [RFC3339]. ; Dates are encoded as "full-date" specified in [RFC3339].
DEC = 1*DIGIT ["." *DIGIT] DEC = 1*DIGIT ["." 1*DIGIT]
NAMEFORMAT = ALPHANUM *(ALPHANUM / "_" / "-") NAMEFORMAT = ALPHANUM *(ALPHANUM / "_" / "-")
QSTRING = DQUOTE *(NDQUOTE / PCT-ENCODED) DQUOTE QSTRING = DQUOTE *(NDQUOTE / PCT-ENCODED) DQUOTE
NDQUOTE = %x20-21 / %x23-24 / %x26-7E / UTF8-2 / UTF8-3 / UTF8-4 NDQUOTE = %x20-21 / %x23-24 / %x26-7E / UTF8-2 / UTF8-3 / UTF8-4
; whereby a DQUOTE is conveyed inside a QSTRING unambiguously ; whereby a DQUOTE is conveyed inside a QSTRING unambiguously
by escaping it with PCT-ENCODED. by escaping it with PCT-ENCODED.
PCT-ENCODED = "%" HEXDIG HEXDIG PCT-ENCODED = "%" HEXDIG HEXDIG
; percent encoding is used for escaping octets that might be ; percent encoding is used for escaping octets that might be
possible in HTTP headers such as bare CR, bare LF, CR LF, HTAB, possible in HTTP headers such as bare CR, bare LF, CR LF, HTAB,
SP or null. These octets are rendered with percent encoding in SP or null. These octets are rendered with percent encoding in
ABNF as specified by [RFC3986] in order to avoid considering ABNF as specified by [RFC3986] in order to avoid considering
them as separators for the logging records. them as separators for the logging records.
NHTABSTRING = 1*(SP / VCHAR) NHTABSTRING = 1*(SP / VCHAR)
TIME = 2DIGIT ":" 2DIGIT ":" 2DIGIT ["." *DIGIT] TIME = partial-time
; Times are encoded as "partial-time" specified in [RFC3339].
USER-COMMENT = * (SP / VCHAR / UTF8-2 / UTF8-3 / UTF8-4) USER-COMMENT = * (SP / VCHAR / UTF8-2 / UTF8-3 / UTF8-4)
3.2. CDNI Logging File Structure 3.2. CDNI Logging File Structure
As defined in Section 1.1: a CDNI Logging Field is as an atomic As defined in Section 1.1: a CDNI Logging Field is as an atomic
logging information element, a CDNI Logging Record is a collection of logging information element, a CDNI Logging Record is a collection of
CDNI Logging fields containing all logging information corresponding CDNI Logging fields containing all logging information corresponding
to a single logging event, and a CDNI Logging File contains a to a single logging event, and a CDNI Logging File contains a
collection of CDNI Logging Records. This structure is illustrated in collection of CDNI Logging Records. This structure is illustrated in
skipping to change at page 19, line 48 skipping to change at page 19, line 48
Note that future extensions MUST be compliant with the previous Note that future extensions MUST be compliant with the previous
description. The following examples depict the structure of a description. The following examples depict the structure of a
CDNILOGFILE as defined currently by the record-type CDNILOGFILE as defined currently by the record-type
"cdni_http_request_v1." "cdni_http_request_v1."
DIRLINE = "#" directive CRLF DIRLINE = "#" directive CRLF
DIRGROUP = 1*DIRLINE DIRGROUP = 1*DIRLINE
RECLINE = any subset of record values that match what is expected RECLINE = <any subset of record values that match what is expected
according to the fields directive within the immediately preceding according to the fields directive within the immediately preceding
DIRGROUP. DIRGROUP>
RECGROUP = *RECLINE RECGROUP = *RECLINE
CDNILOGFILE = 1*(DIRGROUP RECGROUP) CDNILOGFILE = 1*(DIRGROUP RECGROUP)
All directive names and field names defined in the logging file are All directive names and field names defined in the logging file are
case-insensitive as per the basic ABNF([RFC5234]). case-insensitive as per the basic ABNF([RFC5234]).
3.3. CDNI Logging Directives 3.3. CDNI Logging Directives
A CDNI Logging directive line contains the directive name followed by A CDNI Logging directive line contains the directive name followed by
skipping to change at page 34, line 9 skipping to change at page 34, line 9
directive, the corresponding field value MUST NOT be included in the directive, the corresponding field value MUST NOT be included in the
Logging Record. When such a field name is listed in the "fields" Logging Record. When such a field name is listed in the "fields"
directive, the corresponding field value MUST be included in the directive, the corresponding field value MUST be included in the
Logging Record; if the value for the field is not available, this Logging Record; if the value for the field is not available, this
MUST be conveyed via a dash character ("-"). MUST be conveyed via a dash character ("-").
The fields names listed in the "fields" directive MAY be listed in The fields names listed in the "fields" directive MAY be listed in
the order in which they are listed in Section 3.4.1 or MAY be listed the order in which they are listed in Section 3.4.1 or MAY be listed
in any other order. in any other order.
Logging some specific fields from HTTP requests and responses can
introduce serious security and privacy risks. For example, cookies
will often contain (months) long lived token values that can be used
to log into a service as the relevant user. Similar values may be
included in other header fields or within URLs or elsewhere in HTTP
requests and responses. Centralising such values in a CDNI Logging
File can therefore represent a significant increase in risk both for
the user and the web service provider, but also for the CDNs
involved. Implementations ought therefore to attempt to lower the
probability of such bad outcomes e.g. by only allowing a configured
set of headers to be added to CDNI Logging Records, or by not
supporting wildcard selection of HTTP request/response fields to add.
Such mechanisms can reduce the probability that security (or privacy)
sensitive values are centralised in CDNI Logging Files. Also, when
agreeing on which HTTP request/response fields are to be provided in
CDNI Logging Files, the uCDN and dCDN administrators ought to
consider these risks.
A dCDN-side implementation of the CDNI Logging interface MUST A dCDN-side implementation of the CDNI Logging interface MUST
implement all the following Logging fields in a CDNI Logging Record implement all the following Logging fields in a CDNI Logging Record
of record-type "cdni_http_request_v1", and MUST support the ability of record-type "cdni_http_request_v1", and MUST support the ability
to include valid values for each of them: to include valid values for each of them:
o date o date
o time o time
o time-taken o time-taken
skipping to change at page 41, line 28 skipping to change at page 41, line 28
about older CDNI Logging files is moved into archive documents. Once about older CDNI Logging files is moved into archive documents. Once
created, archive documents are never modified. created, archive documents are never modified.
Each CDNI Logging File listed in an Atom feed MUST be described in an Each CDNI Logging File listed in an Atom feed MUST be described in an
atom:entry container element. atom:entry container element.
The atom:entry MUST contain an atom:content element whose "src" The atom:entry MUST contain an atom:content element whose "src"
attribute is a link to the CDNI Logging File and whose "type" attribute is a link to the CDNI Logging File and whose "type"
attribute is the MIME Media Type indicating that the entry is a CDNI attribute is the MIME Media Type indicating that the entry is a CDNI
logging file. This MIME Media Type is defined as "application/cdni" logging file. This MIME Media Type is defined as "application/cdni"
(See [I-D.ietf-cdni-media-type]) with the Payload Type (ptype) (See [RFC7736]) with the Payload Type (ptype) parameter set to
parameter set to "logging-file". "logging-file".
For compatibility with some Atom feed readers the atom:entry MAY also For compatibility with some Atom feed readers the atom:entry MAY also
contain an atom:link entry whose "href" attribute is a link to the contain an atom:link entry whose "href" attribute is a link to the
CDNI Logging File and whose "type" attribute is the MIME Media Type CDNI Logging File and whose "type" attribute is the MIME Media Type
indicating that the entry is a CDNI Logging File using the indicating that the entry is a CDNI Logging File using the
"application/cdni" MIME Media Type with the Payload Type (ptype) "application/cdni" MIME Media Type with the Payload Type (ptype)
parameter set to "logging-file"(See [I-D.ietf-cdni-media-type]). parameter set to "logging-file"(See [RFC7736]).
The URI used in the atom:id of the atom:entry MUST contain the UUID The URI used in the atom:id of the atom:entry MUST contain the UUID
of the CDNI Logging File. of the CDNI Logging File.
The atom:updated in the atom:entry MUST indicate the time at which The atom:updated in the atom:entry MUST indicate the time at which
the CDNI Logging File was last updated. the CDNI Logging File was last updated.
4.1.2. Updates to Log Files and the Feed 4.1.2. Updates to Log Files and the Feed
CDNI Logging Files MUST NOT be modified by the dCDN once published in CDNI Logging Files MUST NOT be modified by the dCDN once published in
skipping to change at page 47, line 42 skipping to change at page 47, line 42
6.3. CDNI Logging record-types Registry 6.3. CDNI Logging record-types Registry
The IANA is requested to create a new "CDNI Logging record-types" The IANA is requested to create a new "CDNI Logging record-types"
under the "Content Delivery Networks Interconnection (CDNI) under the "Content Delivery Networks Interconnection (CDNI)
Parameters" category. Parameters" category.
The initial contents of the CDNI Logging record-types registry The initial contents of the CDNI Logging record-types registry
comprise the names of the CDNI Logging Record types specified in comprise the names of the CDNI Logging Record types specified in
Section 3.4 of the present document, and are as follows: Section 3.4 of the present document, and are as follows:
+----------------------+-----------+----------------------------------+ +----------------------+-----------+---------------------------------+
| record-types | Reference | Description | | record-types | Reference | Description |
+----------------------+-----------+----------------------------------+ +----------------------+-----------+---------------------------------+
| cdni_http_request_v1 | RFC xxxx | CDNI Logging Record version 1 | | cdni_http_request_v1 | RFC xxxx | CDNI Logging Record version 1 |
| | | for content delivery using HTTP | | | | for content delivery using HTTP |
+----------------------+-----------+----------------------------------+ +----------------------+-----------+---------------------------------+
Figure 10 Figure 10
[Instructions to IANA: Replace "RFC xxxx" above by the RFC number of [Instructions to IANA: Replace "RFC xxxx" above by the RFC number of
the present document] the present document]
Within the registry, record-types are to be allocated by IANA Within the registry, record-types are to be allocated by IANA
according to the "Specification Required" policy specified in according to the "Specification Required" policy specified in
[RFC5226]. record-types are to be allocated by IANA with a format of [RFC5226]. record-types are to be allocated by IANA with a format of
NAMEFORMAT (see Section 3.1). NAMEFORMAT (see Section 3.1).
skipping to change at page 51, line 39 skipping to change at page 51, line 39
usual conventional DOS protection mechanisms such as firewalling or usual conventional DOS protection mechanisms such as firewalling or
use of Virtual Private Networks (VPNs). use of Virtual Private Networks (VPNs).
Protection of dCDN Surrogates against spoofed delivery requests is Protection of dCDN Surrogates against spoofed delivery requests is
outside the scope of the CDNI Logging interface. outside the scope of the CDNI Logging interface.
7.3. Privacy 7.3. Privacy
CDNs have the opportunity to collect detailed information about the CDNs have the opportunity to collect detailed information about the
downloads performed by End Users. A dCDN is expected to collect such downloads performed by End Users. A dCDN is expected to collect such
information into CDNI Logging Files, which are then communicatd to an information into CDNI Logging Files, which are then communicated to
uCDN. an uCDN.
Having detailed CDNI logging information known by the dCDN in itself Having detailed CDNI logging information known by the dCDN in itself
does not represent a particular privacy concern since the dCDN is does not represent a particular privacy concern since the dCDN is
obviously fully aware of all information logged since it generated obviously fully aware of all information logged since it generated
the information in the first place. Making detailed CDNI logging the information in the first place. Making detailed CDNI logging
information known to the uCDN does not represent a particular privacy information known to the uCDN does not represent a particular privacy
concern because the uCDN is already exposed at request redirection concern because the uCDN is already exposed at request redirection
time to most of the information that shows up as CDNI logging time to most of the information that shows up as CDNI logging
information (e.g., enduser IP@, URL, HTTP headers - at least when information (e.g., enduser IP@, URL, HTTP headers - at least when
HTTP redirection is used between uCDN and dCDN). Transporting HTTP redirection is used between uCDN and dCDN). Transporting
detailed CDNI logging information over the HTTP based CDNI Logging detailed CDNI logging information over the HTTP based CDNI Logging
Interface does not represent a particular privacy concern because it Interface does not represent a particular privacy concern because it
is protected by usual IETF privacy-protection mechanism (e.g.,TLS). is protected by usual IETF privacy-protection mechanism (e.g.,TLS).
However, one privacy concern arises from the fact that large volumes However, one privacy concern arises from the fact that large volumes
of detailed information about content delivery to users, potentially of detailed information about content delivery to users, potentially
traceable back to indvidual users, may be collected in CDNI Logging traceable back to indvidual users, may be collected in CDNI Logging
files. These CDNI Logging files represent high-value targets, likely files. These CDNI Logging files represent high-value targets, likely
concentrated in a fairly centralised system (although the CDNI concentrated in a fairly centralised system (although the CDNI
Logging architecture does not manadate a particular level of Logging architecture does not mandate a particular level of
centralisation/distribution) and at risk of potential data centralisation/distribution) and at risk of potential data
exfiltration. Note that the means of such data exfiltration are exfiltration. Note that the means of such data exfiltration are
beyond the scope of the CDNI Logging interface itself (e.g., beyond the scope of the CDNI Logging interface itself (e.g.,
corrupted employee, corrupted logging storage system,...). This corrupted employee, corrupted logging storage system,...). This
privacy concern calls for some protection. privacy concern calls for some protection.
The collection of large volumes of such information into CDNI Logging The collection of large volumes of such information into CDNI Logging
Files introduces potential End Users privacy protection concerns. Files introduces potential End Users privacy protection concerns.
Mechanisms to address these concerns are discussed in the definition Mechanisms to address these concerns are discussed in the definition
of the c-groupid field specified in Section 3.4.1. of the c-groupid field specified in Section 3.4.1.
skipping to change at page 55, line 9 skipping to change at page 55, line 9
[CHAR_SET] [CHAR_SET]
"IANA Character Sets registry", "IANA Character Sets registry",
<http://www.iana.org/assignments/character-sets/ <http://www.iana.org/assignments/character-sets/
character-sets.xml>. character-sets.xml>.
[ELF] Phillip M. Hallam-Baker, and Brian Behlendorf, "Extended [ELF] Phillip M. Hallam-Baker, and Brian Behlendorf, "Extended
Log File Format, W3C (work in progress), WD-logfile- Log File Format, W3C (work in progress), WD-logfile-
960323", <http://www.w3.org/TR/WD-logfile.html>. 960323", <http://www.w3.org/TR/WD-logfile.html>.
[I-D.ietf-cdni-media-type]
Ma, K., "CDNI Media Type Registration", draft-ietf-cdni-
media-type-06 (work in progress), October 2015.
[I-D.ietf-cdni-metadata] [I-D.ietf-cdni-metadata]
Niven-Jenkins, B., Murray, R., Caulfield, M., and K. Ma, Niven-Jenkins, B., Murray, R., Caulfield, M., and K. Ma,
"CDN Interconnection Metadata", draft-ietf-cdni- "CDN Interconnection Metadata", draft-ietf-cdni-
metadata-12 (work in progress), October 2015. metadata-12 (work in progress), October 2015.
[I-D.ietf-tls-rfc5246-bis] [I-D.ietf-tls-rfc5246-bis]
Dierks, T. and E. Rescorla, "The Transport Layer Security Dierks, T. and E. Rescorla, "The Transport Layer Security
(TLS) Protocol Version 1.3", draft-ietf-tls-rfc5246-bis-00 (TLS) Protocol Version 1.3", draft-ietf-tls-rfc5246-bis-00
(work in progress), April 2014. (work in progress), April 2014.
skipping to change at page 56, line 31 skipping to change at page 56, line 26
[RFC7336] Peterson, L., Davie, B., and R. van Brandenburg, Ed., [RFC7336] Peterson, L., Davie, B., and R. van Brandenburg, Ed.,
"Framework for Content Distribution Network "Framework for Content Distribution Network
Interconnection (CDNI)", RFC 7336, DOI 10.17487/RFC7336, Interconnection (CDNI)", RFC 7336, DOI 10.17487/RFC7336,
August 2014, <http://www.rfc-editor.org/info/rfc7336>. August 2014, <http://www.rfc-editor.org/info/rfc7336>.
[RFC7337] Leung, K., Ed. and Y. Lee, Ed., "Content Distribution [RFC7337] Leung, K., Ed. and Y. Lee, Ed., "Content Distribution
Network Interconnection (CDNI) Requirements", RFC 7337, Network Interconnection (CDNI) Requirements", RFC 7337,
DOI 10.17487/RFC7337, August 2014, DOI 10.17487/RFC7337, August 2014,
<http://www.rfc-editor.org/info/rfc7337>. <http://www.rfc-editor.org/info/rfc7337>.
[RFC7736] Ma, K., "Content Delivery Network Interconnection (CDNI)
Media Type Registration", RFC 7736, DOI 10.17487/RFC7736,
December 2015, <http://www.rfc-editor.org/info/rfc7736>.
Authors' Addresses Authors' Addresses
Francois Le Faucheur (editor) Francois Le Faucheur (editor)
Cisco Systems Cisco Systems
E.Space Park - Batiment D E.Space Park - Batiment D
6254 Allee des Ormes - BP 1200 6254 Allee des Ormes - BP 1200
Mougins cedex 06254 Mougins cedex 06254
FR FR
Phone: +33 4 97 23 26 19 Phone: +33 4 97 23 26 19
 End of changes. 18 change blocks. 
28 lines changed or deleted 45 lines changed or added

This html diff was produced by rfcdiff 1.43. The latest version is available from http://tools.ietf.org/tools/rfcdiff/