COURS 1
Mardi 4 décembre 14h00-17h30
Génie logiciel et Sécurité
Animateur : Stéphane Natkin Professeur des Universités au CNAM, Directeur du CEDRIC
L'importance croissante des logiciels participant à la sécurité (protection contre l'agression) des systèmes informatiques a amené à une réflexion sur les caractéristiques spécifiques qui peuvent être demandées pour la spécification, la programmation et la validation des logiciels de sécurité (protocoles de sécurité, mécanismes de protection, systèmes de signature électronique, paiements, ). Ce cours présente létat actuel de la réflexion dans ce domaine selon trois axes : architecture et évaluation, utilisation de méthodes formelles et techniques de programmation spécialisées.
Objectifs
Comprendre les problèmes principaux liés à lutilisation de logiciels de
sécurité ; comprendre les critères et les méthodes permettant de développer un
logiciel de sécurité ou daccepter lutilisation dun tel logiciel ;
estimer la complexité relative de la mise en uvre de méthodes et doutils
pour le développement de logiciels de sécurité.
Programme
1- Rappel sur la problématique de la sécurité : Problèmes généraux et
terminologie, cryptographie, protocoles de sécurité, protection. Les problèmes de
sécurité sur lInternet.
2- Spécification des objectifs et méthodes dévaluation : Introduction aux ITSEC et aux Critères Commun. Impact sur les principes d'architecture (cible et profils de protection) et l'impact du niveau d'évaluation sur le processus de développement. Spécification dune politique de sécurité et principes de preuves. Comparaison avec les techniques de sécurité innocuité (protection contre les catastrophes). Exemple : Profil de protection dune infrastructure à clefs publiques (PKI) et spécification dune politique de sécurité (Trustycom), éléments de preuve de sécurité pour un système daccès à distance à des données industrielles sensibles (CESIR).
3- Utilisation des méthodes formelles : Application aux systèmes de sécurité soit en ce qui concerne la spécification soit en ce qui concerne la preuve. Principaux langages et outils utilisés. Exemple : spécification de JavaCard en B (Gemplus) et validation du protocole SSL v3 avec Murphi (Stanford University).
4- Techniques de programmation : " Principes prudents de programmation " pour les logiciels de sécurité dAbadie et Needham Evolution et exemples de mise en uvre. Lexposé sappuiera en partie sur le livre " Les protocoles de sécurité de lInternet " (Dunod, 2001) de Stéphane Natkin.
COURS 2
Mercredi, 5 décembre 9h00-12h30
Développement de Systèmes Réactifs avec les Langages Synchrones
Animateur : Emmanuel Ledinot Dassault Aviation (F)
Les systèmes réactifs sont aujourdhui présents dans de nombreuses applications de linformatique, quil sagisse de systèmes embarqués, de dispositifs mobiles ou dautomatismes. Ces systèmes requièrent des techniques et méthodes de développement particulières ainsi que des langages de programmation tenant compte de leurs spécificités.
Objectifs
Le présent cours a pour objectif de présenter lessentiel du génie logiciel
relatif aux systèmes réactifs : les outils et les méthodes.
Programme
1-Positionnement du domaine : Définition de la notion de système réactif,
positionnement par rapport à la notion de système temps réel. Définition des langages
synchrones, positionnement par rapport aux langages usuels de programmation parallèle et
aux systèmes d'exploitation. Classes d'applications concernées par les langages
synchrones, illustration par quelques exemples types.
2-Introduction aux langages synchrones : Pourquoi des langages spécialisés ? Avantages et limites par rapport aux autres langages usuels de programmation et aux boîtes à outils pour l'automaticien. Principes communs relatifs à la sémantique, à la compilation et à la preuve de programmes. Deux modes d'expression : flots de données et flots de contrôles. Tour d'horizon de l'offre de produits et de l'utilisation industrielle.
3-Les langages flots de données : Syntaxe et sémantique du langage Lustre, exemples de programmes Lustre. Problématique de la qualification du générateur de code. Le langage Signal.
4-Les langages flots de contrôle : Le formalisme StateCharts. Syntaxe et sémantique du langage Esterel. Exemples de programmes StateCharts et Esterel.
5- Méthodes de développement avec les langages synchrones : Positionnement dans un processus de développement, compatibilité avec des méthodes d'analyse telles que SA-RT et UML, séparation des composantes réactives et algorithmiques, principes d'architecture logicielle pour une bonne utilisation des langages synchrones, principes de mise en uvre de la preuve de programme.
6- Étude d'un cas réel : un séquenceur de tâches.
COURS 3
Mercredi, 5 décembre 14h00-17h30
Les Serveurs des Systèmes d'informations et des Sites Web
Technologie, architecture et exigences non-fonctionnelles
Les choix en matière de serveurs pour les systèmes dinformations et pour les sites Web sont des questions récurrentes auxquelles les réponses qui sont apportées ne sont pas toujours satisfaisantes et, souvent, pas optimales. Ces choix portent sur larchitecture des serveurs et leur arrangement ainsi que sur les propriétés de " scalabilité " (capacité dun système à sadapter aux dimensions du problème quil a à traiter). En effet, la scalabilité représente la possibilité de suivre lévolution de la demande au niveau des serveurs sans entraîner de rupture dexploitation. La prise en compte dexigences non-fonctionnelles, telles que les performances et la disponibilité, savère aussi délicate.
Objectifs
Comprendre les évolutions technologiques, tant du matériel que du logiciel, et les
évolutions des besoins qui sous-tendent lévolution des serveurs. Comprendre les
différentes architectures de sites et leur rationnel. Appréhender les critères de
choix. Comprendre les différentes options darchitecture, leur sacalabilité et
leurs conditions demploi. Prendre en compte les exigences non-fonctionnelles.
Programme
Options darchitecture en matière de serveurs : couplage serré et
couplage lâche.
Evolutions des technologies : matériel, logiciel, structure de lindustrie
Critères de choix.
Comparaison des différentes options darchitecture
Scalabilité
Quelques exemples types darchitecture (sites Web en particulier)
Architectures scalables
Approches des performances et de la disponibilité : Performances (caractérisation, modélisation, prévision de la charge) ; disponibilité : causes d'indisponibilité, solutions, évaluation et mesures de la disponibilité. Méthodes et outils.
Prospective
Lexposé sappuiera en partie sur le livre " Serveurs multiprocesseurs, clusters et architectures parallèles " (Eyrolles 2000) de René Chevance.
Copyright (C) CNAM-CMSL 2001, Tous droits réservés.