
A determinisztikus titkosítás és a támadások alapjai
A friss támadások egy egyszerű, ám mégis zseniális trükkre épülnek: mindössze egy speciális hardveres eszközre, úgynevezett interposerre van szükség, amely a processzor és a memória közé illeszkedik. Innen már könnyedén megfigyelhető, hogyan áramlik az adat a két fő komponens között. Az Intel és az AMD memóriavédelmi megoldásai determinisztikus titkosítást alkalmaznak: amikor egy adott adat ugyanarra a memóriacímre íródik, minden alkalommal pontosan ugyanazt a titkosított „feldolgozott” adatot kapjuk. Ez a megoldás remekül működik például egy merevlemez tartós védelméhez, de a főmemóriánál – ahol az adatok folyamatosan változnak – támadási lehetőségek tárházát nyitja meg.
Nem elhanyagolható, hogy a chipgyártók azért választották ezt az egyszerűbb titkosítási sémát, mert így kevesebb erőforrást igényel a védelem – vagyis olcsóbb hardvert lehet fejleszteni, ráadásul az egész RAM-ot könnyen lehet védetté tenni. Ennek következtében azonban különféle, fizikai hozzáférést igénylő támadások – mint a Battering RAM és a Wiretap – sikerrel járhatnak, és a támadók akár 18 ezer forintból (50 USD) is össze tudják rakni a szükséges eszközöket.
Battering RAM: olcsó és veszélyes
A Battering RAM célja, hogy az interposerrel úgynevezett memóriaálneveket (aliasokat) hozzon létre: különböző memóriacímek ugyanarra a fizikai helyre mutatnak. Így a támadó elmentheti az áldozat titkosított adatát (ciphertext), majd egy későbbi időpontban visszajátszhatja azt ugyanoda. Mivel a titkosítás mindig ugyanaz, az adat hibátlanul visszafejtődik – ám már egy megváltozott helyzetben, amivel a támadó visszaélhet.
Az Intel SGX-ben az összes védett RAM tartalma egyetlen kulccsal van titkosítva, ezért a támadó akár a valódi (plaintext) adattartalomhoz is hozzáférhet, sőt a processzor úgynevezett provisioning kulcsát is ellophatja. Ez gyakorlatilag az SGX hitelesítésének végét jelenti, hiszen ezzel igazolja magát a rendszer a külső kapcsolatok felé. Az AMD SEV-SNP esetében némileg más a helyzet: ott a virtuális gépenkénti kulcs miatt a visszajátszás csak a hitelesítési jelentéseket érinti, de még így is lehetőség van arra, hogy egy manipulált gépet hitelesnek tüntessenek fel. A Battering RAM legnagyobb előnye, hogy olcsó felszereléssel is kivitelezhető, ráadásul aktív támadásra is alkalmas: vagyis nemcsak olvashatja, hanem módosíthatja is az adatokat a memóriában.
Wiretap: kulcsmegfejtés, de drágán
A Wiretap támadás az SGX + DDR4 kombináció ellen működik, hasonló elven, de csak olvassa a védett adatokat. Lényege: egy előre összeállított szótár, tele kulcs-érték párokkal, amelyeket az elliptikus görbe alapú digitális aláírás (ECDSA) algoritmusa során gyakran előforduló adatokból állítanak össze. Ha egy ilyen ismert szót megtalálnak titkosított formában, vissza tudják fejteni, és így akár a teljes titkosítási kulcshoz is hozzáférhetnek. A Wiretap felszerelés költsége azonban nem csekély – 180–360 ezer forint (500–1000 USD) –, viszont képes visszafejteni a hitelesítéshez használt privát kulcsokat is.
A támadók a megszerzett kulccsal teljes hozzáférést szerezhetnek a szolgáltatáshoz – például a Phala okosszerződés-platform esetében: be tudnak épülni a rendszerbe, és minden adatot elérhetnek, akár a master kulcshoz is hozzájuthatnak, amellyel a teljes tesztháló kulcskészletét visszafejthetik.
Blokkláncok és cloud szolgáltatók: még mindig hisznek a TEE-kben
Bár az Intel és az AMD soha nem ígért védelmet fizikai támadások ellen, a legtöbb blokklánc- és felhőszolgáltató továbbra is vakon bízik a TEE-k által nyújtott biztonságban – még azután is, hogy ilyen támadások már bizonyítottan működnek. Az olyan szolgáltatók, mint a Secret, a Crust vagy az IntegriTEE a kutatók értesítése után igyekeztek mérsékelni a kockázatokat, de a technológia alapvető sebezhetőségeit nem tudják kiküszöbölni.
Mindkét támadás jelenleg csak DDR4 memóriamodulokon működő rendszerek ellen hatásos; az újabb DDR5-ös chipek buszsebessége és bonyolultabb kommunikációja miatt ezekre már nem alkalmazhatóak. A TDX (Intel legújabb védelmi technológiája), amely csak DDR5-tel működik, védettnek számít.
Lehet-e védekezni?
A chipgyártók kizárólag szoftveres támadások ellen ígérnek védelmet TEE-ikkel; a fizikai hozzáférést, illetve az interposer-alapú támadásokat kifejezetten nem veszik figyelembe a fenyegetési modellben. A közeljövőben egyetlen hatékony megoldás kínálkozik: a determinisztikus titkosítást erősebb, valószínűségi titkosítási módszerre kell lecserélni, amelynél ugyanaz a forrásadat minden alkalommal más és más titkosított változattá alakul. Fontos szempont azonban, hogy ilyen védelem nagy mennyiségű RAM esetén komoly mérnöki kihívásokat jelent, és a megvalósítás időpontja egyelőre kérdéses.
Ezért aki valóban érzékeny adatokat tárol a felhőben, gondolja meg kétszer is, hogy rábízza-e titkait pusztán az Intel vagy az AMD chipjeitől várt csodára.