diff options
Diffstat (limited to 'doc/rfc/rfc6258.txt')
-rw-r--r-- | doc/rfc/rfc6258.txt | 563 |
1 files changed, 563 insertions, 0 deletions
diff --git a/doc/rfc/rfc6258.txt b/doc/rfc/rfc6258.txt new file mode 100644 index 0000000..e3f2ce3 --- /dev/null +++ b/doc/rfc/rfc6258.txt @@ -0,0 +1,563 @@ + + + + + + +Internet Research Task Force (IRTF) S. Symington +Request for Comments: 6258 The MITRE Corporation +Category: Experimental May 2011 +ISSN: 2070-1721 + + + Delay-Tolerant Networking Metadata Extension Block + +Abstract + + This document defines an extension block that may be used with the + Delay-Tolerant Networking (DTN) Bundle Protocol. This Metadata + Extension Block is designed to carry additional information that DTN + nodes can use to make processing decisions regarding bundles, such as + deciding whether to store a bundle or determining to which nodes to + forward a bundle. The metadata that is carried in a metadata block + must be formatted according to the metadata type that is identified + in the block's metadata type field. One specific metadata type, for + carrying URIs as metadata, is defined in this document. Other + metadata types may be defined in separate documents. This document + is a product of the Delay Tolerant Networking Research Group and has + been reviewed by that group. No objections to its publication as an + RFC were raised. + +Status of This Memo + + This document is not an Internet Standards Track specification; it is + published for examination, experimental implementation, and + evaluation. + + This document defines an Experimental Protocol for the Internet + community. This document is a product of the Internet Research Task + Force (IRTF). The IRTF publishes the results of Internet-related + research and development activities. These results might not be + suitable for deployment. This RFC represents the consensus of the + Delay-Tolerant Networking Research Group of the Internet Research + Task Force (IRTF). Documents approved for publication by the IRSG + are not a candidate for any level of Internet Standard; see Section 2 + of RFC 5741. + + Information about the current status of this document, any errata, + and how to provide feedback on it may be obtained at + http://www.rfc-editor.org/info/rfc6258. + + + + + + + + +Symington Experimental [Page 1] + +RFC 6258 DTN Metadata Extension Block May 2011 + + +Copyright Notice + + Copyright (c) 2011 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 + carefully, as they describe your rights and restrictions with respect + to this document. + +Table of Contents + + 1. Introduction ....................................................2 + 1.1. Requirements Language ......................................4 + 2. Metadata Block Format ...........................................4 + 3. Metadata Block Processing .......................................5 + 3.1. Bundle Transmission ........................................6 + 3.2. Bundle Forwarding ..........................................6 + 3.3. Bundle Reception ...........................................6 + 4. Predefined Metadata Types .......................................6 + 4.1. URI Metadata Type ..........................................6 + 4.2. Private Metadata Types .....................................7 + 5. Security Considerations .........................................7 + 6. IANA Considerations .............................................8 + 6.1. Metadata Type Codes ........................................8 + 6.2. Block Type Code for the Metadata Block .....................9 + 7. References ......................................................9 + 7.1. Normative References .......................................9 + 7.2. Informative References .....................................9 + +1. Introduction + + This document defines an extension block that may be used with the + Bundle Protocol [RFC5050] within the context of a Delay-Tolerant + Networking architecture [RFC4838]. The DTN Bundle Protocol [RFC5050] + defines the bundle as its protocol data unit. This document defines + a bundle block called a "metadata block". This block is designed to + carry additional information that DTN nodes can use to make + processing decisions regarding bundles. + + The metadata block has been deliberately defined to be flexible + enough that it would be capable of supporting a variety of metadata + types and formats. Indeed, the only restriction imposed on the + metadata to be used is that its type and format be predefined and + registered (if public) so that it can be parsed and processed by DTN + nodes that support metadata of that type. Section 4 defines a + + + +Symington Experimental [Page 2] + +RFC 6258 DTN Metadata Extension Block May 2011 + + + specific metadata type and discusses the use of other metadata types + that may be defined elsewhere. As mentioned, it is the intention + that the metadata that is carried in this block be application- + related information. For example, the metadata might be information + that is associated with the payload of a bundle. Additional + extension blocks could be (and have been) defined for carrying + additional network-related information. + + While the bundle payload may be processed opaquely by DTN nodes, + metadata is intended to serve as a mechanism for providing DTN nodes + with access to additional information that they can use to process + the bundle. Examples of such additional information include keywords + found in the payload; payload provenance information; GPS coordinates + (if the payload is a map, for instance); message IDs; and artist, + album, and track name (if the payload is a song). Even though the + metadata is additional information related to the application, its + purpose is to be used by DTN nodes to make decisions regarding how to + process bundles within the network, such as whether or not a bundle + should be stored or to which nodes a bundle should be forwarded. + Metadata that is about bundle payload, for example, might serve as a + content-based index of bundles that are stored in a DTN cache. So, + in response to a request for bundles related to a certain subject or + related to specific GPS coordinates, for example, the metadata of + stored bundles could be searched, and all bundles with metadata + matching the search criteria could be retrieved and returned to the + requestor. + + This document defines the general format of and the processing + required to support the metadata block. The actual metadata to be + inserted into a metadata block MUST be formatted according to the + metadata type that is identified in the block's metadata type field. + One specific metadata type, for carrying Uniform Resource Identifiers + (URIs) [RFC3986] as metadata, is defined in this document. Other + metadata types may be defined in separate documents, along with the + steps required to process records of that type, if necessary. If + such other metadata types are defined, they should be registered to + ensure global uniqueness (see the IANA Considerations section). + + The capabilities described in this document are OPTIONAL for + deployment with the Bundle Protocol. As defined in this document, + Bundle Protocol implementations claiming to support the metadata + block MUST be capable of: + + - generating a metadata block and inserting it into a bundle, + + + + + + + +Symington Experimental [Page 3] + +RFC 6258 DTN Metadata Extension Block May 2011 + + + - receiving bundles containing a metadata block and making the + information contained in this metadata block's metadata field + available for use, e.g., in bundle storage or forwarding + decisions, and + + - deleting a metadata block from a received bundle before + forwarding the bundle. + + Bundle Protocol implementations claiming to support a specific + metadata type must both support the metadata block as defined above + and be capable of parsing and processing the metadata itself + according to the definition of the metadata type in which the + metadata is expressed. This metadata type may be the URI metadata + type (see the URI metadata type section), or it may be another + metadata type defined in a separate document. + +1.1. Requirements Language + + The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", + "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this + document are to be interpreted as described in RFC 2119 [RFC2119]. + +2. Metadata Block Format + + The metadata block uses the Canonical Bundle Block Format as defined + in the Bundle Protocol [RFC5050]. That is, it is comprised of the + following elements, which are defined as in all bundle protocol + blocks except the primary bundle block. (Note that Self-Delimiting + Numeric Value (SDNV) encoding is described in the Bundle Protocol.): + + - Block-type code (1 byte) - defined as in all bundle protocol + blocks except the primary bundle block (as described in the Bundle + Protocol). The block-type code for the metadata block is 0x08. + + - Block processing control flags (SDNV) - defined as in all bundle + protocol blocks except the primary bundle block. SDNV encoding is + described in the Bundle Protocol. There are no constraints on the + use of the block processing control flags. If a bundle node + receives a bundle with a metadata block and it is capable of + supporting the metadata block but it is not able to parse and + process the metadata itself, either because it does not support + the metadata type being used or because the metadata is not well- + formed according to the metadata type definition, the bundle node + must process the bundle as if it cannot process the metadata + block. That is, it must operate according to the settings of the + block processing control flags, including the "Delete bundle if + block can't be processed" flag and the "Discard block if it can't + be processed" flag. + + + +Symington Experimental [Page 4] + +RFC 6258 DTN Metadata Extension Block May 2011 + + + - Block EID-reference count and EID-references (optional) - + composite field defined in the Bundle Protocol that is present if + and only if the metadata block references EID elements in the + primary block's dictionary. Presence of this field is indicated + by the setting of the "Block contains an EID-reference field" bit + of the block processing control flags. If EIDs are referenced in + the metadata block, then their interpretation is defined by the + particular metadata type that is being used in this metadata + block, as indicated in the metadata type field. + + - Block data length (SDNV) - defined as in all bundle protocol + blocks except the primary bundle block. SDNV encoding is + described in the Bundle Protocol. + + - Block-type-specific data fields as follows: + + - Metadata Type field (SDNV) - indicates which metadata type is + to be used to interpret both the metadata in the metadata field + and the EID-references in the optional Block EID-reference + count and EID-references field (if present). One metadata type + is defined in this document. Other metadata types may be + defined in separate documents. + + - Metadata field - contains the metadata itself, formatted + according to the metadata type that has been specified for this + block. One metadata type is defined in Section 4.1. Other + metadata types may be defined elsewhere, as discussed in + Section 4. + + The structure of a metadata block is as follows: + + Metadata Block Format: + +-----+------+--------------------+------+----------+----------| + |Type |Flags |EID-Reference count |Len | Metadata | Metadata | + | |(SDNV)| and list (opt) |(SDNV)| Type | | + +-----+------+--------------------+------+----------+----------+ + + Figure 1 + +3. Metadata Block Processing + + The following are the processing steps that a bundle node may take + relative to generation, reception, and processing of metadata blocks. + + + + + + + + +Symington Experimental [Page 5] + +RFC 6258 DTN Metadata Extension Block May 2011 + + +3.1. Bundle Transmission + + When an outbound bundle is created per the parameters of the bundle + transmission request, this bundle MAY (as influenced by local policy + and the metadata type being used) include one or more metadata blocks + (as defined in this specification). + +3.2. Bundle Forwarding + + A node MAY insert one or more metadata blocks into a bundle before + forwarding it; and a node MAY delete one or more metadata blocks from + a bundle before forwarding it, as dictated by local policy and the + metadata type being used. + +3.3. Bundle Reception + + If the bundle includes one or more metadata blocks, the metadata + information records in these blocks SHALL be made available for use + at this node (e.g., in bundle storage or forwarding decisions, or, if + the receiving node is the bundle-destination, the metadata + information records may be provided to the receiving application). + +4. Predefined Metadata Types + + As mentioned in the previous section, any number of different + metadata types may be defined to indicate the format of both the + metadata field and the EID-references in the optional Block EID- + reference count and EID-references field (if present) and, if + necessary, how metadata of this type should be processed. One + metadata type is defined in this document, URI metadata type (0x01). + In addition, a range of metadata type values is reserved for private + use. + +4.1. URI Metadata Type + + It is believed that use of URIs will, in many cases, be adequate for + encoding metadata, although it is recognized that use of URIs may not + be the most efficient method for such encoding. Because of the + expected utility of using URI encoding for metadata, the metadata + type value of 0x01 is defined to indicate a metadata type of URI. + Metadata type values other than 0x01 will be used to indicate + alternative metadata types. + + The Metadata field for metadata of metadata type URI (0x01) consists + of an array of bytes formed by concatenating one or more null- + terminated URIs. Unless determined by local policy, the specific + processing steps that must be performed on bundles with metadata + blocks containing metadata of type URI are expected to be indicated + + + +Symington Experimental [Page 6] + +RFC 6258 DTN Metadata Extension Block May 2011 + + + as part of the URI encoding of the metadata. It is envisioned that + users might define URI schemes for this purpose. Metadata blocks + containing metadata of type URI MUST NOT include a Block EID- + reference count and EID-references field. The absence of this field + MUST be indicated by a value of 0 for the "Block contains an EID- + reference field" flag in the block processing control flags. Support + for the URI metadata type is OPTIONAL. + +4.2. Private Metadata Types + + Metadata type values 192 through 255 are not defined in this + specification and are available for private and/or experimental use. + Such private metadata types are not required to be registered. All + other values of the metadata type are reserved for future use and, + when defined, should be registered to ensure global uniqueness (see + the IANA Considerations section). Local policy will define how + private metadata types are handled. + +5. Security Considerations + + The DTN Bundle Security Protocol [RFC6257] defines security-related + blocks to provide hop-by-hop authentication, end-to-end + authentication, end-to-end confidentiality of bundles or parts of + bundles, and an extension security block to provide confidentiality + and integrity for extension blocks, as well as a set of standard + ciphersuites that may be used to calculate security-results carried + in these security blocks. All ciphersuites that use the strict + canonicalization algorithm [RFC6257] to calculate and verify + security-results (e.g., many hop-by-hop authentication ciphersuites) + apply to all blocks in the bundle and so would apply to bundles that + include an optional metadata block and would include that block in + the calculation of their security-result. In particular, bundles + including the optional metadata block would be protected in their + entirety for the duration of a single hop, from a forwarding node to + an adjacent receiving node (but not from source to destination over + multiple hops), using the standard BAB-HMAC (Bundle Authentication + Block - Hashed Message Authentication Code) ciphersuite defined in + the Bundle Security Protocol. + + Ciphersuites that use the mutable canonicalization algorithm to + calculate and verify security-results (e.g., the mandatory PSH-RSA- + SHA256 ciphersuite and most end-to-end authentication ciphersuites) + will omit the metadata block from their calculation. Therefore, the + fact that metadata in the metadata block may be modified or that + metadata blocks themselves may be added to or deleted from a bundle + as it transits the network will not interfere with end-to-end + security protection when using ciphersuites that use mutable + canonicalization. + + + +Symington Experimental [Page 7] + +RFC 6258 DTN Metadata Extension Block May 2011 + + + The metadata block will not be encrypted by the mandatory CH-RSA-AES- + PAYLOAD-PSH end-to-end confidentiality ciphersuite, which only allows + for payload and PSH encryption. + + In order to provide the metadata block with end-to-end + confidentiality and authentication independent of any confidentiality + or authentication that is provided for the payload or other parts of + the bundle, the extension security block may be used to encrypt and + authenticate the metadata block. A bundle may contain multiple + metadata extension blocks. In some cases, multiple metadata blocks + may be carried in the bundle, possibly with each being encrypted + separately from each other and from the payload. Such separate + encryption of metadata from payload would enable bundle nodes to + perform content-based searching and routing on bundle metadata that + they are able to decrypt, even if they are not able to decrypt the + bundle payload. + + Given that metadata can be modified by forwarding nodes, it may be + desirable to eventually support the ability to audit changes to the + metadata at the individual record level. No such capability has been + provided in this specification as currently written. + +6. IANA Considerations + +6.1. Metadata Type Codes + + The metadata block carried in the Metadata Extension Block has a + Metadata Type Code field (see Sections 2 and 3). An IANA registry + has been set up as follows. + + Metadata Type Codes Registry + + The registration policy for this registry is: + 0-191: Specification Required + 192-255: Private and/or Experimental Use. No assignment by IANA. + + The Value range is unsigned 8-bit integer. + + +---------+---------------------------------+---------------+ + | Value | Description | Reference | + +---------+---------------------------------+---------------+ + | 0 | Reserved | This document | + | 1 | URI | This document | + | 2-191 | Unassigned | | + | 192-255 | Private and/or experimental use | This document | + +---------+---------------------------------+---------------+ + + + + + +Symington Experimental [Page 8] + +RFC 6258 DTN Metadata Extension Block May 2011 + + +6.2. Block Type Code for the Metadata Block + + This specification allocates a codepoint from the Bundle Block Type + Codes registry defined in [RFC6255] (see Section 2 of this document): + + Additional Entry for the Bundle Block Type Codes Registry: + +-------+----------------------------------------+----------------+ + | Value | Description + Reference | + +-------+----------------------------------------+----------------+ + | 8 | Metadata Extension Block + This document | + +-------+----------------------------------------+----------------+ + +7. References + +7.1. Normative References + + [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate + Requirement Levels", BCP 14, RFC 2119, March 1997. + + [RFC3986] Berners-Lee, T., Fielding, R., and L. Masinter, "Uniform + Resource Identifier (URI): Generic Syntax", STD 66, + RFC 3986, January 2005. + + [RFC5050] Scott, K. and S. Burleigh, "Bundle Protocol + Specification", RFC 5050, November 2007. + + [RFC6255] Blanchet, M., "Delay-Tolerant Networking (DTN) Bundle + Protocol IANA Registries", RFC 6255, May 2010. + +7.2. Informative References + + [RFC4838] Cerf, V., Burleigh, S., Hooke, A., Torgerson, L., Durst, + R., Scott, K., Fall, K., and H. Weiss, "Delay-Tolerant + Networking Architecture", RFC 4838, April 2007. + + [RFC6257] Symington, S., Farrell, S., Weiss, H., and P. Lovell, + "Bundle Security Protocol Specification", RFC 6257, + May 2011. + + + + + + + + + + + + + +Symington Experimental [Page 9] + +RFC 6258 DTN Metadata Extension Block May 2011 + + +Author's Address + + Susan Flynn Symington + The MITRE Corporation + 7515 Colshire Drive + McLean, VA 22102 + US + + Phone: +1 (703) 983-7209 + EMail: susan@mitre.org + URI: http://mitre.org/ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Symington Experimental [Page 10] + |