Mots clés : programmation sûre,
internet, télécommunications, web .
Résumé :
Le langage qui semble s'imposer pour la programmation
sur le réseau internet est le langage JAVA.
Cependant, une activité de recherche intense s'organise
autour des langages mobiles, dédiés à ce type de
programmation et devant permettre des développements
beaucoup plus fiables. Nous suivons cet effort, en
formalisant ces langages sur ordinateur, afin d'être prêts
lorsque lesdits langages le seront.
Ici, le besoin de sûreté est d'un type bien particulier,
puisqu'il ne s'agit plus de faire fonctionner des programmes
dans un environnement naturel qui présente aléatoirement des
situations difficiles, mais de les rendre résistants à des
attaques systématiques. Certains langages comportent
d'ailleurs des primitives codifiant le type d'attaque
envisagé : attaque de la couche externe (le logiciel
d'exploitation) ou interne (le programme lui-même).
Le langage JAVA s'est pour l'instant imposé
comme le langage de programmation idéal du domaine, faute de
mieux, au moins connu des industriels. Les langages de la
famille ML permettent assurément une programmation plus
fiable mais ne sont malheureusement connus que dans le monde
académique. Les langages basés sur la mobilité, ayant les
primitives requises pour la programmation sûre des réseaux,
devraient logiquement s'imposer un jour prochain. Espérons,
pour la sécurité des transactions sur l'internet et la nÔtre,
qu'ils sauront le faire. C'est dans cet espoir que nous
étudions la formalisation de ces langages en machine.
Par ailleurs, les théories typées, et certaines techniques
les utilisant, comme le proof-carrying code, ont
prouvé leur utilité dans le domaine du développement de
programmes sûrs pour l'internet. De nombreuses équipes de
recherche, en Europe et aux États-Unis (CMU, par exemple),
ont acquis une expérience reconnue dans ce domaine.