Les pratiques de chiffrement dans l’informatique en nuage (cloud) public

22 janvier 2024

Le chiffrement est aujourd’hui l’un des mécanismes les plus efficaces pour protéger la confidentialité des données. Pour que l’application du chiffrement soit utile, les clés cryptographiques doivent être correctement gérées et protégées. Quelles sont les différentes approches possibles ?

À retenir

  • Le chiffrement des données est une mesure importante de sécurité et de protection des données.
  • Selon l’état de la donnée (au repos, en transit, en traitement), différentes approches sont possibles soit côté serveur, soit côté client.
  • Certaines techniques de chiffrement peuvent être complexes à mettre en place : il est important de connaître les différentes approches pour appliquer celle qui sera la plus adaptée au traitement de données.
  • Le chiffrement de bout-en-bout n’est pas applicable dans toutes les situations, mais constitue la solution la plus protectrice de la vie privée.

L’émergence de l’informatique en nuage (cloud computing), où des données sont confiées à des fournisseurs tiers dans des environnements de stockage, de calcul et de réseaux hors de la maîtrise des clients, renforce l’intérêt de recourir au chiffrement comme une mesure de sécurité et de protection des données, non seulement vis-à-vis de tiers malveillants mais aussi des fournisseurs eux-mêmes.

Cette fiche n’a pas pour objet de traiter le sujet de la répartition des responsabilités entre les fournisseurs et leurs clients au titre du RGPD.

Les trois états de la donnée

Le stockage, la communication et l’utilisation des données sont généralement assimilés aux concepts de « données au repos », « données en transit » et « données en traitement ».

Les données doivent être gérées différemment selon leur état (au repos, en transit, en traitement) et leur emplacement (sur site, sur le réseau, dans le cloud, etc.). Cette consigne s’applique également au chiffrement des données et la gestion des clés, ces dernières étant elles-mêmes des données soumises à cette classification.

La donnée au repos

Il s’agit de la donnée stockée de manière persistante dans une mémoire non volatile (comme un disque dur ou un disque SSD lorsqu’il n’y a plus d’alimentation électrique). Ces données ne sont pas utilisées ou transmises activement sur un réseau ; elles sont stockées et attendent d’être accédées ou utilisées ultérieurement.

La donnée en transit

Il s’agit de la donnée qui est transmise sur un réseau de communication entre deux endroits d’un même système d’information ou entre deux systèmes d’information. Le contenu d’un courriel, des données envoyées à un serveur web, des données transmises depuis un poste de travail vers un espace de stockage dans le nuage (cloud), l’envoi de données dans le cloud depuis un serveur de stockage vers un serveur de calcul, des messages échangés par messagerie instantanée, sont autant d’exemples de données en transit.

La donnée en traitement

Il s’agit de l’état de la donnée lorsqu'on y a accès, ou qu’elle est consultée, mise à jour, consommée, analysée, etc. par un utilisateur, une application ou un service. La donnée en traitement fait l’objet de calculs réalisés au sein d’« unités de traitement » telles que les processeurs des ordinateurs, les cartes graphiques, sonores, etc., et ont été pour cela recopiées au sein de mémoires de travail « non-persistantes » (dites aussi « volatiles ») telles que la mémoire vive (la « RAM ») de l’ordinateur ou d’autres mémoires de travail rapides (caches, registres du processeur, etc.).

À retenir

Connaître l’état et l’emplacement de la donnée à chaque étape de son cycle de vie permet d’assurer une gestion efficace et sécurisée des données.

Problématiques du chiffrement et de la gestion des clés dans le cloud

Le chiffrement est l’une des principales mesures permettant de garantir la confidentialité des données dans un système informatique. Pour garantir l’effectivité du chiffrement, il est nécessaire que les clés de chiffrement soient gérées de façon à en garantir la confidentialité et que les algorithmes de chiffrement utilisés soient « à l’état de l’art », c’est-à-dire reconnus comme robustes vis-à-vis des techniques de cryptanalyse connues (on parle également « d’algorithme public réputé fort »). Cette fiche part du principe que les algorithmes utilisés dans le cloud sont « réputés forts » et se concentre sur les questions de gestion de clés.

La gestion des clés est un processus crucial dans la configuration d’un système cryptographique, d’autant plus complexe que le volume et la répartition des données et le nombre d’acteurs impliqués sont importants. Ce processus est donc particulièrement lourd dans un environnement cloud où le contrôle des ressources physiques et logiques est réparti entre les différents participants de l’écosystème (notamment entre le fournisseur et le client).

Ressources physiques et logiques hors du contrôle du client

Le chiffrement permet de garantir la confidentialité des données : les données sont inintelligibles pour toute personne non autorisée (ne disposant pas des clés de déchiffrement). En principe, seuls l’émetteur et le destinataire sont en capacité d’accéder au contenu en clair. En pratique, un client cherche à contrôler d’éventuels accès non autorisés de la part :

  • de personnes internes à l’organisme, non malveillantes, mais n’ayant pas le droit d’accéder aux données : une gestion des habilitations est généralement utilisée pour contrôler ces accès ;
  • de personnes internes ou externes malveillantes cherchant à accéder aux données : le chiffrement peut être une des mesures efficaces pour limiter ce risque, en complément du contrôle d’accès ;
  • du fournisseur du service, de l’infrastructure ou du logiciel lui-même : le chiffrement peut être une des mesures efficaces pour limiter ce risque, s’il est effectué avant d’envoyer les données sur le cloud.

Cette fiche se concentre sur les risques présentés par le fournisseur de service de cloud vis-à-vis de l’accès et de la lecture des données en clair qu’il stocke et les éventuelles protections apportées par le chiffrement, selon les modalités de sa mise en œuvre.

À retenir

Le chiffrement est une mesure efficace et essentielle pour réduire le risque d’accès illégitimes aux données. Il est indispensable dans de nombreuses situations courantes (flux de données circulant au travers internet, stockage, poste de travail, etc.).

Dans le cloud, en comparaison au modèle traditionnel « sur site », le client va déléguer une partie des responsabilités de sécurité au fournisseur de cloud, notamment en ce qui concerne le chiffrement et la gestion des clés.

Or le fournisseur de cloud lui-même peut être une source de risques ou un vecteur d’attaque :

  • un fournisseur mal intentionné pourrait « fouiller » dans les données du client ;
  • des employés du fournisseur pourraient accéder aux données ;
  • un fournisseur pourrait réutiliser des données en dehors du contrôle du responsable de traitement, notamment pour des opérations de maintenance et de sécurité (p. ex. : des données de télémétrie) ou d’amélioration de ses services ;
  • le fournisseur pourrait devoir répondre à des demandes des autorités judiciaires et de renseignement de pays tiers, exigeant le transfert ou la divulgation de données (notamment personnelles) vers ces pays ;
  • enfin, le fournisseur pourrait être victime d’intrusions par des acteurs malveillants.

En pratique, un fournisseur de service cloud peut accéder aux données de différentes manières :

  • pour les données au repos :
    • via un accès local, c’est-à-dire dans le centre de données, directement sur les supports de stockage utilisés par le service,
    • via un accès distant en « mode administrateur » du service fourni, permettant de consulter les données à distance,
    • si elles sont chiffrées par le serveur, via un accès aux clés qui permettent au fournisseur de déchiffrer les données et d’y accéder ;
  • pour les données en transit :
    • via un accès local, dans le centre de données ou à proximité, sur les équipements réseau utilisés par les machines servant à fournir le service ;
  • pour les données en traitement :
    • via un accès local ou distant en « mode administrateur » sur la machine (réelle ou virtuelle) hébergeant le service fourni, permettant de consulter les données (par exemple, en effectuant une requête directe sur la base de données utilisée – sans passer par le logiciel applicatif utilisant la base, et susceptible de tracer de tels accès – ou une copie de certains éléments du service),
    • via des outils de surveillance (« monitoring ») et de journalisation qui permettent de consulter les données en cours de traitement.

Le fournisseur de service de cloud s’appuie en général lui-même sur d’autres fournisseurs : de couches dites « inférieures » (machines virtuelles, services PaaS ou IaaS), du centre de données lui-même (colocation d’espace de stockage, etc.) et d’équipements et de composants (systèmes d’exploitation, processeurs, etc.).

Détention, contrôle, possession, accès et usage des clés

Lorsqu’il décide d’avoir recours à un service de cloud, il est impératif que le client comprenne la répartition des rôles entre lui et le fournisseur en ce qui concerne la sécurité et la protection des données. Du point de vue de la protection des données personnelles, les obligations de chaque partie doivent être formalisées dans un contrat clair, tel que le prévoit l’article 28.3 du RGPD.

En effet, le choix du déploiement des clés cryptographiques est déterminé par le niveau de détention, de possession, d’accès, de contrôle et d’utilisation des clés que le client doit adopter en fonction de ses exigences en matière de sécurité et de conformité :

  • la titularité des clés répond à la question : « qui est le détenteur des droits sur les clés, sur le plan juridique ? » ;
  • le contrôle des clés répond à la question « qui gère le cycle de vie des clés » ;

Note : les deux notions de titularité des droits et de contrôle des clés peuvent être rapprochées, dans le sens où la titularité des droits sur les clés implique qu’une entité a le droit d’accéder aux clés, de déchiffrer les données chiffrées avec elles et de contrôler les accès aux clés ;

  • la possession des clés répond à la question : « qui détient un exemplaire des clés ? » ;

Note : il est important de distinguer la notion de titularité de celle de possession : la possession sous-entend une conservation des clés, sur un support physique. Ces droits peuvent être détenus par deux entités différentes.

  • l’accès aux clés répond à la question : « qui a accès aux clés ? » ;
  • l’usage des clés répond à la question : « qui peut utiliser les clés ? ».

Dans le domaine du cloud computing, ces différents attributs peuvent être répartis entre le fournisseur des services cloud et le client. Par exemple :

  • le client peut être le titulaire des clés, les détenir et les utiliser complètement sans que le fournisseur de cloud n’ait accès aux clés (voir le chiffrement côté client dans les sections suivantes) ;
  • le fournisseur peut être le titulaire des clés, les détenir et les utiliser complètement sans que le client n’ait la main sur la gestion de ces clés (voir le chiffrement côté serveur avec gestion côté serveur) ;
  • le client peut être le titulaire des clés. Il peut les stocker et les gérer dans un service de gestion de clés offert par le fournisseur de cloud, qui donc possède les clés. Le contrôleur des clés peut dans ce cas être le client si celui-ci a la faculté d’envoyer ses instructions via le service de gestion des clés qui est proposé sur l’infrastructure du fournisseur ;
  • un fournisseur peut générer les clés de chiffrement à la demande et les transmettre au client, qui donc les possède et les contrôle ;
  • le client peut alternativement avoir recours à un service de tiers de confiance pour la gestion des clés, indépendant du fournisseur de cloud.

Le client doit aussi maîtriser les outils qui sont mis à sa disposition pour utiliser au mieux les clés de chiffrement. En particulier, le client doit être certain que :

  • les services, logiciels ou programmes qui utilisent ces clés sont sains ;
  • ces services utilisent les bonnes clés (c.-à-d. les siennes et pas d’un autre client) ;
  • les algorithmes de chiffrement et déchiffrement sont correctement mis en œuvre ;
  • ces outils sont correctement distribués et vérifiables par lui-même.

Il doit également effectuer une veille régulière sur les évolutions des services et des outils de son fournisseur, afin de maîtriser les risques résiduels engendrés par ces évolutions permanentes.

À retenir

Les organismes clients d’un fournisseur de cloud doivent déterminer le niveau de titularité, de contrôle et de possession des clés dont ils ont besoin. Cette décision doit être prise compte tenu des enjeux de sécurité, de conformité et de maîtrise des données.

Le client doit impérativement se demander qui détient les clés et gère leur cycle de vie, qui y a accès et les utilise, en particulier lorsqu’il a recours des services fournis par des fournisseurs soumis à des législations extra-européennes.

Sur le plan technique, l’élimination de la possibilité d’accès aux données par le fournisseur n’est garantie que par la titularité, le contrôle, la possession, l’accès et l’usage exclusifs des clés par le client.

Pas ou peu de standardisation de la gestion des clés dans le cloud

Il existe des standards internationaux pour la gestion des clés cryptographiques (p. ex. : NIST SP 800-57, FIPS 140-2, Common Criteria) mais les standards, les recommandations et bonnes pratiques, spécifiques à la gestion des clés dans le contexte du cloud sont encore peu nombreux. Certains commencent toutefois à émerger, par exemple l’initiative du NIST (le guide Cryptographic key management issues and challenges in cloud services de 2013).

Scénario 1 : Données au repos


Scénario 2 : Données en transit


Scénario 3 : Données en traitement


Scénario 4 : Chiffrement de bout en bout


Focus

Les techniques avancées de chiffrement que sont le calcul multipartite sécurisé (SMPC), le chiffrement totalement homomorphe (FHE) et le chiffrement fonctionnel (FE) ont pour but de réconcilier chiffrement et traitement sur données chiffrées. Avec ces technologies, les données sont chiffrées côté client avant d’atteindre le serveur cloud, mais peuvent tout de même être traitées par ce dernier. Ces techniques sont très prometteuses pour contribuer à la protection des données personnelles traitées dans le cloud. Toutefois, même si elles ont franchi la frontière de la recherche, ces techniques ne sont pas encore pratiques pour des applications complexes, notamment dans le SaaS. Il est essentiel d’assurer une veille technologique pour suivre de près les avancées dans ce domaine. La CNIL de son côté suit attentivement les progrès dans les techniques avancées de chiffrement.

Les technologies d’informatique confidentielle basées sur des composants matériels offrant un environnement d’exécution de confianceTrusted Execution Environments » ou TEE), s’attaquent également à la problématique de la confidentialité des données en traitement. Ces composants matériels fournissent en leur sein même un environnement sécurisé (appelé « enclave sécurisée ») pour opérer sur les données en clair, de telle sorte qu’aucun élément extérieur ne peut pénétrer l’enclave. Il s’agit d’une région sécurisée de la mémoire, protégée de tout programme extérieur à l’enclave, qui permet non seulement d’isoler les données mais aussi le code informatique prévu pour les traiter. Schématiquement, les opérations sur les données chiffrées s’effectuent en :

  1. déchiffrant les données dans une zone isolée et protégée du reste du processeur ;
  2. effectuant toutes les opérations sur les données en clair dans cette zone sécurisée ; et
  3. chiffrant les résultats des opérations avant qu’ils ne quittent l’enclave.

Cependant, la technologie d’enclaves sécurisées est encore limitée à certains micro-services (comme des opérations cryptographiques). Par ailleurs, le code des applications s’exécutant dans l’enclave doit être écrit de telle sorte que l’application soit compatible avec l’enclave. Si un fournisseur ou un tiers fournit l’application dont certaines opérations sensibles doivent être effectuées dans l’enclave, alors le risque que ce fournisseur ou ce tiers ait accès aux données en clair reste présent. En outre, les technologies TEE peuvent comporter des vulnérabilités et de défauts, tant logiciels que matériels, comme celle mise à jour en août 2023 (baptisée « Downfall »), qui pourraient exposer, de façon accidentelle ou délibérée, les données en clair à un attaquant ou au fournisseur.


Vous souhaitez contribuer à l’amélioration de cette fiche ?

Écrivez à retours-cloud[@]cnil.fr