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

Tai-Lin Chu tailinchu at gmail.com
Tue Mar 15 00:41:59 PDT 2016


> So, my point here, is we talk about immutable objects but in truth we do not have them unless we use a hash-based name. 

There is ndn “implicit digest”, so if you take that into account, it will not be advisory.


> If the client sends a nonced name the publisher can return a link (in the ccnx sense, not the routing hints) plus uniquely named data of the table of contents appended for efficiency (to avoid a second round trip).


I might not understand this protocol well, but it seems that the discovery protocol tries to maintain immutability (given that you don’t change the data packet later, and the nonced name is unique enough.)

>  NDN (from CCNx 0.x) chose to use mandatory in-network discovery base solely on name components, exclusions, and tree traversal.  That’s ok, and one could claim that is sufficient.  CCNx 1.0 chose to use explicit discovery protocols.  My main point in asking about this is to point out that in-network mandatory discovery at the forwarder level is not a necessary condition.


Please don’t misunderstand my previous comments; I am a supporter for immutability not in-network discovery.




> On Mar 14, 2016, at 10:22 PM, <Marc.Mosko at parc.com> <Marc.Mosko at parc.com> wrote:
> 
> 
>> On Mar 14, 2016, at 9:53 PM, Tai-Lin Chu <tailinchu at gmail.com <mailto:tailinchu at gmail.com>> wrote:
>> 
>> Immutable = one data packet cannot be changed after publication.  
>> 
>> No, it is not “a single publisher will never use the same name for different contents” (I believe this is "uniquely named") nor “there is some cryptographic function possible on a packet such that one can detect if it changes”. 
>> 
>> Immutability is advisory here. If I start to violate immutablity in a distributed system where everything is assumed to be immutable, I am doomed to get incorrect result (I guess this sounds mandatory). I think immutability is a good choice overall, and it is better to state it as a principle so that nobody will use ndn the wrong way.
> 
> Well, as you seemed to notice, if your system relies on an advisory feature for correctness, that’s a tenuous position.  That’s probably not a correct statement for NDN, as an end node should be able to detect (hopefully) if a Data object is what it expected via signature or something and try again with an exclusion.  however, you might not have liveness.
> 
> So, my point here, is we talk about immutable objects but in truth we do not have them unless we use a hash-based name.  We can define that a correctly operating publisher will never re-use a name and it cryptographically binds every Data object, but that is not immutable objects.  That’s a protocol that generates unique objects.  Unique is not immutable. A publisher could have a failure that causes its sequence number to reset or a memory error that causes the version number to flip a bit, etc.
> 
>> 
>> 
>>> One can build a discovery protocol over exact name matching.
>> 
>> Is the table of contents immutable? I think your approach is fine and efficient but it is rather hard to manage in a large distributed system if the table is not immutable.
> 
> If the client sends a nonced name the publisher can return a link (in the ccnx sense, not the routing hints) plus uniquely named data of the table of contents appended for efficiency (to avoid a second round trip).
> 
> I would think that doing cursors over table of contents rows is much more efficient in a large distributed system than returning potentially large data objects and doing search.  If I have 100M versions of a name and I want to scan the data for some attribute, I think its much easier to fetch a partial tables of contents and pick the exact ones I want to retrieve than to iterate over the set using some name heuristic.
> 
> This method also allows one to do discovery based on other criteria (attributes), such as signer keyids or other TLV fields, rather than just name elements.  I could, for example, do a */superman.mov/* search for all names with superman.mov as a name component (if that type of query was allowed by the protocol).  Or I could ask for only data objects that were manifests.
> 
> Because this matching is done via an explicit discovery protocol, not as part of the forwarder, I have a lot of flexibility in the attributes I can query and the access control I can enforce.
> 
> It is a design choice.  NDN (from CCNx 0.x) chose to use mandatory in-network discovery base solely on name components, exclusions, and tree traversal.  That’s ok, and one could claim that is sufficient.  CCNx 1.0 chose to use explicit discovery protocols.  My main point in asking about this is to point out that in-network mandatory discovery at the forwarder level is not a necessary condition.
> 
>> 
>> 
>> 
>> 
>> 
>>> On Mar 14, 2016, at 9:01 PM, <Marc.Mosko at parc.com <mailto:Marc.Mosko at parc.com>> <Marc.Mosko at parc.com <mailto:Marc.Mosko at parc.com>> wrote:
>>> 
>>>> 
>>>> On Mar 14, 2016, at 8:44 PM, Tai-Lin Chu <tailinchu at gmail.com <mailto: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 <mailto: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 <mailto:Ndn-interest at lists.cs.ucla.edu>
>>>>> http://www.lists.cs.ucla.edu/mailman/listinfo/ndn-interest <http://www.lists.cs.ucla.edu/mailman/listinfo/ndn-interest>
>>>> 
>>>> 
>>>> _______________________________________________
>>>> Ndn-interest mailing list
>>>> Ndn-interest at lists.cs.ucla.edu <mailto:Ndn-interest at lists.cs.ucla.edu>
>>>> http://www.lists.cs.ucla.edu/mailman/listinfo/ndn-interest <http://www.lists.cs.ucla.edu/mailman/listinfo/ndn-interest>
> 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.lists.cs.ucla.edu/pipermail/ndn-interest/attachments/20160315/123950e9/attachment.html>


More information about the Ndn-interest mailing list