[cap-talk] Concrete application, WebCVOS (was: Selling capabilities programming)

Jed Donnelley jed at nersc.gov
Thu Jul 19 19:35:48 EDT 2007


Jed Donnelley wrote:

One thing I should have mentioned is that in this (sort of 'X-Terminal') 
case:
> One approach to implementing such a WebCVOS would be to have the WebCVOS
> support no local capabilities except for the keyboard/mouse and 
> display.  All it
> would do would be to provide the "Invoke" call support and then have 
> all the
> other capabilities (e.g. files/directories for initialization, other 
> Windows or
> Unix compatibility capabilities, etc.) supported remotely.  Of course 
> this approach
> would probably have rather poor performance for file access in any but
> a very high speed LAN situation, but I consider that about the ultimate
> in opportunities for 'high assurance.'  I really don't see how you can do
> much better.  Granted there may be some potential for simple instruction
> execution (non "Invoke" calls) to cause a problem, but this interface is
> so 'thin' that I think it can fairly easily be adequately protected.  
> Beyond
> that the "Invoke" call itself is also rather thin.  It's only 
> concerned with
> determining validity of capabilities for communication and then moving
> data to and from safely.  Beyond that the only vectors for attack are
> through the service capabilities that might be serviced locally (e.g.
> the keyboard/mouse and display capabilities definitely, perhaps
> for local devices such as audio, optical media, etc., and perhaps
> through the file/directory capabilities).
>
even the Power Box could be supported remotely.  The call to
the Power Box capability would have to be given access to
the keyboard/mouse and a window display, but it could access
what amounts to the user's "/home" directory remotely.  This would
provide further assurance.

In such a case, of course, access to any local devices (e.g. audio,
optical drives, USB stuff, etc.) would have to be made available
to the Power Box (e.g. through the users /home directory) if it
were to be able to make them dynamically available to running
applications.  That would expose access to such devices to remote
exploitation, so there is a trade-off there, though those device
capabilities could be temporary for the duration of an application
run.

I really don't see how you can do much better from an "assurance"
viewpoint.  I could easily imagine also breaking up any Windows
features (e.g. the ability to "fork" - I don't know how many others
Windows has) into separate capabilities that would be separately
justified for initialization or through a power box.  I guess it's time
for me to get off my high and to go into response to issues mode.

--Jed   http://www.webstart.com/jed/


More information about the cap-talk mailing list