[tahoe-dev] Bringing Tahoe ideas to HTTP
Zooko Wilcox-O'Hearn
zooko at zooko.com
Wed Sep 2 08:27:28 PDT 2009
Dear Fuzzy Hoodie-Monster:
On Tuesday,2009-09-01, at 13:35 , Fuzzy Hoodie-Monster wrote:
> I still say making names be secrets is a losing strategy.
> Especially if they are actually URLs in actual web pages. Having
> sensitive information in URLs is a bug.
A lot of people feel this way, so I'm glad we have you around on the
tahoe-dev list to remind us of this widespread opinion. ;-)
Brian's proposal to add end-to-end authentication to the Web doesn't
require putting secret information into the URLs. The proposal to
add end-to-end confidentiality to the Web does. The end-to-end
authentication is also backwards-compatible with the existing web
agents -- they all ignore the authentication information in the URL
fragment and go ahead and accept the document without authenticating
it. (I suppose there could be a problem with web apps that are
already using the URL fragment for something else.) The proposal to
add end-to-end confidentiality is not backwards-compatible. If you
were to publish a file with that feature, then nobody would be able
to read it with an old web browser or an old version of wget, etc.
> More on document integrity: I've heard of a proposal called HTTPA
> ("authenticated") that is like your hash tag idea, except the hash
> is stored as an attribute in an <a ...> tag: <a href="whatevs.html"
> hash="DEADBEEF">Whatevs</a>.
Thanks for bringing this "HTTPA" proposal to my attention! This
would give you an integrity guarantee that the whatevs.html page that
you get was indeed the one that the author of this page intended.
But how would you share the whatevs.html page with a friend of yours
in such a way that your friend would get an integrity guarantee that
he was looking at the page that you intended? I guess you would have
to create an HTML page and set the "hash" attribute and then, um,
send that HTML page (not a link to it) directly to your friend.
In Brian's proposal to add end-to-end authentication to the Web using
the URL fragment, if you are looking at a page and you want to share
it with your friend, you simply do the thing that you always do --
copy the URL and send the URL to your friend. That URL comes with an
integrity guarantee that your friends web browser could check which
would prove that the page he is seeing is the one you intended.
> I thought Merkle trees were a cause of bad alacrity?
> http://allmydata.org/trac/tahoe/ticket/670
The Merkle tree data structure itself is a way to get better
alacrity. However, the current implementation in the Tahoe-LAFS
client downloads the entire data structure instead of just the part
of the Merkle Tree that it needs.
If anyone is interested in fixing this, here is the function that
currently dumbly grabs the whole tree and that could be improved by
fetching only the specified subset of it:
http://allmydata.org/trac/tahoe/browser/src/allmydata/immutable/
layout.py?rev=4048#L415
:-)
Regards,
Zooko
More information about the tahoe-dev
mailing list