Recovering a Full AES-128 Key Across Tenant Boundaries via DDR4 Row-Buffer Timing on Cloud FPGAs
Dit artikel demonstreert dat een volledig onbevoorrechte co-tenant op een gedeelde cloud-FPGA een volledige AES-128 master key van een slachtoffer kan herstellen door gebruik te maken van DDR4 row-buffer timing zijkanalen, waarbij de "one-slot-per-bank" beperking wordt overwonnen door middel van reverse-engineered bank mapping en statistische aggregatie over meerdere encrypties.
Oorspronkelijk artikel gelicentieerd onder CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/). Dit is een AI-gegenereerde uitleg van het onderstaande artikel. Het is niet geschreven of goedgekeurd door de auteurs. Raadpleeg het oorspronkelijke artikel voor technische nauwkeurigheid. Lees de volledige disclaimer
In de moderne digitale wereld stellen we ons vaak voor dat onze privédata veilig opgeborgen is in een beveiligde kluis, gescheiden van de nieuwsgierige ogen van anderen door lagen software en digitale muren. Dit is de belofte van cloud computing: dat verschillende gebruikers dezelfde krachtige hardware kunnen delen zonder elkaars werk te zien. De fysieke realiteit van hoe computers informatie opslaan, vertelt echter een ander verhaal. Wanneer een computer een berekening uitvoert, moet hij vaak waarden opzoeken in een grote lijst, vergelijkbaar met het controleren van een woordenboek voor een definitie. Om dit snel te doen, opent de computer een specifief deel van zijn geheugen, bekend als een row buffer, om die lijst gereed te houden. Als de computer een ander item in dezelfde sectie moet opzoeken, moet hij de huidige lijst sluiten en een nieuwe openen, een proces dat een fractie van een seconde langer duurt. Dit verschil in tijd, hoewel minuscuul, laat een spoor achter. Net zoals een voetstap in nat zand onthult waar iemand heeft gelopen, kan de tijd die nodig is om geheugen te benaderen onthullen welke gegevens er werden gebruikt. Decennialang wisten beveiligingsexperts dat deze kleine timingclues gebruikt konden worden om geheimen te stelen van een enkele computer, maar de vraag bleef of deze truc ook kon werken over de onzichtbare grenzen die verschillende gebruikers op een gedeelde cloudserver van elkaar scheiden.
Onderzoekers aan de University of North Carolina at Charlotte hebben nu aangetoond dat het inderdaad mogelijk is om een volledige geheime sleutel te stelen van een buur op een gedeelde cloudserver, met niets anders dan de timing van geheugentoegang. Ze richtten zich op een specif Kind cloudhardware genaamd een Field-Programmable Gate Array, of FPGA, een herconfigureerbare chip die wordt gebruikt om complexe taken te versnellen. In een typische cloudopstelling worden meerdere gebruikers op dezelfde fysieke kaart geplaatst om kosten te besparen. Hoewel de software ervoor zorgt dat Gebruiker A de bestanden van Gebruiker B niet direct kan lezen, delen beide gebruikers dezelfde fysieke geheugenchips buiten de hoofdprocessor. De onderzoekers toonden aan dat een gebruiker zonder speciale privileges, zonder toegang tot de data van het slachtoffer en zonder kennis van de geheime sleutel, nog steeds de volledige encryptiesleutel van een buur kon achterhalen. Ze bereikten dit door nauwkeurig te meten hoe lang het duurde voor hun eigen computer om uit het geheugen te lezen terwijl de buur tegelijkertijd een encryptie uitvoerde.
De uitdaging was veel moeilijker dan simpelweg luisteren naar de activiteit van de buur. In een standaard computercache laat elk stukje data zijn eigen unieke voetafdruk achter, waardoor een aanvaller alle zestien delen van een geheime sleutel tegelijkertijd kan zien. De geheugenchips die in deze cloudservers worden gebruikt, gedragen zich echter anders. Ze hebben een structurele beperking waarbij elke geheugensectie slechts het allerlaatste item kan onthouden dat het heeft geopend. Wanneer een slachtoffer een bericht versleutelt, zoekt hij zestien verschillende waarden op in een rij. Omdat de geheugensectie slechts één open item tegelijk kan vasthouden, wordt de eerste vijftien opzoeken direct overschreven door de zestiende. Tegen de tijd dat de aanvaller probeert te luisteren, is het bewijs van de eerste vijftien delen van het geheim verdwenen, waardoor alleen het laatste stukje zichtbaar blijft. Dit creëerde een barrière die standaard hacktechnieken nutteloos maakte, aangezien de aanvaller slechts één byte van de zestienbyte-sleutel kon zien, wat niet genoeg is om de encryptie te breken.
Om dit te overwinnen, bedachten de onderzoekers een slimme strategie die misbruik maakte van het feit dat de geheugenchip zestien onafhankelijke secties bevat, elk met een eigen geheugenbuffer. In plaats van te proberen alle zestien delen in één enkele sectie te beluisteren, herarrangeerden ze de geheime data zodat elk van de zestien delen van de sleutel in een andere geheugensectie woonde. Op deze manier, wanneer het slachtoffer alle zestien waarden opzocht, openden ze alle zestien secties simultaan, en overschreven ze elkaar niet. De aanvaller bouwde vervolgens een aangepaste tool die snel elke van de zestien secties kon controleren om te zien welke er nog open was. Door dit proces te herhalen met veel verschillende testberichten, kon de aanvaller genoeg aanwijzingen verzamelen om de volledige geheime sleutel te reconstrueren. De onderzoekers testten deze methode op een Xilinx Alveo U250-kaart, een veelgebruikt stuk hardware in datacentra. Ze ontdekten dat door hun eigen programma naast het encryptieprogramma van een slachtoffer te draaien, ze de volledige masterkey konden achterhalen in alle negentien geteste sleutels, zelfs wanneer het slachtoffer een volledig encryptieproces van tien ronden uitvoerde.
Het succes van deze aanval berustte op twee belangrijke ontdekkingen. Ten eerste moesten de onderzoekers uitzoeken hoe de geheugencontroller precies besliste welke sectie van het geheugen voor een specifiek stukje data zou worden gebruikt. Deze mapping is niet voor de hand liggend en verschilt voor elk type hardware. Het team heeft deze mapping reverse-engineered door te timen hoe lang het duurde om verschillende adressen te benaderen, waardoor ze de geheugenlay-out van buitenaf in kaart brachten. Ten tweede moesten ze bewijzen dat het signaal dat ze detecteerden echt was en niet slechts willekeurige ruis. Het verschil in tijd tussen een succesvolle geheugentoegang en een mislukte was ongelooflijk klein, ongeveer vier klokcycli, of ongeveer drieëndertig nanoseconden. Ondanks dit minuscule signaal toonden de onderzoekers aan dat door de resultaten over vele pogingen te middelen, het patroon duidelijk werd. In hun meest realistische test, waarbij de aanvaller en het slachtoffer volledig aparte programma's draaiden zonder enige coördinatie, wist de aanvaller de volledige sleutel te achterhalen van een slachtoffer dat data versleutelde met een geverifieerd, standaard encryptiealgoritme.
Dit werk betekent niet dat alle cloudcomputing momenteel onveilig is, maar het onthult een specifieke kwetsbaarheid in hoe gedeelde hardware wordt beheerd. De onderzoekers merkten op dat de meeste commerciële cloudinstances vandaag de dag aan een enkele gebruiker zijn toegewezen, wat dit type aanval voorkomt. Echter, naarmate de industrie beweegt naar efficiëntere, gedeelde hardware om kosten te verlagen, neemt het risico toe. De studie benadrukt dat logische isolatie, die software gescheiden houdt, niet voldoende is om fysieke bronnen te beschermen. De geheugenchips zelf bewaren een geschiedenis van wat er is benaderd, en die geschiedenis kan door een buur gelezen worden. De onderzoekers stellen verschillende manieren voor om dit op te lossen, zoals het bewaren van geheime data in het snelle, private geheugen binnen de chip in plaats van in het gedeelde externe geheugen, of het randomiseren van waar data wordt opgeslagen zodat de timingclues betekenisloos worden. Ze stellen ook voor dat cloudproviders geheugentoegangspatronen kunnen monitoren om te detecten wanneer een gebruiker probeert mee te spioneren met een andere gebruiker.
De implicaties van dit onderzoek reiken verder dan slechts één type encryptie. De methode die wordt gebruikt om de sleutel te stelen, berust op de fundamentele manier waarop geheugen werkt, wat betekent dat deze potentieel kan worden toegepast op andere geheime algoritmen die vergelijkbare lookup-tabellen gebruiken. De onderzoekers benadrukten dat hun bevindingen gebaseerd zijn op werkelijke hardware-experimenten, niet op computersimulaties, wat de resultaten een hoge mate van betrouwbaarheid geeft. Ze testten de aanval tegen vijftig verschillende willekeurige sleutels en negentien verschillende encryptiescenario's, en het werkte elke keer. Het volledige proces van het terugvinden van de sleutel duurde slechts enkele seconden nadat de initiële opstelling voltooid was, wat het een praktische dreiging maakt voor elke toekomstige cloudomgeving die meerdere gebruikers toestaat om dezelfde fysieke geheugens te delen.
Uiteindelijk dient deze studie als een waarschuwing dat de fysieke wereld van computerhardware haar eigen regels heeft die software niet altijd kan overrulen. Net zoals twee mensen die een kamer delen elkaars voetstappen kunnen horen, zelfs als ze elkaar niet kunnen zien, kunnen twee gebruikers die een cloudserver delen de timing van elkaars geheugentoegang kunnen horen. De onderzoekers hebben aangetoond dat met genoeg geduld en de juiste tools, deze zwakke echo's kunnen worden versterkt tot een helder beeld van een geheim. Terwijl cloudproviders blijven proberen meer gebruikers op minder chips te plaatsen om de efficiëntie te verbeteren, zal het begrijpen van deze fysieke zijkanalen essentieel zijn voor het ontwerpen van systemen die werkelijk veilig zijn. De oplossing ligt niet in het bouwen van hogere digitale muren, maar in het begrijpen van het fysieke gedrag van het geheugen daaronder en het waarborgen dat de geschiedenis van de acties van de ene gebruiker niet gelezen kan worden door een andere.
Verdrinkt u in papers in uw vakgebied?
Ontvang dagelijkse digests van de nieuwste papers die bij uw onderzoekswoorden passen — met technische samenvattingen, in uw taal.