% EMB7025 — Sûreté et sécurité des systèmes embarqués % UQAM — Département d'informatique % Plan de cours — Hiver 2020 * Horaires, locaux et enseignants: Responsable(s) du cours ======================= Coordination ------------ Bégin, Guy PK-4825 poste 4081 Enseignement ------------- Bégin, Guy PK-4825 poste 4081 Description du cours ==================== Ce cours vise à sensibiliser les étudiants aux différents aspects de la sûreté de fonctionnement et de la sécurité des systèmes, et à développer chez eux les compétences nécessaires à la prise en charge de ces objectifs essentiels dans le contexte des systèmes embarqués. Problématique d'ensemble de la sécurité et de la sûreté de fonctionnement d'un système embarqué. Causes: fautes, défaillances, erreurs, attaques, ergonomie. Fiabilité de système, de matériel, de logiciel: MTTF, MTTR, MTBF. Critères de sûreté de fonctionnement: fiabilité, disponibilité, innocuité, maintenabilité, testabilité. Mécanismes de contrôle: tolérance aux fautes, suppression des fautes, conception pour la sûreté. Menaces, vulnérabilités, attaques, préjudice, contrôles. Objectifs de sécurité: confidentialité, authenticité, intégrité, disponibilité. Mécanismes sécuritaires: chiffrage symétrique et asymétrique, hachage, fonctions à sens unique. Protocoles sécuritaires: authentification, échange de clés, signature. Notion de confiance. Contrôle d'accès, inviolabilité. Matériel spécialisé: cartes à puces, boutons, attaques invasives. Cadres de normatifs en sécurité et en sûreté (frameworks). Responsabilité professionnelle: éthique et impacts. Vérification et tests. Préalables académiques : Cours de 3 heures et un laboratoire de 3 heures/semaine. Objectif du cours ================= Ce cours vise à sensibiliser les étudiants aux différents aspects de la sûreté de fonctionnement et de la sécurité des systèmes embarqués. On développera les compétences nécessaires à la prise en charge des objectifs essentiels de sécurité et de sûreté. Spécifiquement, l'étudiant qui complète le cours avec succès sera capable : - définir les concepts importants en sûreté : fautes, défaillances, erreurs, fiabilité, disponibilité; - distinguer les paramètres probabilistes utilisées en fiabilité : MTTF, MTTR, MTBF; - expliquer certaines techniques permettant d'améliorer la fiabilité : évitement, tolérance, suppression de fautes; - mettre en oeuvre des mécanismes visant à assurer la fiabilité et la sécurité des systèmes; - définir et mettre en contexte les principaux objectifs et services de sécurité, tels que confidentialité, intégrité, authentification; - expliquer la fonction des principaux mécanismes de sécurité : chiffrage, hachage, signature; - expliquer la fonction de protocoles cryptographiques courants utilisés en sécurité; - reconnaître les vulnérabilités de systèmes. Contenu du cours ================ - Les problématiques de la sécurité et de la sûreté des systèmes embarqués. Définitions, distinctions, objectifs, renforcement mutuel, antagonisme. Préjudices, dommages. Risques malveillants ou accidentels. Fiabilité, confiance. - Objectifs de sécurité; confidentialité, intégrité, disponibilité, authentification, non-répudiation, contrôle d'accès. Vulnérabilités, menaces à la sécurité et attaques. - Attaques conduisant à des fuites d'information, à des modification d'information, à des privations de service. Attaques passives et actives. Attaques spécifiques contre les systèmes embarqués : piratage, rétro-ingénierie, clonage. Sécurité des réseaux de capteurs. - Techniques de base en sécurité. Techniques de chiffrage. Mécanismes de base : transposition, permutation. Caractérisation des systèmes de chiffrage. - Mécanismes sécuritaires modernes : systèmes de chiffrage symétriques et asymétriques. Complexité de calcul. Fonctions à sens unique. Hachage cryptographique. Intégrité des données et authentification de message. Génération pseudo-aléatoire. Modes de chiffrage : en blocs, continu, chaînage de blocs chiffrés. - Protocoles sécuritaires : identification et authentification. Protocoles: signature, authentification mutuelle. Échange et gestion de clés. Tiers de confiance. Authentification par défi et réponse. Protocoles sans transfert de connaissances. Infrastructures d'authentification et de distributions de clés. Certificats. - Sécurité des plate-formes embarquées : circuits programmables, amorçage sécuritaire, mécanismes matériels sécuritaires. Dispositifs embarqués et menaces: le soi quantifié et l'anonymat, dispositifs embarqués comme vecteurs d'attaques. - Problématique de la sûreté des systèmes embarqués. Causes : fautes, défaillances, erreurs. - Fiabilité de système, de matériel, de logiciel : MTTF, MTTR, MTBF. - Critères de sûreté de fonctionnement : fiabilité, disponibilité, innocuité, maintenabilité, testabilité. - Mécanismes de contrôle : tolérance aux fautes, suppression des fautes, conception pour la fiabilité. Modalités d'évaluation ====================== ---------------------- ---------------------------- ------------- DESCRIPTION SOMMAIRE ÉCHÉANCE PONDÉRATION Devoirs 10 % Travaux pratiques Spécifiée dans les énoncés 40 % Examen final Fin du trimestre 50 % ---------------------- ---------------------------- ------------- DEVOIRS ------- Occasionnellement au cours de la session, des séries d'exercices à réaliser en devoir seront soumises aux étudiants. Typiquement, il y a deux devoirs avec environ deux semaines entre la soumission et la remise. Un sous-ensemble (inconnu à l'avance) des exercices pourra être retenu pour être noté. Les énoncés des devoirs seront distribués par l'intermédiaire de Moodle. Il n'y a pas de format pré-établi pour les documents à remettre, mais la qualité de présentation et de rédaction est importante. Une réponse ou un raisonnement illisible sont forcément mauvais. TRAVAUX PRATIQUES ----------------- La mise en pratique des concepts vus en classe se fera par la réalisation de travaux pratiques en laboratoire, faisant appel à différents environnements de développement et de simulation. Ces travaux seront réalisés par équipes de quelques étudiants. REMISE DES RAPPORTS ------------------- Les devoirs et rapports doivent être rendus électroniquement par l'intermédiaire du site Moodle du cours. Les travaux remis en retard seront pénalisés, à raison de 20 % de la note globale par jour (incluant samedi, dimanche et congés) de retard. Exceptionnellement (par ex., panne de Moodle), une copie pourra être rendue par courriel régulier. Chaque fichier doit être NOMMÉ DE FAÇON À CE QU'ON PUISSE IDENTIFIER LES MEMBRES de l'équipe (par exemple, par l'utilisation d'initiales), de même que le titre de la manipulation / simulation. Si plusieurs versions d'un même rapport sont remises, un numéro de version significatif doit être inclus dans le nom. Attention : des erreurs de titres pourraient faire que des copies ne soient pas corrigées, ou que des résultats soient confondus par mégarde. Le FORMAT de fichier pour les documents doit ABSOLUMENT ÊTRE PDF (Portable Document Format), ce qui assure que ce qui est rendu est conforme à la version de l'étudiant et ne risque pas d'être modifié par la suite. Un rapport doit normalement être présenté en un seul fichier, avec annexes, le cas échéant, pour les codes sources, etc. Un guide détaillé disponible sur le site du cours, donne davantage d'informations sur la présentation des rapports de laboratoire. EXAMEN ------ Une moyenne d'AU MOINS 50 % à l'examen est exigée pour réussir le cours. L'utilisation de documentation personnelle (notes de cours, manuels) à l'examen sera limitée à quelques pages de notes personnelles. Médiagraphie ============ - VR Schneier, B. -- Cryptographie appliquée, 2e édition. 1996. - VC Stinson, D.R. -- Cryptographie, Théorie et Pratique. 1995. - VC Zémor, G. -- Cours de cryptographie. 2000. - VC Pfleeger, C.P. -- Security in Computing. 2002. - VC Motet, G. --Sûreté de fonctionnement des systèmes informatiques. 1998. - VC Handbook of Software Reliability Engineering -- IEEE Computer Society Press. 1996. - VC Siewiorek & Swarz -- Reliable Computer Systems : Design and Evaluation. 1992. - VC Musa, Iannino & Okumoto -- Software Reliability : Measurement, Prediction, Application. 1990. - VC Software Reliability Handbook -- Elsevier Applied Sciences. 1990. - VC Sabnis -- VLSI Reliability. 1990. - VC Stapko, T. -- Practical Embedded Security. 2008. - VC Çayirci, E., Rong, C. -- Security in Wireless Ad Hoc and Sensor Networks. 2009. - VC Dargie, W. & Poellabauer, C. -- Fundamentals of wireless sensor networks: theory and practice. 2010. - VC Shelby, Z. & Bormann, C. -- 6LoWPAN: The Wireless Embedded Internet. 2007. - VC Elahi, A. -- ZigBee Wireless Sensor and Control Network. 2010. Site Web du cours via Moodle: AUTRES LECTURES --------------- D'autres documents seront soumis pour lecture durant la session. La liste sera tenue à jour sur Moodle.