web-dev-qa-db-fra.com

Solution de gestion de clés Open Source

Je recherche des solutions de gestion de clés afin de devenir conforme à la norme PCI. J'ai parlé à un certain nombre de vendeurs dans l'arène et, même si j'aime leurs produits, le coût dépasse mon budget. Quelqu'un a-t-il connaissance d'une solution open source ou à faible coût pour la gestion de clés? J'utilise un environnement Windows/.NET, je préférerais donc des solutions qui ciblent cet environnement, mais j'aimerais connaître tout ce qui existe.

Merci

10
Dave

Nous avons eu une expérience similaire à vous. Nous avions besoin d'une solution de gestion de clés pour la conformité PCI et tous les produits commerciaux que nous avons vus étaient trop chers. Certains gestionnaires clés coûtent plus cher que notre produit pour les petits clients!

Nous avons fini par créer un gestionnaire de clés basé sur un logiciel. Nous avons établi des exigences et les développeurs offshore l'ont codé. À une époque, ils cherchaient d’autres clients pour l’utiliser. Je ne sais pas s'ils le sont toujours ou non.

Laissez-moi vous expliquer les options que nous avons explorées. La première chose à retenir est que la conformité PCI et la sécurité sont des choses différentes, vous pouvez être conforme à la norme PCI et pas très sécurisé.

Option 0 - Attribuez une clé par colonne de base de données et stockez les clés dans un fichier DLL. Votre application crée des liens dans le fichier DLL pour accéder aux clés permettant de chiffrer et de déchiffrer les données. Personne ne connaît les clés. Pour le remplacement périodique des clés, créez un nouveau DLL avec de nouvelles clés, prenez du temps pour déchiffrer toutes les données à l'aide d'anciennes clés et rechiffrez les données à l'aide de nouvelles clés. Puis redémarrez votre application en utilisant le nouveau DLL avec de nouvelles clés. (Notez que si vous envisagez de restaurer une sauvegarde de base de données, vous devez conserver les anciennes clés.)

La première fois que j'ai entendu parler de l'option 0, j'ai été surpris que ce soit conforme à la norme PCI. Nous n'utilisons pas l'option 0.

Façons d'améliorer l'option 0.

Si vous avez un HSM dans votre environnement, utilisez-le pour chiffrer les clés du fichier DLL. Lorsque votre application démarre, elle déchiffre les clés à l'aide du HSM. Si vous voulez plus de sécurité, décryptez les clés chaque fois que vous en avez besoin.

Une fois que vos clés sont cryptées, vous pouvez les stocker dans une table de base de données en toute sécurité. Si vous attribuez à chaque clé (ancienne et nouvelle) un identifiant clé de type entier petit, vous pouvez stocker l'identifiant de clé avec les données chiffrées. Cela vous permet de remplacer les clés progressivement et d’éviter les temps morts.

Le fait de garder vos clés en mémoire dans de nombreux processus augmente votre exposition à une attaque par analyse de la mémoire lors de la recherche des clés. Vous pouvez créer un nouveau processus qui est le seul à déchiffrer les clés. Vos applications communiquent avec ce nouveau processus pour chiffrer et déchiffrer des données. Ce nouveau processus devrait être sur une boîte avec une petite "surface" pour le protéger. Étant donné que les données sensibles transitent maintenant sur le réseau, ces communications doivent être cryptées. SSL est une bonne option.

4
brian beuning

Je réalise que c'est un vieux fil, mais il y a plusieurs options:

  1. Une solution de gestion de clés totalement gratuite et à source ouverte est disponible à l’adresse http://sourceforge.net/projects/strongkey . Je dois admettre que le logiciel est un peu daté et qu’il est assez complexe à configurer car il suppose que vous disposez d’une infrastructure à clé publique pour émettre des certificats numériques aux clients d’application afin de communiquer avec le serveur de gestion de clés et de sécuriser les clés sur le périphérique client.
  2. Le logiciel StrongKey d'origine a été considérablement simplifié il y a trois ans et intégré dans une appliance dotée d'un module de matériel cryptographique (TPM et HSM) afin de renforcer la gestion des clés. Malheureusement, même si le logiciel de l’appliance est entièrement FOSS, la solution intégrée elle-même n’est pas gratuite - son prix est indiqué sur son site Web ( http://www.strongauth.com/products/key-appliance.html ).

Toutefois, l'option n ° 2 présente de nombreux avantages, car elle vous permet d'exploiter les clouds publics tout en étant totalement conforme à la norme PCI (recherchez "Computing compatible avec la réglementation (RC3)" et cliquez sur le lien IBM - je ne peux publier que deux liens. dans ma réponse) avec plus d’annonces sur la façon de tirer parti de cette appliance annoncée à RSA 2013 à San Francisco.

J'espère que ça aide.

4
Arshad Noor

Jetez un coup d'œil à KeyManager , qui est le composant de gestion des clés de la suite OpenStack. L'application peut être utilisée comme solution de gestion de clés autonome en dehors d'OpenStack.

En tant que composant d'OpenStack, KeyManager est activement développé avec de nouvelles fonctionnalités prévues sur des cycles de six mois.

4
havoc1

KLMS over KMIP est une solution efficace et simple à utiliser pour la gestion des clés. Ceci est une solution open source écrite en Java. Voir le lien ci-dessous pour référence. http://www.ibm.com/developerworks/library/se-kmip4j/

Le paquet nommé stubInterface contiendra toutes les API nécessaires à l’utilisation de KLMS sur KMIP.

KLMS: Systèmes de gestion de cycle de vie de clé

KMIP: protocole d'interopérabilité de la gestion des clés

4
Mohit Thakur

J'ajouterai à cette liste comme je l'ai trouvée dans une recherche et d'autres pourraient bénéficier d'une liste plus longue.

J'ai récemment trouvé KeyWhiz qui semble être en alpha.

2
garthoid

SNipeit est le meilleur que j'ai vu: open source, très robuste et très facile à utiliser, même pour les non-initiés.

https://snipeitapp.com/demo/

Vérifiez-le là-bas.

0
RJ Fowler