Programmation Réseau. Sécurité Java. Jean-Baptiste.Yunes@univ-paris-diderot.fr. UFR Informatique 2012-2013. jeudi 4 avril 13



Documents pareils
Le Modèle de Sécurité dans JAVA

Remote Method Invocation (RMI)

Programmer en JAVA. par Tama

Sécurité Java 2. Première approche. Installation des exemples. Exemple d'une applet

Corrigé des exercices sur les références

RMI le langage Java XII-1 JMF

Exceptions. 1 Entrées/sorties. Objectif. Manipuler les exceptions ;

Entrées / Sorties. Entrées / Sorties. Entrées/Sorties. System.out. Fonctionnement par flots (stream) Karima Boudaoud IUT- R&T. Terrain connu.

Développement Logiciel

Programmation par les Objets en Java

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars

PROGRAMMATION PAR OBJETS

Flux de données Lecture/Ecriture Fichiers

Structure d un programme et Compilation Notions de classe et d objet Syntaxe

Chapitre 10. Les interfaces Comparable et Comparator 1

Synchro et Threads Java TM

Programmation Par Objets

Langage Java. Classe de première SI

as Architecture des Systèmes d Information

API04 Contribution. Apache Hadoop: Présentation et application dans le domaine des Data Warehouses. Introduction. Architecture

ACTIVITÉ DE PROGRAMMATION

Page 1 sur 5 TP3. Thèmes du TP : l la classe Object. l Vector<T> l tutorial Interfaces. l Stack<T>

Threads. Threads. USTL routier 1

Introduction au langage Java

Package Java.util Classe générique

TD3: tableaux avancées, première classe et chaînes

Remote Method Invocation Les classes implémentant Serializable

Auto-évaluation Programmation en Java

Introduction : les processus. Introduction : les threads. Plan

Programme Compte bancaire (code)

Projet de programmation (IK3) : TP n 1 Correction

LMI 2. Programmation Orientée Objet POO - Cours 9. Said Jabbour. jabbour@cril.univ-artois.fr

TP1 : Initiation à Java et Eclipse

INITIATION AU LANGAGE JAVA

Education Delivery Intelligent Tool

TP3. Mail. Attention aux fausses manoeuvres lors de ce TP vous pouvez endommager votre mail sur ouindose.

Encapsulation. L'encapsulation consiste à rendre les membres d'un objet plus ou moins visibles pour les autres objets.

Communication inter-processus (IPC) : tubes & sockets. exemples en C et en Java. F. Butelle

Une introduction à Java

Java Licence Professionnelle Cours 7 : Classes et méthodes abstraites

Programmation réseau avec Java. 3/7 RMI, un peu de sécurité et CORBA

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java

Programmation avec des objets : Cours 7. Menu du jour

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

Cours intensif Java. 1er cours: de C à Java. Enrica DUCHI LIAFA, Paris 7. Septembre Enrica.Duchi@liafa.jussieu.fr

1. Langage de programmation Java

Programmation Orientée Objet - Licence TIS CM8/9. Rappel sur la séance précédente. Lancelot Pecquet Lancelot.Pecquet@math.univ-poitiers.

Un ordonnanceur stupide

Java Licence Professionnelle CISII,

Desktop Intégration. Rémi Forax

Java RMI. Arnaud Labourel Courriel: Université de Provence. 8 mars 2011

Objets et Programmation. origine des langages orientés-objet

Serveur d'archivage 2007 Installation et utilisation de la BD exist

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

Calcul Parallèle. Cours 5 - JAVA RMI

Premiers Pas en Programmation Objet : les Classes et les Objets

Dis papa, c est quoi un bus logiciel réparti?

Applet pour visualiser les variables «automate» notifiées

Pour plus de détails concernant le protocole TCP conférez vous à la présentation des protocoles Internet enseignée pendant.

Programmation Réseau SSH et TLS (aka SSL)

Bases du langage. Historique Applications et applets Éléments de base du langage Classes et objets Les exceptions

Cahier des Charges du Projet Domotique. Choquet Mathieu Masson Jérôme Groupe 6. Domotique. p.1

Plan du cours. Historique du langage Nouveautés de Java 7

Java Licence Professionnelle CISII,

TD/TP PAC - Programmation n 3

Programmation Objet Java Correction

Tp 1 correction. Structures de données (IF2)

RAPPELS SUR LES METHODES HERITEES DE LA CLASSE RACINE Object ET LEUR SPECIALISATION (i.e. REDEFINITION)

Langage à objets : JAVA (1)

TD Objets distribués n 3 : Windows XP et Visual Studio.NET. Introduction à.net Remoting

Java Licence professionnelle CISII,

La persistance des données dans les applications : DAO, JPA, Hibernate... COMPIL 2010 francois.jannin@inp-toulouse.fr 1

Cours 1: Java et les objets

Design patterns. Design patterns - définition. Design patterns - avantages

RMI. Remote Method Invocation: permet d'invoquer des méthodes d'objets distants.

Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère

JAVA. Introduction à la programmation objet avec java 1/4. Nadir BOUSSOUKAIA

Héritage presque multiple en Java (1/2)

TP Programmation Java / JDBC / Oracle

Tutoriel d installation de Hibernate avec Eclipse

Programmation Internet en Java

Création d une application JEE

Certificat Big Data - Master MAthématiques

INF 321 : mémento de la syntaxe de Java

Programmation répartie RPC & RMI

Java DataBaseConnectivity

Classe Interne, Anonyme & Enumération

Java 1.5 : principales nouveautés

Notion de thread (1/2)

ALGORITHMIQUE ET PROGRAMMATION ORIENTEE OBJET

7 Développement d une application de MapReduce

Licence Bio Informatique Année Premiers pas. Exercice 1 Hello World parce qu il faut bien commencer par quelque chose...

Java Licence Professionnelle CISII, Cours 2 : Classes et Objets

Interfaces graphiques avec l API Swing

Map-Reduce : un cadre de programmation parallèlle pour l analyse de grandes données. Stéphane Genaud ENSIIE

Lambda! Rémi Forax Univ Paris-Est Marne-la-Vallée

TD/TP PAC - Programmation n 3

Java - la plateforme

Utiliser Java sans BlueJ

Transcription:

Programmation Réseau Sécurité Java Jean-Baptiste.Yunes@univ-paris-diderot.fr UFR Informatique 2012-2013

Java Sécurité? différentes sécurités disponibles et contrôlables intégrité contrôle d accès signature/authentification/cryptographie 2

Le contrôle d accès SecurityManager une classe avec différentes méthodes check*( ) qui sont utilisées par la JVM lorsque l accès correspondant est demandé sur un objet décrit par le(s) paramètre(s) dans le cas des applications «standards» pas de SecurityManager par défaut dans le cas des Applets et autres, des SecurityManager adaptés sont automatiquement installés 3

import java.io.*; public class Test { public static void main(string []args) { try { System.out.println("SM="+System.getSecurityManager()); System.out.println("java.home="+ System.getProperty("java.home")); FileInputStream fis = new FileInputStream("../in.txt"); System.out.println("in.txt read granted"); FileOutputStream fos = new FileOutputStream("out.txt"); System.out.println("out.txt write granted"); int b; while ((b = fis.read())!= -1) fos.write(b); fis.close(); fos.close(); catch (Exception e) { System.err.println("Something's wrong..."); e.printstacktrace(); 4

SecurityManager par défaut le gestionnaire de sécurité par défaut interdit tout sauf les accès en lecture pour les fichiers contenus dans le répertoire ou les sousrépertoires du CodeBase!!!! Ces accès sont TOUJOURS permis 5

Politique de sécurité Les gestionnaires standards acceptent la définition d une politique de sécurité via une spécification fichier (en général d extension.policy) pouvant être généré via l outil policytool 6

Policy files On y trouve des directives comme grant { permission something,value; ; par exemple grant { permission java.net.socketpermission "*:1024-","accept"; ; rechercher Permissions in the Java Development Kit 7

grant { permission java.io.filepermission "../*","read"; permission java.io.filepermission "out.txt","write"; permission java.util.propertypermission "java.home","read"; ; 8

Contrôle de la sécurité au lancement java classe exécution sans sécurité java -Djava.security.manager classe exécution avec sécurité par défaut java -Djava.security.manager - Djava.security.policy=policyfile classe exécution avec politique de sécurité 9

Contrôle de la sécurité dans le code Construire sa propre sous-classe de SecurityManager en choisissant les bonnes méthodes à redéfinir rechercher Deciding what securitymanager methods to override 10

import java.util.*; import java.io.*; Paranoid public class ParanoidManager extends SecurityManager { private String password; private Scanner scan; public ParanoidManager() { password = "paranoid"; scan = new Scanner(System.in); private boolean verify() { System.out.print("Give me the word "); return scan.nextline().equals(password); 11

Paranoid public void checkread(filedescriptor filedescriptor) { System.out.println("read "+filedescriptor); if (!verify()) throw new SecurityException("Raté"); public void checkread(string filename) { System.out.println("read "+filename); if (filename.endswith(".txt")) { if (!verify()) { super.checkread(filename); throw new SecurityException("Raté"); public void checkread(string filename, Object executioncontext) { System.out.println("read "+filename+" "+executioncontext); if (!verify()) throw new SecurityException("Raté"); 12

public void checkwrite(filedescriptor filedescriptor) { System.out.println("write "+filedescriptor); if (!verify()) throw new SecurityException("Raté"); public void checkwrite(string filename) { System.out.println("write "+filename); if (!verify()) throw new SecurityException("Raté"); Paranoid 13

public class OneTimeManager extends SecurityManager { private String password; private Scanner scan; private boolean checked; public OneTimeManager() { password = "onetime"; scan = new Scanner(System.in); checked = false; private boolean verify() { if (!checked) { System.out.print("Give me the word "); checked = scan.nextline().equals(password); return checked; OneTime 14