RE: RE: [Mx4j-user] RE: mx4j-Bugs-969175: Security and delegation

"Bordet, Simone" <[email protected]>
Newsgroups gmane.comp.java.mx4j.devel
Message-ID <[email protected]>
Hi Eamonn, 

> Ron,
> 
> Well, don't give up that easily! :-)

Ron, I agree with Eamonn here. We've had almost endless discussions, but we ended up with the best solution in all cases.

> I am not saying this can't be changed in a future version of 
> the API.  I am simply saying that the proposed change in the 
> semantics of the existing implementations is insecure and 
> cannot be made.
> 
> You are right that the situation where the creator of a 
> connector server must have all the permissions that any 
> client of the server will need is suboptimal.  It should be 
> possible to give the creator just the permissions it needs to 
> create the connector server.

I still haven't understood if you think the alternative implementation has a security hole or not. I think it has not.

Eamonn, I have understood your example where a connector can return non-authenticated users. But I think it does not demonstrate any security hole, and I am still not convinced.

Also, I'm seeing the issue more from the point of view of the person that has to make the system work.
The assumption is that the system must allow a certain principal to delete files.
The assumption is that no codebase is trusted: it must have the least set of permissions possible.

The only policy file that allow a non-trusted "jmxconnectorserver.jar" to delete files is the first, the default implementation.
The proposed solution buys nothing for one more permission.

But sure we must discuss this better.

In almost-policy-file-syntax:

Current implementation:
~~~~~~~~~~~~~~~~~~~~~~~

grant codebase "jmxconnectorserver.jar"
{
   permission SocketPermission "localhost","listen";
   permission SocketPermission "*:1024-","accept";

   permission FilePermission "<<ALL FILES>>","delete";
};

grant principal "eraser"
{
   permission MBeanPermission "com.acme.Eraser","invoke";
   permission FilePermission "<<ALL FILES>>","delete";
};


Alternate implementation:
~~~~~~~~~~~~~~~~~~~~~~~~~

grant codebase "jmxconnectorserver.jar"
{
   permission SocketPermission "localhost","listen";
   permission SocketPermission "*:1024-","accept";
};

grant principal "eraser"
{
   permission MBeanPermission "com.acme.Eraser","invoke";
   permission FilePermission "<<ALL FILES>>","delete";
};

Proposed implementation:
~~~~~~~~~~~~~~~~~~~~~~~~

grant codebase "jmxconnectorserver.jar"
{
   permission SocketPermission "localhost","listen";
   permission SocketPermission "*:1024-","accept";

   permission SubjectDelegationPermission "eraser";
};

grant principal "eraser"
{
   permission MBeanPermission "com.acme.Eraser","invoke";
   permission FilePermission "<<ALL FILES>>","delete";
};


-------------------------------------------------------
This SF.Net email is sponsored by BEA Weblogic Workshop
FREE Java Enterprise J2EE developer tools!
Get your free copy of BEA WebLogic Workshop 8.1 today.
http://ads.osdn.com/?ad_idP47&alloc_id808&op=click
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.