Introduction et rappels
Chargement et vérification des classes
Rôle du compilateur Java
Rôle des classloader
Les différentes zones mémoires de la JVM et leur gestion par le garbage collector
Hiérarchie des différents classloader
Vérification du byte-code
Chargement dynamique ce classe
Implémenter un class loader
Travaux Pratiques: Modification d'un fichier .class et exécution avec l'option -noverify, Implémentation d'un classloader chargeant des classes cryptées
Gestionnaire de sécurité et permissions
Opérations contrôlables
Activation du gestionnaire de sécurité
Domaine de protection, provenance du code et permissions
Parcours de l'API
Fichier .policy
Les classes Permission
Implémentation d'une classe Permission
Travaux Pratiques: Mise au point d'un fichier .policy, implémentation d'une classe Permission
JAAS, Authentification et Autorisations
Présentation de JAAS
LoginContext et LoginModule
Configuration et empilement des login modules
LoginModule disponibles
Implémentation d'un login module spécifique, les CallbackHandler
Packaging d'un login module
Autorisations, Objet Subject et Principals
Interface PrivilegedAction
Configuration des permissions
Travaux Pratiques: Implémentation d'un LoginModule, Configuration des autorisations à partir de rôles utilisateurs.
Signatures numériques et chiffrement
Empreinte de messsage, SHA1 et MD5
Signature numérique, clé publiques et clés privées
L'outil keytool et les keystore
L'outil jarsigner
Les autorités de certification
Déploiement de code signé dans un intranet ou sur internet
Permissions basées sur des keystore
Chiffrement de données, les algorithme AES et RSA
Travaux Pratiques: Vérification d'une empreinte, Déploiement d'une applet dans un intranet, Chiffrement symétrique et asymétrique
Application de la sécurité dans un environnement Web
Sécurisation d'un serveur applicatif Java
Authentification des utilisateurs, descripteur de déploiement d'une application web
Configuration des logins module dans les principaux serveurs applicatifs
Sécurité déclarative des différents tiers de Java EE
SSL.
Travaux Pratiques: Sécurisation d'une application web