confiance, sûreté et sécurité

Transcription

confiance, sûreté et sécurité
Programmation répartie :
confiance, sûreté et sécurité
Pierre-Malo Deniélou
Candidature CR2 - INRIA
Équipe MOSCOVA
[email protected]
http://www.doc.ic.ac.uk/˜malo/
university-logo
Pierre-Malo Deniélou (Candidature INRIA)
Confiance, sûreté et sécurité
Audition du 20 Avril 2011
1 / 15
Contexte
Alice
Système distribué
Bob
Programmes indépendants qui
effectuent une tâche globale au
moyen d’interaction par le réseau
university-logo
Charlie
Pierre-Malo Deniélou (Candidature INRIA)
Confiance, sûreté et sécurité
Audition du 20 Avril 2011
2 / 15
Contexte
Alice
Système distribué
Bob
Programmes indépendants qui
effectuent une tâche globale au
moyen d’interaction par le réseau
Se mettre d’accord
sur la sémantique
des données
Erreur (contenu)
university-logo
Charlie
Pierre-Malo Deniélou (Candidature INRIA)
Confiance, sûreté et sécurité
Audition du 20 Avril 2011
2 / 15
Contexte
Alice
Système distribué
Bob
Programmes indépendants qui
effectuent une tâche globale au
moyen d’interaction par le réseau
Se mettre d’accord
sur la sémantique
des données
Erreur (contenu)
sur les protocoles
Erreur
(communication)
Pierre-Malo Deniélou (Candidature INRIA)
university-logo
Charlie
Confiance, sûreté et sécurité
Audition du 20 Avril 2011
2 / 15
Contexte
Al... Capone
Système distribué
Bob
Programmes indépendants qui
effectuent une tâche globale au
moyen d’interaction par le réseau
Se mettre d’accord
Peut-on faire confiance ?
sur la sémantique
des données
Erreur (contenu)
sur les protocoles
Erreur
(communication)
Pierre-Malo Deniélou (Candidature INRIA)
university-logo
Charlie
Confiance, sûreté et sécurité
Audition du 20 Avril 2011
2 / 15
Contexte
Al... Capone
Système distribué
Bob
Programmes indépendants qui
effectuent une tâche globale au
moyen d’interaction par le réseau
Se mettre d’accord
Peut-on faire confiance ?
sur la sémantique
des données
Erreur (contenu)
sur les protocoles
Erreur
(communication)
Pierre-Malo Deniélou (Candidature INRIA)
Erreurs (sûreté)
Typage, moniteur
university-logo
Charlie
Confiance, sûreté et sécurité
Audition du 20 Avril 2011
2 / 15
Contexte
Al... Capone
Système distribué
Bob
Programmes indépendants qui
effectuent une tâche globale au
moyen d’interaction par le réseau
Se mettre d’accord
Peut-on faire confiance ?
sur la sémantique
des données
Erreur (contenu)
sur les protocoles
Erreur
(communication)
Pierre-Malo Deniélou (Candidature INRIA)
Erreurs (sûreté)
Typage, moniteur
Corruption (sécurité)
Protocoles
cryptographiquesuniversity-logo
Charlie
Confiance, sûreté et sécurité
Audition du 20 Avril 2011
2 / 15
Programmation distribuée
Différent de la programmation séquentielle
Des programmes indépendants doivent coopérer : sûreté.
Des logiciels interactifs complexes : plus facile de generer/prouver que de
programmer/deboguer/tester.
Peu de contrôle sur l’environnement d’exécution (pairs, réseau) : sécurité.
Les outils existants ne sont en général pas adaptés
Les compilateurs et systèmes de typage sont locaux.
Les bibliothèques de sécurité ou de réseau sont de bas-niveau et binaires.
Mes principaux travaux
I Sessions sécurisées : protéger une exécution distribuée contre des pairs compromis
II Types de sessions : assurer statiquement le respect de protocoles
university-logo
Pierre-Malo Deniélou (Candidature INRIA)
Confiance, sûreté et sécurité
Audition du 20 Avril 2011
3 / 15
I. Sessions sécurisées : Architecture
Problème
D’une déclaration de protocole, comment en déduire automatiquement un protocole
cryptographique et son implémentation qui protège son exécution à la fois du réseau
mais aussi d’éventuels participants corrompus ?
university-logo
Pierre-Malo Deniélou (Candidature INRIA)
Confiance, sûreté et sécurité
Audition du 20 Avril 2011
4 / 15
I. Sessions sécurisées : Architecture
Problème
D’une déclaration de protocole, comment en déduire automatiquement un protocole
cryptographique et son implémentation qui protège son exécution à la fois du réseau
mais aussi d’éventuels participants corrompus ?
S2ml,
A secure
session
compiler
Networking &
Cryptography
Session
declarations
Session
implementation
ML
Application
code
ML
Application
code
Concrete
ML compiler
An extension
F+S of ML
with sessions
Pierre-Malo Deniélou (Candidature INRIA)
Concrete
Model
Executable
university-logo
Confiance, sûreté et sécurité
Audition du 20 Avril 2011
4 / 15
I. Sessions sécurisées : Architecture
Problème
D’une déclaration de protocole, comment en déduire automatiquement un protocole
cryptographique et son implémentation qui protège son exécution à la fois du réseau
mais aussi d’éventuels participants corrompus ?
S2ml,
A secure
session
compiler
Networking &
Cryptography
Session
declarations
Session
implementation
ML
Application
code
ML
Application
code
Symbolic
formally
verified code
Symbolic
Model
ML compiler
An extension
F+S of ML
with sessions
Pierre-Malo Deniélou (Candidature INRIA)
university-logo
Confiance, sûreté et sécurité
Audition du 20 Avril 2011
4 / 15
I. Sessions sécurisées : Architecture
Problème
D’une déclaration de protocole, comment en déduire automatiquement un protocole
cryptographique et son implémentation qui protège son exécution à la fois du réseau
mais aussi d’éventuels participants corrompus ?
S2ml,
A secure
session
compiler
Networking &
Cryptography
Session
declarations
Session
implementation
ML
Application
code
ML
Application
code
Symbolic
formally
verified code
Symbolic
Model
ML compiler
An extension
F+S of ML
with sessions
Pierre-Malo Deniélou (Candidature INRIA)
Concrete
Concrete
Model
Executable
university-logo
Confiance, sûreté et sécurité
Audition du 20 Avril 2011
4 / 15
I. Sessions sécurisées : API
c
Request
w
Reply
c
File Rpc.mli
(* Function for role w *)
type result_w = unit
type msg3 = {
hRequest : (prins * string → msg4)}
and msg4 =
Reply of (int * result_w)
val w : principal → msg3 → result_w
[...]
Arbitrary ML code can be used to run the session and produce the message content.
Sample user file to play w’s role
Rpc.w "Bob"
{hRequest = function (_,x)
→ match x with "Cheese" → Reply(24,())
| "Wine"
→ Reply(53,())}
university-logo
Pierre-Malo Deniélou (Candidature INRIA)
Confiance, sûreté et sécurité
Audition du 20 Avril 2011
5 / 15
I. Sessions sécurisées : Protocole
Principes de
génération
1
Chaque message de haut-niveau est implémenté par un
unique message.
2
Tous les états du protocoles sont pré-calculés pour un
traitement efficace.
Contre les attaques par rejeu (replay attacks)
entre exécutions de session : nonces de session
entre tours de boucle : horloge logique
lors de l’initialisation : système de cache local
c
Request
p
Forward
w
Reply
c
Contre les attaques de flot
Signatures du sous-ensemble minimal de messages (visibilité)
avec K. Bhargavan, R. Corin, C. Fournet et J. Leifer, [CSF’07] [TGC’07] [JCS’08] [CSF’09]...
Pierre-Malo Deniélou (Candidature INRIA)
Confiance, sûreté et sécurité
university-logo
Audition du 20 Avril 2011
6 / 15
I. Sessions sécurisées : Evaluation
Performance de la génération du code
Session S
Single
Rpc
Forward
Auth
Ws
Wsn
Wsne
Shopping
Conf
Loi
Rôles
2
2
3
4
2
2
2
3
3
6
Fichier
.session
(loc)
5
7
10
15
7
15
19
29
48
101
Application
(loc)
21
25
33
45
33
44
45
70
86
189
Graphe
(loc)
8
10
12
16
12
13
15
21
37
57
Graphes
Locaux
(loc)
12
18
25
38
24
42
48
85
181
310
S.mli
(loc)
19
23
34
49
25
29
31
49
78
141
S.ml
(loc)
247
377
632
1070
481
782
881
1780
3451
7267
Compilation
(s)
1.26
1.35
1.66
1.86
1.36
1.50
1.90
2.43
3.32
6.29
Performance du code généré (10000 messages)
Authentification avec
Temps d’exécution total
sans vérification
sans cryptographie
messages nus
signatures
MACs
93.92 s
1.77 s
90.80 s
1.66 s
1.43 s
1.31 s
Le code source de s2ml possède 4493 lignes de code, tandis que chaque version
des
university-logo
bibliothèques fait environ 700 lignes.
Pierre-Malo Deniélou (Candidature INRIA)
Confiance, sûreté et sécurité
Audition du 20 Avril 2011
7 / 15
II. Types de sessions multipartites
Principe des sessions multipartites
G
<
<<<
Projection <<
<<
<
HIJK
ONML
HIJK
ONML
ONML
HIJK
Talice
Tbob
Tcarol
Type
checking
Palice
Pbob
Global
type
G = alice→bobhnati;
bob→carolhnati; end
Local
types
Tbob = ?halice, nati.
! hcarol, nati.end
Pcarol
Processes
Pbob = ?halicei(x).
! hcarol, x + 1i.0
Propriétés de sûreté
Abstraction de programmation
Progrès, sûreté des communications
parallèle, objet, fonctionnelle, . . . etc.
Ref. : [Carbone,Honda,Yoshida,POPL’08] [Bettini et al.,CONCUR’08]
Pierre-Malo Deniélou (Candidature INRIA)
Confiance, sûreté et sécurité
university-logo
Audition du 20 Avril 2011
8 / 15
II. Types de sessions multipartites : travaux récents
Topologies de communication complexes
avec Nobuko Yoshida, Andi Bejleri et Raymond Hu [FOSSACS’10]
Analyse de causalité dans les sessions multipartites
avec Nobuko Yoshida [CONCUR’10]
Validation de session avec contrats par moniteurs
avec Tzu-chun Chen, Laura Bocchi, Kohei Honda, Nobuko Yoshida [soumis à CONCUR’11]
Principal 4
Global Queue
s
Principal 5
s [Instrument]
Monitor
Process
P5
Monitor
Process
P4
Principal 3
s [Agent]
Transport
s
Monitor
Principal 1
Process
P1
Process
P3
Principal 2
s [User]
s [Register]
Monitor
Monitor
Process
P2
(Local) Queues
s [User]
s [Register]
s [Agent]
s [Instrument]
Shared Channels Definitions
new a1 : (GIC
new a2 : (GIC
new a3 : (GIC
(Principal 4) new a4 : (GIC
(Principal 5) new a5 : (GIC
(Principal 1)
(Principal 2)
(Principal 3)
� User) in P1
� Register) in P2
� Agent) in P3
� Instrument) in P4
� Instrument) in P5
Sessions avec ensembles dynamiques de participants
avec Nobuko Yoshida [POPL’11]
university-logo
Pierre-Malo Deniélou (Candidature INRIA)
Confiance, sûreté et sécurité
Audition du 20 Avril 2011
9 / 15
II. Types de sessions multipartites : POPL’11
Mapoo7 client OOReduce
O
Global type
OO'
ooo
/ ..
/ server
serverO
OOO .
oo7
o
O'
o
o
client
BC
@A
_ _ _ _ o_ _ _ _
G
=
µx.
∀x : client.{server→xhMapi;
x→serverhReducei};
x
Notion de roles pour abstraire les ensembles de participants
Quantification universelle ∀x : r .G pour la programmation et le typage
Des propriétés de sûreté fortes statiquement garanties alors que les participants
peuvent rejoindre et quitter dynamiquement une session en cours
Topologies dynamiques
client
/ client
/ client
/ ···
Collaboration
/ client
Les roles ont des topologies (relations)
foreach(x < y : client){x→y hMsgi}
Pierre-Malo Deniélou (Candidature INRIA)
Ocean Observatory Initiative, Red Hat,
RabbitMQ. Cyberinfrastructure de
nouvelle génération pour la recherche
scientifique océanographique (aux USA)
university-logo
Confiance, sûreté et sécurité
Audition du 20 Avril 2011
10 / 15
Domaine de recherche
Systèmes distribués
Programmation
Applications, sûreté
Concurrence
Ressources, interaction
Sémantique, types
Sécurité
Protocoles, preuves
Objectifs
Développer des outils : primitives, des systèmes de typage, des compilateurs,
des bibliothèques, des protocoles, . . . etc
pour écrire plus facilement des programmes distribués robustes, sûrs et sécurisés
avec des garanties expérimentales et formelles sur le code obtenu.
university-logo
Pierre-Malo Deniélou (Candidature INRIA)
Confiance, sûreté et sécurité
Audition du 20 Avril 2011
11 / 15
Projet de recherche
Contexte
Développement des applications distribuées (services, cloud, mobiles)
Développement des architectures many-core, GPGPU
Développement des méthodes formelles
Enjeux
Programmation par passage de messages (API)
Propriétés globales de sûreté
Propriétés globales de sécurité
Future équipe “MOSCOVA”
Karthik Bhargavan, Bruno Blanchet, ...
Preuves de propriétés globales (notamment de sécurité) s’appliquant au “vrai” code.
university-logo
Pierre-Malo Deniélou (Candidature INRIA)
Confiance, sûreté et sécurité
Audition du 20 Avril 2011
12 / 15
Projet de recherche
Deux axes immédiats
Sûreté statique d’applications dynamiques
Explorer les propriétés de sûreté et l’expressivité des sessions
Sécurité constructive et propriétés globales
Développer la génération et la preuve d’implémentation de protocoles
Deux objectifs à long terme
Abstractions pour la programmation répartie et la sécurité
Au-delà de RPC et Map-Reduce
Composants certifiés d’infrastructure
Middleware de confiance
university-logo
Pierre-Malo Deniélou (Candidature INRIA)
Confiance, sûreté et sécurité
Audition du 20 Avril 2011
13 / 15
Cursus
S ITUATION
ACTUELLE
Avril 2009-présent
Postdoc EPSRC avec Nobuko Yoshida,
Imperial College London
É DUCATION
2005 - Mars 2009
Doctorat avec Jean-Jacques Lévy et James Leifer,
MOSCOVA (Rocquencourt),
Microsoft Research-INRIA (Saclay).
Soutenue le 25 Janvier 2010.
2004-2005
Master Parisien de Recherche en Informatique – MPRI
(rang : 2ème sur 44, moyenne : 18/20, mention TB).
2002-2004
Élève normalien à l’ENS Cachan (Prof. Hubert Comon).
1999-2002
Classes préparatoires aux grandes écoles (MPSI,MP*)
Lycée du Parc à Lyon.
1999
Baccalauréat scientifique (TB)
Lycée Gabriel Faure de Tournon-sur-Rhône (Ardèche).
university-logo
Pierre-Malo Deniélou (Candidature INRIA)
Confiance, sûreté et sécurité
Audition du 20 Avril 2011
14 / 15
Résumé
Projet : Confiance dans les systèmes distribués
1
Modèle de programmation répartie de haut-niveau
2
Preuves directes de propriétés globales de sûreté et de sécurité
Publications
Journaux JCS
Conférences POPL, CSF (x2), FOSSACS, CONCUR, TGC, ICFP
Workshop PLACES
Soumis CONCUR, LMCS
En cours (seront soumis) POPL (x2)
Collaborations
Cédric Fournet (MSR), Nobuko Yoshida (Imperial), Kohei Honda (Queen Mary),
Laura Bocchi (Leicester), Giuseppe Castagna (PPS)
Industrie : OOI, Red Hat, RabbitMQ
Pierre-Malo Deniélou (Candidature INRIA)
Confiance, sûreté et sécurité
university-logo
Audition du 20 Avril 2011
15 / 15