Support matériel, logiciel et cryptographique pour

Dimension: px
Commencer à balayer dès la page:

Download "Support matériel, logiciel et cryptographique pour"

Transcription

1 Support matériel, logiciel et cryptographique pour une exécution sécurisée de processus Guillaume Duc Thèse dirigée par Jacques Stern (Ens Ulm) et encadrée par Ronan Keryell (Enst Bretagne) Journées des doctorants 2005 G. Duc (ENST Bretagne) CryptoPage JD / 24

2 Plan de la présentation 1 Introduction 2 3 G. Duc (ENST Bretagne) CryptoPage JD / 24

3 Plan Introduction 1 Introduction 2 3 G. Duc (ENST Bretagne) CryptoPage JD / 24

4 Thèse Introduction Sujet Support matériel, logiciel et cryptographique pour une exécution sécurisée de processus Question Pourquoi vouloir exécuter des processus (programmes) de façon sécurisée? G. Duc (ENST Bretagne) CryptoPage JD / 24

5 Exemple de besoin Grilles de calcul Idée : exécuter des applications sur un grand nombre d ordinateurs distribués (les nœuds de la grille) Nombreux projets grand public (Seti@home, Folding@home, etc.) et grand intérêt des entreprises et des centres de recherche (Grid 5000) Mais problèmes de sécurité possibles au niveau des nœuds : Divulgation des algorithmes Divulgation des résultats Production de faux résultats G. Duc (ENST Bretagne) CryptoPage JD / 24

6 Exemple de besoin Grilles de calcul Idée : exécuter des applications sur un grand nombre d ordinateurs distribués (les nœuds de la grille) Nombreux projets grand public (Seti@home, Folding@home, etc.) et grand intérêt des entreprises et des centres de recherche (Grid 5000) Mais problèmes de sécurité possibles au niveau des nœuds : Divulgation des algorithmes Divulgation des résultats Production de faux résultats G. Duc (ENST Bretagne) CryptoPage JD / 24

7 Exemple de besoin Grilles de calcul Idée : exécuter des applications sur un grand nombre d ordinateurs distribués (les nœuds de la grille) Nombreux projets grand public (Seti@home, Folding@home, etc.) et grand intérêt des entreprises et des centres de recherche (Grid 5000) Mais problèmes de sécurité possibles au niveau des nœuds : Divulgation des algorithmes Divulgation des résultats Production de faux résultats G. Duc (ENST Bretagne) CryptoPage JD / 24

8 Exemple de besoin Grilles de calcul Idée : exécuter des applications sur un grand nombre d ordinateurs distribués (les nœuds de la grille) Nombreux projets grand public (Seti@home, Folding@home, etc.) et grand intérêt des entreprises et des centres de recherche (Grid 5000) Mais problèmes de sécurité possibles au niveau des nœuds : Divulgation des algorithmes Divulgation des résultats Production de faux résultats G. Duc (ENST Bretagne) CryptoPage JD / 24

9 Exemple de besoin Grilles de calcul Idée : exécuter des applications sur un grand nombre d ordinateurs distribués (les nœuds de la grille) Nombreux projets grand public (Seti@home, Folding@home, etc.) et grand intérêt des entreprises et des centres de recherche (Grid 5000) Mais problèmes de sécurité possibles au niveau des nœuds : Divulgation des algorithmes Divulgation des résultats Production de faux résultats G. Duc (ENST Bretagne) CryptoPage JD / 24

10 Thèse Introduction Sujet Support matériel, logiciel et cryptographique pour une exécution sécurisée de processus Pourquoi une solution purement logicielle est-elle insuffisante? G. Duc (ENST Bretagne) CryptoPage JD / 24

11 Exemple de solution logicielle Grilles de calcul Idée : le programme signe numériquement ses résultats pour éviter l injection de faux résultats dans l application globale L application emporte donc une clé secrète permettant de signer les résultats Mais, la clé est en clair dans le code de l application Donc n importe qui peut se faire passer pour l application et produire de faux résultats Nécessité de mécanismes de sécurité au niveau matériel G. Duc (ENST Bretagne) CryptoPage JD / 24

12 Exemple de solution logicielle Grilles de calcul Idée : le programme signe numériquement ses résultats pour éviter l injection de faux résultats dans l application globale L application emporte donc une clé secrète permettant de signer les résultats Mais, la clé est en clair dans le code de l application Donc n importe qui peut se faire passer pour l application et produire de faux résultats Nécessité de mécanismes de sécurité au niveau matériel G. Duc (ENST Bretagne) CryptoPage JD / 24

13 Exemple de solution logicielle Grilles de calcul Idée : le programme signe numériquement ses résultats pour éviter l injection de faux résultats dans l application globale L application emporte donc une clé secrète permettant de signer les résultats Mais, la clé est en clair dans le code de l application Donc n importe qui peut se faire passer pour l application et produire de faux résultats Nécessité de mécanismes de sécurité au niveau matériel G. Duc (ENST Bretagne) CryptoPage JD / 24

14 Exemple de solution logicielle Grilles de calcul Idée : le programme signe numériquement ses résultats pour éviter l injection de faux résultats dans l application globale L application emporte donc une clé secrète permettant de signer les résultats Mais, la clé est en clair dans le code de l application Donc n importe qui peut se faire passer pour l application et produire de faux résultats Nécessité de mécanismes de sécurité au niveau matériel G. Duc (ENST Bretagne) CryptoPage JD / 24

15 Exemple de matériel sécurisé Java Card Grid Performances... G. Duc (ENST Bretagne) CryptoPage JD / 24

16 Thèse Introduction Sujet Support matériel, logiciel et cryptographique pour une exécution sécurisée de processus Nécessité d adaptation des logiciels Utilisation intensive d algorithmes et de protocoles cryptographiques G. Duc (ENST Bretagne) CryptoPage JD / 24

17 Autres applications Code mobile sécurisé Gestion des droits sur les œuvres numériques Application en ligne (e-voting, e-banking, e-gaming, etc.) G. Duc (ENST Bretagne) CryptoPage JD / 24

18 Autres applications Code mobile sécurisé Gestion des droits sur les œuvres numériques Application en ligne (e-voting, e-banking, e-gaming, etc.) G. Duc (ENST Bretagne) CryptoPage JD / 24

19 Autres applications Code mobile sécurisé Gestion des droits sur les œuvres numériques Application en ligne (e-voting, e-banking, e-gaming, etc.) G. Duc (ENST Bretagne) CryptoPage JD / 24

20 Plan Introduction 1 Introduction 2 3 G. Duc (ENST Bretagne) CryptoPage JD / 24

21 Plan Introduction 1 Introduction 2 3 G. Duc (ENST Bretagne) CryptoPage JD / 24

22 de sécurité de CryptoPage Architecture matérielle permettant l exécution de processus sécurisés : Confidentialité : un attaquant doit pouvoir obtenir le moins d information possible sur le code ou les données Intégrité : la bonne exécution d un processus ne peut pas être altérée par une attaque En parallèle avec des processus (sécurisés ou non) Avec un système d exploitation non sécurisé (mais adapté à CryptoPage) G. Duc (ENST Bretagne) CryptoPage JD / 24

23 de sécurité de CryptoPage Architecture matérielle permettant l exécution de processus sécurisés : Confidentialité : un attaquant doit pouvoir obtenir le moins d information possible sur le code ou les données Intégrité : la bonne exécution d un processus ne peut pas être altérée par une attaque En parallèle avec des processus (sécurisés ou non) Avec un système d exploitation non sécurisé (mais adapté à CryptoPage) G. Duc (ENST Bretagne) CryptoPage JD / 24

24 de sécurité de CryptoPage Architecture matérielle permettant l exécution de processus sécurisés : Confidentialité : un attaquant doit pouvoir obtenir le moins d information possible sur le code ou les données Intégrité : la bonne exécution d un processus ne peut pas être altérée par une attaque En parallèle avec des processus (sécurisés ou non) Avec un système d exploitation non sécurisé (mais adapté à CryptoPage) G. Duc (ENST Bretagne) CryptoPage JD / 24

25 de sécurité de CryptoPage Architecture matérielle permettant l exécution de processus sécurisés : Confidentialité : un attaquant doit pouvoir obtenir le moins d information possible sur le code ou les données Intégrité : la bonne exécution d un processus ne peut pas être altérée par une attaque En parallèle avec des processus (sécurisés ou non) Avec un système d exploitation non sécurisé (mais adapté à CryptoPage) G. Duc (ENST Bretagne) CryptoPage JD / 24

26 de sécurité CryptoPage Tout ce qui est à l extérieur du processeur est considéré comme étant sous le contrôle d un attaquant potentiel Attaques physiques contre le processeur non étudiées ici (injection de fautes, attaques par mesure de consommation, etc.) Attaques par déni de service inévitables... Garder des performances raisonnables Différents compromis sécurité performance (zone lecture seule, zone lecture-écriture, zone en clair,... ) G. Duc (ENST Bretagne) CryptoPage JD / 24

27 de sécurité CryptoPage Tout ce qui est à l extérieur du processeur est considéré comme étant sous le contrôle d un attaquant potentiel Attaques physiques contre le processeur non étudiées ici (injection de fautes, attaques par mesure de consommation, etc.) Attaques par déni de service inévitables... Garder des performances raisonnables Différents compromis sécurité performance (zone lecture seule, zone lecture-écriture, zone en clair,... ) G. Duc (ENST Bretagne) CryptoPage JD / 24

28 de sécurité CryptoPage Tout ce qui est à l extérieur du processeur est considéré comme étant sous le contrôle d un attaquant potentiel Attaques physiques contre le processeur non étudiées ici (injection de fautes, attaques par mesure de consommation, etc.) Attaques par déni de service inévitables... Garder des performances raisonnables Différents compromis sécurité performance (zone lecture seule, zone lecture-écriture, zone en clair,... ) G. Duc (ENST Bretagne) CryptoPage JD / 24

29 de sécurité CryptoPage Tout ce qui est à l extérieur du processeur est considéré comme étant sous le contrôle d un attaquant potentiel Attaques physiques contre le processeur non étudiées ici (injection de fautes, attaques par mesure de consommation, etc.) Attaques par déni de service inévitables... Garder des performances raisonnables Différents compromis sécurité performance (zone lecture seule, zone lecture-écriture, zone en clair,... ) G. Duc (ENST Bretagne) CryptoPage JD / 24

30 de sécurité CryptoPage Tout ce qui est à l extérieur du processeur est considéré comme étant sous le contrôle d un attaquant potentiel Attaques physiques contre le processeur non étudiées ici (injection de fautes, attaques par mesure de consommation, etc.) Attaques par déni de service inévitables... Garder des performances raisonnables Différents compromis sécurité performance (zone lecture seule, zone lecture-écriture, zone en clair,... ) G. Duc (ENST Bretagne) CryptoPage JD / 24

31 Plan Introduction 1 Introduction 2 3 G. Duc (ENST Bretagne) CryptoPage JD / 24

32 Survol de l architecture CryptoPage Cœur du processeur Cache Données E Kd,pid mmu Unité CryptoPage Tampons de contexte Registres de contrôle Cache Instructions E Ki,pid Vérification intégrité Mémoire Clé secrète Puce G. Duc (ENST Bretagne) CryptoPage JD / 24

33 Propriété de Confidentialité Chiffrement données et instructions des processus sécurisés Utilisation algorithme de chiffrement symétrique par bloc Deux clés par processus sécurisé Effectué entre le cache et la mémoire sur des lignes de cache Si interruption : chiffrement puis effacement du contexte matériel du processus sécurisé en cours G. Duc (ENST Bretagne) CryptoPage JD / 24

34 Propriété de Confidentialité Chiffrement données et instructions des processus sécurisés Utilisation algorithme de chiffrement symétrique par bloc Deux clés par processus sécurisé Effectué entre le cache et la mémoire sur des lignes de cache Si interruption : chiffrement puis effacement du contexte matériel du processus sécurisé en cours G. Duc (ENST Bretagne) CryptoPage JD / 24

35 Propriété d Intégrité Introduction Protection des données et des instructions : mécanisme de vérification de l intégrité mémoire par fonction de hachage hiérarchique (arbres de Merkle) Protection des contextes matériels : Message Authentication Code (mac) G. Duc (ENST Bretagne) CryptoPage JD / 24

36 Propriété d Intégrité Introduction Protection des données et des instructions : mécanisme de vérification de l intégrité mémoire par fonction de hachage hiérarchique (arbres de Merkle) Protection des contextes matériels : Message Authentication Code (mac) G. Duc (ENST Bretagne) CryptoPage JD / 24

37 Plan Introduction 1 Introduction 2 3 G. Duc (ENST Bretagne) CryptoPage JD / 24

38 Introduction Projet Tcpa / Ngscb Puce (tpm), indépendante du processeur, offrant des mécanismes de sécurité Noyau sécurisé (Nexus) de sécurité différents de CryptoPage Isolation forte entre processus Stockage sécurisé Attestations cryptographiques Chemin sécurisés pour l utilisateur Vulnérable à certaines attaques (attaques physiques sur le bus) G. Duc (ENST Bretagne) CryptoPage JD / 24

39 Plan Introduction 1 Introduction 2 3 G. Duc (ENST Bretagne) CryptoPage JD / 24

40 Simulations Introduction Implémentation partie confidentialité dans simulateur de pc complet Bochs Programmes fonctionnent chiffrés dans Bochs avec noyau Linux adapté pour tourner sur CryptoPage/x86 Bochs ( lignes en tout) : lignes pour le cache lignes pour CryptoPage/x86 Noyau Linux (plusieurs millions lignes en tout) : lignes dietlibc : lignes Chiffrement des fichiers elf : lignes G. Duc (ENST Bretagne) CryptoPage JD / 24

41 Travaux Futurs Mesures précises de l impact en terme de performance Étude de la partie vérification mémoire Multiprocesseurs Adaptation des concepts de CryptoPage à un processeur sparc sur fpga G. Duc (ENST Bretagne) CryptoPage JD / 24

42 Support matériel, logiciel et cryptographique pour une exécution sécurisée de processus Guillaume Duc Thèse dirigée par Jacques Stern (Ens Ulm) et encadrée par Ronan Keryell (Enst Bretagne) Journées des doctorants 2005 G. Duc (ENST Bretagne) CryptoPage JD / 24