S - PowerPoint PPT Presentation

About This Presentation
Title:

S

Description:

S curit JAVA et JAAS Fabien Sanglard Yang Cao Plan Les diff rents aspects de la s curit JAVA. volution de la s curit depuis JAVA 1.0 La protection de ... – PowerPoint PPT presentation

Number of Views:60
Avg rating:3.0/5.0
Slides: 44
Provided by: Bartl156
Category:

less

Transcript and Presenter's Notes

Title: S


1
Sécurité JAVA et JAAS
  • Fabien Sanglard Yang Cao

2
Plan
  • Les différents aspects de la sécurité JAVA.
  • Évolution de la sécurité depuis JAVA 1.0
  • La protection de lutilisateur.
  • La protection du système (JAAS).
  • Authentification
  • Autorisation
  • Étude détaillé
  • Démo

3
La sécurité JAVA.
  • Aspect fondamentale, dès la première version.
  • Principe de Sand-Box.
  • Évolution gt Granularité très fine
  • Définition de stratégies de sécurité.

4
La sécurité JAVA.
  • Nouveaux dans JDK 1.4
  • JCE 1.2 (Java Cryptography Extension).
  • JSSE (Java Secure Socket Extension).
  • JAAS (Java Authentification Autorisation
    Service).

5
Évolution de la sécurité JAVA
  • JAVA 1.0 (1995)
  • But Protéger lutilisateur du système.
  • Concernait principalement les applets.
  • Apparition du principe  SandBox  .
  • Un code non approuvé est limité
  • Pas daccès aux systèmes de fichiers.
  • Pas daccès réseaux.

6
Évolution de la sécurité JAVA
  • La SandBox 1.0

7
Évolution de la sécurité JAVA
  • JAVA 1.1 (1996)
  • Raffinement du modèle de SandBox.
  • Possibilité de signer une applet.
  • Le code approuvé possède alors les même droits
    quun code local.
  • Problème Violation du principe du  moindre
    privilège .

8
Évolution de la sécurité JAVA
9
Évolution de la sécurité JAVA
  • JAVA 1.2 (1997)
  • Évolution majeur en terme de sécurité
  • Possibilité de définir une politique de sécurité
    par lintermédiaire des fichiers  policy .

10
Évolution de la sécurité JAVA
11
La protection de lutilisateur
12
La protection de lutilisateur
  • Quelques exemples de tout cela
  • Une applet critique exécutée localement
    fonctionne sans problème.

C\gt java WriteFileApplet 
13
La protection de lutilisateur
  • Quelques exemples de tout cela
  • Une applet critique exécutée localement
    fonctionne sans problème.
  • Si on ajoute un  Security Manager , rien ne va
    plus.

C\gtjava -Djava.security.manager WriteFileApplet 
14
La protection de lutilisateur
  • Quelques exemples de tout cela
  • - Un outil permettant décrire facilement des
    fichiers  policy  Policytool.exe

15
La protection de lutilisateur
  • Quelques exemples de tout cela
  • Avec un fichier de configuration, le
    SecurityManager ne pose plus de problème.

grant permission java.io.FilePermission
"ltltALL FILESgtgt", "write"
java -Djava.security.manager -Djava.security.polic
yall.policy WriteFileApplet
16
La protection de lutilisateur
  • Quelques exemples de tout cela
  • Un dernier exemple avec un browser.
  • Il est plus difficile de spécifier le fichier
     policy  à utiliser..

17
Java Authentification Autorisation
  • But
  • Protéger le système de lutilisateur.
  • Comment
  • Créer un objet partagé par lauthentification et
    lautorisation.
  • Étendre le modèle de sécurité standard ( security
    policy) pour gérer cet objet.

18
Java Authentification Autorisation
  • Comment ça marche ?
  • Authentification
  • On  branche  des modules de connexion à une
    entité.
  • Si lutilisateur  passe  tout ces modules, il
    acquière alors une identité virtuel.
  • Autorisation
  • Il peut alors tenter dexécuter des actions
     critiques .
  • Ces actions sont soumises au système de
    restrictions daccès.

19
JAAS Lauthentification
  • Les classe importantes pour lidentification
  • Subject
  • Représente un individu ou une organisation avec
    plusieurs identités de principale.
    Lauthentification consiste à authentifier un
    sujet, tandis que les décisions en matières
    dautorisation sont prises en fonction dun sujet
    authentifié.
  • Logincontext
  • Fournit une API de base, permettant aux sujets de
    se connecter/déconnecter du système.
  • LoginModule
  • Définit linterface que les fournisseurs de
    services dauthentifications qui supportent JAAS
    doivent implémenter.
  • Configuration
  • Encapsule lentité utilisée pour configurer une
    application avec des connexion particulièrs.

20
JAAS Lauthentification
  • Les classe importantes pour lidentification
  • CallbackHandler
  • Définit linterface à implémenter par les
    applications qui souhaitent autoriser le service
    dauthentification à leur passer des
    informations.
  • Callback
  • Définit une interface de marqueurs implémentée
    par les objets qui sont passés à une
    implémentation CallbackHandler. Lobjet Callback
    contient les données à passer à lapplication.
  • PrivilegedAction
  • Les actions critiques y sont stockées

21
JAAS Lauthentification (chronologie)
LoginContext
Configuration
new LoginContext( "Nom de configuration",
MyCallbackHandler)
22
JAAS Lauthentification (chronologie)
LoginContext
Configuration
LoginModule 1
LoginModule 2
23
JAAS Lauthentification (chronologie)
LoginContext
Configuration
Login( )
LoginModule 1
Login( )
USER
CallBackHandler
Login( )
LoginModule 2
24
JAAS Lauthentification (chronologie)
LoginContext
Login( )
LoginModule 1
USER
CallBackHandler
LoginModule 2
Subject
Droits.policy
25
JAAS Lauthentification (chronologie)
LoginContext
Login( )
LoginModule 1
USER
CallBackHandler
LoginModule 2
Subject
DoAsPrivileged( )
PrivilegedAction
26
Focus sur les CallbackHandler
  • Le but de lauthentification est de créer un
    objet  Subject .
  • Plusieurs attributs doivent être remplies
  • Principals Noms du sujet
  • publicCredentials informations publics (
    publicPassword)
  • privateCredentials informations privées (
    privtePassword)
  • Pour communiquer, les objects utilisent des
    Callback.
  • Ces Callback sont gérés par les CallbackHandler.

27
Focus sur les CallbackHandler
  • - Le dialogue est délégué

28
Focus sur les CallbackHandler
  • Les callback sont utilisés pour compléter le
     Subject .

29
Focus sur les Callback
  • Les differents types de Callbacks
  • Language Callback
  • Name Callback
  • Password Callback
  • TextInput Callback
  • TextOutput Callback
  • Choice Callback
  • Confirmation Callback

30
JAAS Lauthentification
  • Le fichier de configuration des modules de
    connexion
  • configuration.jaas
  • Nom de configuration
  • JndiLoginModule Requisite
  • Krb5LoginModule Sufficient
  • NTLoginModule Optional
  • UnixLoginModule Optional
  • SampleLoginModule Required debugtrue
  • Autre type danalyse
  • AnalyseRetineModule Required

31
JAAS Lauthentification
  • Les mots clés du fichier .jaas
  • Required non bloquant
  • Requisite bloquant
  • Sufficient bloquant
  • Optional non bloquant

32
JAAS Lauthentification
Failed
  • Exemple

33
JAAS Lauthentification
Failed
  • Exemple

34
JAAS Lauthentification
  • Comment définir lemplacement du fichier .jaas ?
  • Ligne de commande
  • Java Djava.security.auth.login.configltlocationgt
  • Modification du fichier java.security
  • Login.config.url.1ltlocationgt

35
JAAS L autorisation
  • Une fois lutilisateur reconnu...
  • JAAS étend le modèle de sécurité JAVA2.
  • On définit donc une politique de sécurité pour un
    utilisateur spécifique ou pour un domaine.

36
JAAS L autorisation
  • Pour cela, on utilise des fichiers .policy
  • Exemple
  • grant Principal Administrateur "root"
  • permission java.util.PropertyPermission
    "java.home", "read"
  • permission java.util.PropertyPermission
    "user.home", "read"
  • permission java.io.FilePermission
    "c\\foo.txt", "write,read"
  • grant Principal Etudiant
  • permission java.io.FilePermission "c\\foo.txt",
    "read"

37
JAAS L autorisation
  • Une fois identifié, le Subject  utilise des
     PrivilegedAction .
  • On lance le traitement avec la méthode static
    suivante

Static Subject.doAsPrivileged(SujetCourant s,
PrivilegeAction x)
38
JAAS L autorisation
  • Exemple

public class SampleAction implements
PrivilegedAction public Object run()
try FileWriter writer new FileWriter(new
File("c/foo.txt")) writer.write("blabla
") catch (IOException ioe) return
null
39
JAAS L autorisation
  • Comment définir la source du fichier .policy ?
  • Ligne de commande
  • Java Djava.security.policyltlocationgt
  • Modification du fichier java.security
  • auth.policy.url1ltlocationgt

40
JAAS la démo (enfin)
41
JAAS Mise en place
  • Mise en place dune authentification JAAS
  • Implémenter les interfaces suivants
  • CallBackHandler
  • Handle()
  • LoginModule
  • initialize()
  • login()
  • commit()
  • Abort()

42
JAAS Mise en place
  • Mise en place dune authentification JAAS
  • Implémenter les interfaces suivants
  • Principal
  • getName()
  • PrivilegedAction
  • run()

43
Java Authentification Autorisation
  • Où trouver JAAS ?
  • API dextension pour JAVA 1.3
  • Incorporé à JAVA 1.4
  • Incorporé aux spécifications J2EE 1.3
Write a Comment
User Comments (0)
About PowerShow.com