TRESOR

TRESOR ( rekursiv akronym för "TRESOR Runs Encryption Securely Outside RAM", och även det tyska ordet för en säker ) är en Linux- kärnpatch som tillhandahåller kryptering med endast CPU :n för att försvara sig mot kallstartsattacker på datorsystem genom att utföra kryptering i CPU-register snarare än RAM-minne ( Random-Access Memory ). Det är en av två föreslagna lösningar för allmänna datorer. Den andra, som kallas "fryst cache" använder CPU-cachen istället. Den utvecklades från sin föregångare AESSE, presenterades på EuroSec 2010 och presenterades på USENIX Security 2011. Författarna uppger att den tillåter att RAM-minne behandlas som opålitligt ur säkerhetssynpunkt utan att hindra systemet.

Motivering

Inom datorsäkerhet är ett vanligt problem för datasäkerhet hur en inkräktare kan komma åt krypterad data på en dator. Moderna krypteringsalgoritmer, korrekt implementerade och med starka lösenord , är ofta okrossbara med nuvarande teknik, så tyngdpunkten har flyttats till tekniker som kringgår detta krav, genom att utnyttja aspekter av datasäkerhet där krypteringen kan "brytas" med mycket mindre ansträngning, eller annat förbigås helt.

En kallstartsattack är ett sådant sätt genom vilket en inkräktare kan besegra kryptering trots systemsäkerhet, om de kan få fysisk åtkomst till den körande maskinen. Den bygger på de fysiska egenskaperna hos kretsarna i minnesenheter som vanligtvis används i datorer. Konceptet är att när ett datorsystem har krypterad data öppen, krypteringsnycklarna som används för att läsa eller skriva dessa data tillfälligt i fysiskt minne, i en vanlig läsbar form. (Att hålla dessa nycklar i "vanlig" form under användning är svårt eller omöjligt att undvika med vanliga system eftersom systemet självt måste kunna komma åt data när det instrueras av den auktoriserade användaren). Vanligtvis är detta ingen fördel för en obehörig inkräktare, eftersom de inte kan komma åt eller använda dessa nycklar – till exempel på grund av säkerhet inbyggd i programvaran eller systemet. Men om minnesenheterna kan nås utanför det körande systemet utan förlust av innehåll, till exempel genom att snabbt starta om datorn eller ta bort enheterna till en annan enhet, kan det aktuella innehållet – inklusive eventuella krypteringsnycklar som används – enkelt läsas och används. Detta kan vara viktigt om systemet inte kan användas för att se, kopiera eller komma åt den informationen – till exempel systemet är låst, eller kan ha fällor eller andra intrångskontroller, eller behövs i en garanterat orörd form för kriminaltekniska eller bevisändamål .

Eftersom detta är en fysisk egenskap hos själva hårdvaran, och baserat på fysiska egenskaper hos minnesenheter, kan den inte besegras lätt med rena mjukvarutekniker, eftersom all programvara som körs i minnet vid ingreppspunkten blir tillgänglig. Som ett resultat är all krypteringsprogramvara vars nycklar kan nås på detta sätt sårbara för sådana attacker. Vanligtvis involverar en kallstartsattack kylning av minneschip eller snabb omstart av datorn, och utnyttjande av det faktum att data inte omedelbart förloras (eller inte går förlorade om strömmen återställs mycket snabbt) och data som lagrades vid ingreppspunkten kommer att lämnas tillgänglig för undersökning.

Kallstartsattacker kan därför vara ett sätt för obehörig datastöld, förlust eller åtkomst. Sådana attacker kan omintetgöras om krypteringsnycklarna inte är tillgängliga på hårdvarunivå för en inkräktare – dvs de enheter där nycklarna lagras när de används är inte mottagliga för kallstartsattacker – men detta är inte det vanliga fallet.

TRESORs tillvägagångssätt

TRESOR är en mjukvaruansats som försöker lösa denna osäkerhet genom att lagra och manipulera krypteringsnycklar nästan uteslutande på processorn ensam och i register som endast är tillgängliga vid ring 0 (den högsta behörighetsnivån) – undantaget är den korta perioden av initial beräkning vid början av en session. Detta säkerställer att krypteringsnycklar nästan aldrig är tillgängliga för användarutrymmeskod eller efter en kallstartsattack. TRESOR skrivs som en patch till kärnan som lagrar krypteringsnycklar i x86-felsökningsregistren och använder nycklargenerering , atomicitet och blockering av vanlig ptrace -åtkomst till felsökningsregistren för säkerhet .

TRESOR förebådades av en avhandling från 2010 av Tilo Muller som analyserade problemet med kallstartattack. Han drog slutsatsen att moderna x86- processorer hade två registerområden där CPU-baserad kärnkryptering var realistisk: SSE- registren som i själva verket kunde göras privilegierade genom att inaktivera alla SSE-instruktioner (och nödvändigtvis alla program som förlitar sig på dem), och felsökningsregistren som var mycket mindre men hade inga sådana problem. Han lämnade det senare åt andra att undersöka och utvecklade en proof of concept distribution kallad Paranoix baserad på SSE-registermetoden.

Dess utvecklare uppger att "att köra TRESOR på en 64-bitars CPU som stöder AES-NI , det finns ingen prestandastraff jämfört med en generisk implementering av AES ", och körs något snabbare än standardkryptering trots behovet av nyckelomräkning, ett resultat som förvånade till en början också författarna.

Potentiella sårbarheter

Författarnas tidning noterar följande:

  • Även om de inte kan utesluta att CPU-data läcker in i RAM-minnet, kunde de inte observera något fall av detta under formella tester. Alla sådana fall förväntas kunna lappas.
  • Rotåtkomst till krypteringsnycklarna via kärnan i ett körande system är möjlig med laddningsbara kärnmoduler eller virtuellt minne ( /dev/kmem ) och fysiskt minne ( /dev/mem ), om de kompileras för att stödja dessa, men annars verkar det inte vara tillgänglig på alla kända sätt på ett standardsystem som körs.
  • ACPI- viloläge och lågeffekttillstånd: - på riktiga processorer nollställs registren under ACPI S3-tillstånd (suspend-to-ram) och S4 (suspend-to-disk) eftersom CPU är avstängd för dessa.
  • Kallstartsattacker på CPU:n: - på riktiga processorer rensas registren till noll vid både hårdvaruåterställningar och mjukvaruåterställningar (" Ctrl-Alt-Delete ") . Emellertid är CPU-register för närvarande sårbara på virtuella maskiner , eftersom de återställs under simulerade hårdvaruåterställningar men inte under programvaruåterställningar. Författarna anser att detta är ett uppenbart fel i många implementeringar av virtuella maskiner, men noterar att virtuella system skulle vara sårbara i sig även om detta åtgärdades, eftersom alla register på en virtuell maskin sannolikt är tillgängliga med hjälp av värdsystemet.
  • TRESOR är resistent mot timingattacker och cachebaserade attacker genom design av AES-NI-instruktionen, där processorn stöder AES-instruktionsuppsättningstillägg . Processorer som kan hantera AES-förlängningar från och med 2011 är Intel Westmere och Sandy Bridge (undantaget vissa i3) och efterföljare, AMD Bulldozer och vissa VIA PadLock- processorer.
  • År 2012 visade en tidning som heter TRESOR-HUNT hur en DMA-attack kunde bryta detta system, genom att injicera kod som osynligt skulle fungera vid ring 0 (den högsta behörighetsnivån), förbi "lockouten" som infördes av TRESOR, vilket skulle göra det möjligt för den att läsa nycklarna från felsökningsregistren och överför dem till vanligt minne. Tidningen föreslog också sätt att mildra sådana attacker.

Se även

Referenser och anteckningar

externa länkar