1 Les politiques de sécurité en Java

Transcription

1 Les politiques de sécurité en Java
Domaine Sciences et Technologies
Master Informatique FSIL/FSI
Fiabilité 2 : TP
Année 2012-13
1
Java et sécurité
Les politiques de sécurité en Java
L’objectif de cette première partie est de se familiariser avec certains concepts de sécurité du
langage Java. Les autres aspects, notamment concernant la signature de code, seront abordés dans
la seconde partie de ce TP.
Test des mécanismes de sécurité
En utilisant les méthodes getProperty() et getProperties() de la classe java.lang.System,
écrire une application console monprogramme permettant d’afficher :
1. La liste de toutes les propriétés
2. La version de java utilisée
3. Le nom de l’utilisateur
4. Le répertoire de connexion de l’utilisateur
5. Les trois premières lignes d’un fichier dont le nom est transmis en argument
Transformer cette application en applet monapplet et observer dans la console java du navigateur ce qui fonctionne et ce qui ne fonctionne pas. Justifier le résultat.
On voit ici la différence faite par la politique de sécurité standard de Java entre application
locale et application distante. Les applications locales ne sont pas soumises à la vérification du
gestionnaire de sécurité. Néanmoins, on peut forcer cette vérification.
Tester la commande
java -Djava.security.manager monprogramme
Politique de sécurité
Créer un fichier monjava.policy vide et tester
java -Djava.security.policy=monjava.policy monprogramme
Ecrire une application permettant d’afficher l’ensemble des permissions accordées par la politique de sécurité courante en utilisant la classe Policy.
Le fichier java.security contient différentes informations de configuration concernant la
sécurité de Java. Ce fichier se trouve dans /etc/java-6-sun/security/ sur ma machine. Trouvezle sur votre machine.
Ce fichier fixe, entre autre, l’endroit où les fichiers .policy définissant les politiques de sécurité
doivent se trouver. Déterminer le fichier que vous devrez modifier si vous souhaitez modifier la
politique de sécurité.
Localiser le fichier de police de sécurité standard de java java.policy et décrire son contenu
Avec l’outil policytool (http://java.sun.com/j2se/1.5.0/docs/tooldocs/windows/policytool.
html), ajouter les permissions nécessaires au bon fonctionnement de l’applet monapplet en créant
ou en modifiant le fichier dont vous avez obtenu le nom à l’une des questions précédentes (Vous
pourrez dans un premier temps essayer policytool sur le fichier java.policy standard).
Relancer l’application permettant d’afficher l’ensemble des permissions accordées par la politique de sécurité courante.
2
Politique de sécurité et signature
L’objectif de cette seconde partieest de considérer maintenant le sécurité des applications Java
lorsque celle-ci sont signées.
Le TP se basera sur des applets ; dans chacune des questions, vous étudierez le comportement
dans le cas d’une utilisation appletviewer et dans le cas où l’applet est embarquée dans une page
web.
Nous utiliserons un certificat auto-signé et votre certificat qui a été signé par E. Godard lors
de son TP.
Signature d’un fichier jar
Ecrire une applet qui crée un fichier dans le répertoire /tmp de la machine sur laquelle elle
s’exécute.
Signer cette applet à l’aide de la clé associée au certificat auto-signé. Faire de même avec l’autre
certificat.
Politique de sécurité des jar signés
Etudiez le fonctionnement de l’applet avec appletviewer et en embarqué.
Modifier le fichier .policy afin de donner les droits à l’applet.
Dans le cas de l’utilisation embarquée, modifier le fichier .policy pour forcer l’utilisation de la
politique de sécurité. Que constatez-vous dans la console ?
Echanger avec un autre binôme, applet signée et certificat afin de tester votre fichier .policy.
2