49 votes

Comment bien gérer les clés privées

Quiconque a de l'expérience pratique ou une référence pour un régime qui met en œuvre un système de gestion de clés qui serait conforme à la norme PCI DSS standard de sécurité?

Il y a évidemment quelques applications étant donné le nombre d'entreprises conformes aux normes PCI DSS, mais en essayant de trouver les détails d'entre eux est difficile. Quand il se met à stocker des données privées, la discussion s'arrête normalement à laquelle algorithme de chiffrement à utiliser. Après cela, il y a normalement une déclaration au sujet de l'entreposage adéquat de la clé privée, mais pas de discussion sur les moyens pratiques de le faire ou des choses comme régulièrement la modification de la clé ou de fournir la clé pour les applications.

Specificlly je suis intéressé par toi exigences de sections 3.5 et 3.6 de la norme PCI DSS.

3.5.2 Stocker les clés de chiffrement de manière sécurisée dans le le moins possible les emplacements et les formes.

3.6.une vérification de l'existence de la clé-les procédures de gestion des clés utilisées pour le chiffrement des données de titulaire de carte. Remarque: de Nombreuses normes de l'industrie pour la gestion des clés sont disponibles à partir de diverses ressources, y compris le NIST, qui peut être trouvé à http://csrc.nist.gov.

3.6.4 Vérifier que les principales procédures de gestion sont mises en œuvre pour exiger périodique des changements clés au moins une fois par an.

J'ai eu un coup d'oeil à l' NIST Chiffrement des publications comme le document sur les exigences de la norme PCI DSS suggère mais à part les dernières notes d'une Gestion de Clés Cryptographiques Atelier, il ne semble pas être beaucoup là dans le chemin de la véritable mises en œuvre des schémas ou des normes.

De ce que je suis en train de faire, il n'est pas:

  1. Stocker les mots de passe + sels comme un moyen de hachages pour l'authentification,
  2. Choisissez une symmteric algorigthm pour le chiffrement des données,
  3. Éviter d'avoir besoin de stocker des données privées dans la première place.
  4. Éviter la nécessité pour la gestion des clés avec d'autres mécanismes: la sécurité physique, la sécurité de base de données, de dragons et de magiciens etc.

Tous valides préoccupations, mais dans ce cas ne sont pas la réponse. Les écrous et les boulons de mes besoins sont dans un autre DONC, la question .Net modèle de Conception pour le stockage et la récupération sensible de données par utilisateur , mais tout se résume à la gestion des clés, de là à ce raffinement question.

36voto

PaulG Points 7377

Je suis familier avec la douleur que vous allez à travers. Nous avons lutté pour mettre à jour un vieux EFT système de direction de la conformité PCI. La gestion des clés est certainement (de mon point de vue logiciel) la partie la plus difficile.

Je pense que j'ai aussi tombé dans les Recommandations du NIST pour la Gestion des Clés que Martin a posté, et a obtenu incroyablement frustré par le manque d'exemples concrets.

ANSI X9.17 - Institution Financière, la Gestion des Clés est probablement le plus pertinent à vos besoins, avec PCI-DSS. Bonne chance à la lecture de ça, cependant, le document est une collection massive de TLA que je sais que j'ai certainement rencontré des difficultés à lire.

Lorsque la frustration tourné en désespoir de cause, je suis tombé dans La monnaie Électronique Moulin qui est un récit fictif, avec un bon nombre de références techniques. Chapitre 17 discute X9.17 et peuvent aider à la compréhension.

À partir de tout ce matériel de référence, j'ai conçu un système de gestion de clés que notre auditeur a été heureux avec. Les documents de conception sont assez longues, mais en résumé, l'idée est que vous avez vos Données Encrypying Clé protégé par une Clé de Chiffrement de Clé, et la Clé de Chiffrement de Clé est stockée sur un physiquement séparé de la boîte, elle-même protégée par une Clé Maître.

Mon œuvre était d'avoir un Serveur de Clés d'application en cours d'exécution sur une machine windows. Cette application requiert l'entrée de deux "la clé du serveur maître des touches" avant de pouvoir être utilisé. Ces clés ne seront connus qu'à la clé, les administrateurs de serveur. Ces clés sont xor souhaitez ensemble pour générer la Clé principale, qui est stockée dans la mémoire protégée, tandis que l'application est en cours d'exécution. L'Application peut ensuite générer automatiquement un fort niveau de chiffrement de Clé de Cryptage de Clés, qui sont stockés sous forme cryptée à l'aide de la Clé principale.

Les Applications qui ont besoin d'un système de chiffrement demande une Clé de Chiffrement de Clé à partir du Serveur de Clés. La KEK est utilisé par l'application pour crypter/décrypter les Données de la Clé de Cryptage, qui peut être stocké en toute sécurité avec les données de l'application.

Bonne chance. J'espère que vous trouverez aussi un défi intéressant!

7voto

Martin v. Löwis Points 61768

Avez-vous vu le NIST SP 800-57 , Recommandation pour la gestion de clés?

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X