2. Chapitre3 : Gestion des aspects de sécurité
Sommaire
Concept de base ....................................................................................................................................... 3
Qu’est ce que la sécurité ? ................................................................................................................... 3
La Sécurité informatique : ................................................................................................................... 3
Les problèmes de sécurité que peut rencontrer JAVA : .......................................................................... 3
Mécanismes de sécurité Java :............................................................................................................. 3
Le Bac à sable : ............................................................................................................................... 3
Le vérificateur du bytecode : ........................................................................................................... 5
Chargeur de classe : ......................................................................................................................... 5
Manager de sécurité : ...................................................................................................................... 5
2
Riadh BOUHOUCHI
3. Chapitre3 : Gestion des aspects de sécurité
Concept de base
Qu’est ce que la sécurité ?
Prévention : prendre les mesures empêchant les biens (matériels, immatériels) d’être
endommagés.
Détection : prendre les mesures pour détecter quand, comment et par qui les biens ont
été endommages.
Réaction : prendre les mesures pour récupérer les biens avant leur détérioration.
La Sécurité informatique :
La sécurité informatique assure :
Confidentialité des données
Intégrité des données
Disponibilité des services
Les problèmes de sécurité que peut rencontrer JAVA :
Les problèmes de sécurité peuvent être classifiés comme suit :
Problème de développement : problème de sécurité qui s’est présenté dans le code de
l’application ou, lors de son interprétation en bytecode ou, pendant sa conversion par
la machine virtuelle.
Problème web : lors de l’exécution d’une applet celle-ci peut contenir un programme
malveillant, un virus, etc. …).
Etc. …
Mécanismes de sécurité Java :
Le Bac à sable :
C’est le fait d’introduire dans la machine virtuelle un système d’exécution sécurisé, il
permet :
D’interdire les accès au système de fichiers local de l’utilisateur
D’interdire la divulgation d’informations personnelles sur l’utilisateur (nom de
l’utilisateur, adresse mail, configuration de la machine, ...)
D’interdire des connections réseaux différentes du serveur contenant l’applet
D’interdire l’ouverture de fenêtre non marquée ”dangereuse”
D’interdire les modifications de la configuration du système
Exemple du comportement du bac à sable avec une applet :
3
Riadh BOUHOUCHI
4. Chapitre3 : Gestion des aspects de sécurité
Serveur Web
Bytecode
Client
Navigateur
Verificateur de
bytecode
Compilateur
Chargeur de
classe
Manageur de
sécurité
Code JAVA
Exécutable
4
Riadh BOUHOUCHI
5. Chapitre3 : Gestion des aspects de sécurité
Le vérificateur du bytecode :
Le vérificateur du bytecode permet d’analyser les fichiers bytecode par ses syntaxes et ses
flots de données.
Ce qui garantit :
bytecode dans le format correct
pas de dépassement de taille de pile
types corrects des arguments des instructions du bytecode
pas de conversion illégale entre types
utilisation correcte des opérateurs de visibilité (private, public, protected)
Chargeur de classe :
Le chargeur de classe permet la protection de l’intégrité de l’environnement d’exécution comme
la non redéfinition des bibliothèques systèmes.
Ce qui interdit le contournement des mécanismes de sécurité mit en place.
Manager de sécurité :
Le manager de sécurité permet la vérification dynamique des appels aux méthodes
potentiellement dangereuses comme, lors d’un accès au système de fichier local ou, l’accès
aux variables de l’environnement utilisateur.
5
Riadh BOUHOUCHI