|
LA SÉCURITÉ : UN SUJET D'ACTUALITÉQuels sont aujourd'hui les risques liés à la sécurité des systèmes d'information ? Piratage, vol de données, extor - sion... Présentation des différents types de sécurisation : sécurité liée aux applications, aux serveurs, au réseau.
INTRODUCTION À LA CRYPTOGRAPHIEHistorique et définition de la cryptographie. La cryptographie numérique. Présentation de quelques algorithmes cryptographiques : algorithme à clé secrète, algorithme de Diffie-Hellman, le calcul d'empreinte, la cryptographie à clé publique, la signature numérique. Comparaison des différentes implémentations.
LES INFRASTRUCTURES À CLÉS PUBLIQUES (PKI)Comment garantir la sécurité des échanges entre acteurs ? Le besoin du tiers de confiance. Les acteurs d'une PKI (Public Key Infrastructure). La chaîne de confiance. Le fonctionnement d'une PKI. Les certificats numériques : authentification par certificat, familles et classes de certificats.
JCE : JAVA CRYPTOGRAPHY EXTENSIONPrésentation des concepts de JCE : service, algorithme, fournisseur. Les caractéristiques de JCE : indépendance de l'implémentation, interopérabilité des implémentations, indépendance et extensibilité de l'algorithme. Gestion et déclaration des fournisseurs. Calcul d'empreinte. Chiffrement à clé secrète. Signature de document. Travaux pratiques : écrire un programme qui effectue un calcul d'empreinte en utilisant MD5 et SHA1.
SSL : SECURE SOCKET LAYERPrésentation de SSL : historique, objectifs et moyens de mise en oeuvre. Les différents types de handshake : handshake simple et handshake mutuel. Session SSL. Utilisation de SSL. Inconvénients de SSL.
JSSE : JAVA SECURE SOCKET EXTENSIONLa mise en place d'un canal de sécurité entre deux applications. Présentation de l'API JSSE : principes, fonctionnement et mise en oeuvre. Présentation de l'utilitaire KeyTool. Travaux pratiques : mise en place d'une connexion SSL avec authentification mutuelle.
LA SÉCURITÉ DANS LE LANGAGE JAVALa machine virtuelle (JVM) et le Byte Code Verifier. ClassLoader et algorithme de recherche pour le
|
chargement des classes. Security Manager et Security Policy. Reverse engineering et obfuscateur de code. La signature d'archives jar (jarsigner). Travaux pratiques : garantir l'intégrité et l'authenticité d'une archive.
JAAS : JAVA AUTHENTIFICATION AND AUTHORIZATION SERVICEPrésentation de JAAS : le processus d'authentification et les acteurs. Configuration du LoginContext. Présentation des utilisations possibles. Travaux pratiques : comprendre la mécanique de JAAS en ajoutant un LoginModule supplémentaire.
STRUCTURE ET VULNÉRABILITÉ DES ARCHITECTURES J2EELes architectures multi-couches. Rôles des clients et des serveurs Web, des clients riches, de la couche métier, de la couche ressources. Quelles sont les principales vulnérabilités de ce type d'architecture ? Les risques côté client et côté serveur. Le vol de session. Les risques dus à l'authentification.
LA SÉCURISATION D'UNE ARCHITECTURE J2EEL'utilisation de SSO (Single Sign On) face à la multiplication des systèmes d'authentification : SSO client / serveur, SSO reverse proxy, SSO mutualisé. Sécurisation du réseau : isolation, VPN. La sécurité du conteneur Web (FORM, BASIC AUTHENTICATE, CERTIFICAT...) : role based security, configuration du Realm, contextes de sécurité, protection des ressources Web. Sécurité programmatique. Sécurisation des accès aux bases de données. Éléments de sécurisation logicielle : design pattern, techniques d'implémentation de la sécurité dans une application. Vulnérabilités et remèdes. Travaux pratiques : mettre en place une communication SSL entre le navigateur et le serveur HTTP. Sécurisation de la communication entre le serveur HTTP et le conteneur Web. Paramétrer et installer une application J2EE sur un conteneur Web : méthodes d'authentification, définition des rôles, sécurité programmatique...
SYNTHÈSELes bonnes pratiques de sécurisation et de développement impactant la sécurité : démarche générale et démarche technique. Bibliographie, netographie.
|