Hardveres trójai vírusok és áramkörökben 1
Fogalmak Bevezető Fogalmak, rövidítések Miért kell a HTH-val foglalkozni? Hardveres trójai vírus : a hardver rosszindulatú megváltoztatása, amely speciális feltételek mellett a rendszer funkciójának megváltozását okozza 2
Fogalmak, rövidítések Miért kell a HTH-val foglalkozni? Rövidítések HTH: hardware trojan horse IP: intellectual property SoC: System on Chip Outsourcing: a vállalkozáson kívül elérhető erőforrások igénybevétele a vállalkozás feladatainak ellátásához 3
HTH beillesztése a HDL kódba Fogalmak, rövidítések Miért kell a HTH-val foglalkozni? 4
HTH beillesztése a HDL kódba Fogalmak, rövidítések Miért kell a HTH-val foglalkozni? 5
Miért kell a HTH-val foglalkozni? Fogalmak, rövidítések Miért kell a HTH-val foglalkozni? Elektronikus eszközök nagy szerepet játszanak életünkben Bizalmas adatok tárolása, továbbítása Különböző fontos (pl. orvosi berendezések) vezérlése Katonai alkalmazások Outsourcing miatt ki vagyunk szolgáltatva az integrált áramkört gyártó vállalatnak Report of the defense science board task force on high performance microchip supply. Defense Science Board, US DoD, Februar 2005 6
Félvezető gyártó üzemek Fogalmak, rövidítések Miért kell a HTH-val foglalkozni? Rank Company Foundry Type Country of origin Revenue (million $USD) 1 TSMC Pure-play Taiwan 14,600 2 UMC Pure-play Taiwan 3,760 3 Globalfoundries Pure-play United States 3,580 4 Samsung Semiconductor IDM South Korea 1,975 5 SMIC Pure-play China 1,315 6 TowerJazz Pure-play Israel 610 7 Vanguard (VIS) Pure-play Taiwan 519 8 Dongbu HiTek Pure-play South Korea 500 9 IBM IDM United States 445 10 MagnaChip IDM South Korea 350 11 SSMC Pure-play Singapore 345 12 Hua Hong NEC Pure-play China 335 13 Win Semiconductors Pure-play Taiwan 300 14 X-Fab Pure-play Germany 285 7
Foglalkozik-e vele valaki? Fogalmak, rövidítések Miért kell a HTH-val foglalkozni? 8
Foglalkozik-e vele valaki? Fogalmak, rövidítések Miért kell a HTH-val foglalkozni? 9
Digitális eszközök típusai Áramkörök tervezésének lépései 10
blokkdiagram és floorplan Áramkörök tervezésének lépései : helyszínen programozható logikai tömb 11
tervező környezet Áramkörök tervezésének lépései 12
Bitstream letöltése az -ba Áramkörök tervezésének lépései 13
Áramkörök tervezésének lépései floorplan (Intel Nehalem microarchitecture) : alkalmazásspecifikus integrált áramkör 14
Bitstream vs. GDSII Bevezető Áramkörök tervezésének lépései 15
Digitális áramkör tervezési lépési Áramkörök tervezésének lépései Specifikáció Magas szintű programnyelv HDL Tervezés Kapcsolási rajz Áramkör Gyártás Terjesztés Szöveges leírás C++ és SystemC VHDL és Verilog Kapcsolási rajz szimbólumok Tranzisztorok Bitstream Floorplan Áramkör kész, betokozva 16
Digitális áramkör tervezési lépési Áramkörök tervezésének lépései Specifikáció Magas szintű programnyelv HDL Tervezés Kapcsolási rajz Áramkör Gyártás Terjesztés Szöveges leírás C++ és SystemC VHDL és Verilog Kapcsolási rajz szimbólumok Tranzisztorok Bitstream Floorplan Áramkör kész, betokozva 17
Digitális áramkör tervezési lépési Áramkörök tervezésének lépései Specifikáció Magas szintű programnyelv HDL Tervezés Kapcsolási rajz Áramkör Gyártás Terjesztés Szöveges leírás C++ és SystemC VHDL és Verilog Kapcsolási rajz szimbólumok Tranzisztorok Bitstream Floorplan Áramkör kész, betokozva 18
Digitális áramkör tervezési lépési Áramkörök tervezésének lépései Specifikáció Magas szintű programnyelv HDL Tervezés Kapcsolási rajz Áramkör Gyártás Terjesztés Szöveges leírás C++ és SystemC VHDL és Verilog Kapcsolási rajz szimbólumok Tranzisztorok Bitstream Floorplan Áramkör kész, betokozva 19
Digitális áramkör tervezési lépési Áramkörök tervezésének lépései Specifikáció Magas szintű programnyelv HDL Tervezés Kapcsolási rajz Áramkör Gyártás Terjesztés Szöveges leírás C++ és SystemC VHDL és Verilog Kapcsolási rajz szimbólumok Tranzisztorok Bitstream Floorplan Áramkör kész, betokozva 20
Digitális áramkör tervezési lépési Áramkörök tervezésének lépései Specifikáció Magas szintű programnyelv HDL Tervezés Kapcsolási rajz Áramkör Gyártás Terjesztés Szöveges leírás C++ és SystemC VHDL és Verilog Kapcsolási rajz szimbólumok Tranzisztorok Bitstream Floorplan Áramkör kész, betokozva 21
Digitális áramkör tervezési lépési Áramkörök tervezésének lépései Specifikáció Magas szintű programnyelv HDL Tervezés Kapcsolási rajz Áramkör Gyártás Terjesztés Szöveges leírás C++ és SystemC VHDL és Verilog Kapcsolási rajz szimbólumok Tranzisztorok Bitstream Floorplan Áramkör kész, betokozva 22
Áramkörök tervezésének lépései Tervezési és gyártási folyamat részletesebben 23
Áramkörök tervezésének lépései Tervezési fázis veszélyek Támadó hozzáfér az összes forrásfájlhoz Még, ha megbízható mérnök tervez, akkor is meg kell bízni 3rd party IP core (pl. Ethernet vezerlő) Tervező szoftverek Standard cellák (csak esetén: pl. NAND kapu valóban egy NAND kapu) 24
Gyártási fázis veszélyek Áramkörök tervezésének lépései Bitstream nem mindig titkosított Ha mégis az lenne: már publikáltak DPA technikán alapuló támadást Támadó módosítani tudja a maszk fájlokat gyártás előtt Logika hozzáadása (nehéz feladat) Adalékolás megváltoztatása (pl. inverter -> konstans VCC tápfeszültség) Gyártás után is módosítható az áramkör FIB-bel (Focused Ion Beam) 25
A továbbiakban Bevezető Áramkörök tervezésének lépései Specifikáció Magas szintű programnyelv HDL Tervezés Kapcsolási rajz Áramkör Gyártás Terjesztés Szöveges leírás C++ és SystemC VHDL és Verilog Kapcsolási rajz szimbólumok Tranzisztorok Bitstream Floorplan Áramkör kész, betokozva Általánosan a HTH-ról Taxonómia Aktivitás Triggerelési mechanizmus Tervezési és gyártási folyamat során Implementáció Detektálás Megelőzés 26
HTH taxonómia Bevezető 27
HTH aktivitás Funkció módosítás Logikai hozzáadása, törlése Pl. hibadetektáló modul olyan bemeneteket is elfogad, melyeket egyébként elutasítana Titkosítás során egyes lépések kihagyása 28
HTH aktivitás Információ szivárogtatás RF, optikai, termikus úton Esetleg soros porton, JTAG-en vagy akár interneten keresztül A szivárogtatás során a küldés tipikusan rejtve marad (adott zajszint alatt marad az érték) Pl. RF esetében spread spectrum segítségével 29
HTH aktivitás Bevezető Denial of Service Szűkös erőforrások kimerítése SoC busz folyamatos foglalása Számítási kapacitás Akkumulátor (egyes modulokat nem hagyunk sleep módba jutni vagy felesleges meghajtó áramköröket helyezünk le) Fizikai elváltozás Hot Carrier Injection(HCI) Oxide Breakdown (OB) (nagy elektromos mező miatt a FET-ek gate alatti oxid rétegének átütése következik be, ami rövidzárt okoz) Negative Bias Temperature Instability (NBTI) Electron-Migration (EM) 30
HTH triggerelési mechanizmus Áramkörön belüli trigger Egyszerű esetben pl. egy buszra kiadott címet figyelünk Bonyolultabb esetben állapotgép segítségével egy megadott szekvenciára várunk Sokkal nagyobb állapotteret kell megvizsgálni, ha detektálni akarjuk, így ez hatékonyabb 31
HTH triggerelési mechanizmus On-chip termikus kommunikáció 32
HTH triggerelési mechanizmus Trigger feltétele valamilyen külső input Szenzoroktól származó értékek Hőmérséklet Feszültség Páratartalom stb Egyéb Soros porton beérkező adat 33
Bemutató: saját hardveres trójai áramkör implementáció 34
Verilog forrásfájlok Bevezető 35
RTL szintű modell Bevezető 36
Kapuszintű modell Bevezető 37
Rendszertani besorolása Specifikáció Magas szintű programnyelv HDL Tervezés Kapcsolási rajz Áramkör Gyártás Terjesztés Szöveges leírás C++ és SystemC VHDL és Verilog Kapcsolási rajz szimbólumok Tranzisztorok Bitstream Floorplan Áramkör kész, betokozva 38
HTH implementáció Bevezető Specifikáció Magas szintű programnyelv HDL Tervezés Kapcsolási rajz Áramkör Gyártás Terjesztés Szöveges leírás C++ és SystemC VHDL és Verilog Kapcsolási rajz szimbólumok Tranzisztorok Bitstream Floorplan Áramkör kész, betokozva 39
típusok Bevezető Xilinx + Altera + Lattice (+ SiliconBlue) > 90 % piaci részesedés Microsemi (+Actel) 40
SRAM Bevezető 41
nem titkosított bitstream 42
nem titkosított bitstream módosítás 43
titkosított bitstream módosítás 44
titkosított bitstream módosítás On the Vulnerability of Bitstream Encryption against Power Analysis Attacks Extracting Keys from Xilinx Virtex-II s Differential Power Analysis 45
HTH implementáció Bevezető Specifikáció Magas szintű programnyelv HDL Tervezés Kapcsolási rajz Áramkör Gyártás Terjesztés Szöveges leírás C++ és SystemC VHDL és Verilog Kapcsolási rajz szimbólumok Tranzisztorok Bitstream Floorplan Áramkör kész, betokozva 46
Standard cellás - basic floorplan 47
adalékanyag maszk módosítás 48
CMOS inverter Bevezető 49
adalékanyag maszk módosítás 50
adalékanyag maszk módosítás 51
HTH detektálás Bevezető Specifikáció Magas szintű programnyelv HDL Tervezés Kapcsolási rajz Áramkör Gyártás Terjesztés Szöveges leírás C++ és SystemC VHDL és Verilog Kapcsolási rajz szimbólumok Tranzisztorok Bitstream Floorplan Áramkör kész, betokozva 52
HTH detektálás Pásztázó elektronmikroszkóp (SEM) segítségével Apró eltéréseket nehéz észrevenni 53
HTH detektálás Funkcionális tesztelés Gyártás után történik Adott bemenetre a várt kimenetet kapjuk-e Nem kimerítő keresés 54
HTH detektálás Bevezető Side-channel comparison 55
HTH megelőzés Bevezető Specifikáció Magas szintű programnyelv HDL Tervezés Kapcsolási rajz Áramkör Gyártás Terjesztés Szöveges leírás C++ és SystemC VHDL és Verilog Kapcsolási rajz szimbólumok Tranzisztorok Bitstream Floorplan Áramkör kész, betokozva Tervezés során, ha nem megbízható CAD rendszert használunk, az elkészített terveket érdemes saját fejlesztésű (megbízható) programmal megvizsgálni. 56
HTH megelőzés Bevezető Specifikáció Magas szintű programnyelv HDL Tervezés Kapcsolási rajz Áramkör Gyártás Terjesztés Szöveges leírás C++ és SystemC VHDL és Verilog Kapcsolási rajz szimbólumok Tranzisztorok Bitstream Floorplan Áramkör kész, betokozva Újraprogramozható logika beiktatása egyes helyekre, így a támadó nem tudja, hogy a maszkot hogyan módosítsa, mivel csak később fog a tényleges funkcionalitás eldőlni. Logika duplikálása, adatok keverése (scrambling). 57
HTH megelőzés Bevezető 58