Télécharger la présentation
La présentation est en train de télécharger. S'il vous plaît, attendez
Publié parSolange Mongrain Modifié depuis plus de 8 années
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
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.