Hardveres trójai vírusok ASIC és FPGA áramkörökben
1
Bevezető Digitális áramkörök HTH részletesen
Fogalmak, rövidítések Miért kell a HTH-val foglalkozni?
Fogalmak
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
Bevezető Digitális áramkörök HTH részletesen
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
Bevezető Digitális áramkörök HTH részletesen
Fogalmak, rövidítések Miért kell a HTH-val foglalkozni?
HTH beillesztése a HDL kódba
4
Bevezető Digitális áramkörök HTH részletesen
Fogalmak, rövidítések Miért kell a HTH-val foglalkozni?
HTH beillesztése a HDL kódba
5
Bevezető Digitális áramkörök HTH részletesen
Fogalmak, rövidítések Miért kell a HTH-val foglalkozni?
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
Bevezető Digitális áramkörök HTH részletesen
Fogalmak, rövidítések Miért kell a HTH-val foglalkozni?
Félvezető gyártó üzemek
Rank 1 2 3 4 5 6 7 8 9 10 11 12 13 14
Company TSMC UMC Globalfoundries Samsung Semiconductor SMIC TowerJazz Vanguard (VIS) Dongbu HiTek IBM MagnaChip SSMC Hua Hong NEC Win Semiconductors X-Fab
Foundry Type Pure-play Pure-play Pure-play IDM Pure-play Pure-play Pure-play Pure-play IDM IDM Pure-play Pure-play Pure-play Pure-play
Country of origin Taiwan Taiwan United States South Korea China Israel Taiwan South Korea United States South Korea Singapore China Taiwan Germany
Revenue (million $USD) 14,600 3,760 3,580 1,975 1,315 610 519 500 445 350 345 335 300 285
7
Bevezető Digitális áramkörök HTH részletesen
Fogalmak, rövidítések Miért kell a HTH-val foglalkozni?
Foglalkozik-e vele valaki?
8
Bevezető Digitális áramkörök HTH részletesen
Fogalmak, rövidítések Miért kell a HTH-val foglalkozni?
Foglalkozik-e vele valaki?
9
Bevezető Digitális áramkörök HTH részletesen
FPGA ASIC Áramkörök tervezésének lépései
Digitális eszközök típusai
10
Bevezető Digitális áramkörök HTH részletesen
FPGA ASIC Áramkörök tervezésének lépései
FPGA blokkdiagram és floorplan FPGA: helyszínen programozható logikai tömb
11
Bevezető Digitális áramkörök HTH részletesen
FPGA ASIC Áramkörök tervezésének lépései
FPGA tervező környezet
12
Bevezető Digitális áramkörök HTH részletesen
FPGA ASIC Áramkörök tervezésének lépései
Bitstream letöltése az FPGA-ba
13
Bevezető Digitális áramkörök HTH részletesen
FPGA ASIC Áramkörök tervezésének lépései
ASIC floorplan (Intel Nehalem microarchitecture) ASIC: alkalmazásspecifikus integrált áramkör
14
Bevezető Digitális áramkörök HTH részletesen
FPGA ASIC Áramkörök tervezésének lépései
Bitstream vs. GDSII
15
Bevezető Digitális áramkörök HTH részletesen
FPGA ASIC Áramkörök tervezésének lépései
Digitális áramkör tervezési lépési Specifikáció FPGA ASIC
Szöveges leírás
Tervezés Magas szintű programnyelv C++ és SystemC
HDL VHDL és Verilog
Kapcsolási rajz Kapcsolási rajz szimbólumok
Áramkör
Gyártás Bitstream
Tranzisztorok Floorplan
Terjesztés Áramkör kész, betokozva
16
Bevezető Digitális áramkörök HTH részletesen
FPGA ASIC Áramkörök tervezésének lépései
Digitális áramkör tervezési lépési Specifikáció FPGA ASIC
Szöveges leírás
Tervezés Magas szintű programnyelv C++ és SystemC
HDL VHDL és Verilog
Kapcsolási rajz Kapcsolási rajz szimbólumok
Áramkör
Gyártás Bitstream
Tranzisztorok Floorplan
Terjesztés Áramkör kész, betokozva
17
Bevezető Digitális áramkörök HTH részletesen
FPGA ASIC Áramkörök tervezésének lépései
Digitális áramkör tervezési lépési Specifikáció FPGA ASIC
Szöveges leírás
Tervezés Magas szintű programnyelv C++ és SystemC
HDL VHDL és Verilog
Kapcsolási rajz Kapcsolási rajz szimbólumok
Áramkör
Gyártás Bitstream
Tranzisztorok Floorplan
Terjesztés Áramkör kész, betokozva
18
Bevezető Digitális áramkörök HTH részletesen
FPGA ASIC Áramkörök tervezésének lépései
Digitális áramkör tervezési lépési Specifikáció FPGA ASIC
Szöveges leírás
Tervezés Magas szintű programnyelv C++ és SystemC
HDL VHDL és Verilog
Kapcsolási rajz Kapcsolási rajz szimbólumok
Áramkör
Gyártás Bitstream
Tranzisztorok Floorplan
Terjesztés Áramkör kész, betokozva
19
Bevezető Digitális áramkörök HTH részletesen
FPGA ASIC Áramkörök tervezésének lépései
Digitális áramkör tervezési lépési Specifikáció FPGA ASIC
Szöveges leírás
Tervezés Magas szintű programnyelv C++ és SystemC
HDL VHDL és Verilog
Kapcsolási rajz Kapcsolási rajz szimbólumok
Áramkör
Gyártás Bitstream
Tranzisztorok Floorplan
Terjesztés Áramkör kész, betokozva
20
Bevezető Digitális áramkörök HTH részletesen
FPGA ASIC Áramkörök tervezésének lépései
Digitális áramkör tervezési lépési Specifikáció FPGA ASIC
Szöveges leírás
Tervezés Magas szintű programnyelv C++ és SystemC
HDL VHDL és Verilog
Kapcsolási rajz Kapcsolási rajz szimbólumok
Áramkör
Gyártás Bitstream
Tranzisztorok Floorplan
Terjesztés Áramkör kész, betokozva
21
Bevezető Digitális áramkörök HTH részletesen
FPGA ASIC Áramkörök tervezésének lépései
Digitális áramkör tervezési lépési Specifikáció FPGA ASIC
Szöveges leírás
Tervezés Magas szintű programnyelv C++ és SystemC
HDL VHDL és Verilog
Kapcsolási rajz Kapcsolási rajz szimbólumok
Áramkör
Gyártás Bitstream
Tranzisztorok Floorplan
Terjesztés Áramkör kész, betokozva
22
Bevezető Digitális áramkörök HTH részletesen
FPGA ASIC Áramkörök tervezésének lépései
Tervezési és gyártási folyamat részletesebben
23
Bevezető Digitális áramkörök HTH részletesen
FPGA ASIC Á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 ASIC esetén: pl. NAND kapu valóban egy NAND kapu)
24
Bevezető Digitális áramkörök HTH részletesen
FPGA ASIC Áramkörök tervezésének lépései
Gyártási fázis veszélyek
FPGA Bitstream nem mindig titkosított Ha mégis az lenne: már publikáltak DPA technikán alapuló támadást
ASIC 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
Bevezető Digitális áramkörök HTH részletesen
FPGA ASIC Áramkörök tervezésének lépései
A továbbiakban… Specifikáció FPGA ASIC
Szöveges leírás
Tervezés Magas szintű programnyelv C++ és SystemC
HDL VHDL és Verilog
Kapcsolási rajz Kapcsolási rajz szimbólumok
Áramkör
Gyártás Bitstream
Tranzisztorok Floorplan
Terjesztés Á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
Bevezető Digitális áramkörök HTH részletesen
Bevezető áttekintés Saját hardveres trójai implementáció Tervezési és gyártási folyamat során a HTH
HTH taxonómia
27
Bevezető Digitális áramkörök HTH részletesen
Bevezető áttekintés Saját hardveres trójai implementáció Tervezési és gyártási folyamat során a HTH
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
Bevezető Digitális áramkörök HTH részletesen
Bevezető áttekintés Saját hardveres trójai implementáció Tervezési és gyártási folyamat során a HTH
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
Bevezető Digitális áramkörök HTH részletesen
Bevezető áttekintés Saját hardveres trójai implementáció Tervezési és gyártási folyamat során a HTH
HTH aktivitás
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
Bevezető Digitális áramkörök HTH részletesen
Bevezető áttekintés Saját hardveres trójai implementáció Tervezési és gyártási folyamat során a HTH
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
Bevezető Digitális áramkörök HTH részletesen
Bevezető áttekintés Saját hardveres trójai implementáció Tervezési és gyártási folyamat során a HTH
HTH triggerelési mechanizmus
On-chip termikus kommunikáció
32
Bevezető Digitális áramkörök HTH részletesen
Bevezető áttekintés Saját hardveres trójai implementáció Tervezési és gyártási folyamat során a HTH
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
Bevezető Digitális áramkörök HTH részletesen
Bevezető áttekintés Saját hardveres trójai implementáció Tervezési és gyártási folyamat során a HTH
Bemutató: saját hardveres trójai áramkör implementáció
34
Bevezető Digitális áramkörök HTH részletesen
Bevezető áttekintés Saját hardveres trójai implementáció Tervezési és gyártási folyamat során a HTH
Verilog forrásfájlok
35
Bevezető Digitális áramkörök HTH részletesen
Bevezető áttekintés Saját hardveres trójai implementáció Tervezési és gyártási folyamat során a HTH
RTL szintű modell
36
Bevezető Digitális áramkörök HTH részletesen
Bevezető áttekintés Saját hardveres trójai implementáció Tervezési és gyártási folyamat során a HTH
Kapuszintű modell
37
Bevezető Digitális áramkörök HTH részletesen
Bevezető áttekintés Saját hardveres trójai implementáció Tervezési és gyártási folyamat során a HTH
Rendszertani besorolása Specifikáció FPGA ASIC
Szöveges leírás
Tervezés Magas szintű programnyelv C++ és SystemC
HDL VHDL és Verilog
Kapcsolási rajz Kapcsolási rajz szimbólumok
Áramkör
Gyártás Bitstream
Tranzisztorok Floorplan
Terjesztés Áramkör kész, betokozva
38
Bevezető Digitális áramkörök HTH részletesen
Bevezető áttekintés Saját hardveres trójai implementáció Tervezési és gyártási folyamat során a HTH
HTH implementáció Specifikáció FPGA ASIC
Szöveges leírás
Tervezés Magas szintű programnyelv C++ és SystemC
HDL VHDL és Verilog
Kapcsolási rajz Kapcsolási rajz szimbólumok
Áramkör
Gyártás Bitstream
Tranzisztorok Floorplan
Terjesztés Áramkör kész, betokozva
39
Bevezető Digitális áramkörök HTH részletesen
Bevezető áttekintés Saját hardveres trójai implementáció Tervezési és gyártási folyamat során a HTH
FPGA típusok
Xilinx + Altera + Lattice (+ SiliconBlue) > 90 % piaci részesedés
Microsemi (+Actel) 40
Bevezető Digitális áramkörök HTH részletesen
Bevezető áttekintés Saját hardveres trójai implementáció Tervezési és gyártási folyamat során a HTH
SRAM FPGA
41
Bevezető Digitális áramkörök HTH részletesen
Bevezető áttekintés Saját hardveres trójai implementáció Tervezési és gyártási folyamat során a HTH
FPGA nem titkosított bitstream
42
Bevezető Digitális áramkörök HTH részletesen
Bevezető áttekintés Saját hardveres trójai implementáció Tervezési és gyártási folyamat során a HTH
FPGA nem titkosított bitstream módosítás
43
Bevezető Digitális áramkörök HTH részletesen
Bevezető áttekintés Saját hardveres trójai implementáció Tervezési és gyártási folyamat során a HTH
FPGA titkosított bitstream módosítás
44
Bevezető Digitális áramkörök HTH részletesen
Bevezető áttekintés Saját hardveres trójai implementáció Tervezési és gyártási folyamat során a HTH
FPGA titkosított bitstream módosítás
On the Vulnerability of FPGA Bitstream
Encryption against Power Analysis Attacks – Extracting Keys from Xilinx Virtex-II FPGAs –
Differential Power Analysis
45
Bevezető Digitális áramkörök HTH részletesen
Bevezető áttekintés Saját hardveres trójai implementáció Tervezési és gyártási folyamat során a HTH
HTH implementáció Specifikáció FPGA ASIC
Szöveges leírás
Tervezés Magas szintű programnyelv C++ és SystemC
HDL VHDL és Verilog
Kapcsolási rajz Kapcsolási rajz szimbólumok
Áramkör
Gyártás Bitstream
Tranzisztorok Floorplan
Terjesztés Áramkör kész, betokozva
46
Bevezető Digitális áramkörök HTH részletesen
Bevezető áttekintés Saját hardveres trójai implementáció Tervezési és gyártási folyamat során a HTH
Standard cellás ASIC - basic floorplan
47
Bevezető Digitális áramkörök HTH részletesen
Bevezető áttekintés Saját hardveres trójai implementáció Tervezési és gyártási folyamat során a HTH
ASIC adalékanyag maszk módosítás
48
Bevezető Digitális áramkörök HTH részletesen
Bevezető áttekintés Saját hardveres trójai implementáció Tervezési és gyártási folyamat során a HTH
CMOS inverter
49
Bevezető Digitális áramkörök HTH részletesen
Bevezető áttekintés Saját hardveres trójai implementáció Tervezési és gyártási folyamat során a HTH
ASIC adalékanyag maszk módosítás
50
Bevezető Digitális áramkörök HTH részletesen
Bevezető áttekintés Saját hardveres trójai implementáció Tervezési és gyártási folyamat során a HTH
ASIC adalékanyag maszk módosítás
51
Bevezető Digitális áramkörök HTH részletesen
Bevezető áttekintés Saját hardveres trójai implementáció Tervezési és gyártási folyamat során a HTH
HTH detektálás Specifikáció FPGA ASIC
Szöveges leírás
Tervezés Magas szintű programnyelv C++ és SystemC
HDL VHDL és Verilog
Kapcsolási rajz Kapcsolási rajz szimbólumok
Áramkör
Gyártás Bitstream
Tranzisztorok Floorplan
Terjesztés Áramkör kész, betokozva
52
Bevezető Digitális áramkörök HTH részletesen
Bevezető áttekintés Saját hardveres trójai implementáció Tervezési és gyártási folyamat során a HTH
HTH detektálás
Pásztázó elektronmikroszkóp (SEM) segítségével Apró eltéréseket nehéz észrevenni
53
Bevezető Digitális áramkörök HTH részletesen
Bevezető áttekintés Saját hardveres trójai implementáció Tervezési és gyártási folyamat során a HTH
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
Bevezető Digitális áramkörök HTH részletesen
Bevezető áttekintés Saját hardveres trójai implementáció Tervezési és gyártási folyamat során a HTH
HTH detektálás
Side-channel comparison
55
Bevezető Digitális áramkörök HTH részletesen
Bevezető áttekintés Saját hardveres trójai implementáció Tervezési és gyártási folyamat során a HTH
HTH megelőzés Specifikáció FPGA ASIC
Szöveges leírás
Tervezés Magas szintű programnyelv C++ és SystemC
HDL VHDL és Verilog
Kapcsolási rajz Kapcsolási rajz szimbólumok
Áramkör
Gyártás Bitstream
Tranzisztorok Floorplan
Terjesztés Á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
Bevezető Digitális áramkörök HTH részletesen
Bevezető áttekintés Saját hardveres trójai implementáció Tervezési és gyártási folyamat során a HTH
HTH megelőzés Specifikáció FPGA ASIC
Szöveges leírás
Tervezés Magas szintű programnyelv C++ és SystemC
HDL VHDL és Verilog
Kapcsolási rajz Kapcsolási rajz szimbólumok
Áramkör
Gyártás Bitstream
Tranzisztorok Floorplan
Terjesztés Á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
Bevezető Digitális áramkörök HTH részletesen
Bevezető áttekintés Saját hardveres trójai implementáció Tervezési és gyártási folyamat során a HTH
HTH megelőzés
58