Java est un langage objet de haut niveau aujourd'hui très populaire. Puissant, portable, disposant d'une bibliothèque standard conséquente, la technologie Java est utilisée dans des domaines divers, du monde de l'embarqué aux serveurs critiques. Pour de nombreuses applications, la sécurité est un enjeu crucial. La plate-forme d'exécution standard de java assure nativement certaines propriétés de sécurité. Toutefois, des risques subsistent quant à l'utilisation de Java pour le développement d'applications. Ces risques nécessitent d'appliquer des recommandations et de suivre des règles de bonnes pratiques. La bibliothèque standard de Java met également à disposition des développeurs d'applications Java des mécanismes de sécurité (contrôle d'accès, authentification, cryptographie?). La connaissance et la maîtrise de ces mécanismes et de ces règles est nécessaire à toute personne désirant approfondir ses connaissances en Java concernant la sécurité des applications.
Objectifs
- comprendre les principaux mécanismes de sécurité de la plateforme d'exécution standard de Java et leurs limites
- être capable de développer des applications Java en utilisant les mécanismes de sécurité (cryptographie, contrôle d'accès) fournis par la bibliothèque standard de Java en appliquant les règles et les bonnes pratiques permettant d'assurer la sécurité des applications
Public concerné
Développeurs, ingénieurs systèmes, architectes et techniciens désirant acquérir les notions permettant de renforcer la sécurité des applications Java (environnement J2SE).
Développeurs d'applications J2ME et J2EE
Connaissances requises
Maîtrise des concepts de base du développement en Java
Méthodes pédagogiques
Conférences
Travaux de laboratoire
PROGRAMME
PROBLÉMATIQUE DE SÉCURITÉ SOUS JAVA
Rappels sur la plate-forme d'exécution standard de Java (J2SE)
Problématiques de sécurité
Mécanismes de sécurité natifs
Risques et recommandations : gestion de la mémoire, visibilité, programmation concurrente, interface avec la plate-forme native (JNI)
CONTRÔLE D'ACCÈS ET CONFINEMENT
Chargement de classe (Class Loader)
Contrôle d'accès orienté code (Security Manager/Access Controler, points de contrôle, politique de sécurité)
Authentification et contrôle d'accès orienté utilisateur (JAAS)
Mécanismes de signature de code
Mise en pratique : mise en ?uvre du contrôle d'accès au sein d'une application Java
MÉCANISMES CRYPTOGRAPHIQUES
Chiffrement/signature
Génération de clés
Gestion de PKI
Mise en pratique : mise en ?uvre du chiffrement et de la signature au sein d'une application Java