Java Authentification et Autorisation Service - PowerPoint PPT Presentation

About This Presentation
Title:

Java Authentification et Autorisation Service

Description:

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

Number of Views:29
Avg rating:3.0/5.0
Slides: 42
Provided by: ligmembre4
Category:

less

Transcript and Presenter's Notes

Title: Java Authentification et Autorisation Service


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é de celui qui exécute le
    code.
  • Autorisation
  • Pour contrôler l accès à l exécution.

3
JAAS ?
Code Signature
QUI?
4
Sommaire
  • Sécurité dans JAVA.
  • Sécurité avec JAAS.
  • Exemple sur 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
4. Ramasse-miette
3. Exécution du Bytecode
6
Sécurité dans Java.
Applic
Exécution
Compilateur
Langage
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.

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.

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.

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

11
Sécurité JDK 1.1
Code distant
Je fais ce que je veux!
 trusted 
autres
Coincé!
Bac-à sable
Code local
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
JVM
Gestionnaire de sécurité
Ressources Système
13
Domaines de protection.
App-2
App-n
App-1
App-3
Domaine système
awt
I/O réseau
I/O fich.
Imprimante
14
Permissions.
d.class c.class b.class a.class
Domaine de Protection B
Permissions
Classes en cours d exécution
Politique de sécurité
15
Contrôleur d accès
Base de règles pour le site
Base de règles par utilisateur et par installation
Autorité de certification
16
Signature du code
Résumé
Objet d origine
Signature
Chiffre
17
Authentification
Clé de chiffrement
Références
Identités? Java VM
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

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 quune méthode exerce
    si elle est appelée par un thread.

20
SecurityPolicy JAVA
  • Spécification des permissions d une source de
    code

grant CodeBase  filec/java/code/sample.jar  p
ermission java.io.FilePermission
 c\\user\\testuser\\-, read  grant
CodeBase  http//www.sun.com/sample.jar ,
Signedby  bob  Permisson java.lang.RuntimePer
mission  createClassLoader  Permisson
java.net.SocketPermision   ,
 connect,accept,resolve 
21
Sommaire
  • Sécurité dans JAVA.
  • Sécurité avec JAAS.
  • Exemple sur JAAS.

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

23
Architecture de JAAS
Applications
API
JAAS
- Subject - Login Context - Login Module - Policy
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()

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

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
 filec/java/code/sample.jar , Signedby
 charles  permission java.io.FilePermission
 c\\user\\testuser\\-,  read 
27
Implémentation de JAVA
- Dans chaque objet il y a une SecutityPolice Po
licy.getPolicy()
- La ClassLoader associe les permissions à chaque
classe Policy.getPolicy().getPermissions(codesou
rce)
- Le SecutityManager gère les permissions cl.getp
rotectionDomain().getPermissions().implies(request
edPermission)
28
Implémentation de JAAS
- Dans chaque objet il y a une SecutityPolice
javax.security.auth.Policy.getPolicy()
- Avec la méthode doAs - on associe les
permissions au sujet Policy.getPolicy().getPermis
sions(subj,codesource)
- on associe le sujet à AccessControlContext
javax.security.auth.SubjectDomainCombiner.combine(
)
29
Applications
Applications
Login Context API
Login Module SPI
Configuration
Smart Card
Kerberos
Biometric
30
Sommaire
  • Sécurité dans JAVA.
  • Sécurité avec JAAS.
  • Exemple sur JAAS SmartCard

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

SmartCard
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()
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.

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

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.

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.

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

38
JAAS configuration
  • Le fichier de configuration

SimpleLogin SimpleLoginModule required
debugtrue
LoginContext ctx new LoginContext( SimpleLogin
) ctx.login()
39
AUTHENTIFICATION
Nom ?
Login Module Clé publique Signature
Nom
SmartCard
Rnd ?
Signature
Credential ?
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.

41
JAAS
  • Questions ??
  • Réponses !!

Sources - http//www.ossir.org/ftp/supports -
http// java.sun.com/security -
http//www.gemplus.fr/developers - Gilles Gravier
Write a Comment
User Comments (0)
About PowerShow.com