Hardveres trójai vírusok ASIC és FPGA áramkörökbenbuttyan/courses/BMEVIHIM219/2013/... ·...
Transcript of Hardveres trójai vírusok ASIC és FPGA áramkörökbenbuttyan/courses/BMEVIHIM219/2013/... ·...
Hardveres trójai vírusok
ASIC és FPGA áramkörökben
1
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
Bevezető
Digitális áramkörök
HTH részletesen
Fogalmak, rövidítések
Miért kell a HTH-val foglalkozni?
2
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
Bevezető
Digitális áramkörök
HTH részletesen
Fogalmak, rövidítések
Miért kell a HTH-val foglalkozni?
3
HTH beillesztése a HDL kódba
Bevezető
Digitális áramkörök
HTH részletesen
Fogalmak, rövidítések
Miért kell a HTH-val foglalkozni?
4
HTH beillesztése a HDL kódba
Bevezető
Digitális áramkörök
HTH részletesen
Fogalmak, rövidítések
Miért kell a HTH-val foglalkozni?
5
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 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
Bevezető
Digitális áramkörök
HTH részletesen
Fogalmak, rövidítések
Miért kell a HTH-val foglalkozni?
7
Foglalkozik-e vele valaki?
Bevezető
Digitális áramkörök
HTH részletesen
Fogalmak, rövidítések
Miért kell a HTH-val foglalkozni?
8
Foglalkozik-e vele valaki?
Bevezető
Digitális áramkörök
HTH részletesen
Fogalmak, rövidítések
Miért kell a HTH-val foglalkozni?
9
Digitális eszközök típusai
Bevezető
Digitális áramkörök
HTH részletesen
FPGA
ASIC
Áramkörök tervezésének lépései
10
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
Specifi-káció
Tervezés
Gyártás Terjesztés Magas szintű programnyelv
HDL Kapcsolási
rajz Áramkör
FPGA Szöveges leírás
C++ és SystemC VHDL és Verilog
Kapcsolási rajz szimbólumok
Tranzisztorok Bitstream Áramkör
kész, betokozva ASIC Floorplan
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
17
Specifi-káció
Tervezés
Gyártás Terjesztés Magas szintű programnyelv
HDL Kapcsolási
rajz Áramkör
FPGA Szöveges leírás
C++ és SystemC VHDL és Verilog
Kapcsolási rajz szimbólumok
Tranzisztorok Bitstream Áramkör
kész, betokozva ASIC Floorplan
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
18
Specifi-káció
Tervezés
Gyártás Terjesztés Magas szintű programnyelv
HDL Kapcsolási
rajz Áramkör
FPGA Szöveges leírás
C++ és SystemC VHDL és Verilog
Kapcsolási rajz szimbólumok
Tranzisztorok Bitstream Áramkör
kész, betokozva ASIC Floorplan
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
19
Specifi-káció
Tervezés
Gyártás Terjesztés Magas szintű programnyelv
HDL Kapcsolási
rajz Áramkör
FPGA Szöveges leírás
C++ és SystemC VHDL és Verilog
Kapcsolási rajz szimbólumok
Tranzisztorok Bitstream Áramkör
kész, betokozva ASIC Floorplan
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
20
Specifi-káció
Tervezés
Gyártás Terjesztés Magas szintű programnyelv
HDL Kapcsolási
rajz Áramkör
FPGA Szöveges leírás
C++ és SystemC VHDL és Verilog
Kapcsolási rajz szimbólumok
Tranzisztorok Bitstream Áramkör
kész, betokozva ASIC Floorplan
Bevezető
Digitális áramkörök
HTH részletesen
FPGA
ASIC
Áramkörök tervezésének lépései
Specifi-káció
Tervezés
Gyártás Terjesztés Magas szintű programnyelv
HDL Kapcsolási
rajz Áramkör
FPGA Szöveges leírás
C++ és SystemC VHDL és Verilog
Kapcsolási rajz szimbólumok
Tranzisztorok Bitstream Áramkör
kész, betokozva ASIC Floorplan
Digitális áramkör tervezési lépési
21
Bevezető
Digitális áramkörök
HTH részletesen
FPGA
ASIC
Áramkörök tervezésének lépései
Specifi-káció
Tervezés
Gyártás Terjesztés Magas szintű programnyelv
HDL Kapcsolási
rajz Áramkör
FPGA Szöveges leírás
C++ és SystemC VHDL és Verilog
Kapcsolási rajz szimbólumok
Tranzisztorok Bitstream Áramkör
kész, betokozva ASIC Floorplan
Digitális áramkör tervezési lépési
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…
26
Bevezető
Digitális áramkörök
HTH részletesen
FPGA
ASIC
Áramkörök tervezésének lépései
Á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
Specifi-káció
Tervezés
Gyártás Terjesztés Magas szintű programnyelv
HDL Kapcsolási
rajz Áramkör
FPGA Szöveges leírás
C++ és SystemC VHDL és Verilog
Kapcsolási rajz szimbólumok
Tranzisztorok Bitstream Áramkör
kész, betokozva ASIC Floorplan
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
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
Specifi-káció
Tervezés
Gyártás Terjesztés Magas szintű programnyelv
HDL Kapcsolási
rajz Áramkör
FPGA Szöveges leírás
C++ és SystemC VHDL és Verilog
Kapcsolási rajz szimbólumok
Tranzisztorok Bitstream Áramkör
kész, betokozva ASIC Floorplan
HTH implementáció
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
Specifi-káció
Tervezés
Gyártás Terjesztés Magas szintű programnyelv
HDL Kapcsolási
rajz Áramkör
FPGA Szöveges leírás
C++ és SystemC VHDL és Verilog
Kapcsolási rajz szimbólumok
Tranzisztorok Bitstream Áramkör
kész, betokozva ASIC Floorplan
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ó
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
Specifi-káció
Tervezés
Gyártás Terjesztés Magas szintű programnyelv
HDL Kapcsolási
rajz Áramkör
FPGA Szöveges leírás
C++ és SystemC VHDL és Verilog
Kapcsolási rajz szimbólumok
Tranzisztorok Bitstream Áramkör
kész, betokozva ASIC Floorplan
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
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
Specifi-káció
Tervezés
Gyártás Terjesztés Magas szintű programnyelv
HDL Kapcsolási
rajz Áramkör
FPGA Szöveges leírás
C++ és SystemC VHDL és Verilog
Kapcsolási rajz szimbólumok
Tranzisztorok Bitstream Áramkör
kész, betokozva ASIC Floorplan
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
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.
HTH megelőzés
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
Specifi-káció
Tervezés
Gyártás Terjesztés Magas szintű programnyelv
HDL Kapcsolási
rajz Áramkör
FPGA Szöveges leírás
C++ és SystemC VHDL és Verilog
Kapcsolási rajz szimbólumok
Tranzisztorok Bitstream Áramkör
kész, betokozva ASIC Floorplan
Ú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).
HTH megelőzés
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
Specifi-káció
Tervezés
Gyártás Terjesztés Magas szintű programnyelv
HDL Kapcsolási
rajz Áramkör
FPGA Szöveges leírás
C++ és SystemC VHDL és Verilog
Kapcsolási rajz szimbólumok
Tranzisztorok Bitstream Áramkör
kész, betokozva ASIC Floorplan
HTH megelőzés
58
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