Présentation des concepts liés à la sécurité
- Identification et méthodes d'authentification.
- Autorisations et permissions.
- Confidentialité, non-répudiation, cryptage symétrique et asymétrique, clés publiques et clés privées, autorités de certification.
- Pare-feu et zone démilitarisée, rupture de protocole.
- Les différents types d'attaques.
Sécurité de la machine virtuelle Java
- Le chargement des classes par un ClassLoader. ClassLoaders spécifiques. Concept de " bac à sable ".
- Le SecurityManager, l'AccessController et la définition des permissions avec les fichiers .policy.
- Créer ses propres permissions à l'aide de la Java Security Permission.
- Les mécanismes de protection de l'intégrité du bytecode, la décompilation et l'obfuscation du code.
- Les spécificités des applets en matière de sécurité.
Travaux pratiques
Définition de fichiers .policy spécifiques, sécurité d'une applet, décompilation de bytecode.
Java Authentication and Authorization Service
- L'architecture de JAAS.
- L'authentification via le PAM (Pluggable Authenti-cation Modules), notion de Subject et de Principal.
- La gestion des permissions et les fichiers .policy.
- Utiliser JAAS avec Unix ou Windows, JNDI, Kerberos et Keystore. Le support du Single Sign On.
Travaux pratiques
Configuration de la politique de contrôle d'accès, mise en œuvre de l'authentification.
SSL avec Java
- Fonctions de Java Secure Socket Extension (JSSE).
- L'authentification via certificats X.509. TLS et SSL.
- L'encryption à base de clés publiques, Java Cryptography Extension (JCE).
Travaux pratiques
Configuration de SSL et mise en œuvre applicative de sockets SSL. Utilisation des outils fournis avec le JDK : keystore.
La sécurité d'une application JEE
- Authentification au niveau d'un conteneur Web et d'un conteneur EJB.
- Rôles applicatifs, permissions et descripteurs de déploiement XML.
- Contrôles dynamiques à l'aide des API Servlets et EJB.
- La sécurité dans les API JEE : JDBC, JNDI, JTA, JMS, JCA.
Travaux pratiques
Sécurité d'une application Web déployée dans Tomcat.
La sécurité des services Web
- Sécurité des services Web avec WS-Security. Les implémentations de WS-Security (WSS4j, XWSS …).
Travaux pratiques
Mise en pratique avec une implémentation de WS-Security.