Support matériel, logiciel et cryptographique pour



Documents pareils
Transcription:

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 2005 1 / 24

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

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

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 2005 4 / 24

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 2005 5 / 24

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 2005 5 / 24

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 2005 5 / 24

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 2005 5 / 24

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 2005 5 / 24

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 2005 6 / 24

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 2005 7 / 24

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 2005 7 / 24

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 2005 7 / 24

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 2005 7 / 24

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

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 2005 9 / 24

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 2005 10 / 24

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 2005 10 / 24

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 2005 10 / 24

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

Plan Introduction 1 Introduction 2 3 G. Duc (ENST Bretagne) CryptoPage JD 2005 12 / 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 2005 13 / 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 2005 13 / 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 2005 13 / 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 2005 13 / 24

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 2005 14 / 24

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 2005 14 / 24

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 2005 14 / 24

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 2005 14 / 24

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 2005 14 / 24

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

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 2005 16 / 24

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 2005 17 / 24

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 2005 17 / 24

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 2005 18 / 24

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 2005 18 / 24

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

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 2005 20 / 24

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

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

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 2005 23 / 24

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 2005 24 / 24