Hårdvarustöd för isolerad körning (t.ex. Intel SGX) möjliggör utveckling av program som håller deras kod och data konfidentiella även när de kör på en fientlig eller äventyrad värd. Det är dock fortfarande svårt att automatiskt kontrollera att sådana ansökningar uppfyller sekretesskraven. Vi presenterar en metod för att utforma sådana tillämpningar på ett sätt som gör det möjligt att certifiera deras sekretess. Vår metodik består i att tvinga applikationen att kommunicera med omvärlden genom ett smalt gränssnitt, sammanställa den med runtime kontroller som hjälpverifiering, och koppla den till ett litet runtime bibliotek som implementerar gränssnittet. I runtime-biblioteket ingår kärntjänster såsom säkra kommunikationskanaler och minneshantering. Vi formaliserar denna begränsning på ansökan som Information Release Continement (IRC), och vi visar att det gör det möjligt för oss att bryta ner uppgiften att bevisa sekretess i (a) en gång, mänskligt-stödd funktionell verifiering av körtiden för att säkerställa att det inte läcker hemligheter, (b) automatisk verifiering av ansökans maskinkod för att säkerställa att den uppfyller IRC och inte direkt läsa eller korrumpera runtime inre tillstånd. Vi presenterar /CONFIDENTIAL: en kontrollör för IRC som är modulär, automatisk, och håller vår kompilator utanför den betrodda datorbasen. Vår utvärdering tyder på att metoden skalar sig till verkliga tillämpningar.
Rohit m.fl. REF introducerar ett runtime-bibliotek som erbjuder ett gränssnitt för att säkert kommunicera med den externa parten i enklaven.
A design and verification methodology for secure isolated regions
{'venue': 'PLDI 2016', 'journal': None, 'mag_field_of_study': ['Computer Science']}