Maîtriser la sécurité Java : classloaders, permissions, authentification, chiffrement et sécurité web
Le langage Java contient intrinsèquement de nombreux mécanismes permettant l'élaboration de programmes sûrs. Ces mécanismes concernent les différentes facettes de la sécurité comme l'intégrité, laconfidentialité, l'identification et la protection contre les malveillances.
Est-ce pour vous ?
Développeurs, concepteurs, chefs de projets, architectes techniques
Préalables
Avoir une expérience de programmation en langage JAVA.
Ce que vous saurez faire
- ✓ Maîtriser les mécanismes de sécurité de la JVM : classloaders, vérification du bytecode et gestion mémoire
- ✓ Configurer et appliquer des politiques de sécurité avec le gestionnaire de sécurité et les permissions Java
- ✓ Implémenter des solutions d’authentification et d’autorisation avec JAAS et gestion des rôles
- ✓ Sécuriser les applications avec signatures numériques, keystores et chiffrement AES/RSA
- ✓ Identifier les vulnérabilités web (OWASP) et réaliser des audits dynamiques avec des outils spécialisés
Contenu de la formation
1 Introduction et rappels
2 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 de classe
- Implémenter un class loader
- T.P. : Modification d'un fichier .class et exécution avec l'option -noverify, Implémentation d'un classloader chargeant des classes cryptées
3 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
- T.P. : Mise au point d'un fichier. policy, implémentation d'une classe Permission
4 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
- T.P. : Implémentation d'un LoginModule, Configuration des autorisations à partir de rôles utilisateurs
5 Signatures numériques et chiffrement
- Empreinte de messsage : SHA1 et MD5
- 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 algorithmes AES et RSA
- T.P. : Vérification d'une empreinte, Déploiement d'une applet dans un intranet, Chiffrement symétrique et asymétrique
6 Application de la sécurité dans un environnement Web
- Sécurisation d'un serveur applicatif Java
- Sécurisation d'un serveur applicatif Java
- Authentification des utilisateurs, descripteur de déploiement d'une application web
- Configuration des logins modules dans les principaux serveurs applicatifs
- Sécurité déclarative des différents tiers de Java EE
- SSL
- T.P. : Sécurisation d'une application web
7 Les attaques WEB
- Les ressources de l'OWASP
- Les dix risques de sécurité applicatifs Web les plus critiques selon l’OWASP
- Identification des principaux risques dans la Cybersécurité
8 L’audit d'applications en mode dynamique avec APPSCAN Standard
- Configuration d’un scan
- Lancement de l’opération de Scan
- Analyse des résultats
📌 Informations pratiques
Nos formations sont offertes à Montréal ou Québec, en présentiel ou en classe virtuelle. Les dates et lieux sont précisés lors de votre choix de session ci-dessous. Si vous avez des questions, consultez notre FAQ.