8
votes

Module de sécurité logiciel / Toolkit remplaçant HSM pour développer des fonctions Crypto

J'ai travaillé et achevé un projet PKI qui utilise un HSM pour générer des clés de stockage et effectuer des fonctions de crypto. J'ai utilisé PKCS # 11 pour interfacer avec notre application de siging / vérification et de cryptage / décryptage. Notre plate-forme est Windows.

Nous cherchons maintenant à offrir une solution alternative à faible coût en remplaçant le HSM avec un module de sécurité logiciel. Je dois noter ici que je suis au courant des inconvénients de ne pas utiliser de HSM. C'est un compromis entre la sécurité vs coût.

J'ai trouvé que Microsoft fournit la prochaine génération Cryptoapi (GNC), Key Store et Services de certificats. Ma haute direction n'est pas encline à utiliser des logiciels open source. J'ai également trouvé RSA et Cryptomathic offrant des outils à outils pour effectuer des solutions logicielles.

a-t-il n'importe qui sur n'importe quel kits d'outils de module de sécurité de logiciel commercial pour effectuer des fonctions de génération de clé, de clés et de crypto?

Langue de programmation - C / C ++

merci

raj


0 commentaires

5 Réponses :


2
votes

Votre meilleure option devrait être de trouver une bibliothèque logicielle PKCS # 11. Il devrait y avoir plusieurs implémentations sur le marché - je sais que la société que je travaille pour la vente une. De cette façon, vous seriez toujours en mesure de revenir à un HSM compatible PKCS # 11 et les modifications nécessaires à l'application doivent être minimes.

Vos autres options sont Cryptoapi ou GNC de Microsoft ou une boîte à outils de RSA, cryptomathique ou autre fournisseur. Cela nécessiterait probablement plus de travail pour réécrire la demande - je ne peux vraiment voir aucun avantage à cette option, sauf que Cryptoapi et GNC sont gratuits.


6 commentaires

Vous référez-vous «Logiciel PKCS n ° 11 Bibliothèque» comme wrappers autour de la bibliothèque de PKCS # 11 Cryptoki? Si tel est le cas, de quelle manière que ceci est différent des fonctions que j'ai écrites pour la siginure / cryptition, etc. Pouvez-vous me signaler à certains fournisseurs sur "Logiciel PKCS # 11 Bibliothèque". Ces fournisseurs fournissent-ils également des fonctions de gestion clés ou devez-la compter sur le système d'exploitation et une autre bibliothèque pour stocker / accéder aux clés? De quelle manière le paragraphe 1 de votre réponse diffère de para2. Je suis en fait très confus ici. Toutes mes excuses, si je sonne trop ignorant.


PKCS # 11 Spécifie une API (Cryptoki). Vous avez été programmés contre cette API et avez probablement une DLL qui a mis en œuvre cette API avec une HSM effectuant les opérations. Plusieurs entreprises (y compris Cryptomathic, qui sont mon employeur) vendent "Logiciel PKCS # 11 Bibliothèques". Une bibliothèque de logiciels PKCS n ° 11 serait une DLL implémentant la bibliothèque PKCS n ° 11, mais la cartographie des fonctions à une implémentation de logiciel pure (et stocke les touches des fichiers (chiffrés)). La gestion des clés peut être effectuée via l'API PKCS n ° 11, mais vous pourriez également obtenir un outil séparé (selon le vendeur).


Mon deuxième paragraphe vient de relever les options, vous saviez déjà: Autres API cryptographiques.


En regardant autour de moi, je ne trouve aucun fournisseur de logiciels PKCS # 11 Bibliothèques en dehors de la cryptomathie (et qui est caché à l'intérieur de la brochure du produit pour les outils à outils Gainink ...), mais je suis sûr qu'il doit y avoir d'autres.


Vous référez-vous des clés de clé en tant que génération, étiquetage et récupération? Mon doute ici est - j'ai eu le HSM de stocker les clés, cette bibliothèque tierce sera-t-elle prise en charge du magasin clé et de sa sécurité? Je cherche un moment maintenant, est venu à travers le Gainfin (merci rasmus) et Cryptokit d'Arx. Je ne sais pas s'il y a eu d'autres vendeurs si vous rencontrez s'il vous plaît partager.


Je ne peux pas parler pour d'autres implémentations, mais je sais que la bibliothèque N ° 11 de la PKCS de GAINNINK # 11 stocke le magasin de clé crypté sur le disque dur avec une clé AES dérivée du mot de passe. C'est probablement aussi bon que possible avec une bibliothèque de logiciels. Si vous n'avez pas besoin de débit élevé, une autre option à faible coût peut être un lecteur de carte à puce avec une carte à puce. Ceux-ci viennent généralement avec des bibliothèques de PKCS # 11.



9
votes

Vous pouvez utiliser Softhsm , qui est une implémentation pkcs pkcs pure-11. Il est utilisé par le projet OPENDNSSEC précisément à échanger dans des cas une véritable HSM n'est pas disponible, de sorte que cela pourrait fonctionner pour vous aussi. Cependant, il s'agit de licence BSD, alors je suppose que votre gestion ne peut pas l'aimer sur cette base.

Si vous recherchez des coûts à faible coût et que vous ne savez pas que si vous recherchez spécifiquement quelque chose de propriétaire, lequel cryptoapi est ou pour quelque chose de soutenu commercialement, que Cryptoapi n'est pas, à moins que vous n'ayez Un contrat avec Microsoft), réécrit votre demande d'utilisation de la Win32 Cryptoapi semble-t-elle la seule option viable pour moi. Les annuelles de RSA ne sont pas bon marché, dans mon expérience.


1 commentaires

Merci Jack. Vous avez raison. Si cela va être le cas 2, je prévois d'aller avec GNC comme MS est Phasingout Cryptoapi. Aussi Mozilla NSS propose également ce jeton virtuel de la mise en œuvre de PKCS # 11.



1
votes

Jetez un coup d'œil à http://www.openssl.org/related/kits.html pour LSM-PKCS11. Cela pourrait être une solution.


0 commentaires

2
votes

J'ai un client qui a utilisé la mise en œuvre du logiciel PKCS n ° 11 fournie avec le NSS de Mozilla comme remplacement de Drop-in pour le HSM. Ils sont sur Linux en utilisant Ruby-PKCS11. Votre kilométrage peut donc varier.


2 commentaires

Salut Sander - Ce projet s'est effectivement terminé. Mais je suis désireux de regarder dans NSS. J'ai regardé les exemples sources de Mozilla, etc.; Mais mon problème est la version / ou depuis où - pour télécharger le NSS? Le mien sera Windows.


@Raj La maison de la bibliothèque est chez développeur.mozilla.org/en/nss , mais Ils ne semblent pas publier des fichiers binaires. Heureusement, chaque copie de Firefox semble en avoir une! Vous pourriez trouver libsoftokn3.dll sous l'installation Firefox (je n'ai aucune machine Windows à vérifier). Je trouve que je peux juste laisser tomber libsoftokn3.so dans un programme trivial PKCS # 11 sur mon hôte Linux.



1
votes

Je teste une solution appelée Vault de hashicorp qui ressemble à un SSM (module de sécurité logiciel ) Cela peut protéger les clés d'une manière des opérations cryptographiques. Il dispose d'un serveur qui peut être utilisé dans "Mode développeur" (pour tester et programmer) et un "mode de production" très strict pouvant être utilisé dans un environnement final. La solution de base est open source et si vous avez besoin de quelque chose de plus, il existe des "solutions d'entreprise" qui offrent plus de méthodes de récupération de sinistre, de sauvegarde, de réplication et plus encore.

Ils offrent la solution avec ces mots exacts: "Gérer les secrets et protéger les données sensibles sécurisée, stocker et contrôler étroitement l'accès aux jetons, mots de passe, certificats, clés de cryptage pour protéger les secrets et autres données sensibles à l'aide d'une API UI, CLI ou HTTP."

Téléchargez-le et testez-le.


0 commentaires