Indice
1 Security Standards 7
1.1 Introduzione generale alle specifiche di sicurezza . . . . . . . . . . . . . . 7
1.1.1 Il ruolo delle specifiche di sicurezza . . . . . . . . . . . . . . . . . . . . . . 7
1.1.2 Specifiche low-level e standard high-level . . . . . . . . . . . . . . . . . . . 7
1.1.3 Approccio pratico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.2 SHE ed EVITA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.2.1 Evoluzione delle specifiche SHE ed EVITA . . . . . . . . . . . . . . . . . 8
1.2.2 SHE ed EVITA nei prodotti commerciali . . . . . . . . . . . . . . . . . . 9
1.2.3 Protocolli di comunicazione sicura . . . . . . . . . . . . . . . . . . . . . . 9
1.2.4 Complessità, sistemi legacy e rollback attack . . . . . . . . . . . . . . . . 9
1.3 Secure Hardware Extension . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.3.1 Definizione di SHE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.3.2 Obiettivi principali . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.3.3 Architettura di SHE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.3.4 Vista logica SHE-compliant in AUTOSAR . . . . . . . . . . . . . . . . . . 11
1.3.5 Prestazioni crittografiche . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.3.6 Memorie in SHE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.3.7 Politica delle chiavi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.4 EVITA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
1.4.1 Obiettivo di EVITA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
1.4.2 EVITA Light, Medium e Full . . . . . . . . . . . . . . . . . . . . . . . . . 13
1.5 Trusted Platform Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
1.5.1 Definizione di TPM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.5.2 TPM 1.2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.5.3 TPM 2.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
1.5.4 Esempio TPM 2.0 ST33GTPMAI2C . . . . . . . . . . . . . . . . . . . . . 15
1.5.5 Metodi di identificazione e autenticazione TPM . . . . . . . . . . . . . . . 15
1.6 UN R155 e ISO/SAE 21434 . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
1.6.1 Cybersecurity automotive secure by design . . . . . . . . . . . . . . . . . 16
1.6.2 Cyber Security Management System . . . . . . . . . . . . . . . . . . . . . 16
1.6.3 Rapporto con ISO/SAE 21434 . . . . . . . . . . . . . . . . . . . . . . . . 17
1.6.4 Limiti di UN R155 e ISO/SAE 21434 . . . . . . . . . . . . . . . . . . . . 17
1.7 NIS2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
1.7.1 Obiettivo generale della NIS2 . . . . . . . . . . . . . . . . . . . . . . . . . 17
1.7.2 Settori coinvolti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
1.7.3 Misure richieste . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
1.7.4 Incident reporting e scadenze . . . . . . . . . . . . . . . . . . . . . . . . . 18
1.8 IEC 62443 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
1.8.1 Struttura generale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
1 2
1.8.2 Maturity Level . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
1.8.3 Security Levels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
1.8.4 Autenticazione nei Security Levels . . . . . . . . . . . . . . . . . . . . . . 20
1.8.5 Ruoli industriali . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
1.9 Cybersecurity nel processo di sviluppo hardware e software . . . . . . . 21
1.9.1 Analisi del rischio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
1.9.2 Specifiche cybersecurity . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
1.9.3 Supply chain e contraffazione . . . . . . . . . . . . . . . . . . . . . . . . . 22
1.10 Cybersecurity nel processo di testing . . . . . . . . . . . . . . . . . . . . . 22
1.10.1 Test e validazione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
1.10.2 Secure coding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
1.11 Documentazione cybersecurity . . . . . . . . . . . . . . . . . . . . . . . . . 22
1.11.1 Documenti fondamentali . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
1.12 Certificazione cybersecurity . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
1.12.1 Common Criteria ed EAL . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
1.12.2 Certificazione IEC 62443 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
1.13 Requisiti cybersecurity nel ciclo di vita . . . . . . . . . . . . . . . . . . . . 24
1.13.1 Secure design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
1.13.2 Secure implementation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
1.13.3 Secure verification and validation . . . . . . . . . . . . . . . . . . . . . . . 24
1.13.4 Management of secure issues . . . . . . . . . . . . . . . . . . . . . . . . . 24
1.13.5 Security update . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
1.14 Foundational Requirements IEC 62443 . . . . . . . . . . . . . . . . . . . . 25
1.14.1 FR1: Identification and Authentication Control . . . . . . . . . . . . . . . 25
1.14.2 FR2: Use Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
1.14.3 FR3: System Integrity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
1.14.4 FR4: Data Confidentiality . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
1.14.5 FR5: Restricted Data Flow . . . . . . . . . . . . . . . . . . . . . . . . . . 25
1.14.6 FR6: Timely Response to Events . . . . . . . . . . . . . . . . . . . . . . . 26
1.14.7 FR7: Resource Availability . . . . . . . . . . . . . . . . . . . . . . . . . . 26
1.15 Impatto della cybersecurity sull’organizzazione . . . . . . . . . . . . . . . 26
1.15.1 Vulnerability management e threat intelligence . . . . . . . . . . . . . . . 26
1.15.2 Preparazione, rilevamento, risposta e post-incident management . . . . . 26
1.15.3 Costi, soluzioni e rischio residuo . . . . . . . . . . . . . . . . . . . . . . . 27
2 Nozioni fondamentali di crittografia 27
2.1 Significato generale della crittografia . . . . . . . . . . . . . . . . . . . . . 27
2.2 Comunicazione tra Alice, Bob e adversary . . . . . . . . . . . . . . . . . . 28
2.3 Servizi di sicurezza della crittografia . . . . . . . . . . . . . . . . . . . . . . 28
3 Crittografia simmetrica 28
3.1 Principio della symmetric key encryption . . . . . . . . . . . . . . . . . . 28
3
3.2 Problema dello scambio della chiave . . . . . . . . . . . . . . . . . . . . . . 29
3.3 Key Distribution Center . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
4 Advanced Encryption Standard 29
4.1 Introduzione generale ad AES . . . . . . . . . . . . . . . . . . . . . . . . . . 29
4.2 Struttura dello State AES . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
4.3 Parametri AES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
4.4 Caricamento del blocco nello State . . . . . . . . . . . . . . . . . . . . . . . 31
5 Struttura interna dell’algoritmo AES 31
5.1 Cifratura AES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
5.2 Decifratura AES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
6 SubBytes 31
6.1 Funzione della trasformazione SubBytes . . . . . . . . . . . . . . . . . . . 32
6.2 Costruzione e uso della S-box . . . . . . . . . . . . . . . . . . . . . . . . . . 32
7 ShiftRows 33
7.1 Funzione della trasformazione ShiftRows . . . . . . . . . . . . . . . . . . . 33
8 MixColumns 34
8.1 Funzione della trasformazione MixColumns . . . . . . . . . . . . . . . . . 34
9 Trasformazioni inverse 34
9.1 InvSubBytes, InvShiftRows e InvMixColumns . . . . . . . . . . . . . . . 35
10 AddRoundKey 36
10.1 Ruolo dello XOR con la chiave . . . . . . . . . . . . . . . . . . . . . . . . . 36
11 AES Key Schedule 36
11.1 Necessità dell’espansione della chiave . . . . . . . . . . . . . . . . . . . . . 36
11.2 Struttura del Key Schedule . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
11.3 Key Expansion per AES-128 e AES-256 . . . . . . . . . . . . . . . . . . . 37
11.4 Inversione del Key Schedule . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
12 Modalità operative dei cifrari a blocchi 38
12.1 Perché servono le modalità operative . . . . . . . . . . . . . . . . . . . . . 38
13 ECB Mode 38
13.1 Funzionamento di ECB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
14 CBC Mode 39
14.1 Funzionamento di CBC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
15 CFB Mode 39
4
15.1 Funzionamento di CFB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
16 OFB Mode 40
16.1 Funzionamento di OFB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
17 CTR Mode 40
17.1 Funzionamento di CTR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
18 CMAC 41
18.1 Funzione generale di CMAC . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
19 CCM Mode 42
19.1 Funzione generale di CCM . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
19.2 Formattazione e cifratura CCM . . . . . . . . . . . . . . . . . . . . . . . . . 42
19.3 Decifratura e verifica CCM . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
20 GCM Mode 43
20.1 Funzione generale di GCM . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
20.2 Cifratura e validazione GCM . . . . . . . . . . . . . . . . . . . . . . . . . . 44
21 XTS Mode 44
21.1 Funzione generale di XTS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
21.2 Cifratura e decifratura XTS . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
22 The Crypto-Tile 45
22.1 Introduzione al Crypto-Tile . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
22.2 AES Engine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
22.2.1 Ruolo dell’AES Engine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
22.2.2 Modalità operative AES . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
22.3 Architettura CRFlex . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
22.3.1 Idea generale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
22.3.2 Datapath di cifratura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
22.3.3 Datapath di decifratura . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
22.4 Funzionamento delle principali modalità AES . . . . . . . . . . . . . . . 51
22.4.1 ECB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
22.4.2 CBC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
22.4.3 OFB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
22.4.4 CFB e CTR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
22.5 Microarchitettura CRFlex . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
22.5.1 Componenti principali . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
22.5.2 Data input gate logic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
22.5.3 IV input gate logic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
22.5.4 Feedback path logic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
5
22.5.5 Output XOR disable logic . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
22.5.6 Data input or IV forward logic . . . . . . . . . . . . . . . . . . . . . . . . 55
22.6 Modulo AES interno . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
22.6.1 Struttura generale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
22.6.2 Architettura interna del datapath AES . . . . . . . . . . . . . . . . . . . . 56
22.6.3 Gestione della cifratura . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
22.6.4 Gestione della decifratura . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
22.7 Controllo e segnali operativi . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
22.7.1 Segnali principali . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
22.7.2 Ruolo della FSM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
22.8 Considerazioni architetturali . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
22.8.1 Flessibilità hardware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
22.8.2 Efficienza e prestazioni . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
22.8.3 Sicurezza funzionale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
23 FSMs and Management 59
23.1 Introduzione alle FSM nella Crypto-Tile . . . . . . . . . . . . . . . . . . . 59
23.2 Architettura generale della Crypto-Tile . . . . . . . . . . . . . . . . . . . . 60
23.3 Struttura interna dei crypto-processors . . . . . . . . . . . . . . . . . . . . 60
24 Stati della FSM 61
24.1 Available . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
24.2 Configured . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
24.3 Ready . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
24.4 Running . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
24.5 Ended . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
24.6 Cancelled . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
24.7 Error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
25 Global Configuration Module 63
25.1 Funzione generale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
25.2 Registri globali e controllo centralizzato . . . . . . . . . . . . . . . . . . . 63
25.3 Meccanismi di sicurezza . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
26 Clock Manager Unit 64
26.1 Architettura del clock manager . . . . . . . . . . . . . . . . . . . . . . . . . 64
26.2 Clock divider e clock gating . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
26.3 Clock randomizer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
27 Risultati di implementazione 65
27.1 Implementazione FPGA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
27.2 Implementazione standard-cell . . . . . . . . . . . . . . . . . . . . . . . . . 65
6
28 AES Engine Results 66
28.1 Ruolo dell’AES engine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
28.2 Prestazioni e throughput . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
7
1 Security Standards
1.1 Introduzione generale alle specifiche di sicurezza
1.1.1 Il ruolo delle specifiche di sicurezza
Le specifiche di sicurezza servono a definire come progettare, realizzare, verificare e mante-
nere sistemi hardware e software capaci di resistere ad attacchi informatici, errori accidentali,
manipolazioni e usi non autorizzati. In ambito embedded, automotive e industriale, la cyberse-
curity non può essere considerata come un’aggiunta finale al prodotto, ma deve essere integrata
fin dall’inizio nel processo di progettazione.
Un sistema sicuro deve proteggere informazioni, dispositivi, comunicazioni, software, firmware,
chiavi crittografiche e processi operativi. Per farlo servono sia soluzioni tecniche di basso livello,
come moduli hardware sicuri, algoritmi crittografici e memorie protette, sia procedure di alto
livello, come gestione del rischio, risposta agli incidenti, supply chain security e aggiornamenti
sicuri.
1.1.2 Specifiche low-level e standard high-level
Specifiche low-level Le specifiche low-level si concentrano sugli aspetti tecnici interni dei
componenti hardware e software. Sono utilizzate soprattutto dai produttori di circuiti integrati,
microcontrollori, moduli di sicurezza e dispositivi embedded.
Esempi importanti sono:
• SHE, cioè Secure Hardware Extension;
• EVITA, cioè E-safety Vehicle Intrusion Protected Applications;
• TPM, cioè Trusted Platform Module.
Queste specifiche definiscono elementi come gestione delle chiavi, accelerazione crittografica,
secure boot, protezione della memoria, generazione di numeri casuali, autenticazione e funzioni
di cifratura. Il loro limite è che spesso non coprono in modo completo gli aspetti di sistema, di
processo e di organizzazione.
Direttive e standard high-level Le direttive e gli standard high-level si occupano invece
di aspetti più ampi: gestione del rischio, obblighi organizzativi, procedure di sicurezza, supply
chain, incident handling, governance e conformità normativa.
Esempi rilevanti sono: 8
• NIS2;
• UN R155 e UN R156;
• IEC 62443;
• ISO/SAE 21434.
Questi standard sono fondamentali per definire una strategia di cybersecurity a livello di sistema
e organizzazione, ma spesso non indicano nel dettaglio quali soluzioni hardware o software
implementare.
1.1.3 Approccio pratico
Un approccio efficace consiste nel combinare i due livelli. Le direttive high-level permettono di
definire procedure di sviluppo sicuro, responsabilità, gestione del rischio e aspetti organizzativi;
le specifiche low-level permettono invece di realizzare concretamente le funzioni di protezione
all’interno dei dispositivi.
La progettazione secure by design nasce proprio da questa integrazione: da un lato si seguono
standard organizzativi e di processo, dall’altro si sfruttano funzionalità già presenti nei dispositivi
COTS, cioè Commercial Off The Shelf, come HSM, TPM, librerie crittografiche pubbliche e
moduli hardware integrati.
1.2 SHE ed EVITA
1.2.1 Evoluzione delle specifiche SHE ed EVITA
SHE rappresenta una delle prime specifiche pensate per introdurre funzionalità hardware di
sicurezza nei microcontrollori automotive. L’idea principale è creare un sottosistema configura-
bile capace di proteggere le chiavi crittografiche e svolgere operazioni di sicurezza senza esporre
direttamente i segreti al software.
EVITA estende questo concetto introducendo un sottosistema programmabile più flessibile e
-
Appunti Hardware and embedded security (parte 4)
-
Appunti Hardware and embedded security (parte 2)
-
Appunti Hardware and embedded systems (parte 1)
-
Appunti parte pratica Embedded and real time systems – Sistemi tempo reale/schedulazione