[Ndn-interest] NDN protocol principles: no privacy?

Lixia Zhang lixia at CS.UCLA.EDU
Sun Apr 3 17:00:57 PDT 2016


> On Apr 3, 2016, at 12:56 PM, Dave Oran (oran) <oran at cisco.com> wrote:
> 
>> 
>> On Apr 3, 2016, at 3:06 PM, Lixia Zhang <lixia at CS.UCLA.EDU> wrote:
>> 
>>> 
>>> On Apr 3, 2016, at 6:21 AM, Ralph Droms (rdroms) <rdroms at cisco.com> wrote:
>>> 
>>> In the icnrg meeting, we didn't have time to discuss this sub-bullet of principle 2:
>>> 
>>> Although data packets are immutable, applications can make changes to the communicated content by creating new versions of immutable data packets.
>>> 
>>> I need help understanding how the phrase "new versions of immutable data packets" makes sense.  "new version" and "immutable" seem contradictory. Jeff promised get me some help, here, if I moved the discussion to the mailing list.
>>> 
>>> - Ralph
>> 
>> I can see how the wording could lead to confusion.
>> my understanding of what it is meant to say is this:
>> 	• /foo/bar/ICNslides/v1 is immutable data
>> 		•  (for simplicity lets assume it's just one data packet here)
>> 	• When I make changes to the slides, I produce /foo/bar/ICNslides/v2
>> Lixia
>> 
> What if I have a stateless producer that does not remember enough to maintain a monotonic (or worse, a sequential) counter, or if I have a distributed producer and it’s inconvenient/infeasible to run an agreement protocol to maintain the version number? Is it in fact considered an “epic fail” for a producer to create two different bags of bits (and hence different hashes) that have identical names?

I just used a simple example to mean 
- data is immutable
- updated name should have a different name.

yes name collision may occur in distributed production scenario. The ultimate way to distinguish different data packets is by their full name (i.e. name with implicit digest).

> In the same vein, is the following legal:
> 
> At time T0, I create object with name a/b/c and bits “dsfasdfasdfadsfadfa”, and expiration time T0+deltaT.
> Then, At time T1=T0+deltaT+epsilon, I create object a/b/c with bits “fgsdfgsfgsdfgsfgfg” and expiration time T1+deltaT.
> 
> If not, why not?

Personal view:
- as far as application development is concerned: one should use different names for different data to the extend possible.
- the last resort to distinguish different data is by name with digest.

Lixia

>>>> On Mar 15, 2016, at 1:01 AM 3/15/16, Marc.Mosko at parc.com wrote:
>>>> 
>>>> 
>>>>> On Mar 14, 2016, at 8:44 PM, Tai-Lin Chu <tailinchu at gmail.com> wrote:
>>>>> 
>>>>>> sure - I don't want to expose names that identify me, or expose my communication activities. given that, the "network" doesn't have the job of finding things for me by partial names - I only want to expose the details of my communication to a service that I have authenticated, and only when those details are encrypted. the "names" visible to the network in that sort of world just get the packets moving - and the only LPM needed is LPM in the FIB to get me to one or more instances of a service.
>>>>> 
>>>>> Immutability is related to in-network discovery with LPM.  If all packets are immutable, and there is no in-network discovery, ndn must rely on some other protocol that cannot not build on top of ndn for discovery (we should all agree that randomly guessing a version number or a certain name is not going to work well as “discovery”). This devalues ndn as an “universal" protocol.
>>>> 
>>>> Could you please define immutable?  Do you mean that a single publisher will never use the same name for different contents?  Is that mandatory or enforceable?  Or do you mean that there is some cryptographic function possible on a packet such that one can detect if it changes? Are those cryptographic primitives mandatory in each packet?
>>>> 
>>>> I disagree that it is a necessary condition that one have name suffix completion matching of a data object to an interest to facilitate discovery.  One can build a discovery protocol over exact name matching. I usually build these where the cache returns a chunked table of contents listing possible matches instead of the CCNx 0.x / NDN approach of having to return a (potentially very large) data object and walk a tree which is really only efficient if you expect what you want to be left-most or right-most child and not require iteration.
>>>> 
>>>> 
>>>>> 
>>>>> 
>>>>>> On Mar 14, 2016, at 12:10 PM, Mark Stapp <mjs at cisco.com> wrote:
>>>>>> 
>>>>>> interesting -
>>>>>> 
>>>>>> On 3/14/16 11:27 AM, Burke, Jeff wrote:
>>>>>>> 
>>>>>> [...]
>>>>>> RFC 6973 takes a nice approach, for example, by offering
>>>>>>>> definitions of some technical properties and mechanisms, but not trying
>>>>>>>> to formulate an overall definition of "privacy".
>>>>>>> 
>>>>>>> So I can try to understand your point here - do you agree with the
>>>>>> authors that the primary privacy concerns are those of individuals? (Or,
>>>>>> more generally, are corporations people here for this discussion - a
>>>>>> more generic "data owner"?)
>>>>>>> 
>>>>>> 
>>>>>> hmm - well, I don't think corporations are people, in the citizens united sense, but I think there's lots of commercial communication that needs to have the best possible protection, whether it's B2C or B2B?
>>>>>> 
>>>>>>>> The editors there say
>>>>>>>> that the body of the document, the discussion of the tradeoffs and
>>>>>>>> alternatives, is the best way they could come up with to approach that
>>>>>>>> abstraction. in practical terms, as you know well I think there's been
>>>>>>>> an over-reliance on opportunistic caching in ICN generally, and as a
>>>>>>>> result observability and correlation are defined to be positive
>>>>>>>> properties of ICN communication rather than harmful ones.
>>>>>>> 
>>>>>>> 
>>>>>>> Would I be correct to parse your concerns into two pieces that may
>>>>>> have different implications:
>>>>>>> 
>>>>>>> - Confidentiality of request (e.g., the consumer side)
>>>>>>> - Confidentiality of publication (e.g., the publisher side)
>>>>>>> 
>>>>>> 
>>>>>> I think I have a mental image of "confidential request" - where an observer cannot see much beyond the routeable prefix needed to reach an instance of the service I want to communicate with. I'm not sure what "confidential publication" means, though? I think I want the replies to my requests to be encrypted with ephemeral, forward-secure key material, I don't want the names in the replies to expose any more than the names in the requests, and I want to be able to authenticate the service before I expose anything about my own identity or intentions. is that what you meant by "the publisher side"?
>>>>>> 
>>>>>> [...]
>>>>>> 
>>>>>>>> 
>>>>>>>> most of these six "principles" sounded like "mechanisms" to me - the
>>>>>>>> list felt like the end of a discussion about alternatives and the best
>>>>>>>> ways to implement an architecture, rather than the start of one. it
>>>>>>>> sounded like "we're tired of questions about LPM in the PIT, so we're
>>>>>>>> going to stop calling that a possible mechanism and start calling it an
>>>>>>>> inevitable, immutable, unquestionable 'principle'".
>>>>>>> 
>>>>>>> Well, to take LPM for an example - it's actually not mentioned in
>>>>>>> the
>>>>>> principle doc that Alex sent. The principle I suspect that you are
>>>>>> referring to is:
>>>>>>> 
>>>>>>> [5] In-Network Name Discovery: Interests should be able use
>>>>>>> incomplete
>>>>>> names to retrieve data packets.
>>>>>>> A consumer may not know the complete network-level name for data, as
>>>>>> some parts of the name cannot be guessed, computed, or inferred
>>>>>> beforehand. Once initial data is received, naming conventions can help
>>>>>> determine complete names of other related data:
>>>>>>> 
>>>>>>> 
>>>>>>> * majority of interests will carry complete names
>>>>>>> 
>>>>>>> * in-network name discovery expected to be used to bootstrap
>>>>>> communication)
>>>>>>> 
>>>>>>> 
>>>>>>> 
>>>>>>> Can you explain your objection in these terms?
>>>>>>> 
>>>>>> 
>>>>>> sure - I don't want to expose names that identify me, or expose my communication activities. given that, the "network" doesn't have the job of finding things for me by partial names - I only want to expose the details of my communication to a service that I have authenticated, and only when those details are encrypted. the "names" visible to the network in that sort of world just get the packets moving - and the only LPM needed is LPM in the FIB to get me to one or more instances of a service.
>>>>>> 
>>>>>> Thanks,
>>>>>> Mark
>>>>>> _______________________________________________
>>>>>> Ndn-interest mailing list
>>>>>> Ndn-interest at lists.cs.ucla.edu
>>>>>> http://www.lists.cs.ucla.edu/mailman/listinfo/ndn-interest
>>>>> 
>>>>> 
>>>>> _______________________________________________
>>>>> Ndn-interest mailing list
>>>>> Ndn-interest at lists.cs.ucla.edu
>>>>> http://www.lists.cs.ucla.edu/mailman/listinfo/ndn-interest
>>>> 
>>>> 
>>>> _______________________________________________
>>>> Ndn-interest mailing list
>>>> Ndn-interest at lists.cs.ucla.edu
>>>> http://www.lists.cs.ucla.edu/mailman/listinfo/ndn-interest
>>> 
>>> _______________________________________________
>>> Ndn-interest mailing list
>>> Ndn-interest at lists.cs.ucla.edu
>>> http://www.lists.cs.ucla.edu/mailman/listinfo/ndn-interest
>> 
>> _______________________________________________
>> Ndn-interest mailing list
>> Ndn-interest at lists.cs.ucla.edu
>> http://www.lists.cs.ucla.edu/mailman/listinfo/ndn-interest





More information about the Ndn-interest mailing list