On Jun 20, 2005, at 4:15 PM, James M Snell wrote:
Question: should we only allow signing of the entire document or are there valid use cases for allowing each individual entry in the feed to be individually signed?
I believe that individually signed entries are essential for a couple of Atom usage contexts:
(1) aggregation services, e.g. third parties which combine or filter portions of feeds (2) redistribution applications, e.g. clients which share portions of feeds with one another
The common thread here is that these scenarios represent third parties interposed between publisher and user. [In category (1) the third party is the aggregator; in category (2) the third party is "some other client". This is a continuous design space, of course, but let's stick with these two simple scenarios.] When a third party is involved, signatures are required to verify that the information received by the user has not been altered since the publisher released it.
If Atom data may only be signed at the <feed/> level, the granularity at which these third parties may slice and dice content is constrained to that level also. The <entry/> seems to me to be more generally useful as, well, an "atomic" signature unit for these applications. Without individually signed entries, it would be impossible, for example, to implement the most basic category (1) service: an aggregator which can be *trusted* to combine two Atom feeds into one. With signed entries, a client could be sure that each entry found in the aggregation is authentic, despite having received the entries from a potentially untrustworthy entity.
If this seems a bit far-fetched because there are currently few examples of these Atom intermediaries, just wait; aggregators are the new clipping services, and I suspect we'll see more of them in the future. (Just as with traditional clipping services, people may even pay money for this valuable service, which is a Good Thing for technology that enables it.) And as for (2), I'm working on it :)
---dan http://www.cs.rice.edu/~dsandler/
