[wpms_breadcrumb reverse="0"]
Internet Applications - Technologies JAVA & XML

La sécurité des applications Java / JavaEE

Reference : JAVS
3 jours - 1690 €
Prochaines sessions
    La sécurité des applications Java / JavaEE
    Objectifs

    • Cette formation sur la sécurité des applications Java permet de passer en revue ces différents sujets et propose à chaque fois des ateliers pédagogiques permettant de comprendre en profondeur les mécanismes d’exécution de la JVM. Le dernier chapitre se concentre sur les spécificités des applications web Java EE en détaillant SSL, le modèle de sécurité des différents tiers ainsi que les spécificités des architectures SOA.

    Pré requis

    • Il est demandé aux participants de connaître les notions de base du langage Java.

    Modalités pédagogiques

    Cours dispensé en mode présentiel avec une alternance d’apports théoriques et méthodologiques, et de mises en situations pratiques

    Inscription

    Programmes de La sécurité des applications Java / JavaEE

    Introduction aux concepts liés à la sécurité

    • Identification et méthodes d’authentification.
    • Autorisations et permissions.
    • Confidentialité, non-répudiation, cryptage, clés publiques/privées, autorités de certification.
    • Pare-feu et DMZ, rupture de protocole.
    • Les types d’attaques.
    • Le modèle de sécurité de la JVM

    Chargement et vérification des classes

    • Un des premiers mécanismes implémentés par la JVM est de s’assurer que le code chargé en mémoire ne peut contourner les mécanismes de protection du langage.
    • 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

    Cross-site scripting et sécurité

    • Le principe du XSS (injection de contenu)
    • Liens avec les programmes Java
    • Déclinaisons (Stored XSS, Reflected XSS, DOM-based XSS)
    • Nouvelles « possibilités » avec le HTML 5

    Gestionnaire de sécurité et permissions

    • Les permissions et le gestionnaire de sécurité permettent de contrôler finement les autorisations d’un programme et ses interactions avec son environnement.
    • 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

    JAAS, Authentification et Autorisations

    • JAAS offre les services d’authentification et d’autorisations des utilisateurs ou systèmes externes interagissant avec l’application tout en restant du indépendant de la technologie d’authentification.
    • Présentation de JAAS
    • LoginContext / LoginModule, Configuration et empilement des login modules
    • LoginModule communément disponibles
    • Implémentation d’un login module spécifique, les CallbackHandler
    • Autorisations, Objet Subject et Principals, Configuration des permissions

    Signatures numériques et chiffrement

    • Les techniques de cryptographie permettent de garantir la provenance d’un code et sa non altération.
    • 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 algorithmes AES et RSA

    SSL et Java

    • Fonctions de Java Secure Socket Extension (JSSE). Comparaison avec Java GSS-API
    • Authentification via certificats X.509. TLS et SSL.
    • Encryption à base de clés publiques, Java Cryptography Extension (JCE).
    • Utilisation de SSL avec HTTP.

    La sécurité d’une application JEE

    • Authentification au niveau des conteneurs Web et EJB.
    • Rôles applicatifs, permissions et descripteurs de déploiement XML.
    • Contrôles dynamiques via les API Servlets et EJB.
    • La sécurité dans les API : JDBC/JPA, JNDI, JTA, JMS, JCA.

    La sécurité des services web SOAP

    • Sécurité au niveau HTTP.
    • Sécurité au niveau SOAP & WSDL avec WS-Security (WSS4J, XWSS…) & WS-Policy.
    • Les handlers SOAP WS-Security exploitant JAAS.

    La sécurité des services web REST

    • Utilisation de SSL avec JAX-RS.
    • Les apports de oAuth (authentification sur Internet).
    • oAuth 1.0 et 2.0.