1 / 41

Java Authentification et Autorisation Service

Java Authentification et Autorisation Service. Najla Farah. UJF/ISTG/RICM3 http://www-istg.ujf-grenoble.fr/. Année Universitaire 2001-2002. JAAS ?. Standard dans JDK 2.1 Authentification: Pour vérifier l ’identité de celui qui exécute le code. Autorisation:

izzy
Télécharger la présentation

Java Authentification et Autorisation Service

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Java Authentification et Autorisation Service Najla Farah UJF/ISTG/RICM3 http://www-istg.ujf-grenoble.fr/ Année Universitaire 2001-2002

  2. JAAS ? • Standard dans JDK 2.1 • Authentification: • Pour vérifier l ’identité decelui qui exécute le code. • Autorisation: • Pour contrôler l ’accès à l ’exécution. JAAS

  3. JAAS ? Code Signature QUI? JAAS

  4. Sommaire • Sécurité dans JAVA. • Sécurité avec JAAS. • Exemple sur JAAS. JAAS

  5. Cycle de vie du code java 1. Chargement du bytecode 2. Vérification du bytecode 0. Référence à un bloc de code JAAS 4. Ramasse-miette 3. Exécution du Bytecode

  6. Sécurité dans Java. Applic Exécution Compilateur Langage JAAS

  7. Sécurité du langage. • La sécurité au niveau du langage: • Syntaxe et sémantique strictes. • Encapsulation des données. • Spécification du langage. • Gestion des types. • Vérificateur de bytecode. JAAS

  8. Sécurité du compilateur. • La sécurité au niveau compilateur: • Contrôle d ’accès. • Valeur initiale des variables. • Accès des registres. • Passage des paramètres. JAAS

  9. Sécurité à l ’exécution. • La sécurité à l ’exécution: • Le chargeur de classes: • Exactitude des références. • Ramasse miettes: • Gestion structurée de la mémoire. • Gestionnaire de sécurité: • Élaboration des restrictions. JAAS

  10. Sécurité des applications. • La sécurité des applications: • Apple: • Classe chargée par le navigateur Web. • Signature des applet. JAAS

  11. Sécurité JDK 1.1 Code distant Je fais ce que je veux! « trusted » autres Coincé! Bac-à sable Code local JAAS JVM Gestionnaire de sécurité Ressources Système

  12. Sécurité JDK 1.2 Code local ou distant (signé ou pas) Règles de sécurité ClassLoader Pas de notion de code à confiance implicite Chaque programme a des permissions différentes Bac-à sable JAAS JVM Gestionnaire de sécurité Ressources Système

  13. Domaines de protection. App-2 App-n App-1 App-3 Domaine système JAAS awt I/O réseau I/O fich. Imprimante

  14. Domaine de Protection A Permissions Permissions. d.class c.class b.class a.class Domaine de Protection B Permissions JAAS Classes en cours d ’exécution Politique de sécurité

  15. Contrôleur d ’accès Base de règles pour le site JAAS Base de règles par utilisateur et par installation Autorité de certification

  16. Signature du code Résumé Objet d ’origine Signature JAAS Chiffre

  17. Authentification Clé de chiffrement Références Identités? Java VM JAAS Mesures biométriques Mot de passe

  18. Les concepts(1). • Principal: • entité à laquelle sont accordées des permissions. • Code Source: • identifie un code par URL,une signature. • ProtectionDomain: • ensembles de classes provenant d ’une même code source et ayant les mêmes permissions. • SecurityPolicy: • un fichier de configuration qui contient: • Une entrée « Keystore »:base de données des clés. • Une entrée « grant »:spécification des permissions d ’une source de code JAAS

  19. Les concepts(2) • SecurityClassLoader et ClassLoader: • interroge la politique de sécurité pour déterminer les permissions. • Charge le code dans JVM en lui associant les permissions. • SecurityManager: • implémente le système de sécurité. • AccessController: • gère les permissions. • AccessControlContext: • représente les permissions qu’une méthode exerce si elle est appelée par un thread. JAAS

  20. SecurityPolicy JAVA • Spécification des permissions d ’une source de code grantCodeBase « file:c:/java/code/sample.jar »{ permission java.io.FilePermission « c:\\user\\testuser\\-,« read » }; grant CodeBase « http://www.sun.com/sample.jar », Signedby « bob »{ Permisson java.lang.RuntimePermission « createClassLoader »; Permisson java.net.SocketPermision « * », « connect,accept,resolve »; }; JAAS

  21. Sommaire • Sécurité dans JAVA. • Sécurité avec JAAS. • Exemple sur JAAS. JAAS

  22. JAAS • JAAS augmente la granularité de la sécurité en se basant sur l’authentification de l ’exécuteur du code. • JAAS augmente les privilèges de cet utilisateur authentifié en lui accordant les autorisations adéquates. JAAS

  23. Java 2 - Principal - Access Controller - Access Controller Context - Policy -Protection Domain Architecture de JAAS Applications API JAAS - Subject - Login Context - Login Module - Policy JAAS

  24. Authentification • Création du login: • LoginContext ctx = new LoginContext(« SimpleLogin »); • Authentification du sujet: • ctx.login(); • Association du login au sujet si authentification réussie: • Subject subj = ctx.getSubject(); JAAS

  25. Autorisation • Si authentification réussie Jaas autorise l ’accès au sujet authentifié : • Subject.doAs(subj,new PrivilegedAction()){} JAAS

  26. SecurityPolicy JAAS • La politique de sécurité est lié à un rôle d ’un sujet: Grant Principal sample.SamplePrincipale »testuser »{ permission java.io.FilePermission « c:\\user\\testuser\\-, « read » }; CodeBase « file:c:/java/code/sample.jar », Signedby « charles »{ permission java.io.FilePermission « c:\\user\\testuser\\-, « read » }; JAAS

  27. Implémentation de JAVA - Dans chaque objet il y a une SecutityPolice: Policy.getPolicy() - La ClassLoader associe les permissions à chaque classe: Policy.getPolicy().getPermissions(codesource) - Le SecutityManager gère les permissions: cl.getprotectionDomain().getPermissions().implies(requestedPermission) JAAS

  28. Implémentation de JAAS - Dans chaque objet il y a une SecutityPolice: javax.security.auth.Policy.getPolicy(); - Avec la méthode doAs: - onassocie les permissions au sujet: Policy.getPolicy().getPermissions(subj,codesource); - on associe le sujet à AccessControlContext: javax.security.auth.SubjectDomainCombiner.combine(); JAAS

  29. Applications Applications Login Context API Login Module SPI Configuration Kerberos Smart Card Biometric JAAS

  30. Sommaire • Sécurité dans JAVA. • Sécurité avec JAAS. • Exemple sur JAAS: SmartCard JAAS

  31. SmartCard • Portable • Sécurisée • Personnelle SmartCard JAAS

  32. login module • Avec « login » LoginContext appelle ces méthodes qui sont implémentées dans loginModule: 1-Void initialize(…) 2- booléen login() 3- booléen commit() 4-booléen abort() 5-booléen logout() JAAS

  33. void initialize(…) • Donne une référence : • Sur le sujet qui sera attaché à un principal en cas de succès d ’authentification. • Sur CallBackHandler • Options sur la configuration. JAAS

  34. booléen login() • Assure l ’authentification du sujet. • Retourne: • true si l ’authentification réussie. • False si le module n ’arrive pas à authentifier. JAAS

  35. booléen commit() • Cette méthode est appelée si le sujet a été authentifiée par tous les modules. • Elle ajoute le sujet au Principal. JAAS

  36. booléen abort() • Cette méthode est appelée si un module n ’arrive pas à s ’authentifier. • Elle nettoie le module et revient à l ’état initial. JAAS

  37. booléen logout() • Elle supprime le sujet du Principal. JAAS

  38. JAAS configuration • Le fichier de configuration: SimpleLogin{ SimpleLoginModule required debug=true; }; JAAS LoginContext ctx = new LoginContext(« SimpleLogin»); ctx.login();

  39. AUTHENTIFICATION Nom ? Login Module Clé publique Signature Nom Rnd ? SmartCard Signature Credential ? JAAS Credential

  40. CONCLUSION • Règles de sécurité flexibles • Contrôle d ’accès précis • Sécurité transparente • Permissions, ClassLoader sécurisé, contrôleur d ’accès pour les développeurs • Sécurité pour les applications locales. • Sécurité en fonction de l ’utilisateur. JAAS

  41. JAAS • Questions ?? • Réponses !! JAAS Sources : - http://www.ossir.org/ftp/supports - http:// java.sun.com/security - http://www.gemplus.fr/developers - Gilles Gravier

More Related