That's it. Point "7" is summarizes the goal.
In other words, (current) laws of physics do no allow completely isolated
systems. Unless you jump into a black hole... were even info can't escape
from it. So unless we compute stuff inside a black hole (and the problem
would be how to get result info back...) I think we can consider solutions
as "good" were the effort required to attack the solution it is not worth.
I guess everything we rely on is based on that nowadays...

El sáb., 18 nov. 2023 0:02, G. Branden Robinson <
g.branden.robin...@gmail.com> escribió:

> At 2023-11-17T16:02:28-0500, Demi Marie Obenour wrote:
> > On 11/12/23 00:44, Gernot Heiser via Devel wrote:
> > > If you want a theoretically sound solution – Welcome to Time
> > > Protection!
> > >
> > > In contrast to your implied claim that time protection is unsound:
> > > It’s been formalised, and it’s in the process of being proved
> > > correct and complete in an seL4 implementation. Its minimal hardware
> > > support also been implemented in RISC-V processors and demonstrated
> > > cheap and complete (may even be in silicon by now).
> >
> > A key storage service _must_ be able to respond to signing and
> > decryption requests to be usable at all, and that means that the
> > requester _will_ know how long the operation took.  One can try to hide
> > this information by padding the operation to its worst-case value,
> > but this only works if there _is_ a worst-case value.  In Qubes OS,
> > responding to a request will require heap allocation, fork(), disk
> > I/O, and sometimes user interaction.  That means that the worst-case
> > operation time is _infinite_, so time protection is simply not
> > possible and will not be possible for the foreseeable future.
>
> Can we reëstablish what we mean by "time protection", then?
>
> A few things seem to me to be true:
>
> 1.  Even on statically configured systems, response times for requested
>     services can easily exceed the quantum of a schedule slice or "time
>     protection domain", for exactly the reasons you say.  A service may
>     have highly variable _latency_: to require information retrieval
>     from a machine register, or local cache, or remote cache, or main
>     memory, or mass storage, or over the network, or may await human
>     interaction--as with a user needing to fumble with a physical token
>     or poke keystrokes into a user interface.  Approximately, each of
>     these is at least one order of magnitude slower than the last.
>
> 2.  The bandwidth of a timing channel attack is strongly and inversely
>     correlated with the channel's latency.  (This statement needs a
>     proof.)
>
> 3.  Practical time protection is therefore not so much a matter of
>     achieving zero information leakage; application design may not
>     permit that.  For example, in the key storage service example, one
>     _can_ draw statistical inferences based on the latency of response;
>     if the signing or decryption request was fulfilled in less than a
>     millisecond, then use of the key was probably not authorized
>     consequent to human interaction.
>
> 4.  The distinction between "static" and "dynamic" systems may become
>     indistinct here, since even a statically partitioned system may be
>     operating in a dynamic environment, particularly when taking into
>     account what data populate caches.
>
> 5.  A "static" system is not necessarily a deterministic one.  And
>     without perfect knowledge of microarchitectural implementations,
>     something that seems unlikely to eventuate with x86-64 or AArch64
>     cores, determinism seems impossible.  We have no way of knowing when
>     a microarchitectural gadget will decide to flush an undocumented
>     buffer.)
>
> 6.  Because multiple orders of magnitude separate fast accesses from
>     slow ones, the available bandwidth for exfiltration
>     decreases exponentially.  (This statement also needs a proof.)
>
> 7.  The art and science of time protection will progress on two fronts:
>     (a) selection by system designers of a "good" time quantum for
>     high-bandwidth channels that sacrifice little performance while
>     strangling the bandwidth of information leakage to zero capacity;
>     and (b) the socialization of knowledge about timing channel attacks
>     to application designers so that they can estimate the bandwidth of
>     the timing channels they create, and respond appropriately.
>
> An analogy that comes to mind is the quality of one-way hashes.  We know
> that we'll never have a perfect hash function for inputs of arbitrary
> length, but we know that the longer the hash, the better we can do.
> CRC32 is hopelessly weak for security applications (but still okay for
> others); MD5 is regarded as compromised; and BLAKE3 state-of-the-art.
>
> Time protection strong enough that your exfiltration countermeasures
> give your opponent a problem that will outlive them is adequate for most
> applications.  (When it is not, there is always the option of
> destroying,[1] relocating, or otherwise "losing" the data.[2])
>
> I'd very much welcome correction on any of the foregoing points.
>
> Regards,
> Branden
>
> [1] https://academic.oup.com/hwj/article/93/1/95/6535581
> [2]
> https://www.theguardian.com/media/2018/jan/31/cabinet-documents-abc-reveals-top-secret-files-found-in-old-filing-cabinets
> _______________________________________________
> Devel mailing list -- devel@sel4.systems
> To unsubscribe send an email to devel-leave@sel4.systems
>
_______________________________________________
Devel mailing list -- devel@sel4.systems
To unsubscribe send an email to devel-leave@sel4.systems

Reply via email to