Subject: [icnrg] I-D Action: draft-irtf-icnrg-flic-02.txt

From: [email-masked]
Date: Mon, 04 Nov 2019 15:29:05 -0800

A New Internet-Draft is available from the on-line Internet-Drafts directories.
This draft is a work item of the Information-Centric Networking RG of the IRTF.

        Title           : File-Like ICN Collections (FLIC)
        Authors         : Christian Tschudin
                          Christopher A. Wood
                          Marc Mosko
                          David Oran
	Filename        : draft-irtf-icnrg-flic-02.txt
	Pages           : 31
	Date            : 2019-11-04

Abstract:
   This document describes a bare bones "index table"-approach for
   organizing a set of ICN data objects into a large, File-Like ICN
   Collection (FLIC).  At the core of this collection is a so called
   manifest which acts as the collection's root node.  The manifest
   contains an index table with pointers, each pointer being a hash
   value pointing to either a final data block or another index table
   node.

The IETF datatracker status page for this draft is:
https://datatracker.ietf.org/doc/draft-irtf-icnrg-flic/

There are also htmlized versions available at:
https://tools.ietf.org/html/draft-irtf-icnrg-flic-02
https://datatracker.ietf.org/doc/html/draft-irtf-icnrg-flic-02

A diff from the previous version is available at:
https://www.ietf.org/rfcdiff?url2=draft-irtf-icnrg-flic-02

Please note that it may take a couple of minutes from the time of submission
until the htmlized version and diff are available at tools.ietf.org.

Internet-Drafts are also available by anonymous FTP at:
ftp://ftp.ietf.org/internet-drafts/

---

From: "Mosko, Marc <[email-masked]>" <[email-masked]>
Date: Mon, 4 Nov 2019 23:47:28 +0000

All,

With some help from the original authors, Christian and Chris, and with support from Dave Oran, I have updated the FLIC draft.  Here is a summary of the changes and a few notes on work I know still needs to be completed.

What stayed the same:
- FLIC still uses the idea of a HashGroup that contains an ordered list of content object hashes (implicit digests) of other manifests or data objects.
- FLIC still has metadata in the manifest, both at the Node level (top level) and per-hash group.
- FLIC encryption keys are unrelated to data encryption keys, so retrieval access does not imply data access.

What is different:
- The manifest syntax has changed a little to better accommodate encryption.  In the current format, there is no information leak about the manifest, whereas in the prior format some metadata leaked.  The current format also supports in-place encrypt/decrypt.
- The current draft only supports one encryption key per manifest object, whereas the prior draft allowed keys to vary by Hash Group. 
- The current draft specifies a pre-shared key encryption and two group key methods (that basically come down to the same pre-shared key mechanism).
- There are now plain Pointers and Annotated Pointers inside a hash group.  Plain pointes are as before -- just an array of HashValues.  Annotated Pointers allow adding metadata and extensions to each pointer, such as video decoding hints or other information.
- The encryption mechanism and key location mechanism is extensible.
- Adds the concept of Namespaces.  A namespace defines the naming convention for manifest content objects and application data content objects.  The prior draft assumed CCNx nameless objects.  The three defined namespaces allow for nameless operation, single prefix, or segmented prefix (where each name is unique).  Each HashGroup can use its own namespace, so manifest and application data namespaces could be different.
- Locators can now be an array, not just a single locator.
- The manifest metadata is refactored a little to allow both direct and subtree sizes and direct and subtree hashes.  It is also regularized between the node level and hash group level.
- There is much more detail in this draft, including both NDN and CCNx encodings for all three namespaces.
- There is a Python implementation, which is a little out-of-date with the draft -- it does not support annotated pointers yet.

What still needs to be done:
- Code: bring the reference Python implementation up-to-date with the draft, update the CICN implementation, provide an NDN implementation.
- IANA section.
- Security considerations section.
- Update the text for seeking to a byte location to exploit the new subtree size information, if present.

Marc

On 11/4/19, 3:29 PM, "icnrg on behalf of [email-masked]" <[email-masked] on behalf of [email-masked]> wrote:

    
    Abstract:

    

    
    _______________________________________________
    icnrg mailing list
    [email-masked]
    https://www.irtf.org/mailman/listinfo/icnrg