Cookies op Tweakers

Tweakers maakt gebruik van cookies, onder andere om de website te analyseren, het gebruiksgemak te vergroten en advertenties te tonen. Door gebruik te maken van deze website, of door op 'Ga verder' te klikken, geef je toestemming voor het gebruik van cookies. Wil je meer informatie over cookies en hoe ze worden gebruikt, bekijk dan ons cookiebeleid.

Meer informatie

Door , , 63 reacties

Onderzoekers van de University of Massachusetts zijn erin geslaagd om de random number generator van Intels Ivy Bridge-cpu te hacken. De hack zou op geen enkele manier te detecteren zijn, zelfs niet als de processor met microscopen handmatig wordt gecontroleerd.

Het hacken van de processor wordt beschreven in het onderzoeksdocument met als titel 'Stealthy Dopant-Level Hardware Trojans'. De onderzoekers maken gebruik van doteren, dit is een techniek die bij de productie van chips veel wordt gebruikt. Met behulp van doteren worden in de kristalstructuur van een stof kleine onzuiverheden aangebracht. Dit proces is essentieel voor het bepalen van bepaalde eigenschappen van een transistor. Door doteren en op een bepaalde manier iets aan te passen bij specifieke delen van de random number generator, konden de onderzoekers de werking manipuleren.

De rng genereert een uitkomst op basis van twee willekeurige waarden van 128 bits, K en c. De waarde van K wordt door de hack constant. De waarde van c wordt deels constant, hoeveel bits constant zijn wordt door de aanvaller bepaald. Door het manipuleren van die waarden is de uitkomst van de rng veel beter te voorspellen. Een aanvaller heeft normaal een kans van 1/2n om de uitkomst van een rng goed te gokken, waarbij n staat voor het aantal bits. Bij de betreffende 128bit-rng is de kans dan 1/2128. Door het manipuleren van de rng met doteren kan de waarde van n door de aanvaller worden bepaald.

Cpu's van Intel kunnen zelf testen of er gerommeld is met de encryptiefunctionaliteit, maar een rng is een afzonderlijk, afgeschermd onderdeel, wat een niet te manipuleren zelftest bemoeilijkt. Volgens de onderzoekers zou de hack bij het gebruik van hun methode hoe dan ook niet gedetecteerd kunnen worden. Dit komt doordat de waarden die de rng produceert voldoende willekeurig zouden lijken. Alleen de aanvaller, die weet op welke waarden K en c zijn ingesteld, kan goed voorspellen welke 'willekeurige' waarden de rng zal genereren. Ook kan bij een handmatige inspectie met speciale microscopen het effect van doteren niet gezien worden. De methode is in de praktijk moeilijk toe te passen, maar toont wel het probleem van hardwarebeveiliging en detecteerbaarheid van manipulatie op een fundamenteel niveau aan.

Cpu rng trojan 1 Cpu rng trojan 2
Moderatie-faq Wijzig weergave

Reacties (63)

Op security.nl staat een wat duidelijker artikel. Het artikel heeft een net wat andere insteek maar gaat over hetzelfde. Titel: Onderzoekers verbergen Trojaans paard op microchip

Quote uit het artikel:
"Dit laat zien dat een gedoteerde Trojan kan worden gebruikt voor het compromitteren van de veiligheid van een echt doelwit en daarbij detectie door zowel functionele tests als detectiemechanismen voor Trojaanse paarden kan omzeilen", aldus de onderzoekers.
Keten
Zelfs als de chips in een betrouwbare fabriek worden gefabriceerd, is er een risico dat chips met hardwarematige Trojaanse paarden in de keten worden geÔntroduceerd. "De ontdekking van vervalste chips in industriŽle en militaire producten de afgelopen jaren heeft deze dreiging veel aannemelijker gemaakt." Voor toekomstig onderzoek pleiten de onderzoekers dan ook voor de ontwikkeling van nieuwe methodes om deze hardwarematige Trojaanse paarden op sub-transistorniveau te detecteren

[Reactie gewijzigd door Floor op 18 september 2013 09:56]

Quote uit het artikel van de onderzoekers:
In this paper we introduced a new type of sub-transistor level hardware Trojan that only requires modi cation of the dopant masks.
Mijns inziens kun je uit "betrouwbare fab" concluderen dat ze de correcte maskerset gebruiken, met andere woorden, dat er niet geknoeid is met de doterings maskers. Een alternatieve manier om dat artikel dat jij quote te lezen is "er is een risico dat enkele chips met trojans (uit een niet-betrouwbare fab) in een grote batch zonder trojans (uit de betrouwbare fab) worden geïntroduceerd". Maar goed, dan moet die niet-betrouwbare fab wel ergens de originele maskers vandaan halen; op de een of andere manier heb ik het gevoel dat dat best lastig is (tenzij ze als alternatieve leverancier een deel van de productie draaien).

En nog even een losse kanttekening: een maskerset kost letterlijk miljoenen euro's. Een fab kost miljarden. Deze aanval is niet bepaald binnen bereik van een script kiddie, om het even heel voorzichtig uit te drukken.

Alles bij elkaar denk ik dat dit een nogal theoretische aanval is. Bij chips die extreem interessante objecten aansturen moet je het misschien in je achterhoofd houden (en dan ben je er waarschijnlijk al door te zorgen dat je ontwerp / maskers niet uitlekken en je maar één (betrouwbare) fab gebruikt), maar in het algemeen... nee, ik denk niet dat het tijd is om in paniek te raken.

Voor de goede orde: ik ga me niet wagen aan uitspraken over de waarschijnlijkheid dat álle Ivy Bridge CPUs deze (of een andere) backdoor bevatten omdat de NSA bij Intel op de koffie is geweest "voor een goed gesprek"; het stuk hierboven gaat over de waarschijnlijkheid van backdoors waarvan Intel (chip-ontwerper én fab eigenaar!) zelf niet op de hoogte is.

[Reactie gewijzigd door robvanwijk op 18 september 2013 15:20]

Dit past mooi bij de huidige vermoedens dat de NSA een backdoor heeft naar de hardware RNG van Intel. Theodore Ts'o (Linux kernel dev.) schreef hierover:

I am so glad I resisted pressure from Intel engineers to let /dev/random rely only on the RDRAND instruction.

"By this year, the Sigint Enabling Project had found ways inside some of the encryption chips that scramble information for businesses and governments, either by working with chipmakers to insert back doors...."

Relying solely on the hardware random number generator which is using an implementation sealed inside a chip which is impossible to audit is a BAD idea.


Bron:

https://plus.google.com/1...2934025/posts/SDcoemc9V3J

Relying solely on the hardware random number generator which is using an implementation sealed inside a chip which is impossible to audit is a BAD idea.
Dit is het belangrijkste. Als je zelf niet vrij bent om willekeurige waardes uit de chip te trekken, kan je ook niet controleren of willekeur wel echt willekeur is.

In dit artikel wordt bijvoorbeeld de RNG van verschillende TPM-chips getest. Dit is mogelijk omdat zowel de standaard als de interface naar de RNG open zijn bij de TPM.
Wat ik nog verontrustender vind is dat de programma's die lopen bij de NSA/GCHQ vernoemd zijn naar burgeroorlogen. Hiermee geef je aan dat je eigen bevolking meer het doelwit is.

Only they are cleared for the Bullrun program, the successor to one called Manassas — both names of an American Civil War battle. A parallel GCHQ counterencryption program is called Edgehill, named for the first battle of the English Civil War of the 17th century.
Hoewel je in het engels spreekt van "n- or p-doping of a semiconductor", wordt het inbrengen van onzuiverheden in de vorm van een ander soort halfgeleidermateriaal in de bulk in het Nederlands "doteren" genoemd.
Dus de chip wordt fysiek aangepast. Apart. Ik ben benieuwd hoe. Ik kan me voorstellen dat een cpu overclocked wordt en doorbrandt, dat is ook fysiek aanpassen, maar dat is een stuk minder gecontroleerd.
Dit probleem kun je in principe met huis-tuin-en-keuken-middelen als volgt oplossen: giet je processor inclusief moederbord in hars, leg een dunne koperdraad in het hars. Zodra iemand probeert de processorbehuizing te openen zal met grote waarschijnlijk ook de koperdraad breken; dit kun je dan weer detecteren en hiermee bijvoorbeeld de processor onklaar maken.
En verolgens overbrugt de hacker die koperdraad weer. Als ze een CPU openmaken om de manipuleren kunnen ze dat ook.
daar wens ik ze dan veel succes mee

(je kunt heel nauwkeurig de weerstand en inductantie van de draad monitoren)

[Reactie gewijzigd door twop op 19 september 2013 12:33]

Totdat je chip van tevoren aangepast is. Ik heb het artikel niet goed gelezen, ik dacht dat het softwarematig gedaan werd (trojan). Nu blijkt dat ze de chip fysiek aanpassen.
Leuk onderzoek.
Ik denk toch dat het punt dat ze proberen te maken is dat als Intel samenwerkt met de NSA ze dit kunnen doen bij de productie van de CPU.
Het gaat hier dus over een hardwarematige hack als ik goed begrijp. Dus als je een officÔele IB cpu koopt is er normaal gezien geen probleem.

Is Haswell en Ivy-Bridge-E hier ook gevoelig aan?
Begin van het jaar verscheen hier ook al een soortgelijk artikel over, echter ging het daar om vervalsingen (bron).
Op dit moment bevatten veel CPU's eenhardwarematige PRNG, echter staat niets je in de weg om hier een softwarematige PRNG op te bouwen. Of nog beter, middels externe input een TRNG maken (bijvoorbeeld met een ruisgenerator). Het is sowieso al jaren bekend dat PRNG's fouten (kunnen) bevatten waardoor gegenereerde key's bij lange na niet zo random zijn als gehoopt.
Edit: interessant artikel over randomness in het algemeen.

[Reactie gewijzigd door Rick2910 op 18 september 2013 10:28]

Als je een groot serverpark hebt en iemand heeft een oog op jouw bedrijf, of de services die je host, kan een kwaadwillende groep een aantal geprepareerde IB-CPUs verkopen aan jou, in een aantal servers, en ben je niet meer zeker van je encryptie. Dit is nogal vergezocht, maar in principe kan een reseller om de zoveel chips een chip kraken en er ongezien mee wegkomen.
Kleine kanttekening hierbij is dat deze hack tijdens de productie van de processor gedaan moet worden. Als de CPU eenmaal af is zit de devicelaag waar de transistoren zitten zo diep in het substraat, met daarboven nog een stuk of 10 metaallagen voor de interconnects, dat het vrij lastig wordt om alsnog de benodigde implantaties uit te voeren. Mijn inziens kan je dus niet een CPU kopen, de daadwerkelijk chip demonteren, implanteren en vervolgens weer terug stoppen.

Dit neemt niet weg dat een kwaadwillend persoon in de fab wellicht wel deze hack kan uitvoeren door bijvoorbeeld het masker waarmee de normale doteringslagen worden aangebracht stiekum te veranderen.
Is het dan nog wel een hack te noemen? In feite moet er een CPU gemaakt worden die voor 99.9999999999999% op de IB-CPU lijkt maar dat eigenlijk niet is. Als je op dit niveau bezig moet zijn om het te bewerkstelligen dan kunnen er ook wel ingrijpendere aanpassingen toegebracht worden.
inderdaad. als het bij de productie moet. kan je het slachtoffer net zo goed zelfgemaakte / nep Intel processors verkopen? of zeg ik nou wat stoms
Het lijkt mij niet dat ook maar iemand tot dit toe in staat is, behalve onderzoeksinstituten gespecialiseerd op dit soort dingen of de fabrikant zelf.

Maarja, tegenwoordig moet je de integriteit van bedrijven ook altijd ter sprake stellen
aangezien de hardware wordt aangepast, lijkt mij dat je die heel simpel kan controleren: gewoon de functie x aantal keer aanroepen en de resultaten vergelijken
aangezien dat ze de K waarde constant maken moet dat vrij eenvoudig zijn om te checken
Het is een random-number generator. Als je 'm x keer aanroept en de resultaten zijn hetzelfde, dan is 'ie defect.

Je kunt deze RNG dus alleen met een statistische check controleren, en de grap van deze hack is dat je 'm alleen efficient kunt vinden als je weet waar je naar moet kijken.
Het is een random-number generator. Als je 'm x keer aanroept en de resultaten zijn hetzelfde, dan is 'ie defect.
De uitkomst is onwaarschijnlijk, maar nog geen bewijs van defect.
Nee dus, als ik het algoritme ken van een (pseudo)RNG en ik geef jou een serie waarden, kun jij echt het patroon niet ontdekken. Terwijl de uitkomsten voor mij wel 100% voorspelbaar zijn.
ok, dan ben je inderdaad fucked
maar stel dat je de waarde K kan aanroepen, kan aanroepen, dan weet je het direct
ik neem aan dat intel toch tools heeft om alle functies intern te controleren
Het is wel interessant te noemen, aangezien servers in Iran of N Korea best wel eens Intels zouden kunnen hebben draaien. En de generator wordt natuurlijk gebruikt voor het maken van beveiligingssleutels.
Hoe weet je wat "officieel" is? Als mensen echt willen rommelen is de verpakking opnieuw sealen wel het minst moeilijke.
Doordat het om een fysieke modificatie tijdens het productie productie proces gaat is het zeer moeilijk te bewerkstelligen achteraf als de cpu afgeleverd is door intel. Er komen dan de nodige lagen substraat overheen die doorboord moeten worden.
Dus als ik een sterke truecrypt container wil bouwen, dan kan de container een hash key bevatten de makkelijk teruggezet kan worden naar een decrypted key. Omdat de waarde semi-predetermined is.

Maar inderdaad erg onwaarschijnlijk dat je last krijgt van deze hack.

<pun> Maar AMD zal nu wel goed gaan verkopen aan overheids- en andere gevoelige instellingen ;). </pun>
Nee, truecrypt gebruikt (ook?) een eigen random generator, daarom moet je op windows met je muis gaan klooien en op linux met CLI op het toetsenbord rammen, genereerd random waardens die eigenlijk niet te voorspellen zijn.
En wat processed mijn keystrokes of muisbewegingen dan naar een hash waarde? Ik neem aan dat mijn CPU dat doet, er moet iets zijn wat die waarden berekent. Zou dat dan helemaal waterdicht zijn?
Tja, als je zo gaat redeneren dan kun je in eerste plaats al niet vertrouwen op de TrueCrypt software zelf. Misschien zit dŠŠr wel een backdoor in.
Mee eens, maar deze "hack" is sowieso al vergezocht. Maar puur uit hypothese vroeg ik me af wat de impact kan zijn. Eigenlijk alles wat geen gebruik maakt van externe services om de hash te genereren zou kwetsbaar zijn met een dergelijke CPU.

Aan de andere kant, injecteer deze hack in een cloud-server die waarden genereert voor zijn users en dan is er wel stront aan de spreekwoordelijke knikker. Dan hebben potentieel al je klanten een voorspelbare hash.

Ik probeer me simpelweg de impact voor te stellen van zoiets als dit.
Het heeft een eigen implementatie van een PRNG, die als input jouw keystrokes en muisbewegingen gebruikt. Die pool van entropy is dus wat er mis is hier en wat voorspelbaar is, en aangezien je dan dus een beperkte input set krijgt voor de PRNG krijg je een kleinere set aan mogelijke resultaten.
Ik mis een beetje de toepassing hiervoor.

Dat het handig is voor een hacker om de RNG te kunnen voorspeleln snap ik, maar hoe kan deze hack toegepast worden? Je hebt dan een PC waarvan je de processor hebt aangepast dat 'ie voorspelbare random waardes produceert - en dan? Wat kan je daar dan mee?
Dat is nogal een funest voor cryptografie. Als iemand de sleutels die je pc genereert kan voorspellen omdat ze voorkennis hebben over je random startwaarden, heb je toch wel 'n probleem.
Das dan dus ook de rede waarom Theodore Ts'o (die /dev/random voor linux gemaakt heeft) weigerde om /dev/random alleen afhankelijk te maken van de intel hardware rng. Hierdoor blijft /dev/random afhankelijk van verschillende bronnen van 'entropy', zoals keyboard input, netwerk enz.

De Intel RNG is nl een bron van 'entropy', in dit geval moet je dat zien als een bron van 'onvoorspelbare' waardes. Als je vervolgens meerdere bronnen combineert dan is onvoorspelbaar+voorspelbaar nog steeds onvoorspelbaar. Hierdoor kan je naar hartenlust extra bronnen van entropy toevoegen, of ze nou betrouwbaar zijn of niet, het verslechtert het resultaat nooit.
ik zit zelf altijd al te denken aan tijd, als entropy.
tijd loopt altijd veder. nooit terug, en zal dus altijd anders zijn
13:18:50:18:9:2013
13:18:51:18:9:2013
zou dit werken?
't Is nogal voorspelbaar, dus nee.

(En er zijn systemen gehackt omdat professionals dezelfde fout maakten)
Dat deden we vroeger al, denk in de basic van een msx, dat je de tijd als bron van de random berekening nam.
Maar bij een aanval kan de aanvaller dit proces herhalen en kent dus de uitkomsten.
En als je als grote leverancier deze pc's levert aan ministeries? Dan zitten zij voor hun gevoel te werken met sterke encryptie-methoden, maar kan het allemaal makkelijk ontsleuteld worden. Niet erg waarschijnlijk allemaal, maar het kŠn wel.
Handig als een toko als de NSA even met Intel overlegt om de K en c getallen voor ehm... oversees op een vaste waarde in te stellen. Scheelt hun weer met kraken van allerlei software die de rng gebruikt. :/
Kan iemand dit vertalen naar iets eenvoudigers, en hoe dit in te zetten zou kunnen zijn?

Edit: Dank allen.

[Reactie gewijzigd door ADQ op 18 september 2013 11:29]

De combinaties die bij encryptie keys worden gegenereerd worden verkleind door met de hardware te kloten.

De praktijk hierin kan ik me moeilijk indenken behalve een batch van 10.000 die naar bedrijven gaan onderscheppen en aanpassen. Dan stuur je ze naar de desbetreffende bedrijven en zijn die kwetsbaarder. Toch zou dit veel te veel werk zijn.
In ieder geval op Linux is deze aanval niet echt toepasbaar, omdat de random number generator niet alleen op Intels chip vertrouwt. Entropie uit deze chip wordt gemixt in de al bestaande random pool. Zie hier interessante discussie tussen Linux kernelontwikkelaar (Theodore Ts'o) en maker van de intel chip (David Johnston): https://plus.google.com/1...2934025/posts/SDcoemc9V3J
Of je hebt ze al klaar liggen, vervangen door jou exemplaar, en klaar
Dit houdt, bijvoorbeeld, in dat encryptiesleutels gegenereerd met de RNG van een bewerkte CPU te voorspellen zijn en daarmee de encryptie waardeloos wordt.
Correct, daarom moet je ook nooit encryptiesleutels genereren op basis van random waarden die alleen maar met die CPU-RNG zijn gegenereerd. Daar moet altijd ook nog een (of liefst meerdere) andere randomgenerators overheen. Gecombineerd (dat wil zeggen de resultaten gexord) geeft per definitie altijd het meest betrouwbare resultaat.
Door de rng in de CPU zo te doteren dat die K-waarde constant wordt en c gedeeltelijk constant, wordt het aantal mogelijke random numbers dat gegenereerd kan worden gereduceerd tot een 'kraakbaar' aantal.

Ingewikkelde en kostbare hack, maar ALS je er de resources voor hebt, kennelijk dus wel mogelijk. Misschien is dit zelfs NA productie nog mogelijk (met ingekochte normale chips).

Een overheid (of rijke bedrijven) zouden kunnen zorgen dat 'speciaal-gedoteerde-CPUs' geleverd worden aan andere overheden (of concurrenten) en daarmee een onzichtbaar zwakke encryptie-beveiliging creŽren op systemen uitgerust met die chips, die vervolgens gemakkelijk te kraken zijn (Brute-Force-en met de kleinere reeks getallen die je weet dat deze gedoteerde rng zal genereren).

Overigens: theoretisch kan je natuurlijk ook gewoon op een grovere en directere manier de transistoren op de CPU beÔnvloeden, ware het niet dat zulke 'trojans' dan waarschijnlijk wel zichtbaar zullen zijn onder speciale microscopen (als je er al naar op zoek gaat).

[Reactie gewijzigd door Doineann op 18 september 2013 10:01]

Dus dit is gevaarlijk omdat ? De RNG is nodig om bijvoorbeeld hashes / MD5 / SHA1 te berekenen ? En daardoor kan je dus standaard keys genereren ? Of snap ik het nu niet...
Niet een MD5-hash, maar wel een random waarde. Als jij opdracht geeft om een random getal te genereren (bv een TAN code of wachtwoord), kun je met deze hack voorspellen welke code gegenereerd wordt.

Omdat een computer "dom" is, kan deze geen random iets genereren zonder input (seed). Door deze seed zelf (deels) mee te geven kun je veel beter voorspellen wat de uitkomst is.

Voor wat betreft encryptie. Alle encryptiesleutels die op basis van deze processor wordt gemaakt, zijn dus te "voorspellen".

[Reactie gewijzigd door Ypho op 18 september 2013 09:50]

RNG's worden gebruikt om encryptiesleutels en unieke identifiers (zoals bijv. je sessie id hier op tweakers) te genereren. Op het moment dat de RNG voorspelbaar wordt is het voor de aanvaller dus een koud kunstje om de sleutel of id te achterhalen en daar misbruik van te maken.

Hashes zijn per definitie deterministisch en daar heeft een RNG dan ook niets te zoeken ;)

[Reactie gewijzigd door .oisyn op 18 september 2013 10:47]

Kun je niet gewoon een number generator schrijven die geen gebruik maakt van de instructiecodes van Intel? lijkt mij dan probleem opgelost als het softwarematig omzeilt, of zie ik dit verkeerd?
Je moet ergens iets random vandaan halen. Je zou ook een andere externe sensor kunnen gebruiken of bijvoorbeeld bewegingen van de gebruiker. Maar het is mij niet duidelijk wat ze nu precies hacken: of ze berekening of de random waarde aanvallen.

Volgens mij kan je voorstellen als een aangepaste dobbelsteen en een tegenstander die moet raden wat je gooit. De dobbelsteen is in een paar hoeken wat zwaarder waardoor je veel vaker bijvoorbeeld zes gooit. Dan is het voor je tegenstander een stuk makkelijker :)
Natuurlijk, of beter nog: een mix van beide.
Stel iemand weet bij zo'n fab van Intel te infiltreren en het productie proces aan te passen, wat zou diegene hier dan aan hebben in de praktijk? Wat kan hij dan met die aangepaste processors zodra die in systemen worden geplaatst? 't Is niet de eerste keer dat er wordt gerommeld met hardware vanuit de fabriek, virussen plaatsen op harde schijven enzo...
Ik kan me best voorstellen dat de NSA het wel interessant zou vinden een flinke serie CPU's aan te passen om aan de Chinese overheid te leveren ofzo.

edit: @FreezeXJ,China is maar een voorbeeldje natuurlijk.

[Reactie gewijzigd door mcDavid op 18 september 2013 13:16]

Niet alleen voor de Chinese overheid :P Als je het doet, doe het dan goed, en zorg dat alle CPUs een vaste 'randomizer' hebben. Hoef je een stuk minder te kraken, tot iemand iets anders gebruikt.

Op dit item kan niet meer gereageerd worden.



Apple iOS 10 Google Pixel Apple iPhone 7 Sony PlayStation VR AMD Radeon RX 480 4GB Battlefield 1 Google Android Nougat Watch Dogs 2

© 1998 - 2016 de Persgroep Online Services B.V. Tweakers vormt samen met o.a. Autotrack en Carsom.nl de Persgroep Online Services B.V. Hosting door True