previous up next

Introduction

Java est un langage de programmation orienté objet créé par Sun en 1993. Ces deux principales caractéristiques sont sa portabilité et sa sécurité. Il est surtout connu pour ces applets qui sont des programmes qui agrémentent les pages Web en s'exécutant sur la machine de l'utilisateur. On parlera dans cet exposé de la version 1.1 du langage.

La sécurité a été un objectif fondamental dès la conception du langage. Puisque Java est destiné à traverser les réseaux et à s'exécuter sur des machines hôtes, la plus grande sûreté est requise.

Mais qu'entend-t-on par sécurité ? Il faut qu'un programme, éventuellement inconnu, downloadé sur le réseau puis exécuté sur la machine hôte ne puisse réaliser d'action interdite. Par exemple, il faut pouvoir s'assurer que les applets Java ne peuvent pas endommager les données d'une machine hôte ni trahir leurs confidentialités. Il est également important de pouvoir éviter les virus ainsi que les chevaux de Troie.

Pour garantir une sécurité, une vérification doit être faite avant l'exécution. Ceci explique pour une part le fait que Java soit un langage interprété. En effet, il serait tout à fait déraisonnable qu'une applet soit un simple exécutable écrit en C par exemple. Un tel programme pourrait se livrer à n'importe quel méfait. Pour gagner en rapidité, les programmes Java sont compilés. Ceci a également un intérêt du point de vue de la sécurité puisqu'on peut ainsi diffuser les programmes sans leurs sources.

Pour pouvoir surveiller le comportement des programmes Java, il est important de s'assurer que les instructions de bas niveau n'aient pas de comportement fâcheux. Ainsi un ensemble de règles de sécurité a été instauré. Le modèle de sécurité Java est contitué de trois mécanismes : le vérificareur, le chargeur de classes et le gestionnaire de sécurité. Enfin, un système de signature faisant appel à la cryptographie est apparu avec la version 1.1 du langage pour résoudre des problèmes d'authentification.


Olivier Lux
30-03-1999