Boot & Secure Boot - iot.bzh - Home · 2018-10-30 · Das U-Boot 26 Octobre 2018 34 Histoire de...

Preview:

Citation preview

Boot &Secure Boot

Conférence UBS26 Octobre 2018

Jonathan AilletEmbedded Software Engineerjonathan.aillet@iot.bzh

26 Octobre 2018Boot & Secure Boot 2

Présentation de l’intervenant

● Diplômé d’un Master SIAM en 2012● Développeur dans– Les Applications Linux embarquées– Les Drivers Linux– Les Firmwares– Les Bootloaders

26 Octobre 2018Boot & Secure Boot 3

IoT.bzh

IoT.bzh team

● Créé en 2015● Développeur principal d'AGL● https://iot.bzh/en/● http://github.com/iotbzh

Workshop in Lorient

LORIENT

vannes

26 Octobre 2018Boot & Secure Boot 4

Automotive Grade Linux (AGL)

● Projet hébergé par la Linux Foundation● OS Linux Open Source développé pour

l’intégration dans les voitures connectées● Sécurité intrinsèque● Architecture micro-services : solution

facilement intégrable pour les constructeurs● Code first (implémentation itérative)

26 Octobre 2018Boot & Secure Boot 5

Sujets abordés

● Chaîne de Boot● Bootloaders dans l’embarqué● Das U-Boot● Vérification des binaires au boot● Environnement d’Exécution Sécurisé (TEE)● Exemples de failles connues

26 Octobre 2018Chaîne de Boot 6

Boot

● Au démarrage d’un système, le processeur exécute un micro-programme intégré

● Ce micro-programme va à son tour charger et lancer l’exécution d’un autre programme

● Et ce jusqu’à ce que le boot soit terminé (exécution d’un OS, d’un firmware, ...)

26 Octobre 2018Chaîne de Boot 7

Chaîne de boot sur PC

26 Octobre 2018Chaîne de Boot 8

Chaîne de boot sur PC Linux

● Le processeur exécute son micro-programme (BIOS, UEFI)

● Si le système utilise BIOS, il va charger MBR, qui lui va charger GRUB/GRUB2

● Si le système utilise UEFI, il va directement charger GRUB2 (compatible UEFI)

● GRUB/GRUB2 va a son tour chargerle noyau Linux

● Taille de BIOS/UEFI aujourd’hui : plusieurs Mo

26 Octobre 2018Chaîne de Boot 9

Le cas de l’embarqué

● Le Pre-Bootloader (Rom Code) charge un programme placé une adresse spécifique de sa mémoire

● Ici, la mémoire dédiée à l’exécution est de 109 Ko

● C’est peu pour bootloader devant charger un OS

● Il est moins facile de mettre à jour un bootloader stocké dans la mémoire du SoC

ARM 335x SRAM Layout :

26 Octobre 2018Chaîne de Boot 10

Le cas de l’embarqué

Ajout d’un bootloader à la chaîne de boot :

Mise sous tension où Reset

Pre-Bootloader (Rom Code)

Bootloader de premier niveau (EEPROM)

Bootloader de second niveau (eMMC, SD, USB, ...)

26 Octobre 2018Chaîne de Boot 11

Le cas de l’embarqué

Le Pre-Bootloader (Rom Code)– Stocké en ROM ou en EEPROM– Première section de code exécuté par le processeur

au démarrage– Quasiment aucune fonctionnalité si ce n’est de

charger le bootloader● Parfois possible de sélectionner une mode de boot en

utilisant des entrées matérielles (boutons, jumpers, ...)

– Si stocké en EEPROM, mise à jour possible, mais très souvent bloqué une fois industrialisé

26 Octobre 2018Chaîne de Boot 12

Le cas de l’embarqué

Le Bootloader de premier niveau :

– Chargé et exécuté par le Pre-Bootloader (Rom Code)– Minimaliste : contient le minimum requis pour charger le

second bootloader● Pas forcément d’initialisation de la RAM● Chargement des drivers pour l’exécution du second bootloader

– Petite taille (généralement moins de 128 Ko)– Peu de fonctionnalités– N’est pas amené à être mis à jour souvent– Exemples : SPL, xLoader

26 Octobre 2018Chaîne de Boot 13

Le cas de l’embarqué

Remarques sur le Rom Code et sur le bootloader de premier niveau :– Une fois le développement terminé, très peu

d’interventions● Corrections de bugs/failles● Pas d’apport de nouvelles fonctionnalités

– Peu de possibilité d’influer sur l’exécution● Pas d’invite de commande, d’interface graphique ...

26 Octobre 2018Chaîne de Boot 14

Le cas de l’embarqué

Le Bootloader de second niveau :

– Préparer la plateforme à démarrer l’OS– Configurable (script)– Peut fournir

● Invite de commande● Accès réseau● Lecture/Écriture sur les périphériques (eMMC, I2C, ...)● Tests mémoire et matériels● ...

– Plus facile à mettre à jour

26 Octobre 2018Chaîne de Boot 15

Exemple

26 Octobre 2018Bootloaders dans l’embarqué 16

Les Bootloaders de second niveau dans l’embarqué

26 Octobre 2018Bootloaders dans l’embarqué 17

Rôles d’un bootloader

● Initialisation du CPU et des fréquences d’horloges

● Gestion des interruptions matérielles● Initialisation du pointeur de pile (stack pointer)● Gestion de l’alimentation des périphériques● Configurations des périphériques● Chargement et lancement du binaire suivant

dans la chaîne de boot

26 Octobre 2018Bootloaders dans l’embarqué 18

Rôles d’un bootloader desecond niveau

● Chargement et lancement d’un OS (i.e. Linux)– Allumage et configuration du matériel spécifique pour le

démarrage de l’OS (RAM, eMMC/SD, ...)– Implémentation de couches matérielles complexes

(i.e. USB)– Chargement

● du noyau● du système de fichier en RAM (RFS/Initramfs)● du fichier de configuration (device tree)

– Exécution de la première instruction de l’OS

26 Octobre 2018Bootloaders dans l’embarqué 19

Bootloaders répandus

● RedBoot (Dérivé d’eCos, développé par RedHat)

● LK (« Little Kernel », bootloader utilisé dans Android)

● UEFI (Bootloader présent dans les plateformes embarquées Intel)

● Das U-Boot (« Universal Boot loader », originalement pour PowerPC et ARM)

26 Octobre 2018Bootloaders dans l’embarqué 20

RedBoot

● « RedHat Embedded Debug and Bootstrap »● Support d’architectures PowerPC, ARM● Possibilité de booter vers différents OS (Linux,

eCos, ...) ● Facilité de flasher les composants● Support de script● Shell accessible par liaison série ou par le

réseau

26 Octobre 2018Bootloaders dans l’embarqué 21

RedBoot

● Débogueur intégré (GDB) et utilisable par la liaison série ou par Ethernet

● Auto-tests au démarrage● Configuration de boot poussée– Différentes configurations de boot automatique

● Défaut● Recovery

– Chargement des binaires depuis● Le réseau● De la mémoire embarquée sur la plateforme (eMMC, SD, ...)

26 Octobre 2018Bootloaders dans l’embarqué 22

LK (Little Kernel)

● Utilisé principalement dans Android● Support de d’architecture ARM (32 et 64 bits)● Invite de commande● Initialisation matériel poussée (MMU, DMA,

USB, cryptographie, stockage, ...)● Chargement d’un binaire depuis le stockage

de la plateforme● Compatible avec la vérification de signature

26 Octobre 2018Bootloaders dans l’embarqué 23

LK (Little Kernel)

● Facilité de flasher les composants● Plusieurs modes de boot– Normal– Recovery

● Mode de démarrage rapide● Commandes d’accès matériels (eMMC/SD, I2C,

SPI, mémoires, ...)● Facilement modifiable

26 Octobre 2018Bootloaders dans l’embarqué 24

UEFI (en ROM !)

● Le même bootloader que sur les PC● Support de d’architectures x86, ARM (peu

utilisé, sauf sur serveur)● Principalement pour les boards Intel● Interfaces standardisées (par rapport au PC)● Invite de commande● Interface graphique

26 Octobre 2018Bootloaders dans l’embarqué 25

UEFI (en ROM !)

● Possibilité de boot sécurisé● Support d’un grand nombre de matériel● Très différents des autres bootloaders

embarqués (Closed Source)● Chargement d’images depuis– Le réseau– Tout type de stockage (eMMC/SD, USB, HDD, ...)

● Mode de démarrage rapide

26 Octobre 2018Das U-Boot 26

Das U-Boot

26 Octobre 2018Das U-Boot 27

Présentation de U-Boot

● Multi-plateformes● Open Source, licence GPLv2● Utilisation des variables d’environnement– Pour configurer les différents composants matériel

(UART, eMMC, Ethernet, ...)– Pour stocker les paramètres utilisables pour la

suite du boot– Pour configurer un démarrage automatique (si non

interrompu)

26 Octobre 2018Das U-Boot 28

Présentation de U-Boot

● Conçu pour être aussi fiable et aussi léger que possible

● Support de nombreuses architectures PowerPC, ARM, x86, ...

● Fournit un support « out-of-the-box » pour un grand nombre de plateformes

● Compiler U-Boot pour une plateforme supportée est facile en utilisant sa chaîne de cross-compilation

26 Octobre 2018Das U-Boot 29

Présentation de U-Boot

● Configurations par xconfig● Intégré par défaut par de nombreux fabricants

de plateformes embarquées– Android– Automotive– Routeurs– La plupart des plateformes ARM

26 Octobre 2018Das U-Boot 30

Présentation de U-Boot

● Structure du code semblable à celle du noyau Linux

● L’interface utilisateur de U-Boot est une invite de commande (similaire à un prompt Linux)

● Possibilité d’écriture et de chargement de scripts

● Outils pour faciliter le débogage● Peut booter différents types d’OS

26 Octobre 2018Das U-Boot 31

Fonctionnalités de U-Boot

● Allumage et configuration du matériel spécifique pour le démarrage de l’OS (RAM, eMMC/SD, ...)

● Boot depuis plusieurs périphériques– Peut charger des binaires depuis l’eMMC, la SD,

l’USB, la RAM, ...● Boot réseau– Peut charger un lot de binaires pour un OS (Kernel,

RFS/Initramfs, device tree) depuis un serveur FTP

26 Octobre 2018Das U-Boot 32

Fonctionnalités de U-Boot

● Écriture en zone mémoire– Fournit plusieurs commandes permettant l’écriture

dans des zones mémoire spécifiques (i.e. pour mettre à jour un binaire en eMMC, EEPROM, ...)

● Stockage des variables d’environnement dans une mémoire non volatile

● Utilisation de CLI et de Hush Shell pour son invite de commande

26 Octobre 2018Das U-Boot 33

Fonctionnalités de U-Boot

● Fournit des commandes pour utilisations avancées (envoi de commandes eMMC,dialogue sur bus I2C, ...)

● Compatible avec la vérification de signature● Ajout de commandes et de fonctionnalités facilité – Open Source– Compilation simple– Déboguer

26 Octobre 2018Das U-Boot 34

Histoire de U-Boot

● 1999 : 8xxROM, bootloader créé parMagnus Damm pour PowerPC

● 2000 : mis a disposition sur Sourceforge par Wolfgang Denk sous le nom PPCBoot

● 2002 : PPCBoot intègre le support ARM et devient Das U-Boot (“U” pour “Universal”)

● 2002 : Porté sur x86● 2002-2004 : Portage sur diverses autres plateformes

(MIPS32, MIPS64, NIOS, Coldfire, Microblaze)

26 Octobre 2018Das U-Boot 35

U-Boot de nos jours (en 2015)

● Plus de 15 architectures supportées : ARC, ARM (32/64), AVR32, Blackfin, M68K, Microblaze, MIPS (32/64), NDS32, NIOS2, OpenRisc, PowerPC, Sparc, x86, x86-64, ...

● Plus de 1 000 cibles matérielles distinctes● Plus de 1600 contributeurs distincts● Environ 6500 fichiers C et 250 fichiers assembleurs● Environ 1 200 000 lignes C et 30 000 lignes assembleurs● Environ 325 000 lignes de commentaire

26 Octobre 2018Das U-Boot 36

Déroulement de l’exécution

26 Octobre 2018Das U-Boot 37

Invite de commande

26 Octobre 2018Das U-Boot 38

Environnement de U-Boot

● Conservé entre les boots (sauvegardé en mémoire non volatile)

● Jeu de chaînes de caractères : clé=valeur– Timeout de démarrage– Configuration UART

● Structures de contrôles (if, while, until)

26 Octobre 2018Das U-Boot 39

Stockage de l’environnement

26 Octobre 2018Das U-Boot 40

Exemple d’environnement

26 Octobre 2018Das U-Boot 41

Exemple d’environnement

26 Octobre 2018Das U-Boot 42

Commandes d’environnement

● ‘printenv’ / ‘env print’ :– Affiche l’environnement courant de U-Boot

● ‘setenv’ / ‘env set’– Permet de créer ou écraser une variable

d’environnement● ‘editenv’ / ‘env edit’– Permet de modifier une variable d’environnement

● ‘env delete’

– Supprime une variable de l’environnement

26 Octobre 2018Das U-Boot 43

Commandes d’environnement

● ‘saveenv’ / ‘env save’– Sauvegarde de l’environnement courant en mémoire non volatile

● ‘env default’– Restaure l’environnement de U-Boot par celui qui à été défini à la

compilation● ‘env export’– Permet d’exporter l’environnement courant à une adresse

mémoire spécifique● ‘env import’– Permet d’importer l’environnement stocké à une adresse

spécifique (écrase l’environnement courant)

26 Octobre 2018Das U-Boot 44

Variables d’environnement

● ‘bootcmd’– Contient la commande qui va être exécutée par

U-Boot lors d’un démarrage automatique● ‘bootargs’– Contient les arguments passés au binaire exécuté

● ‘bootdelay’– Temps (en seconde) avant le boot automatique

26 Octobre 2018Das U-Boot 45

Variables d’environnement

● ‘serverip’– Adresse IP du serveur pour les actions réseau

● ‘ipaddr’– Adresse IP locale de la plateforme

● ‘ethaddr’– Adresse MAC de la plateforme

● ‘netmask’– Masque réseau pour communiquer avec le serveur

26 Octobre 2018Das U-Boot 46

Commandes disponibles (v2015.04)

26 Octobre 2018Das U-Boot 47

Commandes disponibles (v2015.04)

26 Octobre 2018Das U-Boot 48

Commandes

● ‘version’– Imprime des informations sur la version de U-Boot

● Version : ‘U-Boot 2015.04-dirty (Aug 25 2017 - 10:55:49)’● Chaîne de cross-compilation : ‘aarch64-agl-linux-gcc (GCC)

6.2.0’● Binutils utilisés : ‘GNU ld (GNU Binutils) 2.27.0.20160806’

● ‘booti’– Permet d’exécuter une image Linux arm64

● Les adresses du Kernel et du device tree doivent être précisées

● Utilisation : ‘booti ${kernel_address} - ${dt_address}’

26 Octobre 2018Das U-Boot 49

Commandes

● ‘ext4load’ / ‘ext2load’ / ‘fatload’ – Chargement de binaires depuis une partition ‘ext4’ / ‘ext2’ / ‘fat’ vers une

adresse mémoire spécifiée– Peut charger un fichier depuis une partition sur plusieurs types

d’interfaces (USB, eMMC/SD, ...)● ‘tftpboot’– Chargement de binaires depuis le réseau vers une adresse mémoire

spécifiée● ‘dhcp’– Requête DHCP pour obtenir une configuration sur le réseau local

(un serveur DHCP doit être présent)● ‘ping’– Ping une adresse IP sur le réseau

26 Octobre 2018Das U-Boot 50

Commandes

● ‘ext4ls’ / ‘ext2ls’ / ‘fatls’– Permet d’explorer un système de fichier ‘ext4’ / ‘ext2’ / ‘fat’

● ‘mmcinfo’ / ‘mmc info’– Informations sur le périphérique MMC sélectionné

● ‘mmc list’– Liste les périphériques MMC disponibles

● ‘usb info’– Information sur les périphériques USB connectés– Le bus USB doit d’abord être démarré (‘usb start’)

26 Octobre 2018Das U-Boot 51

Commandes

● ‘crc32’– Calcul d’une somme de contrôle (checksum) sur une

zone mémoire spécifiée● ‘fdt’– Outil de consultation et de modification du fichier

d’arborescence des périphériques (device tree)● ‘md’– Affichage en hexadécimal / ASCII d’une zone

mémoire spécifiée

26 Octobre 2018Das U-Boot 52

Pour un boot manuelsur Linux (Rcar M3)

● Paramétrage des arguments de boot● setenv bootargs 'console=ttySC0,115200 ignore_loglevel

vmalloc=384M video=HDMI-A-1:1920x1080-32@60 root=/dev/mmcblk1p1 rw rootfstype=ext4 rootwait rootdelay=2'

● Chargement des binaires en mémoire– Kernel :

● ext4load mmc 0:1 0x48080000 boot/Image– Device Tree

● ext4load mmc 0:1 0x48000000 boot/r8a7796-m3ulcb.dtb● Lancement de Linux

● booti 0x48080000 - 0x48000000

26 Octobre 2018Das U-Boot 53

Pour un boot automatiquesur Linux (Rcar M3)

● Paramétrage des arguments de boot● setenv bootargs 'console=ttySC0,115200 ignore_loglevel

vmalloc=384M video=HDMI-A-1:1920x1080-32@60 root=/dev/mmcblk1p1 rw rootfstype=ext4 rootwait rootdelay=2'

● Configuration de la commande exécutée si boot non interrompu

● setenv bootcmd 'ext4load mmc 0:1 0x48080000 boot/Image; ext4load mmc 0:1 0x48000000 boot/r8a7796-m3ulcb.dtb; booti 0x48080000 - 0x48000000'

● Sauvegarde de l’environnement courant● saveenv

26 Octobre 2018Das U-Boot 54

Démonstration d’un boot Linuxsur une carte Renesas RCar M3

26 Octobre 2018Vérifications des binaires au boot 55

Vérifications des binaires au boot(« image signature »)

26 Octobre 2018Vérifications des binaires au boot 56

Pourquoi

● Vérifier l’intégrité des mises à jour appliquées● Empêcher l’exécution de binaires

malveillants/modifiés

26 Octobre 2018Vérifications des binaires au boot 57

Rappel sur lacryptographie asymétrique

● Utilisation de deux clés– Publique– Privé

● Permet de chiffrer un message(seul le destinataire pourra le lire)– Chiffrement du message (clé publique)– Déchiffrement du message (clé privée)

● Permet de vérifier l’identité de l’expéditeur d’un message– Signature du message (clé privée)– Vérification du message (clé publique)

26 Octobre 2018Vérifications des binaires au boot 58

Cryptographie asymétrique pour signer un message

● Validation de l’identité de l’expéditeur du message

● Signature du message incluse

● Dépend du contenu du message– Sinon, très facilement

contournable● Contenu du message lisible– Peu d’importance

26 Octobre 2018Vérifications des binaires au boot 59

Introduction

● Signature des binaires à la compilation● Vérification des binaires à l’exécution● Utilisation d’algorithme utilisant un jeu de clé

privée/public pour la signature du binaire● Tous les bootloaders doivent vérifier le binaire qu’ils vont

lancer– Permet d’établir une chaîne de confiance sur toute la chaîne de

boot● Utilisation d’un espace mémoire fusible (fuse) sur la

plateforme pour stocker la clé publique

26 Octobre 2018Vérifications des binaires au boot 60

Signature du binaire

● La clé privée n’est connue que du fabriquant(et ne doit jamais fuiter, ni être perdue)

26 Octobre 2018Vérifications des binaires au boot 61

Vérification du binaire

● La clé publique peut être lue par tous● Stockée dans une mémoire qui ne peut être écrite

qu’une seule fois (en lecture seule après cette écriture)

26 Octobre 2018Vérifications des binaires au boot 62

Application

26 Octobre 2018Vérifications des binaires au boot 63

Que faire quand lavérification échoue

● La procédure doit être définie– Recovery boot ?– Arrêt de boot ?

26 Octobre 2018Environnement d’Exécution Sécurisé (TEE) 64

Environnement d’Exécution Sécurisé(Trusted Exection Environment)

26 Octobre 2018Environnement d’Exécution Sécurisé (TEE) 65

Introduction

● Objectifs– Ajout d’un environnement sécurisé en cas de

brèche dans la sécurisation l’OS – Accès mémoires/périphériques exclusifs à cet

environnement d’exécution● Implémentations– ARM : TrustZone– Intel : Trusted Execution Technology

26 Octobre 2018Environnement d’Exécution Sécurisé (TEE) 66

« Normal World » vs.« Secure World »

● Deux contextes d’exécution● Intégré au Soc● Peut servir à protéger un espace mémoire (i.e. le bootloader de

premier niveau)

26 Octobre 2018Environnement d’Exécution Sécurisé (TEE) 67

TEE en parallèle avec un OS

● Possible sur architecture mono-cœur– Utilisation d’un hyperviseur

sécurisé● Mémoire partagée– Partage d’informations– Applications présentes

dans les deux mondes

26 Octobre 2018Environnement d’Exécution Sécurisé (TEE) 68

OP-TEE

● Open-source Portable TEE (ARM)– Implémenté par ST-Microelectronics en 2007 puis

repris par Linaro– Fournit un lot d’API pour l’exécution d’applications dans

la « TrustZone » (au standard « Global Platform API »)● Fonctionnalités– Zone mémoire (stockage) sécurisée– Isolation Logicielle– Intégrité des périphériques

26 Octobre 2018Environnement d’Exécution Sécurisé (TEE) 69

OP-TEE

● Exemple d’API fournies par OP-TEE– Stockage sécurisé pour les données et les clés– Opérations de chiffrement– Vérification de temps écoulé

● Mode de lancement– Seul (lancement sous certaines conditions) – En parallèle avec un OS

● Applications– DRM– Paiements– ...

26 Octobre 2018Environnement d’Exécution Sécurisé (TEE) 70

OP-TEE

● Caractéristiques– Besoin de 256 Ko de RAM et de 320 Ko de ROM– Mécanisme d’Application de confiance– Protection des attaques par dépassement mémoires

(« stack canaries protection »)● Applications sécurisées– Applications de confiance signées et identifiées – Vérifications de l’intégrité des applications avant

l’exécution

26 Octobre 2018Environnement d’Exécution Sécurisé (TEE) 71

OP-TEE

26 Octobre 2018Environnement d’Exécution Sécurisé (TEE) 72

OP-TEE

● Démarrage seul ou en parallèle

26 Octobre 2018Exemples de failles connues 73

Exemples de failles connues

26 Octobre 2018Exemples de failles connues 74

Généralités

● Consiste à briser la chaîne de boot prévue● Besoin d’un accès physique à la plateforme

(entrées matérielles, UART, ...)● Peut nécessiter une modification de matériel

(connecteurs, pistes coupées, ...)● Besoin d’un binaire (bootloader, OS) compilé

pour la plateforme● Risque de briquer la plateforme● Limite de la légalité (pertes de garanties, ...)

26 Octobre 2018Exemples de failles connues 75

Accès au bootloader

● Ajout de l’accès à la liaison série de la plateforme● Accès à U-Boot à travers la liaison série– Paramètres de la liaison série (115200 bauds, 8N1, ...)

26 Octobre 2018Exemples de failles connues 76

Accès au bootloader

● Utilité– Changer l’OS par défaut de la plateforme

● OS compilé pour la plateforme● Adresse de stockage de l’OS● i.e. changement de l’OS d’un routeur pour ajouter des

fonctionnalités

– Débriquer une plateforme● Corrections– Ne pas rediriger l’invite de commande de U-Boot sur la

liaison série– Utiliser la signature des binaires dans la chaîne de boot

26 Octobre 2018Exemples de failles connues 77

Boot d’une clé USB (sur PC)

● Interruption du démarrage pour sélectionner le boot sur une clé USB– Par défaut, non protégé

● Lancement d’un autre OS

26 Octobre 2018Exemples de failles connues 78

Boot d’une clé USB (sur PC)

● Utilité– Accès au contenu du disque dur du PC (y compris fichiers

administrateurs Windows) – Possibilité de changer le mot de passe « user » / « root »

d’un système Linux déjà présent– Réparation du système

● Correction– Ajout d’un mot de passe pour l’accès au BIOS/UEFI

(possiblement contournable)– Chiffrer son disque dur (empêche l’accès aux données)

26 Octobre 2018Exemples de failles connues 79

Binaires non signés au bootsur Nintendo Switch

● Utilise une faille connue du Nvidia Tegra X1

● Passage de la console en mode RCM (Reliability-Centered Maintenance)– Mise à la masse d’une pin du

processeur– Combinaison de touches appuyées

● Requête USB spécifique permet une copie mémoire non autorisée (faille dans le ROM Code)– Exécution d’un binaire sans aucune

vérification

26 Octobre 2018Exemples de failles connues 80

Binaires non signés au bootsur Nintendo Switch

● Utilité– Lecture de zones mémoires

protégées – Lancement d’un OS Linux– Altération de l’OS de la

plateforme– Désactivation des sécurités

● Correction– Nécessite une nouvelle

révision matérielle ...

26 Octobre 2018Boot & Secure Boot 81

Merci de votre attention

https://iot.bzh/en/

Recommended