La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Formation 1 - Formation Sécurité JAVA Sécurité JAVA.

Présentations similaires


Présentation au sujet: "Formation 1 - Formation Sécurité JAVA Sécurité JAVA."— Transcription de la présentation:

1 Formation 1 www.objis.com - Formation Sécurité JAVA Sécurité JAVA

2 www.objis.com - Formation SPRING A propos d’Objis…  Centre de formation depuis 2005  Spécialiste technologies Java/J2ee  Formations intra/inter entreprises  70% de pratique  Paris – Lyon – Dakar  Sponsor salon Solutions Linux  + de 100 tutoriaux Java/j2ee sur www.objis.comwww.objis.com 2 www.objis.com - Formation Sécurité JAVA

3 www.objis.com - Formation SPRING Sommaire  Périmètre Sécurité JAVA  API Sécurité Java  Notions clés Cryptographie  Sécurité applications J2EE (JAAS)  Outils 3 www.objis.com - Formation Sécurité JAVA

4 www.objis.com - Formation SPRING Objectifs  1) Comprendre périmètre et Architecture Sécurité JAVA  2) Identifier les différentes APIs / outils  3) Mettre en oeuvre stratégie sécurité Applications 4 www.objis.com - Formation Sécurité JAVA

5 www.objis.com - Formation SPRING Introduction  2 aspects sécurité JAVA Sécurité plateforme Sécurité outils & API  Architecture Sécurité JAVA  Authentification  Controle d'accès  Sécurité J2EE avec JAAS  Déploiement sécurité 5 www.objis.com - Formation Sécurité JAVA

6 www.objis.com - Formation SPRING Introduction  Java pensé avec objectif de sécurité  2 aspects sécurité JAVA Sécurité plateforme Sécurité outils & API  Dév. Appli sécurisés : APIs Cryptographie + PKI  Control accès : API Authentification & Autorisation  Services implémentés sous forme de 'provider' java.security.Provider 6 www.objis.com - Formation Sécurité JAVA

7 www.objis.com - Formation SPRING Périmètre sécurité JAVA 7 2: cryptographi e 5: infrastructure à clé publique (PKI) 4: communicati ons réseau 3:authentifica tion & contrôle d'accès 1: plateforme www.objis.com - Formation Sécurité JAVA

8 www.objis.com - Formation SPRING Périmètre sécurité JAVA (1/5) : La plateforme  Java pensé avec objectif de sécurité typage fort gestion mémoire Charger seulement les classes 'légitimes' Vérification bytecode Chargement de classe sécurisé  Plateforme sécurisée  Contribue à la robustesse du code  Specs langage : http://java.sun.com/docs/books/jls/http://java.sun.com/docs/books/jls/  Specs JVM : http://java.sun.com/docs/books/vmspec/http://java.sun.com/docs/books/vmspec/ 8 www.objis.com - Formation Sécurité JAVA

9 www.objis.com - Formation SPRING Périmètre sécurité JAVA (2/5) la cryptographie  API de services Cryptographie : signature numérique message digest chiffrement simétrique / asymétrique généréteurs de clés  Support algorithmes standard : Triple DES, RSA, DSA, SHA, PKCS#5 Jeton PKCS#11  Java Cryptography Architecture http://java.sun.com/javase/6/docs/technotes/guides/security/crypto/Cryp toSpec.html http://java.sun.com/javase/6/docs/technotes/guides/security/crypto/Cryp toSpec.html 9 www.objis.com - Formation Sécurité JAVA

10 www.objis.com - Formation SPRING Périmètre sécurité JAVA (3/5) : authentification & controle d'accès  API d'authentification pouvant inclure différents mécanisme de login.  API de 'Policy' et de 'Permissions' permettant au développeur de créer et administrer des applications dont certaines ressources necessitent un niveau fin de sécurité  Exemple : mise en oeuvre Single Sign On (SSO)  Java Security architecture : http://java.sun.com/javase/6/docs/technotes/guides/security/spec/security-spec.doc.html  JAAS http://java.sun.com/javase/6/docs/technotes/guides/security/jaas/JAASRefGuide.html 10 www.objis.com - Formation Sécurité JAVA

11 www.objis.com - Formation SPRING Périmètre sécurité JAVA (4/5) : Sécurisation communications  Protocoles de communication sécurisées Transport Layer Security (TLS) Secure Socket Layer (SSL) Kerberos Simple Authentication & Security Layer (SASL) HTTPS  Java SASL: http://java.sun.com/javase/6/docs/technotes/guides/security/sasl/sasl-refguide.html  Java Socket Secure Extensions (JSSE) http://java.sun.com/javase/6/docs/technotes/guides/security/jsse/JSSERefGuide.html 11 www.objis.com - Formation Sécurité JAVA

12 www.objis.com - Formation SPRING Périmètre sécurité JAVA (5/5) : Infrastructure à clé publique  Faciliter développement d'applications avec sécurité basée sur certificats  Gestion clés, certificats, liste révocation  Certificats X.509  KeyStores : PKCS#11, PKCS#12  Certificate Store : LDAP, java.util.Collection  Certificat et liste de révocation http://java.sun.com/javase/6/docs/technotes/guides/security/cert3.html http://java.sun.com/javase/6/docs/technotes/guides/security/cert3.html  Java PKCS#11 Ref guide : http://java.sun.com/javase/6/docs/technotes/guides/security/p11guide.html 12 www.objis.com - Formation Sécurité JAVA

13 www.objis.com - Formation SPRING Liens utiles Sécurité JAVA  Présentation Sécurité JAVA http://www.oracle.com/technetwork/java/javase/tech/index-jsp-136007.html  Bonnes pratiques dév. JAVA pour sécurité http://www.oracle.com/technetwork/java/seccodeguide-139067.html  Sécurité Java 6 http://download.oracle.com/javase/6/docs/technotes/guides/security/  Sécurité Java 5 http://download.oracle.com/javase/1.5.0/docs/guide/security/  Sécurité Java 1.4 http://download.oracle.com/javase/1.4.2/docs/guide/security/ 13 www.objis.com - Formation Sécurité JAVA

14 www.objis.com - Formation SPRING Historique approche sécurité JAVA 14 www.objis.com - Formation Sécurité JAVA 1 3 2

15 www.objis.com - Formation SPRING Notion clé cryptographie N°1 : fonction de hachage 15 www.objis.com - Formation Sécurité JAVA

16 www.objis.com - Formation SPRING Notion clé cryptographie N°2 : Crypographie à clé secrète 16 www.objis.com - Formation Sécurité JAVA

17 www.objis.com - Formation SPRING Notion clé cryptographie N°3 : Crypographie à clé publique / privée 17 www.objis.com - Formation Sécurité JAVA

18 www.objis.com - Formation SPRING Notion clé cryptographie N°4 : Serveur de clés 18 www.objis.com - Formation Sécurité JAVA

19 www.objis.com - Formation SPRING Sécurité code et documents  Si vous envoyez du code (applet, application) ou document de haute importance, le destinataire a besoin d'un moyen pour vérifier que : Vous êtes l'émetteur Le message n'a pas été modifié en route  Les éléments suivants contribuent à la sécurité : Signature numérique Certificat KeyStore 19 www.objis.com - Formation Sécurité JAVA

20 www.objis.com - Formation SPRING Sécurité code et documents  Si vous envoyez du code (applet, application) ou document de haute importance, le destinataire a besoin d'un moyen pour vérifier que : Vous êtes l'émetteur Le message n'a pas été modifié en route  Les éléments suivants contribuent à la sécurité : Signature numérique Certificat KeyStore 20 www.objis.com - Formation Sécurité JAVA

21 www.objis.com - Formation SPRING Signature numérique  Vous 'signez' un document ou un code en utilisant votre clé privée (générée via outil keytool ou API)  Vous générez une signature numérique via jarsigner  Vous envoyez le document signé au destinataire  Vous envoyez votre clé publique au destinataire  Le destinataire utilise votre clé publique pour vérifier : le document provient de vous Le document n'a pas été altéré 21 www.objis.com - Formation Sécurité JAVA

22 www.objis.com - Formation SPRING Certificat  Le destinataire a besoin de vérifier que la clé publique que vous lui avez envoyée est authentique,provient bien de vous.  Vous envoyez en fait un certificat contenant Votre clé publique La signature d'une autorité de certification (Certificate Authority) se portant garant de l'authenticité de votre clé publique.  Analogie Certificat / Passeport  Exemple : le site de la banque BNP Paribas pour permettre à ses clients de voir compte en ligne. Analyser certificat www.secure.bnpparibas.net 22 www.objis.com - Formation Sécurité JAVA

23 www.objis.com - Formation SPRING Exemple certificat 23 www.objis.com - Formation Sécurité JAVA 1 5 2 3 4

24 www.objis.com - Formation SPRING Certificat 24 www.objis.com - Formation Sécurité JAVA 1

25 www.objis.com - Formation SPRING Certificat 25 www.objis.com - Formation Sécurité JAVA 1

26 www.objis.com - Formation SPRING keytool  L'outil keytool est disponible dan le répertoire bin du JDK et permet : Créer des clés privées et certificats clé publique Créer des demande de certificat (CSR) Importer les certificats obtenus d'une autorité Importer des clés publiques via certificats  Vous envoyez en fait un certificat contenant Votre clé publique La signature d'une autorité de certification (Certificate Authority) se portant garant de l'authenticité de votre clé publique.  Keytool -list -keystore cacerts -storepass changeit 26 www.objis.com - Formation Sécurité JAVA

27 www.objis.com - Formation SPRING Savoir-faire  Créer une paire de clés dans un store keytool -genkey -alias objiscert -keyalg RSA -keysize 2048 -dname "CN=objis.com,OU=Formation,O=intra,L=Paris,S=Paris,C =FR" -keypass changeit -keystore objisKS.jks - storepass changeit  Analyser le contenu cacerts (/lib/security/cacerts) keytool -list -keystore cacerts -storepass changeit  Faire une demande de certificat à autorité VeriSign keytool -certreq -v -alias objiscert -file objiscert-csr.pem -keypass changeit -storepass changeit -keystore objisKS.jks 27 www.objis.com - Formation Sécurité JAVA

28 www.objis.com - Formation SPRING

29 Savoir-faire  Analyser le contenu cacerts (/lib/security/cacerts) keytool -list -keystore cacerts -storepass changeit  Créer une paire de clés keytool -genkey -alias objiscert -keyalg RSA -keysize 2048 -dname "CN=objis.com,OU=Formation,O=intra,L=Paris,S=Paris,C =FR" -keypass changeit -keystore objisKS.jks -storepass changeit  Créer un certificat 'auto-signé' keytool  Faire une demande de certificat à autorité VeriSign  Signer une livraison de type 'war' 29 www.objis.com - Formation Sécurité JAVA

30 www.objis.com - Formation SPRING Sécurité JAAS : contexte 30

31 www.objis.com - Formation SPRING Sécurité conteneur web  Sécurité déclarative avec JAAS  QUOI ?  QUI ?  OU ? (stockage login/pwd) (File, DB, Ldap...)  COMMENT ? (BASIC, FORM, CLIENT-CERT...) 31 web.xml Coté serveur+ sun-web.xml web.xml

32 www.objis.com - Formation SPRING Sécurité web : exemple configuration web.xml 21 6 5 3 4 7

33 www.objis.com - Formation SPRING Sécurité web : exemple configuration sun-web.xml 2 1 3 Correspondance entre les roles j2ee définis dans web.xml et la notion de groupe de GlassFish

34 www.objis.com - Formation SPRING Sécurité : transport (SSL) client-serveur  Balise dans web.xml CONFIDENTIAL : communication client / Serveur sous SSL uniquement. Encryption totale INTEGRAL : encryption non totale mais Intégrité données vérifiable NONE : le serveur accepte http et https 34

35 www.objis.com - Formation SPRING Sécurité programmative conteneur web : méthodes disponibles  String getRemoteUser()  boolean isUserInRole()  Principal getUserPrincipal()  String getAuthType()  void login(String username, String password)  void logout()  String getSheme() 35

36 www.objis.com - Formation SPRING Sécurité programmative conteneur web : annotaions  @DeclareRoles({“ROLE_1”,”ROLE_2”,”ROLE_N”})  @RunAs(value=”ROLE_NAME”)  @ServletSecurity 36 Equivalence

37 www.objis.com - Formation SPRING Sécurité programmative conteneur web : les alias 37 Ecrit 'en dur' Rôle configuré par admin

38 www.objis.com - Formation SPRING Sécurité conteneur web : Bonnes pratiques gestion session  Utiliser danbs web.xml  Utiliser HttpSessionListener  Encrypter les informations qui sont en session  Invalider toutes les sessions après un temps absolue (Ex : 10 heures) ou après temps relatif d'inactivité (Ex : 30 min).  Proposer fonctionalité Logout à l'utilisateur  Eviter les informations inutiles en session et supprimer une info dès qu'elle n'est + utile. 38

39 www.objis.com - Formation SPRING Outils  Jar  Jarsigner  Keytool  Policytool  Klist  Kinit  Ktab  http://download.oracle.com/javase/6/docs/technotes/guides/security/SecurityToolsSummary.html 39

40 www.objis.com - Formation SPRING Outil : keytool  Jar  Jarsigner  Keytool  Policytool  Klist  Kinit  Ktab  http://download.oracle.com/javase/6/docs/technotes/guides/security/SecurityTools Summary.html 40


Télécharger ppt "Formation 1 - Formation Sécurité JAVA Sécurité JAVA."

Présentations similaires


Annonces Google