web-dev-qa-db-fra.com

Existe-t-il des HSM matériels pouvant héberger / exécuter des applications personnalisées à l'aide du ou des processeurs HSM dans la limite de sécurité endurcie?

Il semble que la majorité des HSMS matériels disponibles dans le commerce soient niquement conçus pour permettre aux utilisateurs authentifiés de générer, de stocker et d'utiliser des touches cryptographiques avec divers algorithmes cryptographiques implémentés dans le micrologiciel du HSM.

En lisant les feuilles de données On dirait que je peux utiliser l'API fourni pour créer mon (externe) d'application interagir avec le HSM et utiliser ses muscles cryptographiques, peut-être utiliser des clés générées/stockées dans le HSM. Mais, il semble que le stockage à long terme des données/objets cryptographiquement traitée par la HSM dans la limite HSM n'est pas disponible.

Pourquoi n'y a-t-il pas de HSMS qui permettent de stocker et de gérer les données d'utilisateur de manière persistante et gérée dans l'espace mémoire protégé physiquement du HSM?

Quelqu'un a-t-il de l'expérience avec HSMS et pourrait-il me diriger vers une solution HSM matérielle disponible dans le commerce qu'au moins me permet de stocker des registres au-delà des clés cryptographiques?

Idéalement, j'aimerais que ma demande soit stockée au repos dans la limite HSM, exécutée par le même processeur qui gère la crypto fournie par le HSM et de stocker de persistance quelques registres dans la zone protégée de la HSM.

18
Drew Lex

Le Thales Nshield HSM (précédemment NCIpher) permet une programmation générique. C'est une option assez coûteuse; Il doit d'abord être activé dans le HSM (via un "fichier de fonctionnalité" signé par Thales et spécifique au numéro de série d'un HSM), puis le code supplémentaire peut fonctionner aussi longtemps qu'il est signé avec une clé connue avec une clé connue de la HSM pour une telle utilisation.

Avec cette option, vous obtiendrez un compilateur C avec une bibliothèque C réduite et une API qui donne accès aux fonctionnalités HSM. Le système d'exploitation interne permet un processus (mais multi-filetés) et les opérations cryptographiques sont effectuées avec des transactions; Il existe également des transactions pour échanger des blob binaires arbitraires avec le monde extérieur (le PC hôte). Le processeur principal n'est pas très puissant (réfléchissez à 60 MHz ARM ou PowerPC), mais il y a des éléments substantiels RAM (mégaoctets, même dizaines de mégaoctets).

Thales/NCIpher HSM n'a pas beaucoup de fonctionnalités de stockage permanentes (quelques kilo-octets d'EEPROM y a quelques kilomètres, mais c'est tout). En réalité, le HSM stocke uniquement une clé principale (que vous ne pouvez pas accéder), et tout, y compris les "clés" qui sont "dans le HSM" sont déchargés, avec cryptage. Vous pouvez faire la même chose: stockez vos données stockées sur l'hôte, renvoyées à votre module interne; Les données sont cryptées avec l'une des touches (qui sont pratiquement "dans le HSM") et votre code dans le HSM effectue le décryptage.

19
Thomas Pornin

Le timaco/Sophos HSM a beaucoup de flash pour le stockage interne des touches, que vous pouvez gérer via (par exemple) l'interface PKCS n ° 11.

Si vous souhaitez développer vos propres algorithmes cryptographiques ou protocoles de sécurité, il existe également un SDK disponible . La CPU est un peu exotique (Texas Instruments DSP), mais elle est entièrement programmable en C et est livrée avec un simulateur. Le chargement du code est simple et très bien pensé à travers, avec une authentification appropriée et éventuellement cryptage de code.

Point de bonus : Certains modèles ont une prise en charge partielle pour FIPS 140-2 Niveau 4 (c'est-à-dire la zérozation active de la racine Secrets en cas d'attaque physique), si ce genre de choses fait flotter votre bateau. Bien sûr, gardez à l'esprit que si vous développez votre propre firmware, le FIPS certification n'est plus valide.

La plupart des HSM permettent d'utiliser du code personnalisé, mais en général, vous devez demander au vendeur spécifique, ce n'est pas quelque chose qu'ils font de la publicité. Souvent, il enfreint la certification. D'autre part, exécuter des applications pouvant par exemple. Valider l'entrée peut faire une expérience beaucoup plus sécurisée. Généralement, ces applications sont du bac à sable et doivent être signées. Bien sûr, si vous êtes un client suffisant, il est également possible de parler de personnalisation par le vendeur lui-même.

Vous devez vous attendre à ce que les architectures d'API et d'étrangères spécifiques au fournisseur.

Il y avait un Java HSM de SafeNet ciblant spécifiquement le développement d'applications signées pour fonctionner sur le HSM, mais j'ai compris qu'il était interrompu (il était suffisamment coûteux que je n'ai même pas couché yeux dessus).

2
Maarten Bodewes

SafeNet HSMS permettre le chargement du code personnalisé dans le module. Selon les exigences, il existe différentes options disponibles.

2
mark