[cap-talk] A palatable solution?

Sandro Magi smagi at naasking.homeip.net
Thu Dec 1 19:10:46 EST 2005


Tyler Close wrote:
> It seems my explanation above was not understood, so I'm going to take
> another crack at it because it's important to understand.
> 
> Assume a cap URL, K1. A GET on K1 returns a list of cap URLs C1, C2,
> ... A membrane service is bootstrapped by sending it K1 and getting
> back a proxy cap URL PK1. A GET operation on PK1 returns an
> unguessable session cookie S1 and a list of guessable proxy URLs PC1,
> PC2, ... When the user click on PC1, the browser also sends S1. The
> membrane service uses S1 and PC1 to determine the corresponding C1, to
> which it relays the GET operation.
> 
> In Sandro's original proposal, marked by the #3 in the quoted section,
> the PCn URLs were unguessable. In Sandro's revised proposal, explained
> in the quoted section, the PCn URLs became guessable numbered slots.
> Now that the PCn URLs are guessable, an attacker can send the user's
> web browser an HTML form, whose action URL is a PCn URL. When the user
> clicks the submit button, the web browser will send the POST to the
> PCn URL and include the session identifier S1. The membrane service
> will see the request as a normal request from the user and relay the
> request to the corresponding Cn URL. This is a Confused Deputy attack.
> The revised password capability protocol is broken, no better than
> today's typical session based security in WWW applications.

Excellent! I agree this is a Confused Deputy attack. Fortunately, this 
is not how I intended to address the numbered slots (I was still working 
on the details at the time, so I apologize for any confusion). I suspect 
you thought I was suggesting:

http://host/C[n]

A request on this combined with the S1 cookie, does produce the above 
problem.

In my mind, the C[n] must reference the membrane, since it is relative 
to it. I'm still a little fuzzy on some web-calculus implementation 
details, but I was envisioning something more like:

http://host/PK1?slot=C[n]
OR
http://host/PK1/C[n]

Something along those lines. Does that address your concern?

Sandro


More information about the cap-talk mailing list