[cap-talk] the "flaw" of separating designation from authority

Fred Spiessens fred at evoluware.eu
Wed Oct 25 15:28:32 CDT 2006


On 25 Oct 2006, at 18:10, Karp, Alan H wrote:

> Fred Spiessens wrote:
>>
>> A deputy D that avoids being confused by requiring his client C to
>> provide a capability Fcap to write to file located at "/deputy/
>> clientData.txt", could also avoid confusion by:
>> - requiring C to provide a certificate to write to a certain file :
>> Fcert  (unforgeable)
>> - requiring C to provide a designation of that file: "/deputy/
>> clientData.txt" (forgeable)
>> - requiring C to provide Fcert and " /deputy/clientData.txt" in the
>> same invocation (to be sure its the same client C, invoking D
>> for the
>> same purpose)
>> - use Fcert and " /deputy/clientData.txt" together (as if
>> they were a
>> single capability)
>>
> I'm not sure I fully understand the example, but it sounds like it is
> subject to a mistake we made in Client Utility.

It's hard to explain, and I should not have used file location but  
some permanent file identity (unique, permanent, but forgeable).
Let my try to clarify.
Fcert has all the authority and is unforgeable, but cannot be used  
like a capability, because, even if it contains a file designation  
hidden in its internals, it is not a file reference. It could be a  
statement, signed by the security kernel, that states : "The holder  
of this certificate is allowed to write to the file with permanent ID  
12345."
The protection system will have to check if the (forgeable) file ID  
provided as the designation, matches the certificate.

> The essence of the problem is that the deputy is issuing a single
> command using some of its authorities and some of the user's.  It  
> can be
> confused if it can't specify which authorities to apply to which
> arguments.

In the example, the deputy can specify that the authority  provided  
by its client should be applied to the  designation provided by its  
client.  For instance the deputy calls:
MyFileSystem.writeFile(fileID: 12345  certificate: Fcert  data: "XYZ").

>
> The Client Utility originally associated a specific authority with  
> each
> argument.  That later got "optimized" into a set of authorities for  
> all
> arguments without anyone identifying the vulnerability.

  Interesting, Client Utility may have discovered another kind of  
flaw, or maybe a variant of the confused deputy problem (as I  
understand it), that shows designation and authority really have to  
be combined. I would like to understand that flaw then.
Let me repeat, just to be clear, that I did not propose an  
alternative for capabilities. I only want to question the reason why  
capabilities can avoid confused deputies: I think it is not the  
combination of authority with designation, but the fact that (all)  
permissions are "portable".

Fred.




More information about the cap-talk mailing list