[rank_math_breadcrumb]

Introduction à la sécurité de Parsec

par | Avr 25, 2022 | Technologie

PARSEC est certifié CSPN depuis 1 an. Pour cette date anniversaire, nous vous proposons de se pencher sur la cible de sécurité CSPN de PARSEC, document produit dans le cadre de la certification et qui identifie les fonctions de sécurité de PARSEC (disponible ici).

Parsec permet de sécuriser les données dans le cloud. Qu’entend-on par cela ?

Avant d’entrer en détails dans le vif du sujet, il nous faut rappeler que PARSEC ne se limite pas au chiffrement des données. L’information est protéger selon différents critères :

  • Confidentialité: Rendre inaccessible les données et les protéger contre les lecteurs non désirés.
  • Intégrité: Garantir qu’un fichier n’est pas modifié.
  • Authentification/Non répudiation: Permetre de vérifier l’origine d’une donnée ou d’une modification.
  • Historisation: Tracer les modifications en conservant l’intégrité des changements.

Ces critères de sécurité sont les paradigmes de base qui sont analysés dans la cible de sécurité.

Comment avons nous analysé PARSEC ?

La cible de sécurité de PARSEC décrit l’architecture du logiciel, les choix technologiques et architecturaux, ainsi que les descriptions des fonctions réalisées par le logiciel. Les concepts de PARSEC y sont décrits ainsi que leurs fonctionnements détaillés. 

Cet aspect descriptif du produit PARSEC est accompagné par une analyse de sécurité, cette analyse identifie:

  •  les biens sensibles à protéger (bien pouvant faire l’objet d’attaque) et les protections mises en place (section 4)
  • les menaces sur les biens listés précédemment et les chemins d’attaque (section 5)
  • les fonctions de sécurité permettant de protéger chaque bien des différentes menaces (section 6).

Quelques rappels sur l’architecture du système

PARSEC protège les données que l’utilisateur produit. Pour cela le système utilise des méthodes cryptographiques, nécessitant l’utilisation de clés et de secrets distribués entre utilisateurs.

Les secrets cryptographiques et les informations sur les données constituées des métadonnées qui sont stockés sur les postes clients ou dans les serveurs PARSEC. Ces métadonnées sont également protéger de la même manière que les données avec les mêmes garanties de sécurités. Les métadonnées sont donc inexploitables par le serveur de métadonnées PARSEC qui les hébergent, seuls les clients peuvent les déchiffrer et accéder à leur contenu. 

Ces protections doivent être assurées pour les données, les métadonnées et les secrets cryptographiques, partout ou les données sont présentes ou transites:

  • Service d’hébergement des données (cloud publique)
  • Serveur de métadonnées PARSEC
  • Transport sur le réseau
  • Stockage local sur le poste client (PARSEC garantie qu’ aucune donnée en clair ne transite par le disque dur du poste utilisateur.)

Les secrets cryptographiques.

La confidentialité est assurée par des clés chiffrées. Chiffrer une donnée permet de la rendre exploitable et compréhensible par un tiers ne disposant pas de la clé.

PARSEC comprend différentes clés de chiffrement:

  • Les clés de chiffrement des données.
  • Les clés de chiffrement des métadonnées
  • Les clés de chiffrement propres aux métadonnées d’un utilisateur
  • Les clés de chiffrement locales, propre au terminal utilisateur

L’intégrité et l’authenticité sont assurées par des mécanismes de signature de la donnée. Les clés de signatures sont propres à chaque poste client. La signature permet de certifier une modification. 

Note: Afin de garantir l’authenticité des clés de signatures, chaque clé de signature est elle même signée lors de la procédure d’enrollement (détails ici https://parsec.cloud/sas-single-authentification-string/ )

La liste des clés exhaustive de PARSEC et leurs fonctionnements ne sont pas détaillés dans cet article. Elles sont listées dans la partie 8 Glossaire de la cible de sécurité.

L’étude de la sécurité dans PARSEC.

Comme indiqué précédemment, la cible de sécurité identifie les biens sensibles à protéger (les données, les métadonnées, les clés de chiffrement, les secrets d’administration …), le niveau de sécurité (confidentialité, authenticité …), les menaces sur ces biens, et les fonctions protégeant les biens des menaces. 

Les biens sensibles à protéger

La section 4 de la cible de sécurité résume donc ainsi l’ensemble des éléments dans PARSEC sensible à une attaque ou une altération et pouvant contenir de l’information.

Une image contenant texte

Description générée automatiquement 

Les biens sont identifiés ainsi que leurs protections associées. Par exemple, le contenu des fichiers doit être protégé en confidentialité, intégrité, authenticité et historisation.

Les métadonnées, elles, ne sont pas protégées en historisation car une métadonnée correspond à une modification sur une donnée, elles sont donc écrites une seule fois (Concepte WORM, Write Once Read Many). Chaque modification de données créer une nouvelle métadonnée.

Les parties privées des clés utilisateurs sont seulement protégées en confidentialité et en intégrité, afin de garantir qu’elles ne soient pas utilisables par un tiers autre que l’utilisateur.

Note sur les clés utilisateurs :

Ici nous prenons l’exemple des clés utilisateurs. Comme expliqué précédemment, chaque utilisateur possède une clé de signature, utilisée pour certifier que l’utilisateur est bien l’auteur d’une modification, et une clé de chiffrement, afin de recevoir des messages et informations privées.

Ces clés sont asymétriques.

(Rappel sur les clés asymétriques

Une clé asymétrique est composée de deux clés, une clé publique, stockée sur le serveur de métadonnées, et une clé privée stockée localement par l’utilisateur.

La partie privée d’une clé asymétrique de signature sert à signer la donnée (ajouter une information qui dépend de la donnée et de la clé privée), la partie publique sert à vérifier la signature.

Dans le cas du chiffrement, la partie publique sert à envoyer un message chiffré que seul la partie privée peut déchiffrer )

Dans notre exemple, seules les parties privées sont considérées. 

Etats des biens

La localisation de chaque bien est ensuite identifiée:

  • Le bien est-il local ? 
  • Comment est-il stocké ? 
  • Est ce que le bien transite ??
  • Quand est-ce que le bien transite ? 

Une image contenant table

Description générée automatiquement

Continuons à étudier l’exemple des clés privées utilisateurs.

La clé de signature est propre au terminal utilisateur (une clé différente par poste de travail afin d’identifier le terminal auteur de la modification), elle est donc stockée localement sur le terminal utilisateur. La clé ne transite pas, elle est sécurisée localement.

La clé de chiffrement utilisateur est elle commune à tous les postes de travail d’un même utilisateur, elle doit donc être partagée lors de la procédure d’enrôlement d’un nouveau terminal. Cette clé est donc sécurisée au repos, sur le poste client. Elle doit également être sécurisée par une clé temporaire permettant de chiffrer la clé privée et de l’échange entre deux terminaux utilisateur lors de la procédure d’invitation d’un nouveau terminal.

Cet exemple illustre bien la nécessité de protéger un bien, de manière différente en fonction de sa localisation et de son état.

Les menaces sur les biens

La cible de sécurité identifie ensuite les menaces qui visent l’application. Ces menaces visent à attaquer, corrompre, altérer … les biens de l’application que nous avons listé précédemment. La section 5 de la cible de sécurité lie donc les menaces aux biens sensibles à protéger.

Une image contenant table

Description générée automatiquement 

Une des menaces évidentes visant parsec est l’altération des données chiffrées (le stockage de données chiffrées étant le cœur de l’application. La menace M2 est donc très spécifique et s’applique seulement aux données (bien B_FIC). 

En revanche, la menace M1 qui vise à corrompre les métadonnées a un impact sur les métadonnées, mais également sur les données elle-même. Par exemple, l’altération d’une métadonnée sur un fichier, métadonnées contenant les secrets de chiffrement, peut rendre la donnée qu’elle référence indéchiffrable.

En reprenant l’exemple des clés privés de l’utilisateur (code B_UK et B_DK), la menace M3 (Corruption du poste client) est un danger direct. En effet, ces informations sont stockées sur le poste utilisateur et sont donc sensibles aux attaques sur le terminal client.

Les fonctions de sécurités

Enfin, la cible de sécurité décrit les fonctions de sécurités de l’application, et comment c’est fonctions sont assurées:

  • F1_CONFIDENTIALITY : Confidentialité des données
  • F2_INTEGRITY : Intégrité des données
  • F3_AUTHENTICITY : Non répudiation et Authenticité
  • F4_USER_AUTHENTICATION : Authentification des Utilisateurs
  • F5_USER_CHAIN : chaîne de confiance
  • F6_DEVICE_NON_REPUDIATION : Contrôle du terminal en responsabilité
  • F7_DEVICE_AUTHENTICATION : Authentification des terminaux
  • F8_ENROLLMENT_TRANSMISSION : Transmission des informations privées lors de la création d’un nouveau terminal ou d’un nouvel utilisateur
  • F9_ACCESS_CONTROL : Sécurité de contrôle d’accès
  • F10_WS_REENCRYPT : Rechiffrement intégral d’un workspace
  • F11_USER_ROLE_MANAGEMENT : Gestion des utilisateurs et de leurs droits
  • F12_BACKEND_ADMINISTRATION : Administration du serveur de métadonnées

Les menaces de corruptions identifiées précédemment (M1, M2, M3) sont donc des risques pour les données, métadonnées et secrets cryptographiques. La fonction F2_INTEGRITY : Intégrité des données assure une protection sur le bien identifié comme devant être protégé en intégrité (dans la section 4):

« Parsec garantit l’intégrité des fichiers stockés dans un workspace. Chaque métadonnée, signée par la DEVICE_SIG_S_KEY (Ed25519), a une empreinte unique, qui permet de détecter toute modification.  Les empreintes des blocs constitutifs d’un fichier, générés par un mécanisme de hachage (sha256) sont stockées dans les métadonnées afin d’en garantir l’intégrité. Les biens à protéger sont : B_FIC, B_MTD, B_UA, B_DA, B_ACC.« 

Conclusion

La cible de sécurité de PARSEC, certifié CSPN, est un document  complet qui décrit les mécanismes de sécurité de l’application, listant les fonctionnalités de l’application, les biens utilisés pour assurer ces fonctions, les menaces sur ces biens, et les fonctions de sécurité garantissant la protection sur ces menaces.

Ce document a été utilisé comme base pour auditer le code applicatif de PARSEC. Le logiciel est certifié conforme par l’ANSSI aux mécanismes décrits dans ce document.

PARSEC est donc reconnu comme un produit fiable et sûr en matière de sécurité. Aucune non conformité ou vulnérabilité n’a été découverte pendant cet audit approfondi.

Références

Par PARSEC

Dans la même catégorie

Optimize Rust build & test for CI

Optimize Rust build & test for CI

Last year, we migrated our CI to GitHub Actions after previously using Azure Pipelines. We took advantage of the migration to improve our CI. This article will summarize the different steps we have taken to enhance our CI when working with Rust. Parallelize Run...