Programmation de systèmes embarqués sécurisés
Objectifs
|
- Quelques notions de programmation sont souhaitables (quel que soit le langage)
- Cours théorique
- Support de cours au format PDF (en anglais)
- Cours dispensé via le système de visioconférence Teams
- Le formateur répond aux questions des stagiaires en direct pendant la formation et fournit une assistance technique et pédagogique
- Activités pratiques
- Les activités pratiques représentent de 40% à 50% de la durée du cours
- Elles permettent de valider ou compléter les connaissances acquises pendant le cours théorique.
- Un PC Linux en ligne par stagiaire pour les activités pratiques
- Exemples de code, exercices et solutions
- Le formateur a accès aux PC en ligne des stagiaires pour l'assistance technique et pédagogique
- Certains travaux pratiques peuvent être réalisés entre les sessions et sont vérifiés par le formateur lors de la session suivante
- Une machine virtuelle préconfigurée téléchargeable pour les activités pratiques après le cours
- Au début de chaque demi-journée une période est réservée à une interaction avec les stagiaires pour s'assurer que le cours répond à leurs attentes et l'adapter si nécessaire
- Tout ingénieur ou technicien en systèmes embarqués possédant les prérequis ci-dessus
- Totale : 30 heures
- 5 sessions de 6 heures chacune
- De 40% à 50% du temps de formation est consacré aux activités pratiques
- Certains travaux pratiques peuvent être réalisés entre les sessions et sont vérifiés par le formateur lors de la session suivante
- Les prérequis sont vérifiés avant l'entrée en formation, sur la base des prérequis publiés sur cette fiche.
- Pendant la formation, les acquis sont évalués en continu : quiz de fin de séquence et observation directe du formateur.
- À l'issue de la formation, chaque participant reçoit une attestation de fin de formation.
Plan du cours
- Tendances de la sécurité de l'embarqué
- Complexité des systèmes embarqués
- Connectivité réseau
- Dépendance des infrastructures critiques aux systèmes embarqués
- Consolidation des processeurs
- Politiques de sécurité
- Une sécurité parfaite
- Confidentialité, intégrité et disponibilité
- Isolation
- Contrôle des flux d'information
- Politiques de sécurité physique
- Politiques spécifiques à l'application
- Menaces de sécurité
- Usage sûr des pointeurs
- Allocation mémoire et corruption
- Débordement de tampon
- Return Oriented Programming
- Exigences fondamentales de sécurité d'un système d'exploitation embarqué
- Fonctions de chaînes et de formatage
- Sécurité des entiers
- Concurrence
- Entrées/sorties fichier
- Règles de codage
- Étude de cas : MISRA C:2012 et MISRA C++:2008
- Embedded C++
- Maîtrise de la complexité
- Analyse statique du code source
- Créer une règle de codage embarqué adaptée à son organisation
- Analyse dynamique du code
- Modes cryptographiques
- Chiffrement par blocs
- Chiffrement authentifié
- Cryptographie à clé publique
- Accord de clés
- Authentification à clé publique
- Cryptographie sur courbes elliptiques
- Fonctions de hachage cryptographiques
- Codes d'authentification de message
- Génération de nombres aléatoires
- Gestion des clés pour les systèmes embarqués
- Communications sécurisées
- Authentification
- Protocoles IoT
- MQTT
- DTLS
- HTTPS
- CoAP
- Mise en œuvre de TLS
- Sécurité et menaces des réseaux locaux sans fil
- Objectifs d'une architecture logicielle sécurisée
- Moindre privilège, confiance et processus sécurisés
- Arm Platform Security Architecture (PSA)
- Panorama des accélérateurs cryptographiques
- Arm TrustZone
- Secure boot et mise à jour
- Options matérielles pour la sécurité
- Le système d'exploitation
- Multiple Independent Levels of Security
- Flux d'information
- Isolation des données
- Limitation des dommages
- Traitement par périodes
- Résistance à l'altération
- Évaluabilité
- Exigences fondamentales de sécurité d'un système d'exploitation embarqué
- Protection mémoire
- Mémoire virtuelle
- Pages de garde
- Obfuscation des adresses
- Reprise sur faute
- Impact du déterminisme
- Ordonnancement sécurisé
- Hyperviseurs et virtualisation système
- Introduction à la virtualisation système
- Applications de la virtualisation système
- Sandboxing d'environnement
- Appliances de sécurité virtuelles
- Architectures d'hyperviseurs
- Paravirtualisation
- Tirer parti des assistances matérielles à la virtualisation
- ARM TrustZone
- Sécurité de l'hyperviseur
- Virtualisation des entrées/sorties
- Administration à distance
- Garantir l'intégrité de la TCB
- Matériel de confiance et chaîne d'approvisionnement
- Secure Boot
- Static versus Dynamic Root of Trust
- Attestation à distance
- Protocoles pour les données en transit
- Modèle généralisé
- Choisir la couche réseau où appliquer la sécurité
- Protocoles de sécurité Ethernet
- IPsec face à SSL
- IPsec
- SSL/TLS
- Clients VPN embarqués
- DTLS
- SSH
- Protocoles de sécurité réseau spécifiques
- Protocoles multimédia sécurisés
- Sécurité de la diffusion
- Protocoles pour les données au repos
- Choisir la couche de stockage où appliquer la sécurité
- Choix de l'algorithme de chiffrement symétrique
- Gestion de la clé de chiffrement du stockage
- Méthodes de test de base
- White-Box Testing
- Black-Box Testing
- Grey-Box Testing
- Fuzz-Testing
Plus d'information
Pour vous enregistrer ou pour toute information supplémentaire, contactez nous par email à l'adresse info@ac6-formation.com.
Les inscriptions aux sessions de formation sont acceptées jusqu'à une semaine avant le début de la formation. Pour une inscription plus tardive nous consulter
Vous pouvez aussi remplir et nous envoyer le bulletin d'inscription
Ce cours peut être dispensé dans notre centre de formation près de Paris ou dans vos locaux, en France ou dans le monde entier.
Les sessions inter-entreprises programmées sont ouvertes dès deux inscrits. Sous condition d'un dossier complet, les inscriptions sont acceptées jusqu'à une semaine avant le début de la formation.
Dernière mise à jour du plan de cours : 2 juillet 2026
L'inscription à nos formations est soumise à nos Conditions Générales de Vente
Sur le même sujet :
Yocto ou Buildroot : comment choisir pour votre projet Linux embarqué