Factory Pitfall

Ben Laurie ben@algroup.co.uk
Thu, 24 Dec 1998 23:23:28 +0000


Bill Frantz wrote:
> 
> At 10:43 AM 12/24/98 +0000, Ben Laurie wrote:
> >Hmmm ... do you think it is possible to avoid covert channels?
> 
> [#] Our (the KeyKOS group's) analysis indicated that it was possible to
> greatly limit the bandwidth of covert channels.  Norm alluded to a covert
> channel where the sender and receiver share some limited resource (e.g.
> disk space).  By statically allocating separate pools to the sender and the
> receiver, you eliminate that channel.
> 
> It turns out that timing channels are the hardest to eliminate.  KeyKOS was
> originally written for the IBM S/370.  That machine has a user-mode
> accessible clock which ticks at approximately the clock rate of the CPU.
> It makes a wonderful tool for performance tuning, and for using CPU usage
> as a covert channel.  In general, you have to restrict access to the clock
> to eliminate this kind of covert channel.  If you limit the precision of
> the clock, you limit the bandwidth of the channel but do not eliminate it.

It was precisely this kind of channel I was thinking of when I asked the
question, though it seems to me that the solution is the same as the
solution for storage - static allocation of CPU usage.

However, surely the problem is that this means that I have to decide in
advance that I will support at most n processes, and divide every
resource into n chunks in advance, and _stick_ to that division. Which
may give me security, but at hellish expense.

> Some of the work in "reproducible computing" applies to this problem.  If
> you build a system where programs always run the same way, only dependent
> on their user specified inputs, then you eliminate them as receivers of
> covert channel information.  This is much harder than it may at first seem.
>  You must ensure that thread switches and interrupts occur at the same
> place in the instruction stream every execution.  In general, it is
> necessary to eliminate interrupts and thread/process interactions to
> achieve this level of reproducibility.

Doesn't that effectively mean we're talking about a purely theoretical
system?

Cheers,

Ben.

-- 
Ben Laurie            |Phone: +44 (181) 735 0686| Apache Group member
Freelance Consultant  |Fax:   +44 (181) 735 0689|http://www.apache.org/
and Technical Director|Email: ben@algroup.co.uk |
A.L. Digital Ltd,     |Apache-SSL author     http://www.apache-ssl.org/
London, England.      |"Apache: TDG" http://www.ora.com/catalog/apache/