Fabien Sanglard – Yang Cao

Slides:



Advertisements
Présentations similaires
Présentation de frameworks J2EE
Advertisements

Sécurité informatique
Active Directory Windows 2003 Server
Applettes et Java Web Start
Module 5 : Implémentation de l'impression
12 - Configuration d’un routeur
Le monde i-mode Epreuve Oral – 16/03/05 Master STIC / CAM API et environnement de développement Bakogiannis Anastasios ( )
GESTION D’IMPRISSION SOUS WINDOWS & LINUX
ESU Faciliter la gestion dInternet au CDI avec ESU.
Pascal AUBRY François DAGORN IFSIC / Université de Rennes 1
Université Nancy 2 - CRI Propositions de mécanisme de SSO dans un environnement d’applications web.
Par: Bourgou Mohsen Chouaieb Sonia GL5 INSAT
Vue d'ensemble Implémentation de la sécurité IPSec
Vue d'ensemble Création de comptes d'utilisateurs
Plan du cours La sérialisation: – comment stocker et restaurer les Objets? Les interfaces graphiques et la programmation évènementielle. –Comment concevoir.
CURSUS DE FORMATION AUX NOUVELLES TECHNOLOGIES DE DEVELOPPEMENT UV EJB Entité Module Java Expert.
Copyright 2010 © Consortium ESUP-Portail TOC ESUP-Days 10, Paris, 2 juillet 2010 De LDAP à Kerberos à lUniversité de Rennes 1 Pascal Aubry François Dagorn.
Single Sign-On open source avec CAS (Central Authentication Service)
Le modèle de sécurité de Java 2
Sécurité Informatique
Active Directory Windows 2003 Server
LA SÉCURITE DU RÉSEAU Stéphane Le Gars – Mars
Module 1 : Préparation de l'administration d'un serveur
JDBC ou comment manipuler une base de données en Java ?
Interaction audio sur le site web du LIA
Configuration de Windows Server 2008 Active Directory
Introduction RADIUS (Remote Authentication Dial-In User Service)
Protocole 802.1x serveur radius
Module 4 : Création et gestion de comptes d'utilisateur
Création et gestion de comptes d'utilisateur
A4.1.1 Proposition dune solution applicative A4.1.2 Conception ou adaptation de linterface utilisateur dune solution applicative A4.1.2 Conception ou.
Développement dapplications web Authentification, session.
Cilia Mediation Framework v0.9.0 Implantation.. Plan Cilia: c'est quoi? Capacités. Cilia: Modèle d'implantation. Mise en œuvre: Médiateur Cilia. Assemblage.
Les concepts et les méthodes des bases de données
Module 3 : Création d'un domaine Windows 2000
Module 5 : Publication de ressources dans Active Directory
COURS DE PROGRAMMATION ORIENTEE OBJET :
Java Authentication And Authorization Service API
1212 Entrée et sortie de fichiers Objectifs À la fin de ce cours, vous serez capables de : • Lire à partir de la console • Écrire sur la console.
Présentation de CORBA et de IIOP
Content Management System CMS. Pourquoi ? Obligation de ressaisir des contenus publiés à plusieurs endroits Pas d’outils de gestion de qualité de l’information.
Gérer la sécurité des mots de passe et les ressources
JDBC L'API JDBC est utilisée pour utilisée pour intéragir avec une base de données.
GESTION DES UTILISATEURS ET DES GROUPES
Le contenu est basé aux transparents du 7 ème édition de «Software Engineering» de Ian Sommerville«Software Engineering» de Ian Sommerville B.Shishedjiev.
CEG3585/CEG3555 Tutorat 2 Hi ver 2013.
Plan Qu’est-ce que Windows Server 2008 ?
Enterprise Java Beans 3.0 Cours INF Bases de Données Hiver 2005, groupe 10 Stefan MARTINESCU.
Gestion des comptes utilisateurs (Windows 2000)
5ième Classe (Mercredi, 19 octobre) Prog CSI2572.
Windows 2003 Server Modification du mode de domaine
Schéma de conception Factory Method Exemple Sylvain Giroux.
Module 3 : Création d'un domaine Windows 2000
AFPA CRETEIL 14-1 Windows NT Environnement des utilisateurs Chapitre 14.
Master 1 SIGLIS Intégration des données dans l’entreprise Stéphane Tallard JDBC: Java Database Connectivity Master 1 SIGLIS1JDBC.
Modules d'authentification enfichables (P.A.M.)
Initiation à Oracle Server
Java Authentification et Autorisation Service Najla Farah UJF/ISTG/RICM3 Année Universitaire
04/06/2015BATOUMA Narkoy1 An OGSI CredentialManager Service ( Par:Jim Basney, Shiva Shankar Chetan, Feng Qin, Sumin Song, Xiao Tu et Marty Humphrey ) Présentation:
SRIT Lannion Jan-02 Author.
Module 2 : Planification de l'installation de SQL Server
LE COURRIER ELECTRONIQUE
Cette session avec la démo disponible prochainement sur le site « interop » :
User Management entreprises et organisations dans le cadre d'eHealth (Gestion des utilisateurs et des accès)
L. Gurret – M. Herve – P. Mignon – J. Prarioz. Introduction  Dernière étape d’analyse  Cahier des charges, spécifications et conception orientée objet.
ACL SID ACE DACL SACLAD ACL : Access Control List Liste spécifiant pour chacun de ses éléments : Qui / Quel groupe ? Quelles autorisation / interdiction.
Chapitre 8 Protection du trafic réseau à l'aide de la sécurité IPSec et de certificats Module S43.
Chapitre 9 Configuration de Microsoft Windows XP Professionnel pour fonctionner sur des réseaux Microsoft Module S41.
Chapitre 3 Administration des accès aux ressources
Transcription de la présentation:

Fabien Sanglard – Yang Cao 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 l’utilisateur. La protection du système (JAAS). Authentification Autorisation Étude détaillé Démo

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

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

Évolution de la sécurité JAVA But : Protéger l’utilisateur du système. Concernait principalement les applets. Apparition du principe « SandBox » . Un code non approuvé est limité Pas d’accès aux systèmes de fichiers. Pas d’accès réseaux.

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

Évolution de la sécurité JAVA Raffinement du modèle de SandBox. Possibilité de «signer» une applet. Le code approuvé possède alors les même droits qu’un code local. Problème : Violation du principe du « moindre privilège ».

Évolution de la sécurité JAVA

Évolution de la sécurité JAVA Évolution majeur en terme de sécurité Possibilité de définir une politique de sécurité par l’intermédiaire des fichiers « policy ».

Évolution de la sécurité JAVA

La protection de l’utilisateur

La protection de l’utilisateur Quelques exemples de tout cela : Une applet critique exécutée localement fonctionne sans problème. C:\> java WriteFileApplet 

La protection de l’utilisateur 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:\>java -Djava.security.manager WriteFileApplet 

La protection de l’utilisateur Quelques exemples de tout cela : - Un outil permettant d’écrire facilement des fichiers « policy » : Policytool.exe

La protection de l’utilisateur Quelques exemples de tout cela : Avec un fichier de configuration, le SecurityManager ne pose plus de problème. grant { permission java.io.FilePermission "<<ALL FILES>>", "write"; }; java -Djava.security.manager -Djava.security.policy=all.policy WriteFileApplet

La protection de l’utilisateur Quelques exemples de tout cela : Un dernier exemple avec un browser. Il est plus difficile de spécifier le fichier « policy » à utiliser…..

Java Authentification & Autorisation But : Protéger le système de l’utilisateur. Comment : Créer un objet partagé par l’authentification et l’autorisation. Étendre le modèle de sécurité standard ( security policy) pour gérer cet objet. Authentification Autorisation Subject Interactions

Java Authentification & Autorisation Comment ça marche ? Authentification On « branche » des modules de connexion à une entité. Si l’utilisateur « passe » tout ces modules, il acquière alors une identité virtuel. Autorisation Il peut alors tenter d’exécuter des actions « critiques ». Ces actions sont soumises au système de restrictions d’accès.

JAAS : L’authentification Les classe importantes pour l’identification: Subject: Représente un individu ou une organisation avec plusieurs identités de principale. L’authentification consiste à authentifier un sujet, tandis que les décisions en matières d’autorisation sont prises en fonction d’un sujet authentifié. Logincontext: Fournit une API de base, permettant aux sujets de se connecter/déconnecter du système. LoginModule: Définit l’interface que les fournisseurs de services d’authentifications qui supportent JAAS doivent implémenter. Configuration: Encapsule l’entité utilisée pour configurer une application avec des connexion particulièrs.

JAAS : L’authentification Les classe importantes pour l’identification: CallbackHandler: Définit l’interface à implémenter par les applications qui souhaitent autoriser le service d’authentification à 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. L’objet Callback contient les données à passer à l’application. PrivilegedAction: Les actions critiques y sont stockées

JAAS : L’authentification (chronologie) LoginContext Configuration Configuration.jaas (liste des modules new LoginContext( "Nom de configuration", MyCallbackHandler);

JAAS : L’authentification (chronologie) LoginContext Configuration Configuration.jaas (liste des modules) LoginModule 1 LoginModule 2

JAAS : L’authentification (chronologie) LoginContext Configuration Configuration.jaas (liste des modules) Login( ) Login( ) LoginModule 1 USER CallBackHandler Login( ) LoginModule 2

JAAS : L’authentification (chronologie) LoginContext Login( ) LoginModule 1 USER CallBackHandler LoginModule 2 Subject Droits.policy

JAAS : L’authentification (chronologie) LoginContext Login( ) LoginModule 1 USER CallBackHandler LoginModule 2 Subject DoAsPrivileged( ) PrivilegedAction

Focus sur les CallbackHandler Le but de l’authentification 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.

Focus sur les CallbackHandler - Le dialogue est délégué : LoginContext LoginModule CallbackHandler USER CallBack[]

Focus sur les CallbackHandler Les callback sont utilisés pour compléter le « Subject ». LoginContext LoginModule CallbackHandler CallBack[] Subject GetSubject()

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

JAAS : L’authentification Le fichier de configuration des modules de connexion: configuration.jaas Nom de configuration { JndiLoginModule Requisite Krb5LoginModule Sufficient NTLoginModule Optional UnixLoginModule Optional SampleLoginModule Required debug=true; }; Autre type d’analyse{ AnalyseRetineModule Required

JAAS : L’authentification Les mots clés du fichier .jaas : Required : non bloquant Requisite : bloquant Sufficient : bloquant Optional : non bloquant

JAAS : L’authentification Failed JAAS : L’authentification Exemple : Module Criterion Pass/Fail SampleLoginModule Required OK NTLoginModule Sufficient !OK SmartCard Requisite Kerberos Optional Overall authentication

JAAS : L’authentification Failed JAAS : L’authentification Exemple : Module Criterion Pass/Fail SampleLoginModule Required !OK NTLoginModule Sufficient OK SmartCard Requisite Kerberos Optional Overall authentication

JAAS : L’authentification Comment définir l’emplacement du fichier .jaas ? Ligne de commande : Java –Djava.security.auth.login.config=<location> Modification du fichier java.security : Login.config.url.1=<location>

Une fois l’utilisateur reconnu... JAAS : L’ autorisation Une fois l’utilisateur 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.

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";

Static Subject.doAsPrivileged(SujetCourant s, PrivilegeAction x); 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);

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; }

Comment définir la source du fichier .policy ? JAAS : L’ autorisation Comment définir la source du fichier .policy ? Ligne de commande : Java –Djava.security.policy=<location> Modification du fichier java.security : auth.policy.url1=<location>

JAAS: la démo (enfin)…

Mise en place d’une authentification JAAS : JAAS : Mise en place Mise en place d’une authentification JAAS : Implémenter les interfaces suivants : CallBackHandler Handle() LoginModule initialize() login() commit() Abort()

Mise en place d’une authentification JAAS : JAAS : Mise en place Mise en place d’une authentification JAAS : Implémenter les interfaces suivants : Principal getName() PrivilegedAction run()

Java Authentification & Autorisation Où trouver JAAS ? API d’extension pour JAVA 1.3 Incorporé à JAVA 1.4 Incorporé aux spécifications J2EE 1.3