JAVA Chapitre3

5

Click here to load reader

description

Riadh Bouhouch Mastere pro : réseaux et télécommunication

Transcript of JAVA Chapitre3

Page 1: JAVA Chapitre3

Chapitre3 : Gestion des aspects de sécurité

Riadh BOUHOUCHI

1

MASTER PROFESSIONNEL

NOUVELLES TECHNOLOGIES DES TELECOMMUNICATIONS ET RESEAUX

(N2TR)

Cours JAVA © FST

Gestion des aspects de sécurité

Objectif :

Ce chapitre vous permettra de connaître les principes de base de la

sécurité en JAVA :

Les problèmes de sécurité que peut rencontrer le langage JAVA et de

comprendre les différents mécanismes proposés pour y remédier.

Page 2: JAVA Chapitre3

Chapitre3 : Gestion des aspects de sécurité

Riadh BOUHOUCHI

2

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

Page 3: JAVA Chapitre3

Chapitre3 : Gestion des aspects de sécurité

Riadh BOUHOUCHI

3

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 :

Page 4: JAVA Chapitre3

Chapitre3 : Gestion des aspects de sécurité

Riadh BOUHOUCHI

4

Code JAVA

Compilateur

Serveur Web

Bytecode

Client

Navigateur

Verificateur de

bytecode

Chargeur de

classe

Manageur de

sécurité

Exécutable

Page 5: JAVA Chapitre3

Chapitre3 : Gestion des aspects de sécurité

Riadh BOUHOUCHI

5

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.