web-dev-qa-db-fra.com

Comment HSM Access a-t-il été fermé?

Sur le backend si j'utilise un HSM (ou même avoir la clé principale sur un serveur physique), j'ai besoin de faire des opérations en utilisant cette clé. Cela signifie que le serveur d'applications va appeler dans le HSM (ou Keyserver). Quelle est la pratique habituelle d'authentification des appels vers le HSM? Lire, c'est généralement fait par une paire de clé que le HSM signe/connaît. Mais si le serveur d'applications est compromis, un attaquant peut simplement relier les messages et effectuer les opérations à l'aide du HSM et obtenir des données valides. Je crois que cela doit être attendu et pair pour le cours, lorsque le serveur lui-même est compromis.

Je comprends que l'idée principale de l'utilisation de HSMS est de protéger la clé. Mais y a-t-il beaucoup de réflexion/effort dans l'identification d'un accès compromis aux HSMS/Keyservers?

7
user220201

Cela peut être accompli à bien des égards. Le contrôle d'accès le plus simple à un HSM est un bouton physique. Donc, si un logiciel malveillant compromet l'ordinateur hôte, quelqu'un doit toujours être physiquement présent pour appuyer sur le bouton de la HSM pour faire n'importe quoi.

Ensuite, vous avez une gamme complète de protection d'accès différente, allant de la vérification du logiciel du serveur hôte "en externe", de nécessiter un PIN (que le serveur s'efface elle-même si elle se fondait elle-même compromis).

Un HSM peut également limiter les opérations sur une clé. Par exemple, autorisez uniquement une clé à utiliser pour la signature et la non-décryption par exemple. Ou nécessiter des formats spécifiques sur les données d'entrée signées ou déchiffrées.

Une autre chose qu'un HSM peut appliquer est la limitation du taux, à la fois pour tentatives d'authentification, mais également pour les opérations. Un serveur qui décrypte généralement permet de dire 1 message par 15 minutes peut être à la vitesse limitée à un message maximum 1 par 10 minutes, ce qui réduirait l'utilité de l'accès HSM à partir d'un serveur compromis.

Cependant, l'objectif principal d'un HSM n'est pas de limiter l'accès au HSM lui-même. L'objectif principal d'un HSM est de s'assurer que la clé elle-même, ne quitte jamais le HSM. Ici, il varie à partir de Simple HSM qui permettra uniquement d'accéder à une interface simple, mais il n'aura pas de fonctionnalités qui empêchent les compromis/attaques physiques, et l'autre extrémité de la balance est très avancée HSMS qui peut résister à une attaque même Si un adversaire a un accès physique non autorisé au HSM pendant une très longue période.

Faire une analogie:

Imaginez-vous: Si quelqu'un était capable d'utiliser votre clé de voiture une fois, cela importe-t-il? Votre voiture est-elle compromise? Non, parce que votre clé de voiture n'était pas copiée. L'adversaire a gagné un accès unique à votre voiture. Dès que vous avez récupéré le contrôle de la clé de voiture, la clé de voiture est entièrement sécurisée et sûre à utiliser.

Mais si quelqu'un copie la clé de la voiture, c'est efficacement compromis et doit être remplacé.

Imaginez la même chose avec les clés de cryptage. Certaines touches de cryptage peuvent être difficiles ou lourdes à remplacer et le processus de remplacement de celui-ci peut lui-même être vulnérable au compromis irrévocable permanent si le processus de remplacement implique la clé compromise. (Exemple: un attaquant utilise la clé compromise pour lancer le processus de remplacement à sa propre clé. Si le système de gestion clés est distribué et non géré, la société ou l'individu a perdu de manière permanente l'accès à cet enregistrement).

Ici, un HSM peut également contenir des fonctionnalités pour empêcher les données correspondantes pour lancer le processus de remplacement (certificat de révocation, etc.) d'être signée à moins d'être signée =PIN est saisi, celui que le serveur ne sait pas .

5
sebastian nielsen