![]()
Précédent : Concurrence et typage Remonter : Actions de
recherche Suivant : Un prototype pour le
join-calcul
Mots-clés : concurrence,securite,agents mobiles,cryptographie,parallélisme,pi-calcul,programmation répartie
Pour pouvoir répondre aux questions de sécurité soulevées par l'implantation d'applications à code mobile, nous avons entamé des recherches pour intégrer le contrôle de la sécurité à notre modèle de calcul distribué. Cette recherche s'est déroulée en deux temps, et sur deux axes différents.
De janvier à juin, S. Huet a accompli au sein du projet PARA un stage de DEA sur le sujet ``Sécurité et processus mobiles'' [12]. Il s'agissait de comprendre comment on pouvait programmer des mécanismes de sécurité en join-calcul, et éventuellement quelles primitives il convenait d'ajouter au calcul distribué pour faciliter l'écriture d'applications sécurisées.
La portée lexicale du calcul correspond naturellement à un mécanisme de capacités, et il est rapidement apparu que le calcul permettait de coder d'autres mécanismes tels que les listes d'accès, et ce même sans primitive supplémentaire pour tester l'égalité de deux noms.
Par contre, de tels mécanismes de contrôle microscopique des droits et capacités se sont révélés lourds et inadaptés aux modifications globales de contexte générées par la migration : un même processus mobile peut agir sur des systèmes différents, et souvent pour le compte de mandataires différents, ne serait-ce que parce que le lieu d'où un message est émis est souvent tenu responsable de son contenu. Aussi, S. Huet a proposé de compléter le modèle en ajoutant un système d'identités aux locations, et de compléter la migration physique par un système de migration de responsabilité permettant à un agent mobile de gagner ou perdre des identités.
Un deuxième axe de recherche a été entamé lors de la visite de
M. Abadi (Digital) en septembre 1996. Il s'agissait de
déterminer comment la sureté de la portée lexicale du join-calcul
pouvait être implémentée avec des moyens cryptographiques
élémentaires. Nous avons montré qu'on pouvait avoir une telle
implémentation générique en associant à chaque nom une clé
publique, ce qui correspond aux pratiques usuelles dans ce
domaine. Le même cadre formel permet également de démontrer la
correction d'optimisations courantes, comme générer et utiliser
des clés privées par session. Il faut noter que le résultat
correspondant pour le
-calcul de Milner,
qui associerait une clé privée à chaque canal, est faux, à cause
de problèmes de confidentialité future (forward secrecy
).