[HN Gopher] Typed Programs Don't Leak Data
       ___________________________________________________________________
        
       Typed Programs Don't Leak Data
        
       Author : todsacerdoti
       Score  : 46 points
       Date   : 2021-06-27 20:06 UTC (2 hours ago)
        
 (HTM) web link (dodisturb.me)
 (TXT) w3m dump (dodisturb.me)
        
       | letitbeirie wrote:
       | Wasn't all the data being exfiltrated by the SolarWinds hack
       | encoded into the copious amount of (seemingly-)random garbage
       | emitted by .NET Framework? Pretty sure C# is typed.
        
         | recursive wrote:
         | > Pretty sure C# is typed.
         | 
         | Not in the way that the word is used in the link.
        
       | titzer wrote:
       | That's great, but microarchitectural sidechannels in all modern
       | hardware allow a program to read every byte in its entire address
       | space.
        
         | wyldfire wrote:
         | That's a risk that should be independently assessed. This could
         | mitigate accidental design decisions that would emit data
         | that's not intended to be revealed. It would force designers to
         | explicitly cast data as having been transformed to be safely
         | emitted.
        
         | mathetic wrote:
         | Wouldn't that require the programmer to be adversarial?
         | 
         | Since all type systems have escape hatches, I don't think they
         | would be resilient at all in adversarial settings. This is more
         | geared towards detecting accidental and _subtle_ data leakage.
        
         | andrew_ferr wrote:
         | There is some research on preventing microarchitectural timing
         | channels with information flow control as well.
         | https://dl.acm.org/doi/10.1145/3243734.3243743
        
         | staticassertion wrote:
         | Every program can already read its entire address space. What
         | you're probably trying to refer to is when a subroutine is
         | hosted within a virtual machine, given a side channel the
         | subroutine can read the address space of the VM host.
         | 
         | This is an extremely niche scenario, basically it's just
         | browser. Most people don't accept arbitrary programs to execute
         | in their address space.
        
       ___________________________________________________________________
       (page generated 2021-06-27 23:00 UTC)