Applet_Securite

publicité
SUN
JAVA 2
Gestion de la sécurité
pour les applets
Date de création :
Dernière modif :
Document :
Créé par :
15.02.2001
16.04.2017
582688330
Daucourt Philippe
Table des matières
1
2
3
4
5
6
Introduction ....................................................................................................................................... 3
Sécurité avec Java 2 ........................................................................................................................ 3
Le fichier « java.security » ................................................................................................................ 4
Les fichiers « .policy » et l’utilitaire « policytool » ............................................................................. 4
La sécurité avec le Java Plug-in ...................................................................................................... 6
Diagramme résumant la sécurité avec Java 2 ................................................................................. 8
582688330
16/04/17
Page 2 sur 8
1 Introduction
Une applet Java n’a par défaut aucun droit sur les ressources du poste de travail qui l’exécute. Il n’est
donc, par exemple, pas possible à l’applet de lire un fichier se trouvant sur le disque dur local ou
d’accéder à une imprimante. La plate-forme Java 2 permet cependant de définir une politique de
sécurité autorisant certains applets identifiés à utiliser les ressources du client.
Ce document présente donc les concepts nécessaires à la mise en œuvre d’une telle politique de
sécurité.
2 Sécurité avec Java 2
Chaque applet est obligatoirement exécutée sous le contrôle d’un gestionnaire de sécurité (Security
Manager). Celui-ci s’interpose entre l’applet et les ressources du système afin d’empêcher toutes
tentatives d’accès illégales aux ressources du client. Les permissions d’accès sont définies par la
politique de sécurité (Security Policy) installée sur le poste de travail. Lorsqu’aucune politique de
sécurité n’est définie explicitement sur le client, le gestionnaire utilise alors la politique par défaut qui
s’appelle le bac à sable (Sandbox). Le bac à sable interdit aux applets tout accès (lecture et écriture)
aux ressources de la machine locale.
Quand une applet tente d’accéder à une ressource du système, le gestionnaire de sécurité vérifie si le
code exécuté a la permission d’accéder à cette ressource en consultant la politique de sécurité. Si la
permission est accordée, tout se passe normalement. Dans le cas contraire, une exception est levée.
Un navigateur Web qui veut exécuter des applets doit lui-même charger lors de son démarrage un et
un seul gestionnaire de sécurité qui sera partagé par toutes les applets placées sous son contrôle.
Pour des raisons de sécurité évidentes, une applet ne peut pas créer et utiliser son propre
gestionnaire de sécurité.
Par opposition aux applets, une application Java n’a aucun gestionnaire de sécurité par défaut. Une
application peut donc accéder sans autre aux ressources locales du client. C’est au programmeur de
créer un gestionnaire de sécurité qui limitera les accès de son application.
582688330
16/04/17
Page 3 sur 8
3 Le fichier « java.security »
Le fichier « java.security » est un fichier de configuration qui indique aux gestionnaires de sécurité
comment la politique de sécurité est définie sur un poste de travail.
Aperçu partiel du contenu d’un fichier « java.security » :
Policy.url.1=file:${java.home}/lib/security/java.policy
Policy.url.2=file:${user.home}/.java.policy
Policy.url.3=file:/c:/maSecuriteJava/maPolitique.policy
Dans cet exemple, la politique de sécurité du poste client est définie par trois fichiers.
Pour savoir dans quel répertoire se trouve le fichier « java.security », il faut effectuer une recherche
sur le disque dur. Son emplacement dépend de l’environnement d’exécution Java 2 (voir chapitre 5)
utilisé.
4 Les fichiers « .policy » et l’utilitaire « policytool »
Les fichiers « .policy » servent à paramétrer la politique de sécurité du système local. Un fichier
« .policy » contient un ensemble de répertoires auxquels sont attribués individuellement un ensemble
de permissions.
Exemple de fichier « .policy » :
grant codeBase "file://J:/daucourt/ "
{
permission java.lang.RuntimePermission "queuePrintJob";
};
grant codeBase "http://esnig2.cpln.ch/applet/"
{
permission java.lang.RuntimePermission "queuePrintJob";
permission java.io.FilePermission "<<ALL FILES>>", "write";
};
Ce fichier autorise toutes les applets du répertoire « j:\daucourt » à utiliser les imprimantes locales et
celles du répertoire « applet » sur la machine « esnig2.cpln.ch » à imprimer et à écrire sur le système
de fichier local.
L’utilitaire « policytool » est un programme livré avec le JDK qui permet de créer et d’éditer des
fichiers « .policy » au travers d’une interface graphique.
Pour lancer l’utilitaire « policytool » il suffit de taper policytool dans une fenêtre de ligne de
commande pour autant que le chemin d’accès aux programmes du JDK soit correctement défini dans
la variable « path » du système d’exploitation (par exemple : c:\jdk1.3\bin).
582688330
16/04/17
Page 4 sur 8
Aperçu du fichier « maPolitique.policy » au travers de l’utilitaire « policytool »:
582688330
16/04/17
Page 5 sur 8
5 La sécurité avec le Java Plug-in
Il peut arriver que plusieurs environnement d’exécution Java 2 (Java Runtime Environement ou JRE)
existent en parallèle sur un même poste de travail. Le Java Plug-in ne peut travailler qu’avec un seul
de ces environnements. Il faut donc faire attention lors du paramétrage du fichier « java.security » que
ce soit bien celui du JRE utilisé par le Java Plug-in.
Le Java Plug-in se configure dans le panneau de configuration de Windows.
582688330
16/04/17
Page 6 sur 8
Dans le cas ci-dessous, il faut utiliser le fichier « java.security » du répertoire
« c:\jdk1.3\jre\lib\security » puisque l’environnement d’exécution par défaut se trouve dans le
répertoire « c:\jdk1.3 ».
582688330
16/04/17
Page 7 sur 8
6 Diagramme résumant la sécurité avec Java 2
<<Applet>>
Applet Java 2
<<Navigateur Web>>
Gestionnaire de
sécurité
<<Application>>
Machine virtuelle du Java 2
Runtime Environnement
<<Fichier>>
java.security
<<Fichier>>
java.policy
582688330
16/04/17
<<Fichier>>
applet.policy
Page 8 sur 8
Téléchargement