Quel système utilisez-vous pour chiffrer des fichiers pour un groupe de personnes (agnostic OS préféré)?

StackOverflow https://stackoverflow.com/questions/184265

  •  06-07-2019
  •  | 
  •  

Question

Disons que vous avez un tas de fichiers. Supposons que vous puissiez stocker des métadonnées dans ces fichiers. Supposons qu'un de ces méta-attributs s'appelle "cryptage". Supposons que tout le monde a été autorisé à consulter ces fichiers, mais comme ils sont cryptés, seules les personnes sachant les déchiffrer peuvent en lire le contenu. Disons, pour chaque valeur donnée de "chiffrement", un groupe de personnes partage le savoir sur la manière de déchiffrer des fichiers marqués avec cette valeur. Supposons que vous souhaitiez pouvoir le faire par programme, de manière agnostique pour le système d’exploitation (si possible)

Quelles sont les valeurs que vous utiliseriez pour "chiffrement"? Comment stockeriez-vous les clés? Comment organiseriez-vous l'accès aux clés?

Je penche actuellement pour la mise en œuvre suivante:

  • la valeur du champ " cryptage " contient le nom d'une clé, indiquant éventuellement l'algorithme utilisé
  • chaque utilisateur a accès à un tas de clés. Cela peut être défini par les rôles de l'utilisateur dans une structure semblable à LDAP / ActiveDirectory, ou il peut s'agir simplement de fichiers situés dans un répertoire sécurisé du répertoire de profil de l'utilisateur / répertoire personnel.
  • lors de la visualisation d'un fichier, le visualiseur (j'essaie de créer un système de gestion de documents) vérifie les clés de l'utilisateur et déchiffre le fichier si une clé correspondante a été trouvée.

Quel cryptage utiliseriez-vous? Symétrique (AES)? Ou asymétrique (quels sont les bons)?

L'utilisation de clés asymétriques présenterait l'avantage supplémentaire de faire la différence entre la lecture d'un fichier et l'écriture d'un fichier: l'accès à la clé privée est nécessaire pour l'écriture du fichier, l'accès à la clé publique (uniquement semi-public, certains rôles uniquement). y avoir accès) permettrait la lecture du fichier. Est-ce que je me trompe totalement ici?

Quels sont les systèmes courants pour résoudre ces problèmes utilisés dans les petites et moyennes entreprises?

MODIFIER : il semble qu'il n'y ait pas de solutions universelles. Je vais donc énoncer le problème que je tente de résoudre un peu plus clairement:

Imaginez un système de gestion de documents fonctionnant de manière distribuée: chaque document est copié sur différents nœuds d’un réseau P2P (contrôlé par la société, privé). Un algorithme assurant la redondance des documents est utilisé pour assurer les sauvegardes de tous les documents (y compris les révisions). Ce système fonctionne comme un service / démon en arrière-plan et ramène les documents vers l’arrière.

Cela signifie que les utilisateurs se retrouveront avec des documents qui ne sont probablement pas destinés à être vus sur leur poste de travail local (ordinateur contrôlé par la société, ordinateur portable ou quelque chose du genre - le paramètre est tel qu'un informaticien de PME définit tout cela et le contrôle qui fait partie du réseau P2P).

Ceci exclut les schémas basés sur l'accès à l'annuaire, car l'utilisateur pourra probablement accéder aux données. Est-ce que je me trompe ici? Un dossier local peut-il être chiffré de telle sorte qu'un utilisateur du domaine ne puisse y accéder? A quel point est-ce sécurisé?

Je suis conscient que des utilisateurs partagent des versions décryptées de fichiers, ce qui est difficile à supprimer techniquement. Ce n'est pas un problème que j'essaie de résoudre.

Était-ce utile?

La solution

Le cryptage n’est pas la partie la plus difficile, ici. Comprendre les besoins de l’entreprise, et en particulier les menaces contre lesquelles vous essayez de vous protéger, est la partie la plus difficile. La gestion des clés n’est pas une mince affaire.

Je recommande vivement le livre " Cryptographie appliquée " pour vous aider à mieux comprendre les problèmes liés au protocole.

Autres conseils

Il s'agit d'un problème difficile . Si ceci est vraiment sérieux, vous ne devriez pas utiliser les conseils de cryptographes amateurs sur Internet.

Cela dit, voici mes réflexions:

Je chiffrerais chaque fichier avec une clé symétrique aléatoire à l'aide d'AES. Ce chiffrement s’appliquerait à une tâche exécutée du jour au lendemain. La clé change donc du jour au lendemain.

Je chiffrerais la clé de chaque fichier avec la clé publique de toutes les personnes ayant accès au fichier.

Si une personne perd l'accès aux fichiers, elle ne pourrait pas lire les nouvelles copies le lendemain (elle pourrait toujours avoir des copies d'anciennes versions localement).

Je voudrais utiliser gpg (fonctionne avec bonheur sur presque tous les systèmes d'exploitation).

Vous comprenez mal la crypto asymétrique. La clé publique est donnée à tout le monde, la clé privée que vous gardez vous-même. Si Alice chiffre quelque chose avec la clé publique de Bob, seul Bob peut le déchiffrer. Si Bob chiffre quelque chose avec sa clé privée, tout le monde peut le déchiffrer et tout le monde sait que cela provient de Bob, car il n'a que sa clé privée.

EDIT: Cependant, si vous ignoriez tout ce que j’avais dit et suiviez un chemin différent, et donniez à chaque FILE sa propre clé keypair pub / priv ... vous feriez alors que la clé publique soit disponible UNIQUEMENT à ceux que vous souhaitez lire. fichier, et la clé privée disponible pour ceux que vous voulez r / w. Mais c’est un peu plus compliqué, et repose beaucoup sur les personnes ne pouvant pas distribuer les clés. Les tâches de nuit pour changer de clé peuvent atténuer ce problème, mais vous devez ensuite distribuer les nouvelles clés aux utilisateurs.

Si je vous ai bien compris, vous pouvez utiliser GNU Privacy Guard. C'est multi-plateforme et open source. En gros, chaque utilisateur possède une copie de GPG et un "trousseau" local. avec leurs " clés privées " et "clés publiques". Lorsque vous souhaitez chiffrer quelque chose, vous utilisez la clé publique de la personne. Les résultats ne peuvent être déchiffrés qu'avec la clé privée qui lui est associée. Un utilisateur peut avoir plusieurs paires de clés. Vous pouvez donc donner à tous les administrateurs l'accès au " administrateur role " clé privée, et chaque clé privée peut déchiffrer les documents chiffrés avec le "rôle administrateur". clé publique.

La partie intéressante est que vous pouvez chiffrer un fichier avec plusieurs clés publiques et que l’une des clés privées correspondantes peut ensuite être utilisée pour le déchiffrer.

La difficulté de ce problème est la raison pour laquelle de nombreuses entreprises utilisent par défaut des solutions spécifiques au système d'exploitation, telles qu'Active Directory.

Pour les systèmes d'exploitation agnostiques, vous devez recréer de nombreux éléments de gestion des utilisateurs déjà créés par les fournisseurs de système d'exploitation et / ou de réseau.

Mais cela peut être fait. Pour le cryptage lui-même, suivez la réponse d’AviewAnew.

Je suis d'accord avec Mark ici:

  

Comprendre les besoins de l'entreprise, et en particulier les menaces contre lesquelles vous essayez de vous protéger, est la partie difficile

Par exemple; craignez-vous que des utilisateurs non autorisés puissent avoir accès à des fichiers sensibles? Vous pouvez utiliser le contrôle d’accès au niveau des fichiers sur pratiquement tous les systèmes d’exploitation pour empêcher les utilisateurs ou les groupes d’accéder aux fichiers / répertoires.

Craignez-vous que les utilisateurs autorisés puissent copier les fichiers localement, puis perdre leur ordinateur portable? Un certain nombre d'installations de chiffrement au niveau du système d'exploitation offrent différents degrés de protection. Personnellement, je recommande TrueCrypt pour les clés USB et autres supports portables. Windows Vista inclut désormais BitLocker, qui offre un niveau de protection différent.

Le thème des sauvegardes perdues est une autre variante du thème de l'ordinateur portable perdu. De nombreux fournisseurs de sauvegardes incluent désormais des schémas de chiffrement pour vos sauvegardes sur bande, et ce, pour cette raison uniquement.

Enfin, si vous craignez que des utilisateurs autorisés ne partagent les fichiers avec des utilisateurs non autorisés, vous tentez peut-être de résoudre le mauvais problème. Les utilisateurs autorisés qui peuvent déchiffrer ces fichiers peuvent tout aussi bien partager une nouvelle version non chiffrée du même document.

Ce dont vous avez besoin, c'est d'un chiffrement à clé publique utilisant des certificats OpenPGP ou X.509. Dans les deux cas, vous pouvez chiffrer le bloc de données unique pour plusieurs "destinataires". utilisant leurs clés OpenPGP ou leurs certificats X.509 respectivement. Dans X.509, les normes pour chiffrer les données de cette manière sont PKCS # 7 et CMS (défini dans certains RFC, j’ai oublié le numéro). Vous devez utiliser une vérification de révocation de clé afin d'empêcher l'accès des personnes qui avaient déjà accès à cet accès, mais ne l'ont pas encore.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top