TRESOR - TRESOR
TRESOR ( rekurzivní zkratka pro „TRESOR Runs Encryption Securely Outside RAM“ a také francouzské slovo pro poklad) je záplata jádra Linuxu, která poskytuje šifrování založené pouze na CPU a chrání před útoky studeného spouštění počítačových systémů prováděním šifrování mimo obvyklé náhodné -přístupová paměť (RAM). Je to jedno ze dvou navrhovaných řešení pro počítače pro všeobecné použití (druhé používá ke stejnému účelu mezipaměť CPU), bylo vyvinuto z jeho předchůdce AESSE , představeného na EuroSec 2010 a představeného na USENIX Security 2011. Autoři uvádějí, že umožňuje RAM považovat z hlediska zabezpečení za nedůvěryhodné, aniž by to bránilo systému.
Dokument z roku 2012 nazvaný TRESOR-HUNT ukázal, jak útok DMA může tento systém rozbít, a to vložením kódu, který by neviditelně fungoval na prstenu 0 (nejvyšší úroveň oprávnění), který by mu umožnil číst klíče a přenášet je do obvyklé paměti. Dokument také navrhl způsoby, jak takové útoky zmírnit.
Motivace
V zabezpečení počítače je běžným problémem zabezpečení dat to, jak se vetřelec může dostat k šifrovaným datům v počítači. Moderní šifrovací algoritmy, správně implementované a se silnými hesly , jsou při současné technologii často nerozbitné, a tak se důraz přesunul k technikám, které tento požadavek obcházejí, využíváním aspektů zabezpečení dat, kde lze šifrování „prolomit“ s mnohem menším úsilím, jinak zcela obejit.
Studeném startu útok je jeden takový prostředek, který může narušitel porazit šifrování přes zabezpečení systému, pokud mohou získat fyzický přístup k běžící stroj. Je založen na fyzikálních vlastnostech obvodů v paměťových zařízeních, která se běžně používají v počítačích. Princip spočívá v tom, že když má počítačový systém otevřená šifrovaná data, samotné šifrovací klíče používané ke čtení nebo zápisu těchto dat jsou obvykle dočasně uloženy ve fyzické paměti, v čitelné podobě. (Držení těchto klíčů v „obyčejné“ formě během používání je u běžných systémů těžké nebo nemožné, protože samotný systém musí mít přístup k datům, pokud k tomu dostane pokyn oprávněného uživatele). Neautorizovanému vetřelci to obvykle neprospívá, protože k těmto klíčům nemohou přistupovat ani je používat - například kvůli zabezpečení zabudovanému v softwaru nebo systému. Pokud je však možné přistupovat k paměťovým zařízením mimo běžící systém bez ztráty obsahu, například rychlým restartováním počítače nebo odebráním zařízení na jiné zařízení, pak lze aktuální obsah - včetně všech používaných šifrovacích klíčů - snadno přečíst. a použité. To může být důležité v případě, že systém nelze použít k prohlížení, kopírování nebo přístupu k těmto datům - například je systém zamčený, nebo může mít nástrahy nebo jiné ovládací prvky vniknutí, nebo je zapotřebí v zaručeně nedotčené podobě pro forenzní nebo důkazní účely.
Protože se jedná o fyzickou vlastnost samotného hardwaru a na základě fyzických vlastností paměťových zařízení, nelze ji snadno porazit čistými softwarovými technikami, protože veškerý software běžící v paměti v místě zásahu je přístupný. Výsledkem je, že jakýkoli šifrovací software, k jehož klíčům lze takto přistupovat, je vůči takovým útokům zranitelný. Útok za studena obvykle zahrnuje chlazení paměťových čipů nebo rychlé restartování počítače a využití skutečnosti, že se data neztratí okamžitě (nebo se neztratí, pokud je napájení velmi rychle obnoveno) a data, která byla uložena v místě zásahu, budou ponechána. přístupné vyšetření.
Útoky za studena mohou být proto prostředkem neoprávněné krádeže, ztráty nebo přístupu k datům. Takové útoky lze zneplatnit, pokud nejsou šifrovací klíče na hardwarové úrovni přístupné útočníkovi - tj. Zařízení, ve kterých jsou klíče uloženy, když jsou používány, nejsou přístupné útokům za studena - ale toto není obvyklý případ.
Přístup TRESORU
TRESOR je softwarový přístup, který se snaží tuto nejistotu vyřešit uložením a manipulací šifrovacích klíčů téměř výhradně na samotném CPU a v registrech přístupných pouze na okruhu 0 (nejvyšší úroveň oprávnění) - výjimkou je krátké období počátečního výpočtu na začátek relace. Tím je zajištěno, že šifrovací klíče nejsou téměř nikdy k dispozici prostřednictvím uživatelského prostoru nebo po útoku za studena. TRESOR je napsán jako oprava jádra, která ukládá šifrovací klíče do registrů ladění x86 , a používá z důvodu zabezpečení generování kulatých klíčů za běhu , atomicitu a blokování obvyklého přístupu ptrace k ladicím registrům.
TRESOR byl předznamenán diplomovou prací Tilo Mullera z roku 2010, která analyzovala problém útoku za studena. Došel k závěru, že moderní procesory x86 mají dvě oblasti registrů, kde je šifrování jádra založené na CPU realistické: registry SSE, které by ve skutečnosti mohly být privilegovány deaktivací všech pokynů SSE (a nutně všech programů, které se na ně spoléhají), a ladicí registry, které byly mnohem menší, ale neměly žádné takové problémy. Nechal to prozkoumat ostatními a vyvinul důkaz distribuce konceptů nazvaný Paranoix založený na metodě registru SSE.
Jeho vývojáři uvádějí, že „když běží TRESOR na 64bitovém procesoru, který podporuje AES-NI , ve srovnání s obecnou implementací AES neexistuje žádná sankce za výkon “, a běží o něco rychleji než standardní šifrování navzdory potřebě přepočtu klíče, což je výsledek, který zpočátku překvapilo i autory.
Potenciální zranitelnosti
Dokument autorů uvádí následující:
- Ačkoli nemohou vyloučit únik dat CPU do RAM, nebyli schopni pozorovat žádný případ, který se stal během formálního testování. Očekává se, že každý takový případ bude opravitelný.
- Rootový přístup k šifrovacím klíčům prostřednictvím jádra běžícího systému je možný pomocí modulů jádra, které lze načíst, nebo virtuální paměti ( /dev /kmem ) a fyzické paměti ( /dev /mem ), pokud jsou zkompilovány tak, aby je podporovaly, ale jinak se zdá, že nejsou přístupné jakýmkoli známým způsobem na standardním běžícím systému.
- Stavy spánku ACPI a nízké spotřeby:-na skutečných procesorech jsou registry resetovány na nulu během stavů ACPI S3 (suspend-to-ram) a S4 (suspend-to-disk), protože je pro ně CPU vypnutý.
- Útoky studeného spouštění na CPU:-na skutečných procesorech jsou registry vymazány na nulu jak při resetování hardwaru, tak při resetování softwaru („ Ctrl-Alt-Delete “). Registry CPU jsou však aktuálně zranitelné na virtuálních počítačích , protože jsou resetovány během simulovaných resetů hardwaru, ale ne během resetu softwaru. Autoři to považují za zjevnou chybu v mnoha implementacích virtuálních počítačů, ale poznamenávají, že virtuální systémy by byly inherentně zranitelné, i kdyby to bylo opraveno, protože všechny registry na virtuálním počítači budou pravděpodobně přístupné pomocí hostitelského systému.
- TRESOR je odolný vůči časovacím útokům a útokům založeným na mezipaměti podle návrhu instrukce AES-NI , kde CPU podporuje rozšíření sady instrukcí AES . Procesory schopné od roku 2011 zpracovávat rozšíření AES jsou Intel Westmere a Sandy Bridge (některé i3 kromě) a následníci, AMD Bulldozer a některé procesory VIA PadLock .
- V roce 2012 dokument nazvaný TRESOR-HUNT ukázal, jak by útok DMA mohl tento systém rozbít, a to vložením kódu, který by neviditelně fungoval na prstenu 0 (nejvyšší úroveň oprávnění), čímž by se obešel „lockout“ uložený společností TRESOR, což by mu umožnilo číst klíče z registrů ladění a přeneste je do obvyklé paměti. Dokument také navrhl způsoby, jak takové útoky zmírnit.